diff --git a/frontend/src/pages/project/RoleDetailsBySlugPage/components/ProjectRoleModifySection.utils.tsx b/frontend/src/pages/project/RoleDetailsBySlugPage/components/ProjectRoleModifySection.utils.tsx index ca89f9e60..a8e5d6fda 100644 --- a/frontend/src/pages/project/RoleDetailsBySlugPage/components/ProjectRoleModifySection.utils.tsx +++ b/frontend/src/pages/project/RoleDetailsBySlugPage/components/ProjectRoleModifySection.utils.tsx @@ -581,6 +581,7 @@ export const rolePermission2Form = (permissions: TProjectPermission[] = []) => { ProjectPermissionSub.IpAllowList, ProjectPermissionSub.CertificateAuthorities, ProjectPermissionSub.PkiAlerts, + ProjectPermissionSub.Identity, ProjectPermissionSub.PkiCollections, ProjectPermissionSub.Tags, ProjectPermissionSub.SecretRotation, @@ -786,6 +787,41 @@ export const rolePermission2Form = (permissions: TProjectPermission[] = []) => { return; } + if (subject === ProjectPermissionSub.Identity) { + const canRead = action.includes(ProjectPermissionIdentityActions.Read); + const canCreate = action.includes(ProjectPermissionIdentityActions.Create); + const canEdit = action.includes(ProjectPermissionIdentityActions.Edit); + const canDelete = action.includes(ProjectPermissionIdentityActions.Delete); + const canGrantPrivileges = action.includes( + ProjectPermissionIdentityActions.GrantPrivileges + ); + const canAssumePrivileges = action.includes( + ProjectPermissionIdentityActions.AssumePrivileges + ); + const canRevokeAuth = action.includes(ProjectPermissionIdentityActions.RevokeAuth); + const canCreateToken = action.includes(ProjectPermissionIdentityActions.CreateToken); + const canGetToken = action.includes(ProjectPermissionIdentityActions.GetToken); + const canDeleteToken = action.includes(ProjectPermissionIdentityActions.DeleteToken); + + // from above statement we are sure it won't be undefined + formVal[subject]!.push({ + [ProjectPermissionIdentityActions.Read]: canRead, + [ProjectPermissionIdentityActions.Create]: canCreate, + [ProjectPermissionIdentityActions.Edit]: canEdit, + [ProjectPermissionIdentityActions.Delete]: canDelete, + [ProjectPermissionIdentityActions.GrantPrivileges]: canGrantPrivileges, + [ProjectPermissionIdentityActions.AssumePrivileges]: canAssumePrivileges, + [ProjectPermissionIdentityActions.RevokeAuth]: canRevokeAuth, + [ProjectPermissionIdentityActions.CreateToken]: canCreateToken, + [ProjectPermissionIdentityActions.GetToken]: canGetToken, + [ProjectPermissionIdentityActions.DeleteToken]: canDeleteToken, + conditions: conditions ? convertCaslConditionToFormOperator(conditions) : [], + inverted + }); + + return; + } + // for other subjects const canRead = action.includes(ProjectPermissionActions.Read); const canEdit = action.includes(ProjectPermissionActions.Edit); @@ -957,38 +993,6 @@ export const rolePermission2Form = (permissions: TProjectPermission[] = []) => { return; } - if (subject === ProjectPermissionSub.Identity) { - const canRead = action.includes(ProjectPermissionIdentityActions.Read); - const canCreate = action.includes(ProjectPermissionIdentityActions.Create); - const canEdit = action.includes(ProjectPermissionIdentityActions.Edit); - const canDelete = action.includes(ProjectPermissionIdentityActions.Delete); - const canGrantPrivileges = action.includes(ProjectPermissionIdentityActions.GrantPrivileges); - const canAssumePrivileges = action.includes( - ProjectPermissionIdentityActions.AssumePrivileges - ); - const canRevokeAuth = action.includes(ProjectPermissionIdentityActions.RevokeAuth); - const canCreateToken = action.includes(ProjectPermissionIdentityActions.CreateToken); - const canGetToken = action.includes(ProjectPermissionIdentityActions.GetToken); - const canDeleteToken = action.includes(ProjectPermissionIdentityActions.DeleteToken); - - if (!formVal[subject]) formVal[subject] = [{ conditions: [] }]; - - // from above statement we are sure it won't be undefined - if (canRead) formVal[subject]![0][ProjectPermissionIdentityActions.Read] = true; - if (canCreate) formVal[subject]![0][ProjectPermissionIdentityActions.Create] = true; - if (canEdit) formVal[subject]![0][ProjectPermissionIdentityActions.Edit] = true; - if (canDelete) formVal[subject]![0][ProjectPermissionIdentityActions.Delete] = true; - if (canGrantPrivileges) - formVal[subject]![0][ProjectPermissionIdentityActions.GrantPrivileges] = true; - if (canAssumePrivileges) - formVal[subject]![0][ProjectPermissionIdentityActions.AssumePrivileges] = true; - if (canRevokeAuth) formVal[subject]![0][ProjectPermissionIdentityActions.RevokeAuth] = true; - if (canCreateToken) formVal[subject]![0][ProjectPermissionIdentityActions.CreateToken] = true; - if (canGetToken) formVal[subject]![0][ProjectPermissionIdentityActions.GetToken] = true; - if (canDeleteToken) formVal[subject]![0][ProjectPermissionIdentityActions.DeleteToken] = true; - return; - } - if (subject === ProjectPermissionSub.Groups) { const canRead = action.includes(ProjectPermissionGroupActions.Read); const canCreate = action.includes(ProjectPermissionGroupActions.Create);