Search in sources :

Example 1 with LoginUser

use of com.ruoyi.system.api.model.LoginUser in project RuoYi-Cloud-Oracle by yangzongzhuan.

the class SysProfileController method avatar.

/**
 * 头像上传
 */
@Log(title = "用户头像", businessType = BusinessType.UPDATE)
@PostMapping("/avatar")
public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException {
    if (!file.isEmpty()) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        R<SysFile> fileResult = remoteFileService.upload(file);
        if (StringUtils.isNull(fileResult) || StringUtils.isNull(fileResult.getData())) {
            return AjaxResult.error("文件服务异常,请联系管理员");
        }
        String url = fileResult.getData().getUrl();
        if (userService.updateUserAvatar(loginUser.getUsername(), url)) {
            AjaxResult ajax = AjaxResult.success();
            ajax.put("imgUrl", url);
            // 更新缓存用户头像
            loginUser.getSysUser().setAvatar(url);
            tokenService.setLoginUser(loginUser);
            return ajax;
        }
    }
    return AjaxResult.error("上传图片异常,请联系管理员");
}
Also used : AjaxResult(com.ruoyi.common.core.web.domain.AjaxResult) LoginUser(com.ruoyi.system.api.model.LoginUser) SysFile(com.ruoyi.system.api.domain.SysFile) PostMapping(org.springframework.web.bind.annotation.PostMapping) Log(com.ruoyi.common.log.annotation.Log)

Example 2 with LoginUser

use of com.ruoyi.system.api.model.LoginUser in project RuoYi-Cloud-Oracle by yangzongzhuan.

the class SysProfileController method updatePwd.

/**
 * 重置密码
 */
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping("/updatePwd")
public AjaxResult updatePwd(String oldPassword, String newPassword) {
    String username = SecurityUtils.getUsername();
    SysUser user = userService.selectUserByUserName(username);
    String password = user.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 loginUser = SecurityUtils.getLoginUser();
        loginUser.getSysUser().setPassword(SecurityUtils.encryptPassword(newPassword));
        tokenService.setLoginUser(loginUser);
        return AjaxResult.success();
    }
    return AjaxResult.error("修改密码异常,请联系管理员");
}
Also used : SysUser(com.ruoyi.system.api.domain.SysUser) LoginUser(com.ruoyi.system.api.model.LoginUser) Log(com.ruoyi.common.log.annotation.Log) PutMapping(org.springframework.web.bind.annotation.PutMapping)

Example 3 with LoginUser

use of com.ruoyi.system.api.model.LoginUser in project RuoYi-Cloud-Oracle by yangzongzhuan.

the class SysUserOnlineController method list.

@RequiresPermissions("monitor:online:list")
@GetMapping("/list")
public TableDataInfo list(String ipaddr, String userName) {
    Collection<String> keys = redisService.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
    List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
    for (String key : keys) {
        LoginUser user = redisService.getCacheObject(key);
        if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) {
            if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername())) {
                userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));
            }
        } else if (StringUtils.isNotEmpty(ipaddr)) {
            if (StringUtils.equals(ipaddr, user.getIpaddr())) {
                userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user));
            }
        } else if (StringUtils.isNotEmpty(userName)) {
            if (StringUtils.equals(userName, user.getUsername())) {
                userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user));
            }
        } else {
            userOnlineList.add(userOnlineService.loginUserToUserOnline(user));
        }
    }
    Collections.reverse(userOnlineList);
    userOnlineList.removeAll(Collections.singleton(null));
    return getDataTable(userOnlineList);
}
Also used : SysUserOnline(com.ruoyi.system.domain.SysUserOnline) ArrayList(java.util.ArrayList) LoginUser(com.ruoyi.system.api.model.LoginUser) RequiresPermissions(com.ruoyi.common.security.annotation.RequiresPermissions) GetMapping(org.springframework.web.bind.annotation.GetMapping)

Example 4 with LoginUser

use of com.ruoyi.system.api.model.LoginUser in project RuoYi-Cloud-Oracle by yangzongzhuan.

the class HeaderInterceptor method preHandle.

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    if (!(handler instanceof HandlerMethod)) {
        return true;
    }
    SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID));
    SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME));
    SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY));
    String token = SecurityUtils.getToken();
    if (StringUtils.isNotEmpty(token)) {
        LoginUser loginUser = AuthUtil.getLoginUser(token);
        if (StringUtils.isNotNull(loginUser)) {
            AuthUtil.verifyLoginUserExpire(loginUser);
            SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser);
        }
    }
    return true;
}
Also used : LoginUser(com.ruoyi.system.api.model.LoginUser) HandlerMethod(org.springframework.web.method.HandlerMethod)

Example 5 with LoginUser

use of com.ruoyi.system.api.model.LoginUser in project RuoYi-Cloud-Oracle by yangzongzhuan.

the class TokenService method getLoginUser.

/**
 * 获取用户身份信息
 *
 * @return 用户信息
 */
public LoginUser getLoginUser(String token) {
    LoginUser user = null;
    try {
        if (StringUtils.isNotEmpty(token)) {
            String userkey = JwtUtils.getUserKey(token);
            user = redisService.getCacheObject(getTokenKey(userkey));
            return user;
        }
    } catch (Exception e) {
    }
    return user;
}
Also used : LoginUser(com.ruoyi.system.api.model.LoginUser)

Aggregations

LoginUser (com.ruoyi.system.api.model.LoginUser)30 SysUser (com.ruoyi.system.api.domain.SysUser)9 Log (com.ruoyi.common.log.annotation.Log)7 UserType (com.ruoyi.common.core.enums.UserType)4 ServiceException (com.ruoyi.common.core.exception.ServiceException)4 ArrayList (java.util.ArrayList)4 GetMapping (org.springframework.web.bind.annotation.GetMapping)4 PutMapping (org.springframework.web.bind.annotation.PutMapping)4 XcxLoginUser (com.ruoyi.system.api.model.XcxLoginUser)3 NotLoginException (com.ruoyi.common.core.exception.auth.NotLoginException)2 AjaxResult (com.ruoyi.common.core.web.domain.AjaxResult)2 DataColumn (com.ruoyi.common.mybatis.annotation.DataColumn)2 InnerAuth (com.ruoyi.common.security.annotation.InnerAuth)2 RequiresPermissions (com.ruoyi.common.security.annotation.RequiresPermissions)2 SysFile (com.ruoyi.system.api.domain.SysFile)2 RoleDTO (com.ruoyi.system.api.model.RoleDTO)2 SysUserOnline (com.ruoyi.system.domain.SysUserOnline)2 PostMapping (org.springframework.web.bind.annotation.PostMapping)2 HandlerMethod (org.springframework.web.method.HandlerMethod)2 SaCheckPermission (cn.dev33.satoken.annotation.SaCheckPermission)1