From 65c29bf0bb3bdf50fa5bcb7fa81a869bd184e03f Mon Sep 17 00:00:00 2001 From: Omkar Kesarkhane <127078473+omkarK06@users.noreply.github.com> Date: Tue, 19 Aug 2025 11:21:17 +0530 Subject: [PATCH] fix: UI getting blocked when rendering roles of deleted entities (#8038) ### **PR Type** Bug fix ___ ### **Description** Prevent null resource access in entity fetch Preserve and gate 'org' permissions correctly Minor formatting cleanup in template Ensure permissions list always updated safely ___ ### Diagram Walkthrough ```mermaid flowchart LR UI["EditRole.vue UI"] -- triggers --> getResourceEntities["getResourceEntities(resource)"] getResourceEntities -- "guard: if !resource return" --> SafeReturn["Resolve(true)"] setPermission["setPermission(...)"] -- "modify + checks" --> permissionsState["permissionsState.permissions"] setPermission -- "skip non-meta org 'org' resource" --> GuardedPush["Conditional push"] ```

File Walkthrough

Relevant files
Bug fix
EditRole.vue
Guard missing resources and refine permission push             

web/src/components/iam/roles/EditRole.vue
  • Add null-check guard in getResourceEntities
  • Keep 'org' permission push with clearer formatting
  • Ensure conditional skip for non-meta org remains
  • Minor template formatting adjustment
+11/-7   
___ --- web/src/components/iam/roles/EditRole.vue | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/web/src/components/iam/roles/EditRole.vue b/web/src/components/iam/roles/EditRole.vue index 545d8cc17c..fd1ad9e2ed 100644 --- a/web/src/components/iam/roles/EditRole.vue +++ b/web/src/components/iam/roles/EditRole.vue @@ -191,9 +191,7 @@ along with this program. If not, see . -
+
) => { } modifyResourcePermissions(resourcePermission); - if (resourcePermission.name === 'org' && store.state.selectedOrganization.identifier !== store.state.zoConfig.meta_org) { - return; // Skip adding 'org' resource if the organization is not _meta - } - permissionsState.permissions.push(resourcePermission as Resource); + if ( + resourcePermission.name === "org" && + store.state.selectedOrganization.identifier !== + store.state.zoConfig.meta_org + ) { + return; // Skip adding 'org' resource if the organization is not _meta + } + permissionsState.permissions.push(resourcePermission as Resource); }; const setDefaultPermissions = () => { @@ -1337,6 +1339,8 @@ const getPermissionHash = ( * @param typeOf - Type to assign the new entities that we get from the server */ const getResourceEntities = (resource: Resource | Entity) => { + if (!resource) return Promise.resolve(true); + const listEntitiesFnMap: { [key: string]: (resource: Resource | Entity) => Promise; } = {