Search in sources :

Example 1 with LoginUser

use of com.ruoyi.framework.security.LoginUser in project RuoYi-Vue-Oracle by yangzongzhuan.

the class SysProfileController method updatePwd.

/**
 * 重置密码
 */
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping("/updatePwd")
public AjaxResult updatePwd(String oldPassword, String newPassword) {
    LoginUser loginUser = getLoginUser();
    String userName = loginUser.getUsername();
    String password = loginUser.getPassword();
    if (!SecurityUtils.matchesPassword(oldPassword, password)) {
        return AjaxResult.error("修改密码失败,旧密码错误");
    }
    if (SecurityUtils.matchesPassword(newPassword, password)) {
        return AjaxResult.error("新密码不能与旧密码相同");
    }
    if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) {
        // 更新缓存用户密码
        loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
        tokenService.setLoginUser(loginUser);
        return AjaxResult.success();
    }
    return AjaxResult.error("修改密码异常,请联系管理员");
}
Also used : LoginUser(com.ruoyi.framework.security.LoginUser) Log(com.ruoyi.framework.aspectj.lang.annotation.Log) PutMapping(org.springframework.web.bind.annotation.PutMapping)

Example 2 with LoginUser

use of com.ruoyi.framework.security.LoginUser in project RuoYi-Vue-Oracle by yangzongzhuan.

the class SysProfileController method updateProfile.

/**
 * 修改用户
 */
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult updateProfile(@RequestBody SysUser user) {
    LoginUser loginUser = getLoginUser();
    SysUser sysUser = loginUser.getUser();
    user.setUserName(sysUser.getUserName());
    if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
        return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
    }
    if (StringUtils.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
        return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
    }
    user.setUserId(sysUser.getUserId());
    user.setPassword(null);
    if (userService.updateUserProfile(user) > 0) {
        // 更新缓存用户信息
        sysUser.setNickName(user.getNickName());
        sysUser.setPhonenumber(user.getPhonenumber());
        sysUser.setEmail(user.getEmail());
        sysUser.setSex(user.getSex());
        tokenService.setLoginUser(loginUser);
        return AjaxResult.success();
    }
    return AjaxResult.error("修改个人信息异常,请联系管理员");
}
Also used : SysUser(com.ruoyi.project.system.domain.SysUser) LoginUser(com.ruoyi.framework.security.LoginUser) Log(com.ruoyi.framework.aspectj.lang.annotation.Log) PutMapping(org.springframework.web.bind.annotation.PutMapping)

Example 3 with LoginUser

use of com.ruoyi.framework.security.LoginUser in project RuoYi-Vue-Oracle by yangzongzhuan.

the class SysProfileController method profile.

/**
 * 个人信息
 */
@GetMapping
public AjaxResult profile() {
    LoginUser loginUser = getLoginUser();
    SysUser user = loginUser.getUser();
    AjaxResult ajax = AjaxResult.success(user);
    ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
    ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
    return ajax;
}
Also used : AjaxResult(com.ruoyi.framework.web.domain.AjaxResult) SysUser(com.ruoyi.project.system.domain.SysUser) LoginUser(com.ruoyi.framework.security.LoginUser) GetMapping(org.springframework.web.bind.annotation.GetMapping)

Example 4 with LoginUser

use of com.ruoyi.framework.security.LoginUser in project RuoYi-Vue-Oracle by yangzongzhuan.

the class SysRoleController method edit.

/**
 * 修改保存角色
 */
@PreAuthorize("@ss.hasPermi('system:role:edit')")
@Log(title = "角色管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysRole role) {
    roleService.checkRoleAllowed(role);
    roleService.checkRoleDataScope(role.getRoleId());
    if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) {
        return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
    } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) {
        return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
    }
    role.setUpdateBy(getUsername());
    if (roleService.updateRole(role) > 0) {
        // 更新缓存用户权限
        LoginUser loginUser = getLoginUser();
        if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) {
            loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
            loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
            tokenService.setLoginUser(loginUser);
        }
        return AjaxResult.success();
    }
    return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
}
Also used : LoginUser(com.ruoyi.framework.security.LoginUser) Log(com.ruoyi.framework.aspectj.lang.annotation.Log) PutMapping(org.springframework.web.bind.annotation.PutMapping) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize)

Example 5 with LoginUser

use of com.ruoyi.framework.security.LoginUser in project RuoYi-Vue-Oracle by yangzongzhuan.

the class TokenService method getLoginUser.

/**
 * 获取用户身份信息
 *
 * @return 用户信息
 */
public LoginUser getLoginUser(HttpServletRequest request) {
    // 获取请求携带的令牌
    String token = getToken(request);
    if (StringUtils.isNotEmpty(token)) {
        try {
            Claims claims = parseToken(token);
            // 解析对应的权限以及用户信息
            String uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
            String userKey = getTokenKey(uuid);
            LoginUser user = redisCache.getCacheObject(userKey);
            return user;
        } catch (Exception e) {
        }
    }
    return null;
}
Also used : Claims(io.jsonwebtoken.Claims) LoginUser(com.ruoyi.framework.security.LoginUser)

Aggregations

LoginUser (com.ruoyi.framework.security.LoginUser)24 Log (com.ruoyi.framework.aspectj.lang.annotation.Log)8 PutMapping (org.springframework.web.bind.annotation.PutMapping)6 AjaxResult (com.ruoyi.framework.web.domain.AjaxResult)4 SysUser (com.ruoyi.project.system.domain.SysUser)4 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)4 UsernamePasswordAuthenticationToken (org.springframework.security.authentication.UsernamePasswordAuthenticationToken)4 GetMapping (org.springframework.web.bind.annotation.GetMapping)4 ServiceException (com.ruoyi.common.exception.ServiceException)2 CaptchaException (com.ruoyi.common.exception.user.CaptchaException)2 CaptchaExpireException (com.ruoyi.common.exception.user.CaptchaExpireException)2 UserPasswordNotMatchException (com.ruoyi.common.exception.user.UserPasswordNotMatchException)2 SysOperLog (com.ruoyi.project.monitor.domain.SysOperLog)2 SysUserOnline (com.ruoyi.project.monitor.domain.SysUserOnline)2 Claims (io.jsonwebtoken.Claims)2 ArrayList (java.util.ArrayList)2 BadCredentialsException (org.springframework.security.authentication.BadCredentialsException)2 Authentication (org.springframework.security.core.Authentication)2 WebAuthenticationDetailsSource (org.springframework.security.web.authentication.WebAuthenticationDetailsSource)2 PostMapping (org.springframework.web.bind.annotation.PostMapping)2