From 64f43e59d014c693d98fc02e1a89dda8c3cf7407 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 31 Oct 2024 01:17:41 +0530 Subject: [PATCH] feat: fixed missing secret folder and import permission in service token --- .../services/permission/project-permission.ts | 54 ++++++++++--------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/backend/src/ee/services/permission/project-permission.ts b/backend/src/ee/services/permission/project-permission.ts index e86dab4da..591cdd343 100644 --- a/backend/src/ee/services/permission/project-permission.ts +++ b/backend/src/ee/services/permission/project-permission.ts @@ -694,31 +694,35 @@ export const buildServiceTokenProjectPermission = ( const canRead = permission.includes("read"); const { can, build } = new AbilityBuilder>(createMongoAbility); scopes.forEach(({ secretPath, environment }) => { - if (canWrite) { - // TODO: @Akhi - // @ts-expect-error type - can(ProjectPermissionActions.Edit, ProjectPermissionSub.Secrets, { - secretPath: { $glob: secretPath }, - environment - }); - // @ts-expect-error type - can(ProjectPermissionActions.Create, ProjectPermissionSub.Secrets, { - secretPath: { $glob: secretPath }, - environment - }); - // @ts-expect-error type - can(ProjectPermissionActions.Delete, ProjectPermissionSub.Secrets, { - secretPath: { $glob: secretPath }, - environment - }); - } - if (canRead) { - // @ts-expect-error type - can(ProjectPermissionActions.Read, ProjectPermissionSub.Secrets, { - secretPath: { $glob: secretPath }, - environment - }); - } + [ProjectPermissionSub.Secrets, ProjectPermissionSub.SecretImports, ProjectPermissionSub.SecretFolders].forEach( + (subject) => { + if (canWrite) { + // TODO: @Akhi + // @ts-expect-error type + can(ProjectPermissionActions.Edit, subject, { + secretPath: { $glob: secretPath }, + environment + }); + // @ts-expect-error type + can(ProjectPermissionActions.Create, subject, { + secretPath: { $glob: secretPath }, + environment + }); + // @ts-expect-error type + can(ProjectPermissionActions.Delete, subject, { + secretPath: { $glob: secretPath }, + environment + }); + } + if (canRead) { + // @ts-expect-error type + can(ProjectPermissionActions.Read, subject, { + secretPath: { $glob: secretPath }, + environment + }); + } + } + ); }); return build({ conditionsMatcher });