Skip to content

Commit ebcd153

Browse files
Merge pull request #4581 from Infisical/ENG-3748
Secret Approval Request: check if user is a reviewer to trigger hasSecretReadValueOrDescribePermission
2 parents f5d7ba2 + aedf6c0 commit ebcd153

File tree

1 file changed

+9
-39
lines changed

1 file changed

+9
-39
lines changed

backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts

Lines changed: 9 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -285,13 +285,10 @@ export const secretApprovalRequestServiceFactory = ({
285285
) {
286286
throw new ForbiddenRequestError({ message: "User has insufficient privileges" });
287287
}
288-
const getHasSecretReadAccess = (
289-
shouldCheckSecretPermission: boolean | null | undefined,
290-
environment: string,
291-
tags: { slug: string }[],
292-
secretPath?: string
293-
) => {
294-
if (shouldCheckSecretPermission) {
288+
const getHasSecretReadAccess = (environment: string, tags: { slug: string }[], secretPath?: string) => {
289+
const isReviewer = policy.approvers.some(({ userId }) => userId === actorId);
290+
291+
if (!isReviewer) {
295292
const canRead = hasSecretReadValueOrDescribePermission(permission, ProjectPermissionSecretActions.ReadValue, {
296293
environment,
297294
secretPath: secretPath || "/",
@@ -322,18 +319,8 @@ export const secretApprovalRequestServiceFactory = ({
322319
version: el.version,
323320
secretMetadata: el.secretMetadata as ResourceMetadataDTO,
324321
isRotatedSecret: el.secret?.isRotatedSecret ?? false,
325-
secretValueHidden: !getHasSecretReadAccess(
326-
secretApprovalRequest.policy.shouldCheckSecretPermission,
327-
secretApprovalRequest.environment,
328-
el.tags,
329-
secretPath?.[0]?.path
330-
),
331-
secretValue: !getHasSecretReadAccess(
332-
secretApprovalRequest.policy.shouldCheckSecretPermission,
333-
secretApprovalRequest.environment,
334-
el.tags,
335-
secretPath?.[0]?.path
336-
)
322+
secretValueHidden: !getHasSecretReadAccess(secretApprovalRequest.environment, el.tags, secretPath?.[0]?.path),
323+
secretValue: !getHasSecretReadAccess(secretApprovalRequest.environment, el.tags, secretPath?.[0]?.path)
337324
? INFISICAL_SECRET_VALUE_HIDDEN_MASK
338325
: el.secret && el.secret.isRotatedSecret
339326
? undefined
@@ -354,17 +341,11 @@ export const secretApprovalRequestServiceFactory = ({
354341
id: el.secret.id,
355342
version: el.secret.version,
356343
secretValueHidden: !getHasSecretReadAccess(
357-
secretApprovalRequest.policy.shouldCheckSecretPermission,
358344
secretApprovalRequest.environment,
359345
el.tags,
360346
secretPath?.[0]?.path
361347
),
362-
secretValue: !getHasSecretReadAccess(
363-
secretApprovalRequest.policy.shouldCheckSecretPermission,
364-
secretApprovalRequest.environment,
365-
el.tags,
366-
secretPath?.[0]?.path
367-
)
348+
secretValue: !getHasSecretReadAccess(secretApprovalRequest.environment, el.tags, secretPath?.[0]?.path)
368349
? INFISICAL_SECRET_VALUE_HIDDEN_MASK
369350
: el.secret.encryptedValue
370351
? secretManagerDecryptor({ cipherTextBlob: el.secret.encryptedValue }).toString()
@@ -380,17 +361,11 @@ export const secretApprovalRequestServiceFactory = ({
380361
id: el.secretVersion.id,
381362
version: el.secretVersion.version,
382363
secretValueHidden: !getHasSecretReadAccess(
383-
secretApprovalRequest.policy.shouldCheckSecretPermission,
384364
secretApprovalRequest.environment,
385365
el.tags,
386366
secretPath?.[0]?.path
387367
),
388-
secretValue: !getHasSecretReadAccess(
389-
secretApprovalRequest.policy.shouldCheckSecretPermission,
390-
secretApprovalRequest.environment,
391-
el.tags,
392-
secretPath?.[0]?.path
393-
)
368+
secretValue: !getHasSecretReadAccess(secretApprovalRequest.environment, el.tags, secretPath?.[0]?.path)
394369
? INFISICAL_SECRET_VALUE_HIDDEN_MASK
395370
: el.secretVersion.encryptedValue
396371
? secretManagerDecryptor({ cipherTextBlob: el.secretVersion.encryptedValue }).toString()
@@ -409,12 +384,7 @@ export const secretApprovalRequestServiceFactory = ({
409384
const encryptedSecrets = await secretApprovalRequestSecretDAL.findByRequestId(secretApprovalRequest.id);
410385
secrets = encryptedSecrets.map((el) => ({
411386
...el,
412-
secretValueHidden: !getHasSecretReadAccess(
413-
secretApprovalRequest.policy.shouldCheckSecretPermission,
414-
secretApprovalRequest.environment,
415-
el.tags,
416-
secretPath?.[0]?.path
417-
),
387+
secretValueHidden: !getHasSecretReadAccess(secretApprovalRequest.environment, el.tags, secretPath?.[0]?.path),
418388
...decryptSecretWithBot(el, botKey),
419389
secret: el.secret
420390
? {

0 commit comments

Comments
 (0)