feat: fixed missing secret folder and import permission in service token

This commit is contained in:
=
2024-10-31 01:17:41 +05:30
parent ce0bc191d8
commit 64f43e59d0
@@ -694,31 +694,35 @@ export const buildServiceTokenProjectPermission = (
const canRead = permission.includes("read"); const canRead = permission.includes("read");
const { can, build } = new AbilityBuilder<MongoAbility<ProjectPermissionSet>>(createMongoAbility); const { can, build } = new AbilityBuilder<MongoAbility<ProjectPermissionSet>>(createMongoAbility);
scopes.forEach(({ secretPath, environment }) => { scopes.forEach(({ secretPath, environment }) => {
[ProjectPermissionSub.Secrets, ProjectPermissionSub.SecretImports, ProjectPermissionSub.SecretFolders].forEach(
(subject) => {
if (canWrite) { if (canWrite) {
// TODO: @Akhi // TODO: @Akhi
// @ts-expect-error type // @ts-expect-error type
can(ProjectPermissionActions.Edit, ProjectPermissionSub.Secrets, { can(ProjectPermissionActions.Edit, subject, {
secretPath: { $glob: secretPath }, secretPath: { $glob: secretPath },
environment environment
}); });
// @ts-expect-error type // @ts-expect-error type
can(ProjectPermissionActions.Create, ProjectPermissionSub.Secrets, { can(ProjectPermissionActions.Create, subject, {
secretPath: { $glob: secretPath }, secretPath: { $glob: secretPath },
environment environment
}); });
// @ts-expect-error type // @ts-expect-error type
can(ProjectPermissionActions.Delete, ProjectPermissionSub.Secrets, { can(ProjectPermissionActions.Delete, subject, {
secretPath: { $glob: secretPath }, secretPath: { $glob: secretPath },
environment environment
}); });
} }
if (canRead) { if (canRead) {
// @ts-expect-error type // @ts-expect-error type
can(ProjectPermissionActions.Read, ProjectPermissionSub.Secrets, { can(ProjectPermissionActions.Read, subject, {
secretPath: { $glob: secretPath }, secretPath: { $glob: secretPath },
environment environment
}); });
} }
}
);
}); });
return build({ conditionsMatcher }); return build({ conditionsMatcher });