瀏覽代碼

软件权限一览表(页面资源权限)-fixbug2

ZhuJiaHao 5 月之前
父節點
當前提交
cc666b7d9d

+ 13 - 1
ibps-model-root/modules/org-model/src/main/java/com/lc/ibps/org/party/persistence/entity/PagePermissionDTO.java

@@ -64,7 +64,7 @@ public class PagePermissionDTO {
     }
 
     /**
-     * 新增:获取当前页面有权限的角色列表
+     * 获取当前页面有权限的角色列表
      * @return 当前页面有权限的角色名称列表 eg:["角色b", "角色c", "角色d"]
      */
     public List<String> getRolesWithPermission() {
@@ -77,4 +77,16 @@ public class PagePermissionDTO {
                 .map(Map.Entry::getKey)
                 .collect(Collectors.toList());
     }
+
+    /**
+     * 获取所有角色列表
+     * @return 所有角色名称列表
+     */
+    public List<String> getAllRoles() {
+        if (rolePermissions == null || rolePermissions.isEmpty()) {
+            return new ArrayList<>();
+        }
+
+        return new ArrayList<>(rolePermissions.keySet());
+    }
 }

+ 7 - 3
ibps-provider-root/modules/provider-platform-default/src/main/java/com/lc/ibps/platform/service/PartyRoleProviderService.java

@@ -260,14 +260,18 @@ public class PartyRoleProviderService {
             return;
         }
 
-        //遍历每个页面的权限设置
+        //遍历每个页面的权限设置,把每个页面对应的角色权限进行更新(传入的角色删除,再把有权限(为true)的角色插入)
         for(PagePermissionDTO pagePermissionDTO:permissionSaveDTO.getPermissions()){
             String pageId = pagePermissionDTO.getPageId();
+            //获取该页面所有的角色列表
+            List<String> allRoleNameList = pagePermissionDTO.getAllRoles();
+            for(String roleName:allRoleNameList){
+                //删除该页面对应的角色权限
+                partyRoleProviderDao.deleteRoleResourcesByResourcesId(pageId,roleName);
+            }
             //获取该页面有权限的角色列表
             List<String> roleNameList = pagePermissionDTO.getRolesWithPermission();
             for(String roleName:roleNameList){
-                //删除该页面对应的所有角色权限
-                partyRoleProviderDao.deleteRoleResourcesByResourcesId(pageId,roleName);
                 //插入资源和角色的对应关系
                 partyRoleProviderDao.insertRoleResources(roleName, pageId);
             }