update 解耦 LoginUser 与 SysUser 强关联
| | |
| | | if (StringUtils.equals(ipaddr, user.getIpaddr())) { |
| | | userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user)); |
| | | } |
| | | } else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser())) { |
| | | } else if (StringUtils.isNotEmpty(userName)) { |
| | | if (StringUtils.equals(userName, user.getUsername())) { |
| | | userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user)); |
| | | } |
| | |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.system.domain.vo.RouterVo; |
| | | import com.ruoyi.system.service.ISysMenuService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.system.service.SysLoginService; |
| | | import com.ruoyi.system.service.SysPermissionService; |
| | | import io.swagger.annotations.Api; |
| | |
| | | |
| | | private final SysLoginService loginService; |
| | | private final ISysMenuService menuService; |
| | | private final ISysUserService userService; |
| | | private final SysPermissionService permissionService; |
| | | |
| | | /** |
| | |
| | | @ApiOperation("è·åç¨æ·ä¿¡æ¯") |
| | | @GetMapping("getInfo") |
| | | public AjaxResult<Map<String, Object>> getInfo() { |
| | | SysUser user = SecurityUtils.getLoginUser().getUser(); |
| | | SysUser user = userService.selectUserById(SecurityUtils.getUserId()); |
| | | // è§è²éå |
| | | Set<String> roles = permissionService.getRolePermission(user); |
| | | // æééå |
| | |
| | | @GetMapping |
| | | public AjaxResult<Map<String, Object>> profile() { |
| | | LoginUser loginUser = getLoginUser(); |
| | | SysUser user = loginUser.getUser(); |
| | | SysUser user = userService.selectUserById(loginUser.getUserId()); |
| | | Map<String, Object> ajax = new HashMap<>(); |
| | | ajax.put("user", user); |
| | | ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername())); |
| | |
| | | return AjaxResult.error("ä¿®æ¹ç¨æ·'" + user.getUserName() + "'失败ï¼é®ç®±è´¦å·å·²åå¨"); |
| | | } |
| | | LoginUser loginUser = getLoginUser(); |
| | | SysUser sysUser = loginUser.getUser(); |
| | | SysUser sysUser = userService.selectUserById(loginUser.getUserId()); |
| | | 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("ä¿®æ¹ä¸ªäººä¿¡æ¯å¼å¸¸ï¼è¯·è系管çå"); |
| | |
| | | } |
| | | if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) { |
| | | // æ´æ°ç¼åç¨æ·å¯ç |
| | | loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword)); |
| | | loginUser.setPassword(SecurityUtils.encryptPassword(newPassword)); |
| | | tokenService.setLoginUser(loginUser); |
| | | return AjaxResult.success(); |
| | | } |
| | |
| | | String avatar = oss.getUrl(); |
| | | if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) { |
| | | ajax.put("imgUrl", avatar); |
| | | // æ´æ°ç¼åç¨æ·å¤´å |
| | | loginUser.getUser().setAvatar(avatar); |
| | | tokenService.setLoginUser(loginUser); |
| | | return AjaxResult.success(ajax); |
| | | } |
| | | } |
| | |
| | | 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())); |
| | | SysUser sysUser = userService.selectUserById(loginUser.getUserId()); |
| | | if (StringUtils.isNotNull(sysUser) && !sysUser.isAdmin()) { |
| | | loginUser.setPermissions(permissionService.getMenuPermission(sysUser)); |
| | | tokenService.setLoginUser(loginUser); |
| | | } |
| | | return AjaxResult.success(); |
| | |
| | | package com.ruoyi.common.core.domain.model; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonIgnore; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import lombok.Data; |
| | | import lombok.NoArgsConstructor; |
| | | import lombok.experimental.Accessors; |
| | |
| | | private Set<String> permissions; |
| | | |
| | | /** |
| | | * ç¨æ·ä¿¡æ¯ |
| | | * ç¨æ·å |
| | | */ |
| | | private SysUser user; |
| | | private String username; |
| | | |
| | | public LoginUser(SysUser user, Set<String> permissions) { |
| | | this.user = user; |
| | | /** |
| | | * å¯ç |
| | | */ |
| | | private String password; |
| | | |
| | | public LoginUser(String username, String password, Set<String> permissions) { |
| | | this.username = username; |
| | | this.password = password; |
| | | this.permissions = permissions; |
| | | } |
| | | |
| | | public LoginUser(Long userId, Long deptId, SysUser user, Set<String> permissions) { |
| | | public LoginUser(Long userId, Long deptId, String username, String password, Set<String> permissions) { |
| | | this.userId = userId; |
| | | this.deptId = deptId; |
| | | this.user = user; |
| | | this.username = username; |
| | | this.password = password; |
| | | this.permissions = permissions; |
| | | } |
| | | |
| | | @JsonIgnore |
| | | @Override |
| | | public String getPassword() { |
| | | return user.getPassword(); |
| | | return password; |
| | | } |
| | | |
| | | @Override |
| | | public String getUsername() { |
| | | return user.getUserName(); |
| | | return username; |
| | | } |
| | | |
| | | /** |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.common.core.service; |
| | | |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | |
| | | /** |
| | | * éç¨ ç¨æ·ä¸å¡ |
| | | * |
| | | * @author Lion Li |
| | | */ |
| | | public interface UserService { |
| | | |
| | | /** |
| | | * éè¿ç¨æ·åæ¥è¯¢ç¨æ· |
| | | * |
| | | * @param userName ç¨æ·å |
| | | * @return ç¨æ·å¯¹è±¡ä¿¡æ¯ |
| | | */ |
| | | SysUser selectUserByUserName(String userName); |
| | | |
| | | /** |
| | | * éè¿ç¨æ·IDæ¥è¯¢ç¨æ· |
| | | * |
| | | * @param userId ç¨æ·ID |
| | | * @return ç¨æ·å¯¹è±¡ä¿¡æ¯ |
| | | */ |
| | | SysUser selectUserById(Long userId); |
| | | |
| | | } |
| | |
| | | import com.ruoyi.common.core.domain.entity.SysRole; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.core.domain.model.LoginUser; |
| | | import com.ruoyi.common.core.service.UserService; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.reflect.ReflectUtils; |
| | | import com.ruoyi.common.utils.spring.SpringUtils; |
| | | import org.aspectj.lang.JoinPoint; |
| | | import org.aspectj.lang.annotation.Aspect; |
| | | import org.aspectj.lang.annotation.Before; |
| | |
| | | // è·åå½åçç¨æ· |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (StringUtils.isNotNull(loginUser)) { |
| | | SysUser currentUser = loginUser.getUser(); |
| | | // 妿æ¯è¶
级管çåï¼åä¸è¿æ»¤æ°æ® |
| | | SysUser currentUser = SpringUtils.getBean(UserService.class).selectUserById(loginUser.getUserId()); |
| | | // 妿æ¯è¶
级管çåï¼åä¸è¿æ»¤æ°æ® |
| | | if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) { |
| | | dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), |
| | | controllerDataScope.userAlias(), controllerDataScope.isUser()); |
| | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.core.page.TableDataInfo; |
| | | import com.ruoyi.common.core.service.UserService; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | * |
| | | * @author Lion Li |
| | | */ |
| | | public interface ISysUserService extends IService<SysUser> { |
| | | public interface ISysUserService extends IService<SysUser>, UserService { |
| | | |
| | | |
| | | TableDataInfo<SysUser> selectPageUserList(SysUser user); |
| | |
| | | * @param userName ç¨æ·å |
| | | * @return ç¨æ·å¯¹è±¡ä¿¡æ¯ |
| | | */ |
| | | @Override |
| | | SysUser selectUserByUserName(String userName); |
| | | |
| | | /** |
| | |
| | | * @param userId ç¨æ·ID |
| | | * @return ç¨æ·å¯¹è±¡ä¿¡æ¯ |
| | | */ |
| | | @Override |
| | | SysUser selectUserById(Long userId); |
| | | |
| | | /** |
| | |
| | | package com.ruoyi.system.service; |
| | | |
| | | import com.ruoyi.common.core.domain.entity.SysRole; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.core.domain.model.LoginUser; |
| | | import com.ruoyi.common.core.service.UserService; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.spring.SpringUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | |
| | | return false; |
| | | } |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) { |
| | | if (StringUtils.isNull(loginUser)) { |
| | | return false; |
| | | } |
| | | for (SysRole sysRole : loginUser.getUser().getRoles()) { |
| | | SysUser sysUser = SpringUtils.getBean(UserService.class).selectUserById(loginUser.getUserId()); |
| | | if (CollectionUtils.isEmpty(sysUser.getRoles())) { |
| | | return false; |
| | | } |
| | | for (SysRole sysRole : sysUser.getRoles()) { |
| | | String roleKey = sysRole.getRoleKey(); |
| | | if (SUPER_ADMIN.equals(roleKey) || roleKey.equals(StringUtils.trim(role))) { |
| | | return true; |
| | |
| | | return false; |
| | | } |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) { |
| | | if (StringUtils.isNull(loginUser)) { |
| | | return false; |
| | | } |
| | | SysUser sysUser = SpringUtils.getBean(UserService.class).selectUserById(loginUser.getUserId()); |
| | | if (CollectionUtils.isEmpty(sysUser.getRoles())) { |
| | | return false; |
| | | } |
| | | for (String role : roles.split(ROLE_DELIMETER)) { |
| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.core.domain.model.LoginUser; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.system.domain.SysUserOnline; |
| | | import com.ruoyi.system.service.ISysUserOnlineService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Service |
| | | public class SysUserOnlineServiceImpl implements ISysUserOnlineService { |
| | | |
| | | @Autowired |
| | | private ISysUserService userService; |
| | | |
| | | /** |
| | | * éè¿ç»å½å°åæ¥è¯¢ä¿¡æ¯ |
| | |
| | | */ |
| | | @Override |
| | | public SysUserOnline loginUserToUserOnline(LoginUser user) { |
| | | if (StringUtils.isNull(user) || StringUtils.isNull(user.getUser())) { |
| | | if (StringUtils.isNull(user)) { |
| | | return null; |
| | | } |
| | | SysUser sysUser = userService.selectUserById(user.getUserId()); |
| | | SysUserOnline sysUserOnline = new SysUserOnline(); |
| | | sysUserOnline.setTokenId(user.getToken()); |
| | | sysUserOnline.setUserName(user.getUsername()); |
| | |
| | | sysUserOnline.setBrowser(user.getBrowser()); |
| | | sysUserOnline.setOs(user.getOs()); |
| | | sysUserOnline.setLoginTime(user.getLoginTime()); |
| | | if (StringUtils.isNotNull(user.getUser().getDept())) { |
| | | sysUserOnline.setDeptName(user.getUser().getDept().getDeptName()); |
| | | if (StringUtils.isNotNull(sysUser.getDept())) { |
| | | sysUserOnline.setDeptName(sysUser.getDept().getDeptName()); |
| | | } |
| | | return sysUserOnline; |
| | | } |
| | |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; |
| | | import com.ruoyi.common.core.page.TableDataInfo; |
| | | import com.ruoyi.common.core.service.UserService; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.PageUtils; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class SysUserServiceImpl extends ServicePlusImpl<SysUserMapper, SysUser, SysUser> implements ISysUserService { |
| | | public class SysUserServiceImpl extends ServicePlusImpl<SysUserMapper, SysUser, SysUser> implements ISysUserService, UserService { |
| | | |
| | | @Autowired |
| | | private SysRoleMapper roleMapper; |
| | |
| | | } |
| | | |
| | | public UserDetails createLoginUser(SysUser user) { |
| | | return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); |
| | | return new LoginUser(user.getUserId(), user.getDeptId(), user.getUserName(), user.getPassword(), permissionService.getMenuPermission(user)); |
| | | } |
| | | } |