Skip to content

Commit 601fd43

Browse files
committed
feat: Permission form. mcp:run action
1 parent ffec931 commit 601fd43

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

src/components/Permissions/ManagePermissions/Forms/PermissionForm.tsx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,20 @@ function PermissionActionDropdown({ isDisabled }: { isDisabled?: boolean }) {
5252
return undefined;
5353
}, [values]);
5454

55-
const availableActions = useMemo(
56-
() => getActionsForResourceType(resourceType),
57-
[resourceType]
58-
);
55+
const availableActions = useMemo(() => {
56+
const actions = getActionsForResourceType(resourceType);
57+
58+
// Add mcp:run when: playbook resource + specific playbook selected + person/team subject
59+
if (
60+
resourceType === "playbook" &&
61+
values.playbook_id &&
62+
(values.subject_type === "person" || values.subject_type === "team")
63+
) {
64+
return [...actions, { value: "mcp:run", label: "mcp:run" }];
65+
}
66+
67+
return actions;
68+
}, [resourceType, values.playbook_id, values.subject_type]);
5969

6070
if (!resourceType) {
6171
return null;

src/components/Permissions/PermissionsView.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { FormikSelectDropdownOption } from "../Forms/Formik/FormikSelectDropdown
1414
import PermissionForm from "./ManagePermissions/Forms/PermissionForm";
1515
import PermissionsTable from "./PermissionsTable";
1616

17+
// Source: github.com/flanksource/duty/rbac/policy/policy.go
1718
export const permissionsActionsList: FormikSelectDropdownOption[] = [
1819
{ value: "read", label: "read" },
1920
{ value: "update", label: "update" },
@@ -23,7 +24,8 @@ export const permissionsActionsList: FormikSelectDropdownOption[] = [
2324
{ value: "create,read,update,delete", label: "create,read,update,delete" },
2425
{ value: "playbook:run", label: "playbook:run" },
2526
{ value: "playbook:approve", label: "playbook:approve" },
26-
{ value: "playbook:*", label: "playbook:*" }
27+
{ value: "playbook:*", label: "playbook:*" },
28+
{ value: "mcp:run", label: "mcp:run" }
2729
];
2830

2931
const commonActions: FormikSelectDropdownOption[] = [

0 commit comments

Comments
 (0)