package com.transmem.action;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.ServletContext;
import java.io.IOException;
import java.sql.SQLException;
import java.sql.Connection;
import java.util.ArrayList;
//import com.transmem.data.db.Databases;
import com.transmem.data.db.Users;
//import com.transmem.data.db.Projects;
/**
* Action class for User profile operations.
*
* @version 0.1
* @author Ted Wen
* @date May. 2007
*/
public class ProfileAction extends BaseAction
{
private Logger log_ = Logger.getLogger(ProfileAction.class.getName());
public ProfileAction()
{
super();
}
public void execute(ServletParams param) throws ServletException, IOException
{
log_.entering("ProfileAction","execute");
Session session = param.getSession();
Users user = session.getUser();
if (user == null) {
log_.severe("session.getAttribute('user') returned null");
param.sendError(MessageCode.ERR_NOT_LOGIN);
return;
}
String op = param.getParameter("operation");
log_.info("op="+op+",page="+param.getParameter("arg1"));
if (op.equals("2page"))
{
String page = param.getParameter("arg1");
setNextPage(PageLinks.JSP_HOME+page);
log_.info("Redirect page to "+PageLinks.JSP_HOME+page);
}
/*
Connection conn = null;
try
{
conn = getConnection(param,Databases.CATEGORY_USER);
Users usr = new Users(conn);
usr.queryLogin(uid, pwd);
if (usr.getUserID() > 0)
{
session.setUser(usr);
session.setMaxInactiveInterval(MAX_IDLE_SECONDS);
// Increment online user count
ServletContext ctx = session.getServletContext();
Integer uc = (Integer)ctx.getAttribute("UserCount");
if (uc == null)
{
uc = new Integer(1);
}
else
{
int usercount = uc.intValue() + 1;
uc = new Integer(usercount);
}
ctx.setAttribute("UserCount", uc); //assuming ServletContext is thread-safe
//log_.info("UserCount = "+uc);
//load projects for this user and store in session heap
Projects prjs = new Projects(conn);
ArrayList<Projects> projects = prjs.queryProjectsByMember(usr.getUserID());
session.setProjectList(projects);
log_.info(projects.size()+" projects loaded and saved in session");
//redirect to the project page
//setNextPage(PageLinks.PROJECT_PAGE);
setNextPage(PageLinks.PERSONAL_PAGE);
}
else
{
log_.info("Invalid username or password.");
//throw new IOException("LoginAction.execute(): Invalid username or password.");
//TODO: set errorcode and message
param.sendError(MessageCode.ERR_INVALID_USERPASS);
}
}
catch (SQLException x)
{
log_.severe("SQLException when getConnection(USER)"+x);
param.sendError(MessageCode.ERR_DB_CONNECT);
}
finally
{
if (conn != null)
try { conn.close(); } catch (SQLException e) {}
}*/
}
}