Search in sources :

Example 1 with LoginResult

use of com.sohu.cache.entity.LoginResult in project cachecloud by sohutv.

the class LoginController method loginIn.

/**
     * 用户登录
     *
     * @param userName 用户名
     * @param password 密码
     * @param isAdmin  是否勾选超级管理员选项,1是0否
     * @return
     */
@RequestMapping(value = "/loginIn", method = RequestMethod.POST)
public ModelAndView loginIn(HttpServletRequest request, HttpServletResponse response, Model model, String userName, String password, boolean isAdmin) {
    // 登录结果
    LoginResult loginResult = new LoginResult();
    loginResult.setAdminEnum((isAdmin == true ? AdminEnum.IS_ADMIN : AdminEnum.NOT_ADMIN));
    loginResult.setLoginEnum(LoginEnum.LOGIN_WRONG_USER_OR_PASSWORD);
    AppUser userModel = null;
    if (ConstUtils.SUPER_ADMIN_NAME.equals(userName)) {
        userModel = userService.getByName(userName);
        if (userModel != null && ConstUtils.SUPER_ADMIN_PASS.equals(password)) {
            loginResult.setLoginEnum(LoginEnum.LOGIN_SUCCESS);
        } else {
            loginResult.setLoginEnum(LoginEnum.LOGIN_WRONG_USER_OR_PASSWORD);
        }
    } else {
        if (LoginUtil.passportCheck(userName, password)) {
            // 同时要验证是否有cachecloud权限
            userModel = userService.getByName(userName);
            if (userModel != null && userModel.getType() != AppUserTypeEnum.NO_USER.value()) {
                if (isAdmin) {
                    if (AppUserTypeEnum.ADMIN_USER.value().equals(userModel.getType())) {
                        loginResult.setLoginEnum(LoginEnum.LOGIN_SUCCESS);
                    } else {
                        loginResult.setLoginEnum(LoginEnum.LOGIN_NOT_ADMIN);
                    }
                } else {
                    loginResult.setLoginEnum(LoginEnum.LOGIN_SUCCESS);
                }
            } else {
                // 用户不存在
                loginResult.setLoginEnum(LoginEnum.LOGIN_USER_NOT_EXIST);
            }
        }
    }
    // 登录成功写入登录状态
    if (loginResult.getLoginEnum().equals(LoginEnum.LOGIN_SUCCESS)) {
        userLoginStatusService.addLoginStatus(request, response, userModel.getId().toString());
    }
    model.addAttribute("success", loginResult.getLoginEnum().value());
    model.addAttribute("admin", loginResult.getAdminEnum().value());
    return new ModelAndView();
}
Also used : LoginResult(com.sohu.cache.entity.LoginResult) ModelAndView(org.springframework.web.servlet.ModelAndView) AppUser(com.sohu.cache.entity.AppUser) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

AppUser (com.sohu.cache.entity.AppUser)1 LoginResult (com.sohu.cache.entity.LoginResult)1 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)1 ModelAndView (org.springframework.web.servlet.ModelAndView)1