package cn.newgxu.bbs.web.wap; import static cn.newgxu.bbs.common.Constants.ACCOUNT_STATUS_FORBID; import static cn.newgxu.bbs.common.Constants.ACCOUNT_STATUS_NORMAL; import static cn.newgxu.bbs.common.Constants.ACCOUNT_STATUS_UNPAST; import static cn.newgxu.bbs.common.Constants.ACCOUNT_STATUS_WAIT; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import cn.newgxu.bbs.common.AuthorizationManager; import cn.newgxu.bbs.common.exception.BBSException; import cn.newgxu.bbs.common.util.Util; import cn.newgxu.bbs.domain.user.Guest; import cn.newgxu.bbs.domain.user.User; import cn.newgxu.bbs.web.action.AbstractBaseAction; import cn.newgxu.bbs.web.model.accounts.LoginModel; import com.opensymphony.webwork.ServletActionContext; @Controller @Scope("prototype") public class AccountController extends AbstractBaseAction { private static final long serialVersionUID = 8989419100072388374L; private static final Logger l = LoggerFactory.getLogger(AccountController.class); private LoginModel model = new LoginModel(); private String message = ""; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } // public void setModel(LoginModel model) { // this.model = model; // } public Object getModel() { return model; } @Override public String execute() throws Exception { return SUCCESS; } public String loginProcess() throws IllegalArgumentException, IllegalAccessException { l.debug("用户手机登录! username: {}, password: {}", model.getUsername(), model.getPassword()); try { model.setIp(getRequest().getRemoteAddr()); User user = super.userService.loginWithoutValidCode(model); switch (user.getAccountStatus()) { case ACCOUNT_STATUS_NORMAL: userService.deleteOnlineUser(getAuthorization()); AuthorizationManager.saveAuthorization(getSession(), user); Util.saveCookie(getResponse(), user.getUsername(), user.getPassword(), true); return SUCCESS; case ACCOUNT_STATUS_WAIT: message = "您的注册资料在等待审核中,请耐心等待!"; return INPUT; case ACCOUNT_STATUS_UNPAST: message = "您的注册资料未能通过验证,请重新填写!" + "<br /><a href='/accounts/re_input.yws'>重新填写我的资料</a>"; return INPUT; case ACCOUNT_STATUS_FORBID: message = "抱歉,您的帐号已被禁止登录!"; return INPUT; default: message = "出错啦!请稍后再试。"; return ERROR; } } catch (BBSException e) { message = e.getMessage(); return ERROR; } } public String logout() { userService.deleteOnlineUser(getAuthorization()); AuthorizationManager.saveAuthorization(getSession(), new Guest()); AuthorizationManager.saveAdminAuthorization(getSession(), new Guest()); Util.saveCookie(ServletActionContext.getResponse(), "", "", false); return SUCCESS; } }