1 25 29 package org.jresearch.gossip.actions.user; 30 31 import java.sql.SQLException ; 32 33 import javax.servlet.http.Cookie ; 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 import javax.servlet.http.HttpSession ; 37 38 import org.apache.log.Logger; 39 import org.apache.struts.action.ActionForm; 40 import org.apache.struts.action.ActionForward; 41 import org.apache.struts.action.ActionMapping; 42 import org.jresearch.gossip.IConst; 43 import org.jresearch.gossip.actions.BaseAction; 44 import org.jresearch.gossip.beans.user.User; 45 import org.jresearch.gossip.configuration.Configurator; 46 import org.jresearch.gossip.constants.UserStatus; 47 import org.jresearch.gossip.dao.UserDAO; 48 import org.jresearch.gossip.exception.JGossipException; 49 import org.jresearch.gossip.exception.LogicException; 50 import org.jresearch.gossip.exception.SystemException; 51 import org.jresearch.gossip.forms.ProfileForm; 52 import org.jresearch.gossip.log.avalon.JGossipLog; 53 54 59 public class SaveProfileAction extends BaseAction { 60 61 75 public ActionForward process(ActionMapping mapping, ActionForm form, 76 HttpServletRequest request, HttpServletResponse response) 77 throws JGossipException { 78 HttpSession session = request.getSession(); 79 80 User user = (User) session.getAttribute(IConst.SESSION.USER_KEY); 81 UserDAO dao = UserDAO.getInstance(); 82 ProfileForm pForm = (ProfileForm) form; 83 String forward = IConst.TOKEN.PAGE; 84 try { 85 if (Configurator.getInstance().getBoolean( 86 IConst.CONFIG.ENABLE_EXT_SIGN_ON) 87 && !dao.isUserExist(user.getName())) { 88 pForm.setLogin(user.getName()); 90 pForm.setPassword(user.getName()); 91 pForm.setPassword2(user.getName()); 92 dao.addUser(pForm); 93 user = dao.getUser(pForm.getLogin(), pForm.getPassword()); 94 if (user.getStatus() == UserStatus.GUEST) { 95 session.setAttribute(IConst.SESSION.USER_KEY, user); 96 throw new LogicException(getResources(request).getMessage( 97 "errors.ERR22") 98 + user.getName()); 99 } 100 user.setIp(request.getRemoteAddr()); 101 forward = IConst.TOKEN.WELCOME; 102 log(request, "logs.LOG7", user.getName()); 103 } else { 104 dao.updateUser(pForm, user.getName()); 106 user = dao.getUserEncoded(user.getName(), user.getPassword()); 107 user.setIp(request.getRemoteAddr()); 108 log(request, "logs.LOG19"); 109 110 } 111 112 if (Configurator.getInstance().getBoolean( 113 IConst.CONFIG.ENABLE_AUTO_LOGIN)) { 114 if (user.getSettings().isAutologin()) { 116 Cookie userCookie = new Cookie (IConst.COOKIE.USER_COOKIE, 117 user.getName() + "*" + user.getPassword()); 118 userCookie.setMaxAge(IConst.COOKIE.SECONDS_PER_YEAR); 119 ((HttpServletResponse ) response).addCookie(userCookie); 120 } 121 } 122 session.setAttribute(IConst.SESSION.USER_KEY, user); 123 setStatusMessage(request, "status.UPDATE_DETAILS"); 124 } catch (SQLException sqle) { 125 getServlet().log("Connection.process", sqle); 126 throw new SystemException(sqle); 127 } 128 Logger log = JGossipLog.getInstance().getAppLogger(); 129 if (log.isDebugEnabled()) { 130 log.debug("forward is " + forward); 131 } 132 return mapping.findForward(forward); 133 } 134 } | Popular Tags |