Merge pull request #2665 from akhilmhdh/fix/resolve-service-token

feat: fixed missing secret folder and import permission in service token
This commit is contained in:
Maidul Islam
2024-10-30 15:50:59 -04:00
committed by GitHub
@@ -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 });