mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
feat: resolved identity privilege removed folder, dynamic secret and secret import permission
This commit is contained in:
@@ -150,7 +150,16 @@ export const ProjectSpecificPrivilegePermissionSchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const SanitizedIdentityPrivilegeSchema = IdentityProjectAdditionalPrivilegeSchema.extend({
|
export const SanitizedIdentityPrivilegeSchema = IdentityProjectAdditionalPrivilegeSchema.extend({
|
||||||
permissions: UnpackedPermissionSchema.array()
|
permissions: UnpackedPermissionSchema.array().transform((permissions) =>
|
||||||
|
permissions.filter(
|
||||||
|
(caslRule) =>
|
||||||
|
![
|
||||||
|
ProjectPermissionSub.DynamicSecrets,
|
||||||
|
ProjectPermissionSub.SecretImports,
|
||||||
|
ProjectPermissionSub.SecretFolders
|
||||||
|
].includes((caslRule?.subject as ProjectPermissionSub) || "")
|
||||||
|
)
|
||||||
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
export const SanitizedRoleSchema = ProjectRolesSchema.extend({
|
export const SanitizedRoleSchema = ProjectRolesSchema.extend({
|
||||||
@@ -158,13 +167,24 @@ export const SanitizedRoleSchema = ProjectRolesSchema.extend({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const SanitizedRoleSchemaV1 = ProjectRolesSchema.extend({
|
export const SanitizedRoleSchemaV1 = ProjectRolesSchema.extend({
|
||||||
permissions: UnpackedPermissionSchema.array().transform((el) =>
|
permissions: UnpackedPermissionSchema.array().transform((caslPermission) =>
|
||||||
el.filter(
|
// first map and remove other actions of folder permission
|
||||||
(i) =>
|
caslPermission
|
||||||
![ProjectPermissionSub.DynamicSecrets, ProjectPermissionSub.SecretImports].includes(
|
.map((caslRule) =>
|
||||||
(i?.subject as ProjectPermissionSub) || ""
|
caslRule.subject === ProjectPermissionSub.SecretFolders
|
||||||
)
|
? {
|
||||||
)
|
...caslRule,
|
||||||
|
action: caslRule.action.filter((caslAction) => caslAction === ProjectPermissionActions.Read)
|
||||||
|
}
|
||||||
|
: caslRule
|
||||||
|
)
|
||||||
|
// now filter out dynamic secret, secret import permission
|
||||||
|
.filter(
|
||||||
|
(caslRule) =>
|
||||||
|
![ProjectPermissionSub.DynamicSecrets, ProjectPermissionSub.SecretImports].includes(
|
||||||
|
(caslRule?.subject as ProjectPermissionSub) || ""
|
||||||
|
) && caslRule.action.length > 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user