mirror of
https://github.com/PlayEdu/PlayEdu
synced 2025-12-23 11:09:29 +08:00
超级管理员角色
This commit is contained in:
@@ -3,10 +3,13 @@ package xyz.playedu.api.bus;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import xyz.playedu.api.constant.BackendConstant;
|
||||
import xyz.playedu.api.domain.AdminRole;
|
||||
import xyz.playedu.api.service.AdminPermissionService;
|
||||
import xyz.playedu.api.service.AdminRolePermissionService;
|
||||
import xyz.playedu.api.service.AdminRoleService;
|
||||
import xyz.playedu.api.service.AdminUserRoleService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -22,6 +25,9 @@ public class BackendBus {
|
||||
@Autowired
|
||||
private AdminPermissionService permissionService;
|
||||
|
||||
@Autowired
|
||||
private AdminRoleService adminRoleService;
|
||||
|
||||
public static boolean inUnAuthWhitelist(String uri) {
|
||||
for (int i = 0; i < BackendConstant.UN_AUTH_URI_WHITELIST.length; i++) {
|
||||
if (uri.equals(BackendConstant.UN_AUTH_URI_WHITELIST[i])) {
|
||||
@@ -32,15 +38,26 @@ public class BackendBus {
|
||||
}
|
||||
|
||||
public HashMap<String, Boolean> adminUserPermissions(Integer userId) {
|
||||
HashMap<String, Boolean> permissons = new HashMap<>();
|
||||
// 读取超级管理角色
|
||||
AdminRole superRole = adminRoleService.getBySlug(BackendConstant.SUPER_ADMIN_ROLE);
|
||||
|
||||
HashMap<String, Boolean> permissions = new HashMap<>();
|
||||
List<Integer> roleIds = adminUserRoleService.getRoleIdsByUserId(userId);
|
||||
if (roleIds.size() == 0) {
|
||||
return permissons;
|
||||
return permissions;
|
||||
}
|
||||
List<Integer> permissionIds = rolePermissionService.getPermissionIdsByRoleIds(roleIds);
|
||||
if (permissionIds.size() == 0) {
|
||||
return permissons;
|
||||
|
||||
List<Integer> permissionIds;
|
||||
|
||||
if (roleIds.contains(superRole.getId())) {//包含超级管理角色的话返回全部权限
|
||||
permissionIds = permissionService.allIds();
|
||||
} else {//根据相应的roleIds读取权限
|
||||
permissionIds = rolePermissionService.getPermissionIdsByRoleIds(roleIds);
|
||||
if (permissionIds.size() == 0) {
|
||||
return permissions;
|
||||
}
|
||||
}
|
||||
|
||||
return permissionService.getSlugsByIds(permissionIds);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user