Skip to content

Commit 0b89931

Browse files
feat(agent): Integrate user group tool permissions into permissions view
Add uai-user-group-tool-permissions component to agent permissions workspace view with change handler for managing user group-specific permission overrides. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 8c0317a commit 0b89931

4 files changed

Lines changed: 34 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export type { UaiAgentScopePickerElement } from "./agent-scope-picker/agent-scope-picker.element.js";
2+
export { UaiUserGroupToolPermissionsElement } from "./user-group-tool-permissions/user-group-tool-permissions.element.js";

Umbraco.AI.Agent/src/Umbraco.AI.Agent.Web.StaticAssets/Client/src/agent/manifests.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { agentCollectionManifests } from "./collection/manifests.js";
22
import { agentEntityActionManifests } from "./entity-actions/manifests.js";
33
import { agentMenuManifests } from "./menu/manifests.js";
4+
import { agentModalManifests } from "./modals/manifests.js";
45
import { agentRepositoryManifests } from "./repository/manifests.js";
56
import { agentWorkspaceManifests } from "./workspace/manifests.js";
67

@@ -10,6 +11,7 @@ export const agentManifests = [
1011
...agentCollectionManifests,
1112
...agentEntityActionManifests,
1213
...agentMenuManifests,
14+
...agentModalManifests,
1315
...agentRepositoryManifests,
1416
...agentWorkspaceManifests,
1517
];
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import type { ManifestModal } from "@umbraco-cms/backoffice/extension-registry";
2+
3+
const modals: Array<ManifestModal> = [
4+
{
5+
type: "modal",
6+
alias: "Uai.Modal.ToolPermissionsOverrideEditor",
7+
name: "Tool Permissions Override Editor Modal",
8+
js: () => import("./tool-permissions-override-editor/tool-permissions-override-editor-modal.element.js"),
9+
},
10+
];
11+
12+
export const agentModalManifests = [...modals];

Umbraco.AI.Agent/src/Umbraco.AI.Agent.Web.StaticAssets/Client/src/agent/workspace/agent/views/agent-permissions-workspace-view.element.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,17 @@ export class UaiAgentPermissionsWorkspaceViewElement extends UmbLitElement {
6969
);
7070
}
7171

72+
#onUserGroupPermissionsChange(event: UmbChangeEvent) {
73+
event.stopPropagation();
74+
const component = event.target as any;
75+
this.#workspaceContext?.handleCommand(
76+
new UaiPartialUpdateCommand<UaiAgentDetailModel>(
77+
{ userGroupPermissions: component.value },
78+
"userGroupPermissions"
79+
)
80+
);
81+
}
82+
7283
render() {
7384
if (!this._model) return html`<uui-loader></uui-loader>`;
7485

@@ -96,6 +107,14 @@ export class UaiAgentPermissionsWorkspaceViewElement extends UmbLitElement {
96107
@change=${this.#onAllowedToolIdsChange}
97108
></uai-tool-picker>
98109
</umb-property-layout>
110+
<uai-user-group-tool-permissions
111+
.value=${this._model.userGroupPermissions}
112+
.agentDefaults=${{
113+
allowedToolIds: this._model.allowedToolIds,
114+
allowedToolScopeIds: this._model.allowedToolScopeIds
115+
}}
116+
@change=${this.#onUserGroupPermissionsChange}
117+
></uai-user-group-tool-permissions>
99118
</uui-box>
100119
`;
101120
}

0 commit comments

Comments
 (0)