diff --git a/eladmin-web/src/views/system/role/index.vue b/eladmin-web/src/views/system/role/index.vue
index 186e366..239a7de 100644
--- a/eladmin-web/src/views/system/role/index.vue
+++ b/eladmin-web/src/views/system/role/index.vue
@@ -63,7 +63,11 @@
-
+
+
+ {{ scope.row.description == null ? '-' : scope.row.description }}
+
+
@@ -152,9 +156,6 @@ export default {
rules: {
name: [
{ required: true, message: '请输入名称', trigger: 'blur' }
- ],
- permission: [
- { required: true, message: '请输入权限', trigger: 'blur' }
]
}
}
diff --git a/eladmin-web/src/views/system/user/index.vue b/eladmin-web/src/views/system/user/index.vue
index dc53d2d..aa867a1 100644
--- a/eladmin-web/src/views/system/user/index.vue
+++ b/eladmin-web/src/views/system/user/index.vue
@@ -72,7 +72,7 @@
-
+
@@ -91,14 +91,14 @@
v-model="form.dept.id"
:options="depts"
:load-options="loadDepts"
- style="width: 178px"
+ style="width: 173px"
placeholder="选择部门"
/>
-
+
{{ item.label }}
-
+
{
+ value = this.jobDatas
+ if (!value || value.length === 0) {
+ callback(new Error('请选择至少一个岗位'))
+ } else {
+ callback()
+ }
+ },
+ trigger: 'change'
+ }
+ ],
+ roleDatas: [
+ {
+ validator: (rule, value, callback) => {
+ value = this.roleDatas
+ if (!value || value.length === 0) {
+ callback(new Error('请选择至少一个角色'))
+ } else {
+ callback()
+ }
+ },
+ trigger: 'change'
+ }
]
}
}
@@ -351,27 +381,9 @@ export default {
},
// 提交前做的操作
[CRUD.HOOK.afterValidateCU](crud) {
- if (!crud.form.dept.id) {
- this.$message({
- message: '部门不能为空',
- type: 'warning'
- })
- return false
- } else if (this.jobDatas.length === 0) {
- this.$message({
- message: '岗位不能为空',
- type: 'warning'
- })
- return false
- } else if (this.roleDatas.length === 0) {
- this.$message({
- message: '角色不能为空',
- type: 'warning'
- })
- return false
- }
crud.form.roles = userRoles
crud.form.jobs = userJobs
+ console.log(this.jobDatas)
return true
},
// 获取左侧部门数据
diff --git a/eladmin/eladmin-common/src/main/java/me/zhengjie/config/AuthorityConfig.java b/eladmin/eladmin-common/src/main/java/me/zhengjie/config/AuthorityConfig.java
index e4daacd..b653859 100644
--- a/eladmin/eladmin-common/src/main/java/me/zhengjie/config/AuthorityConfig.java
+++ b/eladmin/eladmin-common/src/main/java/me/zhengjie/config/AuthorityConfig.java
@@ -28,6 +28,11 @@ import java.util.stream.Collectors;
@Service(value = "el")
public class AuthorityConfig {
+ /**
+ * 判断接口是否有权限
+ * @param permissions 权限
+ * @return /
+ */
public Boolean check(String ...permissions){
// 获取当前用户的所有权限
List elPermissions = SecurityUtils.getCurrentUser().getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList());
diff --git a/eladmin/eladmin-common/src/main/java/me/zhengjie/utils/CacheKey.java b/eladmin/eladmin-common/src/main/java/me/zhengjie/utils/CacheKey.java
index 723f81f..e8fb086 100644
--- a/eladmin/eladmin-common/src/main/java/me/zhengjie/utils/CacheKey.java
+++ b/eladmin/eladmin-common/src/main/java/me/zhengjie/utils/CacheKey.java
@@ -42,6 +42,7 @@ public interface CacheKey {
* 角色授权
*/
String ROLE_AUTH = "role::auth:";
+ String ROLE_USER = "role::user:";
/**
* 角色信息
diff --git a/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserDetailsServiceImpl.java b/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserDetailsServiceImpl.java
index 8b3579e..7d6eb09 100644
--- a/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserDetailsServiceImpl.java
+++ b/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserDetailsServiceImpl.java
@@ -18,6 +18,7 @@ package me.zhengjie.modules.security.service;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.zhengjie.exception.BadRequestException;
+import me.zhengjie.modules.security.service.dto.AuthorityDto;
import me.zhengjie.modules.security.service.dto.JwtUserDto;
import me.zhengjie.modules.system.domain.User;
import me.zhengjie.modules.system.service.DataService;
@@ -25,6 +26,7 @@ import me.zhengjie.modules.system.service.RoleService;
import me.zhengjie.modules.system.service.UserService;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.stereotype.Service;
+import java.util.List;
/**
* @author Zheng Jie
@@ -50,7 +52,10 @@ public class UserDetailsServiceImpl implements UserDetailsService {
if (!user.getEnabled()) {
throw new BadRequestException("账号未激活!");
}
- jwtUserDto = new JwtUserDto(user, dataService.getDeptIds(user), roleService.buildAuthorities(user), user.getPassword());
+ // 获取用户的权限
+ List authorities = roleService.buildPermissions(user);
+ // 初始化JwtUserDto
+ jwtUserDto = new JwtUserDto(user, dataService.getDeptIds(user), authorities, user.getPassword());
// 添加缓存数据
userCacheManager.addUserCache(username, jwtUserDto);
}
diff --git a/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java b/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java
index 606b844..4742bde 100644
--- a/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java
+++ b/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java
@@ -114,7 +114,7 @@ public interface RoleService extends IService {
* @param user 用户信息
* @return 权限信息
*/
- List buildAuthorities(User user);
+ List buildPermissions(User user);
/**
* 验证是否被用户关联
diff --git a/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java b/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java
index aa9a589..e41cd1f 100644
--- a/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java
+++ b/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java
@@ -152,7 +152,13 @@ public class RoleServiceImpl extends ServiceImpl implements Ro
@Override
public List findByUsersId(Long userId) {
- return roleMapper.findByUserId(userId);
+ String key = CacheKey.ROLE_USER + userId;
+ List roles = redisUtils.getList(key, Role.class);
+ if (CollUtil.isEmpty(roles)) {
+ roles = roleMapper.findByUserId(userId);
+ redisUtils.set(key, roles, 1, TimeUnit.DAYS);
+ }
+ return roles;
}
@Override
@@ -168,7 +174,7 @@ public class RoleServiceImpl extends ServiceImpl implements Ro
}
@Override
- public List buildAuthorities(User user) {
+ public List buildPermissions(User user) {
String key = CacheKey.ROLE_AUTH + user.getId();
List authorityDtos = redisUtils.getList(key, AuthorityDto.class);
if (CollUtil.isEmpty(authorityDtos)) {
@@ -228,6 +234,7 @@ public class RoleServiceImpl extends ServiceImpl implements Ro
redisUtils.delByKeys(CacheKey.DATA_USER, userIds);
redisUtils.delByKeys(CacheKey.MENU_USER, userIds);
redisUtils.delByKeys(CacheKey.ROLE_AUTH, userIds);
+ redisUtils.delByKeys(CacheKey.ROLE_USER, userIds);
}
redisUtils.del(CacheKey.ROLE_ID + id);
}
diff --git a/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java b/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java
index f0b3957..90b8ed9 100644
--- a/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java
+++ b/eladmin/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java
@@ -125,6 +125,7 @@ public class UserServiceImpl extends ServiceImpl implements Us
redisUtils.del(CacheKey.DATA_USER + resources.getId());
redisUtils.del(CacheKey.MENU_USER + resources.getId());
redisUtils.del(CacheKey.ROLE_AUTH + resources.getId());
+ redisUtils.del(CacheKey.ROLE_USER + resources.getId());
}
// 修改部门会影响 数据权限
if (!Objects.equals(resources.getDept(),user.getDept())) {