mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-08 10:28:00 +00:00
improvement: address feedback
This commit is contained in:
-13
@@ -1,5 +1,4 @@
|
|||||||
import { Modal, ModalContent } from "@app/components/v2";
|
import { Modal, ModalContent } from "@app/components/v2";
|
||||||
import { NoticeBannerV2 } from "@app/components/v2/NoticeBannerV2/NoticeBannerV2";
|
|
||||||
import { ProjectPermissionActions } from "@app/context";
|
import { ProjectPermissionActions } from "@app/context";
|
||||||
import { TAccessApprovalPolicy } from "@app/hooks/api/types";
|
import { TAccessApprovalPolicy } from "@app/hooks/api/types";
|
||||||
import { SpecificPrivilegeSecretForm } from "@app/pages/project/AccessControlPage/components/MembersTab/components/MemberRoleForm/SpecificPrivilegeSection";
|
import { SpecificPrivilegeSecretForm } from "@app/pages/project/AccessControlPage/components/MembersTab/components/MemberRoleForm/SpecificPrivilegeSection";
|
||||||
@@ -8,7 +7,6 @@ export const RequestAccessModal = ({
|
|||||||
isOpen,
|
isOpen,
|
||||||
onOpenChange,
|
onOpenChange,
|
||||||
policies,
|
policies,
|
||||||
shouldShowBanner,
|
|
||||||
...props
|
...props
|
||||||
}: {
|
}: {
|
||||||
isOpen: boolean;
|
isOpen: boolean;
|
||||||
@@ -16,7 +14,6 @@ export const RequestAccessModal = ({
|
|||||||
policies: TAccessApprovalPolicy[];
|
policies: TAccessApprovalPolicy[];
|
||||||
selectedActions?: ProjectPermissionActions[];
|
selectedActions?: ProjectPermissionActions[];
|
||||||
secretPath?: string;
|
secretPath?: string;
|
||||||
shouldShowBanner?: boolean;
|
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<Modal isOpen={isOpen} onOpenChange={onOpenChange}>
|
<Modal isOpen={isOpen} onOpenChange={onOpenChange}>
|
||||||
@@ -25,16 +22,6 @@ export const RequestAccessModal = ({
|
|||||||
title="Request Access"
|
title="Request Access"
|
||||||
subTitle="Request access to any secrets and resources based on the predefined policies."
|
subTitle="Request access to any secrets and resources based on the predefined policies."
|
||||||
>
|
>
|
||||||
{shouldShowBanner && (
|
|
||||||
<NoticeBannerV2
|
|
||||||
className="mb-3"
|
|
||||||
title="You do not have permission to perform this action"
|
|
||||||
>
|
|
||||||
<p className="text-sm text-mineshaft-300">
|
|
||||||
Request access to perform this action in this folder.
|
|
||||||
</p>
|
|
||||||
</NoticeBannerV2>
|
|
||||||
)}
|
|
||||||
<SpecificPrivilegeSecretForm
|
<SpecificPrivilegeSecretForm
|
||||||
onClose={() => onOpenChange(false)}
|
onClose={() => onOpenChange(false)}
|
||||||
policies={policies}
|
policies={policies}
|
||||||
|
|||||||
@@ -652,10 +652,7 @@ const Page = () => {
|
|||||||
size="xs"
|
size="xs"
|
||||||
className="ml-auto"
|
className="ml-auto"
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
handlePopUpOpen("requestAccess", {
|
handlePopUpOpen("requestAccess", [ProjectPermissionActions.Read])
|
||||||
actions: [ProjectPermissionActions.Read],
|
|
||||||
shouldShowBanner: false
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
Request Access
|
Request Access
|
||||||
@@ -679,13 +676,10 @@ const Page = () => {
|
|||||||
size="xs"
|
size="xs"
|
||||||
className="ml-auto"
|
className="ml-auto"
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
handlePopUpOpen("requestAccess", {
|
handlePopUpOpen("requestAccess", [
|
||||||
actions: [
|
...(!canEditSecrets ? [ProjectPermissionActions.Edit] : []),
|
||||||
...(!canEditSecrets ? [ProjectPermissionActions.Edit] : []),
|
...(!canDeleteSecrets ? [ProjectPermissionActions.Delete] : [])
|
||||||
...(!canDeleteSecrets ? [ProjectPermissionActions.Delete] : [])
|
])
|
||||||
],
|
|
||||||
shouldShowBanner: false
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
Request Access
|
Request Access
|
||||||
@@ -788,8 +782,7 @@ const Page = () => {
|
|||||||
onOpenChange={() => {
|
onOpenChange={() => {
|
||||||
handlePopUpClose("requestAccess");
|
handlePopUpClose("requestAccess");
|
||||||
}}
|
}}
|
||||||
selectedActions={popUp.requestAccess.data?.actions}
|
selectedActions={popUp.requestAccess.data}
|
||||||
shouldShowBanner={popUp.requestAccess.data?.shouldShowBanner}
|
|
||||||
secretPath={pathPolicies?.[0]?.secretPath}
|
secretPath={pathPolicies?.[0]?.secretPath}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|||||||
+26
-9
@@ -46,6 +46,7 @@ import {
|
|||||||
DropdownSubMenuTrigger,
|
DropdownSubMenuTrigger,
|
||||||
IconButton,
|
IconButton,
|
||||||
Modal,
|
Modal,
|
||||||
|
ModalClose,
|
||||||
ModalContent,
|
ModalContent,
|
||||||
Tooltip
|
Tooltip
|
||||||
} from "@app/components/v2";
|
} from "@app/components/v2";
|
||||||
@@ -129,10 +130,7 @@ type Props = {
|
|||||||
}[];
|
}[];
|
||||||
}[];
|
}[];
|
||||||
isPITEnabled: boolean;
|
isPITEnabled: boolean;
|
||||||
onRequestAccess: (params: {
|
onRequestAccess: (actions: ProjectPermissionActions[]) => void;
|
||||||
actions: ProjectPermissionActions[];
|
|
||||||
shouldShowBanner: boolean;
|
|
||||||
}) => void;
|
|
||||||
hasPathPolicies: boolean;
|
hasPathPolicies: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -168,7 +166,8 @@ export const ActionBar = ({
|
|||||||
"misc",
|
"misc",
|
||||||
"upgradePlan",
|
"upgradePlan",
|
||||||
"replicateFolder",
|
"replicateFolder",
|
||||||
"confirmUpload"
|
"confirmUpload",
|
||||||
|
"requestAccess"
|
||||||
] as const);
|
] as const);
|
||||||
const isProtectedBranch = Boolean(protectedBranchPolicyName);
|
const isProtectedBranch = Boolean(protectedBranchPolicyName);
|
||||||
const { subscription } = useSubscription();
|
const { subscription } = useSubscription();
|
||||||
@@ -832,10 +831,7 @@ export const ActionBar = ({
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
? openPopUp(PopUpNames.CreateSecretForm)
|
? openPopUp(PopUpNames.CreateSecretForm)
|
||||||
: onRequestAccess({
|
: handlePopUpOpen("requestAccess", [ProjectPermissionActions.Create])
|
||||||
actions: [ProjectPermissionActions.Create],
|
|
||||||
shouldShowBanner: true
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
className="h-10 rounded-r-none"
|
className="h-10 rounded-r-none"
|
||||||
>
|
>
|
||||||
@@ -1202,6 +1198,27 @@ export const ActionBar = ({
|
|||||||
)}
|
)}
|
||||||
</ModalContent>
|
</ModalContent>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
<Modal
|
||||||
|
isOpen={popUp?.requestAccess?.isOpen}
|
||||||
|
onOpenChange={(open) => handlePopUpToggle("requestAccess", open)}
|
||||||
|
>
|
||||||
|
<ModalContent title="Access Restricted">
|
||||||
|
<p className="mb-2 text-bunker-300">You do not have permission to perform this action.</p>
|
||||||
|
<p className="text-bunker-300">Request access to perform this action in this folder.</p>
|
||||||
|
<div className="mt-8 flex items-center gap-4">
|
||||||
|
<ModalClose asChild>
|
||||||
|
<Button onClick={() => onRequestAccess(popUp?.requestAccess.data)}>
|
||||||
|
Request Access
|
||||||
|
</Button>
|
||||||
|
</ModalClose>
|
||||||
|
<ModalClose asChild>
|
||||||
|
<Button variant="plain" colorSchema="secondary">
|
||||||
|
Cancel
|
||||||
|
</Button>
|
||||||
|
</ModalClose>
|
||||||
|
</div>
|
||||||
|
</ModalContent>
|
||||||
|
</Modal>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user