mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-08 03:27:38 +00:00
grant permissions
This commit is contained in:
@@ -233,6 +233,11 @@ export enum ProjectPermissionApprovalRequestActions {
|
||||
Create = "create"
|
||||
}
|
||||
|
||||
export enum ProjectPermissionApprovalRequestGrantActions {
|
||||
Read = "read",
|
||||
Revoke = "revoke"
|
||||
}
|
||||
|
||||
export type IdentityManagementSubjectFields = {
|
||||
identityId: string;
|
||||
};
|
||||
@@ -345,7 +350,8 @@ export enum ProjectPermissionSub {
|
||||
PamResources = "pam-resources",
|
||||
PamAccounts = "pam-accounts",
|
||||
PamSessions = "pam-sessions",
|
||||
ApprovalRequests = "approval-requests"
|
||||
ApprovalRequests = "approval-requests",
|
||||
ApprovalRequestGrants = "approval-request-grants"
|
||||
}
|
||||
|
||||
export type SecretSubjectFields = {
|
||||
@@ -584,6 +590,7 @@ export type ProjectPermissionSet =
|
||||
)
|
||||
]
|
||||
| [ProjectPermissionPamSessionActions, ProjectPermissionSub.PamSessions]
|
||||
| [ProjectPermissionApprovalRequestActions, ProjectPermissionSub.ApprovalRequests];
|
||||
| [ProjectPermissionApprovalRequestActions, ProjectPermissionSub.ApprovalRequests]
|
||||
| [ProjectPermissionApprovalRequestGrantActions, ProjectPermissionSub.ApprovalRequestGrants];
|
||||
|
||||
export type TProjectPermission = MongoAbility<ProjectPermissionSet>;
|
||||
|
||||
+31
-2
@@ -16,6 +16,7 @@ import {
|
||||
PermissionConditionOperators,
|
||||
ProjectPermissionAppConnectionActions,
|
||||
ProjectPermissionApprovalRequestActions,
|
||||
ProjectPermissionApprovalRequestGrantActions,
|
||||
ProjectPermissionAuditLogsActions,
|
||||
ProjectPermissionCommitsActions,
|
||||
ProjectPermissionDynamicSecretActions,
|
||||
@@ -264,6 +265,11 @@ const ApprovalRequestPolicyActionSchema = z.object({
|
||||
[ProjectPermissionApprovalRequestActions.Create]: z.boolean().optional()
|
||||
});
|
||||
|
||||
const ApprovalRequestGrantPolicyActionSchema = z.object({
|
||||
[ProjectPermissionApprovalRequestGrantActions.Read]: z.boolean().optional(),
|
||||
[ProjectPermissionApprovalRequestGrantActions.Revoke]: z.boolean().optional()
|
||||
});
|
||||
|
||||
const SecretRollbackPolicyActionSchema = z.object({
|
||||
read: z.boolean().optional(),
|
||||
create: z.boolean().optional()
|
||||
@@ -475,7 +481,11 @@ export const projectRoleFormSchema = z.object({
|
||||
.array()
|
||||
.default([]),
|
||||
[ProjectPermissionSub.PamSessions]: PamSessionPolicyActionSchema.array().default([]),
|
||||
[ProjectPermissionSub.ApprovalRequests]: ApprovalRequestPolicyActionSchema.array().default([])
|
||||
[ProjectPermissionSub.ApprovalRequests]: ApprovalRequestPolicyActionSchema.array().default(
|
||||
[]
|
||||
),
|
||||
[ProjectPermissionSub.ApprovalRequestGrants]:
|
||||
ApprovalRequestGrantPolicyActionSchema.array().default([])
|
||||
})
|
||||
.partial()
|
||||
.optional()
|
||||
@@ -1306,6 +1316,17 @@ export const rolePermission2Form = (permissions: TProjectPermission[] = []) => {
|
||||
if (canRead) formVal[subject]![0][ProjectPermissionApprovalRequestActions.Read] = true;
|
||||
if (canCreate) formVal[subject]![0][ProjectPermissionApprovalRequestActions.Create] = true;
|
||||
}
|
||||
|
||||
if (subject === ProjectPermissionSub.ApprovalRequestGrants) {
|
||||
const canRead = action.includes(ProjectPermissionApprovalRequestGrantActions.Read);
|
||||
const canRevoke = action.includes(ProjectPermissionApprovalRequestGrantActions.Revoke);
|
||||
|
||||
if (!formVal[subject]) formVal[subject] = [{}];
|
||||
|
||||
if (canRead) formVal[subject]![0][ProjectPermissionApprovalRequestGrantActions.Read] = true;
|
||||
if (canRevoke)
|
||||
formVal[subject]![0][ProjectPermissionApprovalRequestGrantActions.Revoke] = true;
|
||||
}
|
||||
});
|
||||
|
||||
return formVal;
|
||||
@@ -1982,6 +2003,13 @@ export const PROJECT_PERMISSION_OBJECT: TProjectPermissionObject = {
|
||||
{ label: "Read", value: ProjectPermissionApprovalRequestActions.Read },
|
||||
{ label: "Create", value: ProjectPermissionApprovalRequestActions.Create }
|
||||
]
|
||||
},
|
||||
[ProjectPermissionSub.ApprovalRequestGrants]: {
|
||||
title: "Approval Request Grants",
|
||||
actions: [
|
||||
{ label: "Read", value: ProjectPermissionApprovalRequestGrantActions.Read },
|
||||
{ label: "Revoke", value: ProjectPermissionApprovalRequestGrantActions.Revoke }
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1993,7 +2021,8 @@ const SharedPermissionSubjects = {
|
||||
[ProjectPermissionSub.Project]: true,
|
||||
[ProjectPermissionSub.Role]: true,
|
||||
[ProjectPermissionSub.Settings]: true,
|
||||
[ProjectPermissionSub.ApprovalRequests]: true
|
||||
[ProjectPermissionSub.ApprovalRequests]: true,
|
||||
[ProjectPermissionSub.ApprovalRequestGrants]: true
|
||||
};
|
||||
|
||||
const SecretsManagerPermissionSubjects = (enabled = false) => ({
|
||||
|
||||
Reference in New Issue
Block a user