ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
@@ -7,7 +7,6 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.service.ISysConfigService; @@ -82,7 +81,7 @@ { return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); } config.setCreateBy(SecurityUtils.getUsername()); config.setCreateBy(getUsername()); return toAjax(configService.insertConfig(config)); } @@ -98,7 +97,7 @@ { return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); } config.setUpdateBy(SecurityUtils.getUsername()); config.setUpdateBy(getUsername()); return toAjax(configService.updateConfig(config)); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
@@ -7,7 +7,6 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysDeptService; import org.springframework.beans.factory.annotation.Autowired; @@ -109,7 +108,7 @@ { return AjaxResult.error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } dept.setCreateBy(SecurityUtils.getUsername()); dept.setCreateBy(getUsername()); return toAjax(deptService.insertDept(dept)); } @@ -134,7 +133,7 @@ { return AjaxResult.error("该部门包含未停用的子部门!"); } dept.setUpdateBy(SecurityUtils.getUsername()); dept.setUpdateBy(getUsername()); return toAjax(deptService.updateDept(dept)); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
@@ -6,7 +6,6 @@ import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictDataService; @@ -83,7 +82,7 @@ @PostMapping public AjaxResult add(@Validated @RequestBody SysDictData dict) { dict.setCreateBy(SecurityUtils.getUsername()); dict.setCreateBy(getUsername()); return toAjax(dictDataService.insertDictData(dict)); } @@ -95,7 +94,7 @@ @PutMapping public AjaxResult edit(@Validated @RequestBody SysDictData dict) { dict.setUpdateBy(SecurityUtils.getUsername()); dict.setUpdateBy(getUsername()); return toAjax(dictDataService.updateDictData(dict)); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
@@ -7,7 +7,6 @@ import com.ruoyi.common.core.domain.entity.SysDictType; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDictTypeService; import org.springframework.beans.factory.annotation.Autowired; @@ -68,7 +67,7 @@ { return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); } dict.setCreateBy(SecurityUtils.getUsername()); dict.setCreateBy(getUsername()); return toAjax(dictTypeService.insertDictType(dict)); } @@ -84,7 +83,7 @@ { return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); } dict.setUpdateBy(SecurityUtils.getUsername()); dict.setUpdateBy(getUsername()); return toAjax(dictTypeService.updateDictType(dict)); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -6,6 +6,7 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginBody; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.framework.web.service.SysLoginService; import com.ruoyi.framework.web.service.SysPermissionService; @@ -88,10 +89,8 @@ @GetMapping("getRouters") public AjaxResult getRouters() { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); // 用户信息 SysUser user = loginUser.getUser(); List<SysMenu> menus = menuService.selectMenuTreeByUserId(user.getUserId()); Long userId = SecurityUtils.getUserId(); List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId); return AjaxResult.success(menuService.buildMenus(menus)); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
@@ -5,12 +5,8 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.service.ISysMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -33,9 +29,6 @@ @Autowired private ISysMenuService menuService; @Autowired private TokenService tokenService; /** * 获取菜单列表 */ @@ -43,9 +36,7 @@ @GetMapping("/list") public AjaxResult list(SysMenu menu) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); Long userId = loginUser.getUser().getUserId(); List<SysMenu> menus = menuService.selectMenuList(menu, userId); List<SysMenu> menus = menuService.selectMenuList(menu, getUserId()); return AjaxResult.success(menus); } @@ -65,9 +56,7 @@ @GetMapping("/treeselect") public AjaxResult treeselect(SysMenu menu) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); Long userId = loginUser.getUser().getUserId(); List<SysMenu> menus = menuService.selectMenuList(menu, userId); List<SysMenu> menus = menuService.selectMenuList(menu, getUserId()); return AjaxResult.success(menuService.buildMenuTreeSelect(menus)); } @@ -77,8 +66,7 @@ @GetMapping(value = "/roleMenuTreeselect/{roleId}") public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); List<SysMenu> menus = menuService.selectMenuList(loginUser.getUser().getUserId()); List<SysMenu> menus = menuService.selectMenuList(getUserId()); Map<String,Object> ajax = new HashMap<>(); ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); ajax.put("menus", menuService.buildMenuTreeSelect(menus)); @@ -101,7 +89,7 @@ { return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); } menu.setCreateBy(SecurityUtils.getUsername()); menu.setCreateBy(getUsername()); return toAjax(menuService.insertMenu(menu)); } @@ -125,7 +113,7 @@ { return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); } menu.setUpdateBy(SecurityUtils.getUsername()); menu.setUpdateBy(getUsername()); return toAjax(menuService.updateMenu(menu)); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
@@ -17,13 +17,12 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.domain.SysNotice; import com.ruoyi.system.service.ISysNoticeService; /** * 公告 信息操作处理 * * * @author ruoyi */ @RestController @@ -61,7 +60,7 @@ @PostMapping public AjaxResult add(@Validated @RequestBody SysNotice notice) { notice.setCreateBy(SecurityUtils.getUsername()); notice.setCreateBy(getUsername()); return toAjax(noticeService.insertNotice(notice)); } @@ -73,7 +72,7 @@ @PutMapping public AjaxResult edit(@Validated @RequestBody SysNotice notice) { notice.setUpdateBy(SecurityUtils.getUsername()); notice.setUpdateBy(getUsername()); return toAjax(noticeService.updateNotice(notice)); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
@@ -6,7 +6,6 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.service.ISysPostService; @@ -75,7 +74,7 @@ { return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } post.setCreateBy(SecurityUtils.getUsername()); post.setCreateBy(getUsername()); return toAjax(postService.insertPost(post)); } @@ -95,7 +94,7 @@ { return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } post.setUpdateBy(SecurityUtils.getUsername()); post.setUpdateBy(getUsername()); return toAjax(postService.updatePost(post)); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
@@ -9,7 +9,6 @@ import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; @@ -89,7 +88,7 @@ { return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); } role.setCreateBy(SecurityUtils.getUsername()); role.setCreateBy(getUsername()); return toAjax(roleService.insertRole(role)); } @@ -111,7 +110,7 @@ { return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); } role.setUpdateBy(SecurityUtils.getUsername()); role.setUpdateBy(getUsername()); if (roleService.updateRole(role) > 0) { @@ -149,7 +148,7 @@ public AjaxResult changeStatus(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); role.setUpdateBy(SecurityUtils.getUsername()); role.setUpdateBy(getUsername()); return toAjax(roleService.updateRoleStatus(role)); } ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -145,7 +145,7 @@ { return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setCreateBy(SecurityUtils.getUsername()); user.setCreateBy(getUsername()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); return toAjax(userService.insertUser(user)); } @@ -169,7 +169,7 @@ { return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setUpdateBy(SecurityUtils.getUsername()); user.setUpdateBy(getUsername()); return toAjax(userService.updateUser(user)); } @@ -181,6 +181,10 @@ @DeleteMapping("/{userIds}") public AjaxResult remove(@PathVariable Long[] userIds) { if (ArrayUtil.contains(userIds, getUserId())) { return error("当前用户不能删除"); } return toAjax(userService.deleteUserByIds(userIds)); } @@ -194,7 +198,7 @@ { userService.checkUserAllowed(user); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setUpdateBy(SecurityUtils.getUsername()); user.setUpdateBy(getUsername()); return toAjax(userService.resetPwd(user)); } @@ -207,7 +211,7 @@ public AjaxResult changeStatus(@RequestBody SysUser user) { userService.checkUserAllowed(user); user.setUpdateBy(SecurityUtils.getUsername()); user.setUpdateBy(getUsername()); return toAjax(userService.updateUserStatus(user)); } ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
@@ -1,6 +1,8 @@ package com.ruoyi.common.core.controller; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -75,4 +77,36 @@ { return StringUtils.format("redirect:{}", url); } /** * 获取用户缓存信息 */ public LoginUser getLoginUser() { return SecurityUtils.getLoginUser(); } /** * 获取登录用户id */ public Long getUserId() { return getLoginUser().getUserId(); } /** * 获取登录部门id */ public Long getDeptId() { return getLoginUser().getDeptId(); } /** * 获取登录用户名 */ public String getUsername() { return getLoginUser().getUsername(); } } ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
@@ -24,6 +24,16 @@ private static final long serialVersionUID = 1L; /** * 用户ID */ private Long userId; /** * 部门ID */ private Long deptId; /** * 用户唯一标识 */ private String token; @@ -74,6 +84,14 @@ this.permissions = permissions; } public LoginUser(Long userId, Long deptId, SysUser user, Set<String> permissions) { this.userId = userId; this.deptId = deptId; this.user = user; this.permissions = permissions; } @JsonIgnore @Override public String getPassword() @@ -81,7 +99,6 @@ return user.getPassword(); } @JsonIgnore @Override public String getUsername() { @@ -134,7 +151,6 @@ return true; } @JsonIgnore @Override public Collection<? extends GrantedAuthority> getAuthorities() { ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java
@@ -9,11 +9,41 @@ /** * 安全服务工具类 * * * @author ruoyi */ public class SecurityUtils { /** * 用户ID **/ public static Long getUserId() { try { return getLoginUser().getUserId(); } catch (Exception e) { throw new CustomException("获取用户ID异常", HttpStatus.UNAUTHORIZED); } } /** * 获取部门ID **/ public static Long getDeptId() { try { return getLoginUser().getDeptId(); } catch (Exception e) { throw new CustomException("获取部门ID异常", HttpStatus.UNAUTHORIZED); } } /** * 获取用户账户 **/ @@ -79,7 +109,7 @@ /** * 是否为管理员 * * * @param userId 用户ID * @return 结果 */ ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
@@ -1,11 +1,5 @@ package com.ruoyi.framework.web.service; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.UserStatus; import com.ruoyi.common.exception.BaseException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysUserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -13,6 +7,12 @@ import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.UserStatus; import com.ruoyi.common.exception.BaseException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysUserService; /** * 用户验证处理 @@ -55,6 +55,6 @@ public UserDetails createLoginUser(SysUser user) { return new LoginUser(user, permissionService.getMenuPermission(user)); return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); } } ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java
@@ -7,7 +7,6 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.job.TaskException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.quartz.domain.SysJob; @@ -85,7 +84,7 @@ { return error("新增任务'" + job.getJobName() + "'失败,目标字符串不允许'http(s)//'调用"); } job.setCreateBy(SecurityUtils.getUsername()); job.setCreateBy(getUsername()); return toAjax(jobService.insertJob(job)); } @@ -109,7 +108,7 @@ { return error("修改任务'" + job.getJobName() + "'失败,目标字符串不允许'http(s)//'调用"); } job.setUpdateBy(SecurityUtils.getUsername()); job.setUpdateBy(getUsername()); return toAjax(jobService.updateJob(job)); } ruoyi-ui/package.json
@@ -41,7 +41,7 @@ "clipboard": "2.0.6", "core-js": "3.8.1", "echarts": "4.9.0", "element-ui": "2.15.3", "element-ui": "2.15.5", "file-saver": "2.0.4", "fuse.js": "6.4.3", "highlight.js": "9.18.5", ruoyi-ui/src/views/system/menu/index.vue
@@ -88,7 +88,7 @@ </el-table> <!-- 添加或修改菜单对话框 --> <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="680px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-row> <el-col :span="24">