This commit is contained in:
x032205
2025-05-19 21:42:25 -04:00
parent 8b25f202fe
commit e1dee0678e
8 changed files with 15 additions and 22 deletions
@@ -3,11 +3,7 @@ import picomatch from "picomatch";
import { ActionProjectType } from "@app/db/schemas"; import { ActionProjectType } from "@app/db/schemas";
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service";
import { import { ProjectPermissionApprovalActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
ProjectPermissionActions,
ProjectPermissionApprovalActions,
ProjectPermissionSub
} from "@app/ee/services/permission/project-permission";
import { BadRequestError, NotFoundError } from "@app/lib/errors"; import { BadRequestError, NotFoundError } from "@app/lib/errors";
import { removeTrailingSlash } from "@app/lib/fn"; import { removeTrailingSlash } from "@app/lib/fn";
import { containsGlobPatterns } from "@app/lib/picomatch"; import { containsGlobPatterns } from "@app/lib/picomatch";
@@ -8,6 +8,7 @@ import {
ProjectPermissionCertificateActions, ProjectPermissionCertificateActions,
ProjectPermissionSub ProjectPermissionSub
} from "@app/ee/services/permission/project-permission"; } from "@app/ee/services/permission/project-permission";
import { NotFoundError } from "@app/lib/errors";
import { TCertificateBodyDALFactory } from "@app/services/certificate/certificate-body-dal"; import { TCertificateBodyDALFactory } from "@app/services/certificate/certificate-body-dal";
import { TCertificateDALFactory } from "@app/services/certificate/certificate-dal"; import { TCertificateDALFactory } from "@app/services/certificate/certificate-dal";
import { TCertificateAuthorityCertDALFactory } from "@app/services/certificate-authority/certificate-authority-cert-dal"; import { TCertificateAuthorityCertDALFactory } from "@app/services/certificate-authority/certificate-authority-cert-dal";
@@ -29,7 +30,6 @@ import {
TGetCertPrivateKeyDTO, TGetCertPrivateKeyDTO,
TRevokeCertDTO TRevokeCertDTO
} from "./certificate-types"; } from "./certificate-types";
import { NotFoundError } from "@app/lib/errors";
type TCertificateServiceFactoryDep = { type TCertificateServiceFactoryDep = {
certificateDAL: Pick<TCertificateDALFactory, "findOne" | "deleteById" | "update" | "find">; certificateDAL: Pick<TCertificateDALFactory, "findOne" | "deleteById" | "update" | "find">;
@@ -2,6 +2,7 @@ export { useProjectPermission } from "./ProjectPermissionContext";
export type { ProjectPermissionSet, TProjectPermission } from "./types"; export type { ProjectPermissionSet, TProjectPermission } from "./types";
export { export {
ProjectPermissionActions, ProjectPermissionActions,
ProjectPermissionApprovalActions,
ProjectPermissionCertificateActions, ProjectPermissionCertificateActions,
ProjectPermissionCmekActions, ProjectPermissionCmekActions,
ProjectPermissionDynamicSecretActions, ProjectPermissionDynamicSecretActions,
@@ -11,6 +12,5 @@ export {
ProjectPermissionMemberActions, ProjectPermissionMemberActions,
ProjectPermissionPkiSubscriberActions, ProjectPermissionPkiSubscriberActions,
ProjectPermissionSshHostActions, ProjectPermissionSshHostActions,
ProjectPermissionSub, ProjectPermissionSub
ProjectPermissionApprovalActions
} from "./types"; } from "./types";
+2 -2
View File
@@ -10,6 +10,7 @@ export {
export type { TProjectPermission } from "./ProjectPermissionContext"; export type { TProjectPermission } from "./ProjectPermissionContext";
export { export {
ProjectPermissionActions, ProjectPermissionActions,
ProjectPermissionApprovalActions,
ProjectPermissionCertificateActions, ProjectPermissionCertificateActions,
ProjectPermissionCmekActions, ProjectPermissionCmekActions,
ProjectPermissionDynamicSecretActions, ProjectPermissionDynamicSecretActions,
@@ -20,8 +21,7 @@ export {
ProjectPermissionPkiSubscriberActions, ProjectPermissionPkiSubscriberActions,
ProjectPermissionSshHostActions, ProjectPermissionSshHostActions,
ProjectPermissionSub, ProjectPermissionSub,
useProjectPermission, useProjectPermission
ProjectPermissionApprovalActions
} from "./ProjectPermissionContext"; } from "./ProjectPermissionContext";
export { useServerConfig } from "./ServerConfigContext"; export { useServerConfig } from "./ServerConfigContext";
export { useSubscription } from "./SubscriptionContext"; export { useSubscription } from "./SubscriptionContext";
@@ -29,13 +29,13 @@ import {
Tr Tr
} from "@app/components/v2"; } from "@app/components/v2";
import { import {
ProjectPermissionActions,
ProjectPermissionSub, ProjectPermissionSub,
TProjectPermission, TProjectPermission,
useProjectPermission, useProjectPermission,
useSubscription, useSubscription,
useWorkspace useWorkspace
} from "@app/context"; } from "@app/context";
import { ProjectPermissionApprovalActions } from "@app/context/ProjectPermissionContext/types";
import { usePopUp } from "@app/hooks"; import { usePopUp } from "@app/hooks";
import { import {
useDeleteAccessApprovalPolicy, useDeleteAccessApprovalPolicy,
@@ -50,7 +50,6 @@ import { TAccessApprovalPolicy, Workspace } from "@app/hooks/api/types";
import { AccessPolicyForm } from "./components/AccessPolicyModal"; import { AccessPolicyForm } from "./components/AccessPolicyModal";
import { ApprovalPolicyRow } from "./components/ApprovalPolicyRow"; import { ApprovalPolicyRow } from "./components/ApprovalPolicyRow";
import { ProjectPermissionApprovalActions } from "@app/context/ProjectPermissionContext/types";
interface IProps { interface IProps {
workspaceId: string; workspaceId: string;
@@ -126,8 +126,6 @@ export const AccessPolicyForm = ({
const policyName = policyDetails[watch("policyType")]?.name || "Policy"; const policyName = policyDetails[watch("policyType")]?.name || "Policy";
const approversRequired = watch("approvals") || 1;
const handleCreatePolicy = async ({ const handleCreatePolicy = async ({
environment, environment,
groupApprovers, groupApprovers,
@@ -431,7 +429,7 @@ export const AccessPolicyForm = ({
errorText={error?.message} errorText={error?.message}
> >
<Switch <Switch
id="self-approvals" id="bypass-approvals"
thumbClassName="bg-mineshaft-800" thumbClassName="bg-mineshaft-800"
isChecked={value === EnforcementLevel.Soft} isChecked={value === EnforcementLevel.Soft}
onCheckedChange={(v) => onCheckedChange={(v) =>
@@ -14,7 +14,8 @@ import {
Tr Tr
} from "@app/components/v2"; } from "@app/components/v2";
import { Badge } from "@app/components/v2/Badge"; import { Badge } from "@app/components/v2/Badge";
import { ProjectPermissionActions, ProjectPermissionSub } from "@app/context"; import { ProjectPermissionSub } from "@app/context";
import { ProjectPermissionApprovalActions } from "@app/context/ProjectPermissionContext/types";
import { getMemberLabel } from "@app/helpers/members"; import { getMemberLabel } from "@app/helpers/members";
import { policyDetails } from "@app/helpers/policies"; import { policyDetails } from "@app/helpers/policies";
import { Approver } from "@app/hooks/api/accessApproval/types"; import { Approver } from "@app/hooks/api/accessApproval/types";
@@ -23,7 +24,6 @@ import { EnforcementLevel, PolicyType } from "@app/hooks/api/policies/enums";
import { ApproverType } from "@app/hooks/api/secretApproval/types"; import { ApproverType } from "@app/hooks/api/secretApproval/types";
import { WorkspaceEnv } from "@app/hooks/api/types"; import { WorkspaceEnv } from "@app/hooks/api/types";
import { TWorkspaceUser } from "@app/hooks/api/users/types"; import { TWorkspaceUser } from "@app/hooks/api/users/types";
import { ProjectPermissionApprovalActions } from "@app/context/ProjectPermissionContext/types";
interface IPolicy { interface IPolicy {
id: string; id: string;
@@ -14,15 +14,15 @@ import { twMerge } from "tailwind-merge";
import { createNotification } from "@app/components/notifications"; import { createNotification } from "@app/components/notifications";
import { Button, Checkbox, FormControl, Input } from "@app/components/v2"; import { Button, Checkbox, FormControl, Input } from "@app/components/v2";
import {
usePerformSecretApprovalRequestMerge,
useUpdateSecretApprovalRequestStatus
} from "@app/hooks/api";
import { import {
ProjectPermissionApprovalActions, ProjectPermissionApprovalActions,
ProjectPermissionSub, ProjectPermissionSub,
useProjectPermission useProjectPermission
} from "@app/context"; } from "@app/context";
import {
usePerformSecretApprovalRequestMerge,
useUpdateSecretApprovalRequestStatus
} from "@app/hooks/api";
import { EnforcementLevel } from "@app/hooks/api/policies/enums"; import { EnforcementLevel } from "@app/hooks/api/policies/enums";
type Props = { type Props = {
@@ -53,7 +53,7 @@ export const SecretApprovalRequestAction = ({
const { mutateAsync: updateSecretStatusChange, isPending: isStatusChanging } = const { mutateAsync: updateSecretStatusChange, isPending: isStatusChanging } =
useUpdateSecretApprovalRequestStatus(); useUpdateSecretApprovalRequestStatus();
const { permission } = useProjectPermission(); const { permission } = useProjectPermission();
const canBypassApprovalPermission = permission.can( const canBypassApprovalPermission = permission.can(
ProjectPermissionApprovalActions.AllowChangeBypass, ProjectPermissionApprovalActions.AllowChangeBypass,