mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 00:27:30 +00:00
improvement: add missing permission checks on frontend
This commit is contained in:
+62
-16
@@ -1,8 +1,10 @@
|
|||||||
|
import { subject } from "@casl/ability";
|
||||||
import { useParams } from "@tanstack/react-router";
|
import { useParams } from "@tanstack/react-router";
|
||||||
import { EllipsisIcon, LockIcon } from "lucide-react";
|
import { EllipsisIcon, LockIcon } from "lucide-react";
|
||||||
|
|
||||||
import { UpgradePlanModal } from "@app/components/license/UpgradePlanModal";
|
import { UpgradePlanModal } from "@app/components/license/UpgradePlanModal";
|
||||||
import { createNotification } from "@app/components/notifications";
|
import { createNotification } from "@app/components/notifications";
|
||||||
|
import { VariablePermissionCan } from "@app/components/permissions";
|
||||||
import { DeleteActionModal, Modal, ModalContent, Tooltip } from "@app/components/v2";
|
import { DeleteActionModal, Modal, ModalContent, Tooltip } from "@app/components/v2";
|
||||||
import {
|
import {
|
||||||
Badge,
|
Badge,
|
||||||
@@ -16,7 +18,13 @@ import {
|
|||||||
UnstableDropdownMenuTrigger,
|
UnstableDropdownMenuTrigger,
|
||||||
UnstableIconButton
|
UnstableIconButton
|
||||||
} from "@app/components/v3";
|
} from "@app/components/v3";
|
||||||
import { useOrganization } from "@app/context";
|
import {
|
||||||
|
OrgPermissionIdentityActions,
|
||||||
|
OrgPermissionSubjects,
|
||||||
|
ProjectPermissionIdentityActions,
|
||||||
|
ProjectPermissionSub,
|
||||||
|
useOrganization
|
||||||
|
} from "@app/context";
|
||||||
import { usePopUp } from "@app/hooks";
|
import { usePopUp } from "@app/hooks";
|
||||||
import {
|
import {
|
||||||
IdentityAuthMethod,
|
IdentityAuthMethod,
|
||||||
@@ -190,23 +198,61 @@ export const Content = ({
|
|||||||
</UnstableIconButton>
|
</UnstableIconButton>
|
||||||
</UnstableDropdownMenuTrigger>
|
</UnstableDropdownMenuTrigger>
|
||||||
<UnstableDropdownMenuContent align="end">
|
<UnstableDropdownMenuContent align="end">
|
||||||
<UnstableDropdownMenuItem
|
<VariablePermissionCan
|
||||||
onClick={(e) => {
|
type={projectId ? "project" : "org"}
|
||||||
e.stopPropagation();
|
I={
|
||||||
handlePopUpOpen("identityAuthMethod", authMethod);
|
projectId
|
||||||
}}
|
? ProjectPermissionIdentityActions.Edit
|
||||||
|
: OrgPermissionIdentityActions.Edit
|
||||||
|
}
|
||||||
|
a={
|
||||||
|
projectId
|
||||||
|
? subject(ProjectPermissionSub.Identity, {
|
||||||
|
identityId
|
||||||
|
})
|
||||||
|
: OrgPermissionSubjects.Identity
|
||||||
|
}
|
||||||
>
|
>
|
||||||
Edit Auth Method
|
{(isAllowed) => (
|
||||||
</UnstableDropdownMenuItem>
|
<UnstableDropdownMenuItem
|
||||||
<UnstableDropdownMenuItem
|
isDisabled={!isAllowed}
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
handlePopUpOpen("revokeAuthMethod", authMethod);
|
handlePopUpOpen("identityAuthMethod", authMethod);
|
||||||
}}
|
}}
|
||||||
variant="danger"
|
>
|
||||||
|
Edit Auth Method
|
||||||
|
</UnstableDropdownMenuItem>
|
||||||
|
)}
|
||||||
|
</VariablePermissionCan>
|
||||||
|
<VariablePermissionCan
|
||||||
|
type={projectId ? "project" : "org"}
|
||||||
|
I={
|
||||||
|
projectId
|
||||||
|
? ProjectPermissionIdentityActions.Delete
|
||||||
|
: OrgPermissionIdentityActions.Delete
|
||||||
|
}
|
||||||
|
a={
|
||||||
|
projectId
|
||||||
|
? subject(ProjectPermissionSub.Identity, {
|
||||||
|
identityId
|
||||||
|
})
|
||||||
|
: OrgPermissionSubjects.Identity
|
||||||
|
}
|
||||||
>
|
>
|
||||||
Remove Auth Method
|
{(isAllowed) => (
|
||||||
</UnstableDropdownMenuItem>
|
<UnstableDropdownMenuItem
|
||||||
|
isDisabled={!isAllowed}
|
||||||
|
onClick={(e) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
handlePopUpOpen("revokeAuthMethod", authMethod);
|
||||||
|
}}
|
||||||
|
variant="danger"
|
||||||
|
>
|
||||||
|
Remove Auth Method
|
||||||
|
</UnstableDropdownMenuItem>
|
||||||
|
)}
|
||||||
|
</VariablePermissionCan>
|
||||||
</UnstableDropdownMenuContent>
|
</UnstableDropdownMenuContent>
|
||||||
</UnstableDropdownMenu>
|
</UnstableDropdownMenu>
|
||||||
</UnstableAccordionTrigger>
|
</UnstableAccordionTrigger>
|
||||||
|
|||||||
Reference in New Issue
Block a user