fix: correct how identity permissions are parsed on form load

This commit is contained in:
Scott Wilson
2025-10-31 09:26:06 -07:00
committed by =
parent 6225df5f0b
commit eead066009

View File

@@ -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);