@matter-server/dashboard 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/dialogs/acl/acl-actions.d.ts +12 -0
- package/dist/esm/components/dialogs/acl/acl-actions.d.ts.map +1 -0
- package/dist/esm/components/dialogs/acl/acl-actions.js +56 -0
- package/dist/esm/components/dialogs/acl/acl-actions.js.map +6 -0
- package/dist/esm/components/dialogs/acl/model.d.ts +2 -2
- package/dist/esm/components/dialogs/acl/model.d.ts.map +1 -1
- package/dist/esm/components/dialogs/acl/model.js +11 -15
- package/dist/esm/components/dialogs/acl/model.js.map +1 -1
- package/dist/esm/components/dialogs/acl/node-acl-add-dialog.d.ts +43 -0
- package/dist/esm/components/dialogs/acl/node-acl-add-dialog.d.ts.map +1 -0
- package/dist/esm/components/dialogs/acl/node-acl-add-dialog.js +353 -0
- package/dist/esm/components/dialogs/acl/node-acl-add-dialog.js.map +6 -0
- package/dist/esm/components/dialogs/acl/show-node-acl-add-dialog.d.ts +8 -0
- package/dist/esm/components/dialogs/acl/show-node-acl-add-dialog.d.ts.map +1 -0
- package/dist/esm/components/dialogs/acl/show-node-acl-add-dialog.js +15 -0
- package/dist/esm/components/dialogs/acl/show-node-acl-add-dialog.js.map +6 -0
- package/dist/esm/components/dialogs/binding/binding-actions.d.ts +17 -0
- package/dist/esm/components/dialogs/binding/binding-actions.d.ts.map +1 -0
- package/dist/esm/components/dialogs/binding/binding-actions.js +135 -0
- package/dist/esm/components/dialogs/binding/binding-actions.js.map +6 -0
- package/dist/esm/components/dialogs/binding/model.d.ts +1 -1
- package/dist/esm/components/dialogs/binding/model.d.ts.map +1 -1
- package/dist/esm/components/dialogs/binding/model.js +8 -3
- package/dist/esm/components/dialogs/binding/model.js.map +1 -1
- package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts +16 -24
- package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js +210 -332
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js.map +1 -1
- package/dist/esm/pages/cluster-commands/clusters/access-control-commands.d.ts +37 -0
- package/dist/esm/pages/cluster-commands/clusters/access-control-commands.d.ts.map +1 -0
- package/dist/esm/pages/cluster-commands/clusters/access-control-commands.js +387 -0
- package/dist/esm/pages/cluster-commands/clusters/access-control-commands.js.map +6 -0
- package/dist/esm/pages/cluster-commands/clusters/binding-commands.d.ts +35 -0
- package/dist/esm/pages/cluster-commands/clusters/binding-commands.d.ts.map +1 -0
- package/dist/esm/pages/cluster-commands/clusters/binding-commands.js +254 -0
- package/dist/esm/pages/cluster-commands/clusters/binding-commands.js.map +6 -0
- package/dist/esm/pages/cluster-commands/index.d.ts +2 -0
- package/dist/esm/pages/cluster-commands/index.d.ts.map +1 -1
- package/dist/esm/pages/cluster-commands/index.js +2 -0
- package/dist/esm/pages/cluster-commands/index.js.map +1 -1
- package/dist/esm/pages/components/node-details.d.ts +0 -1
- package/dist/esm/pages/components/node-details.d.ts.map +1 -1
- package/dist/esm/pages/components/node-details.js +2 -18
- package/dist/esm/pages/components/node-details.js.map +1 -1
- package/dist/esm/pages/components/server-details.js +3 -3
- package/dist/esm/pages/components/server-details.js.map +1 -1
- package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-cluster-view.js +2 -1
- package/dist/esm/pages/matter-cluster-view.js.map +1 -1
- package/dist/esm/pages/matter-endpoint-view.d.ts +3 -3
- package/dist/esm/pages/matter-endpoint-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-endpoint-view.js +13 -10
- package/dist/esm/pages/matter-endpoint-view.js.map +1 -1
- package/dist/esm/pages/matter-node-view.js +2 -2
- package/dist/esm/pages/matter-node-view.js.map +1 -1
- package/dist/esm/pages/network/network-utils.d.ts +1 -5
- package/dist/esm/pages/network/network-utils.d.ts.map +1 -1
- package/dist/esm/pages/network/network-utils.js +1 -11
- package/dist/esm/pages/network/network-utils.js.map +1 -1
- package/dist/esm/util/access-control.d.ts +54 -0
- package/dist/esm/util/access-control.d.ts.map +1 -0
- package/dist/esm/util/access-control.js +100 -0
- package/dist/esm/util/access-control.js.map +6 -0
- package/dist/esm/util/binding.d.ts +54 -0
- package/dist/esm/util/binding.d.ts.map +1 -0
- package/dist/esm/util/binding.js +113 -0
- package/dist/esm/util/binding.js.map +6 -0
- package/dist/esm/util/endpoints.d.ts +9 -0
- package/dist/esm/util/endpoints.d.ts.map +1 -0
- package/dist/esm/util/endpoints.js +18 -0
- package/dist/esm/util/endpoints.js.map +6 -0
- package/dist/esm/util/node-name.d.ts +12 -0
- package/dist/esm/util/node-name.d.ts.map +1 -0
- package/dist/esm/util/node-name.js +15 -0
- package/dist/esm/util/node-name.js.map +6 -0
- package/dist/web/js/{attribute-write-dialog-W7xpCE2E.js → attribute-write-dialog-CqqdRniU.js} +1 -1
- package/dist/web/js/{command-invoke-dialog-BAqAAdJw.js → command-invoke-dialog-BuvBOrdC.js} +1 -1
- package/dist/web/js/{commission-node-dialog-BTzCGgdy.js → commission-node-dialog-nVZp3go0.js} +5 -5
- package/dist/web/js/{commission-node-existing-B2M2hyDh.js → commission-node-existing-Cx3Ahk2t.js} +2 -2
- package/dist/web/js/{commission-node-thread-djdz2dXW.js → commission-node-thread-CI8mWWPs.js} +2 -2
- package/dist/web/js/{commission-node-wifi-DxAYNS1A.js → commission-node-wifi-lUX4LK2R.js} +2 -2
- package/dist/web/js/{dialog-box-tHvPVxDN.js → dialog-box-bAdbnf-T.js} +1 -1
- package/dist/web/js/{fire_event-BleYfTLc.js → fire_event-tWhqPfdz.js} +1 -1
- package/dist/web/js/main.js +1 -1
- package/dist/web/js/{matter-dashboard-app-CVi_GDky.js → matter-dashboard-app-CONA_608.js} +1485 -390
- package/dist/web/js/node-acl-add-dialog-DlR-sF-b.js +320 -0
- package/dist/web/js/node-binding-dialog-DhnX_86M.js +267 -0
- package/dist/web/js/{node-label-dialog-DVZSjsXU.js → node-label-dialog-T3nPG-Qy.js} +1 -1
- package/dist/web/js/{settings-dialog-BG5MgZcO.js → settings-dialog-DrHzJtsi.js} +1 -1
- package/package.json +4 -4
- package/src/components/dialogs/acl/acl-actions.ts +71 -0
- package/src/components/dialogs/acl/model.ts +18 -17
- package/src/components/dialogs/acl/node-acl-add-dialog.ts +350 -0
- package/src/components/dialogs/acl/show-node-acl-add-dialog.ts +14 -0
- package/src/components/dialogs/binding/binding-actions.ts +201 -0
- package/src/components/dialogs/binding/model.ts +11 -4
- package/src/components/dialogs/binding/node-binding-dialog.ts +221 -399
- package/src/pages/cluster-commands/clusters/access-control-commands.ts +407 -0
- package/src/pages/cluster-commands/clusters/binding-commands.ts +273 -0
- package/src/pages/cluster-commands/index.ts +2 -0
- package/src/pages/components/node-details.ts +2 -21
- package/src/pages/components/server-details.ts +3 -3
- package/src/pages/matter-cluster-view.ts +4 -1
- package/src/pages/matter-endpoint-view.ts +16 -10
- package/src/pages/matter-node-view.ts +2 -2
- package/src/pages/network/network-utils.ts +1 -18
- package/src/util/access-control.ts +135 -0
- package/src/util/binding.ts +182 -0
- package/src/util/endpoints.ts +17 -0
- package/src/util/node-name.ts +18 -0
- package/dist/web/js/node-binding-dialog-B9IdqHrZ.js +0 -624
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import "@material/web/button/outlined-button";
|
|
7
|
+
import { nothing, type CSSResultGroup, type TemplateResult } from "lit";
|
|
8
|
+
import "../../../components/ha-svg-icon.js";
|
|
9
|
+
import { BaseClusterCommands } from "../base-cluster-commands.js";
|
|
10
|
+
declare class AccessControlClusterCommands extends BaseClusterCommands {
|
|
11
|
+
private _unsubscribe?;
|
|
12
|
+
private _loadedKey;
|
|
13
|
+
private _busy;
|
|
14
|
+
updated(changed: Map<string, unknown>): void;
|
|
15
|
+
disconnectedCallback(): void;
|
|
16
|
+
private _ensureLoaded;
|
|
17
|
+
private get _controllerNodeId();
|
|
18
|
+
private _entries;
|
|
19
|
+
private _clusterName;
|
|
20
|
+
private _privilegeClass;
|
|
21
|
+
private _delete;
|
|
22
|
+
private _fix;
|
|
23
|
+
private _openAdd;
|
|
24
|
+
private _renderSubjects;
|
|
25
|
+
private _renderTargets;
|
|
26
|
+
private _renderRelationship;
|
|
27
|
+
render(): typeof nothing | TemplateResult<1>;
|
|
28
|
+
private _row;
|
|
29
|
+
static styles: CSSResultGroup;
|
|
30
|
+
}
|
|
31
|
+
declare global {
|
|
32
|
+
interface HTMLElementTagNameMap {
|
|
33
|
+
"access-control-cluster-commands": AccessControlClusterCommands;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=access-control-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-control-commands.d.ts","sourceRoot":"","sources":["../../../../../src/pages/cluster-commands/clusters/access-control-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,sCAAsC,CAAC;AAE9C,OAAO,EAAa,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEnF,OAAO,oCAAoC,CAAC;AAuB5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKlE,cACM,4BAA6B,SAAQ,mBAAmB;IAC1D,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,UAAU,CAAM;IACf,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,QAM7C;IAEQ,oBAAoB,SAG5B;YAGa,aAAa;IAe3B,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;YAIT,OAAO;YAqBP,IAAI;YAWJ,QAAQ;IAItB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,mBAAmB;IAclB,MAAM,uCAuDd;IAED,OAAO,CAAC,IAAI;IA2CZ,OAAgB,MAAM,EAAE,cAAc,CA+HpC;CACL;AAID,OAAO,CAAC,MAAM,CAAC,CAAC;IACZ,UAAU,qBAAqB;QAC3B,iCAAiC,EAAE,4BAA4B,CAAC;KACnE;CACJ"}
|
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @license
|
|
13
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
14
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
*/
|
|
16
|
+
import "@material/web/button/outlined-button";
|
|
17
|
+
import { mdiAlert, mdiLink, mdiLock, mdiTrashCan } from "@mdi/js";
|
|
18
|
+
import { css, html, nothing } from "lit";
|
|
19
|
+
import { customElement, state } from "lit/decorators.js";
|
|
20
|
+
import "../../../components/ha-svg-icon.js";
|
|
21
|
+
import { clusters } from "../../../client/models/descriptions.js";
|
|
22
|
+
import { showAlertDialog, showPromptDialog } from "../../../components/dialog-box/show-dialog-box.js";
|
|
23
|
+
import { deleteAclEntry, downgradeToOperate } from "../../../components/dialogs/acl/acl-actions.js";
|
|
24
|
+
import { showNodeAclAddDialog } from "../../../components/dialogs/acl/show-node-acl-add-dialog.js";
|
|
25
|
+
import {
|
|
26
|
+
AUTH_MODE_NAMES,
|
|
27
|
+
AuthMode,
|
|
28
|
+
PRIVILEGE_NAMES,
|
|
29
|
+
Privilege,
|
|
30
|
+
aclCapacity,
|
|
31
|
+
aclEntryKey,
|
|
32
|
+
entriesForFabric,
|
|
33
|
+
isProtectedAdmin,
|
|
34
|
+
isWholeNode,
|
|
35
|
+
nodeFabricIndex,
|
|
36
|
+
nodeIdKey,
|
|
37
|
+
readAclEntries
|
|
38
|
+
} from "../../../util/access-control.js";
|
|
39
|
+
import { handleAsync } from "../../../util/async-handler.js";
|
|
40
|
+
import { detectBindingRelationship } from "../../../util/binding.js";
|
|
41
|
+
import { getDeviceName } from "../../../util/node-name.js";
|
|
42
|
+
import { BaseClusterCommands } from "../base-cluster-commands.js";
|
|
43
|
+
import { registerClusterCommands } from "../registry.js";
|
|
44
|
+
const CLUSTER_ID = 31;
|
|
45
|
+
let AccessControlClusterCommands = class extends BaseClusterCommands {
|
|
46
|
+
constructor() {
|
|
47
|
+
super(...arguments);
|
|
48
|
+
this._loadedKey = "";
|
|
49
|
+
this._busy = false;
|
|
50
|
+
}
|
|
51
|
+
updated(changed) {
|
|
52
|
+
super.updated(changed);
|
|
53
|
+
if (changed.has("client") && this.client && !this._unsubscribe) {
|
|
54
|
+
this._unsubscribe = this.client.addEventListener("nodes_changed", () => this.requestUpdate());
|
|
55
|
+
}
|
|
56
|
+
void this._ensureLoaded();
|
|
57
|
+
}
|
|
58
|
+
disconnectedCallback() {
|
|
59
|
+
super.disconnectedCallback();
|
|
60
|
+
this._unsubscribe?.();
|
|
61
|
+
}
|
|
62
|
+
/** The acl attribute is fabric-scoped and may be absent from the cache until read. Load it on open. */
|
|
63
|
+
async _ensureLoaded() {
|
|
64
|
+
if (!this.client || !this.node || !this.node.available) return;
|
|
65
|
+
const key = nodeIdKey(this.node.node_id);
|
|
66
|
+
if (this._loadedKey === key) return;
|
|
67
|
+
this._loadedKey = key;
|
|
68
|
+
try {
|
|
69
|
+
const res = await this.client.readAttribute(this.node.node_id, ["0/31/0", "0/62/5"]);
|
|
70
|
+
for (const [k, v] of Object.entries(res)) this.node.attributes[k] = v;
|
|
71
|
+
this.requestUpdate();
|
|
72
|
+
} catch (err) {
|
|
73
|
+
this._loadedKey = "";
|
|
74
|
+
console.error("Failed to load ACL", err);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
get _controllerNodeId() {
|
|
78
|
+
return this.client.serverInfo?.controller_node_id;
|
|
79
|
+
}
|
|
80
|
+
_entries() {
|
|
81
|
+
return entriesForFabric(readAclEntries(this.node), nodeFabricIndex(this.node));
|
|
82
|
+
}
|
|
83
|
+
_clusterName(id) {
|
|
84
|
+
if (id == null) return "all clusters";
|
|
85
|
+
return `${clusters[id]?.label ?? "Cluster"} (0x${id.toString(16).padStart(2, "0").toUpperCase()})`;
|
|
86
|
+
}
|
|
87
|
+
_privilegeClass(p) {
|
|
88
|
+
return `pv pv-${p}`;
|
|
89
|
+
}
|
|
90
|
+
async _delete(entry) {
|
|
91
|
+
const isAdmin = entry.privilege === Privilege.Administer && entry.authMode === AuthMode.Case;
|
|
92
|
+
const unverified = isAdmin && this._controllerNodeId === void 0;
|
|
93
|
+
const confirmed = await showPromptDialog({
|
|
94
|
+
title: "Delete ACL entry",
|
|
95
|
+
text: unverified ? "This is an Administer entry and the controller cannot verify whether it is its own. Deleting the wrong admin entry can lock the controller out of this device. Continue?" : "Remove this access control entry? Devices relying on it will lose the granted access.",
|
|
96
|
+
confirmText: "Delete"
|
|
97
|
+
});
|
|
98
|
+
if (!confirmed) return;
|
|
99
|
+
this._busy = true;
|
|
100
|
+
try {
|
|
101
|
+
await deleteAclEntry(this.client, this.node.node_id, aclEntryKey(entry));
|
|
102
|
+
} catch (err) {
|
|
103
|
+
await showAlertDialog({ title: "Delete failed", text: err instanceof Error ? err.message : String(err) });
|
|
104
|
+
} finally {
|
|
105
|
+
this._busy = false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async _fix(keys) {
|
|
109
|
+
this._busy = true;
|
|
110
|
+
try {
|
|
111
|
+
await downgradeToOperate(this.client, this.node.node_id, keys);
|
|
112
|
+
} catch (err) {
|
|
113
|
+
await showAlertDialog({ title: "Fix failed", text: err instanceof Error ? err.message : String(err) });
|
|
114
|
+
} finally {
|
|
115
|
+
this._busy = false;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
async _openAdd() {
|
|
119
|
+
await showNodeAclAddDialog(this.node);
|
|
120
|
+
}
|
|
121
|
+
_renderSubjects(entry) {
|
|
122
|
+
const subjects = entry.subjects ?? [];
|
|
123
|
+
if (entry.authMode === AuthMode.Case && subjects.length === 0) {
|
|
124
|
+
return html`<span class="mut">Any node on fabric</span>`;
|
|
125
|
+
}
|
|
126
|
+
if (entry.authMode === AuthMode.Group) {
|
|
127
|
+
return html`${subjects.map((s) => html`<div class="ident">Group ${s.toString()}</div>`)}`;
|
|
128
|
+
}
|
|
129
|
+
return html`${subjects.map((s) => {
|
|
130
|
+
const known = this.client.nodes[nodeIdKey(s)];
|
|
131
|
+
const protectedMe = isProtectedAdmin(entry, this._controllerNodeId) && nodeIdKey(s) === nodeIdKey(this._controllerNodeId);
|
|
132
|
+
return html`<div class="ident ${protectedMe ? "me" : ""}">
|
|
133
|
+
${protectedMe ? "This controller" : known ? getDeviceName(known) : "Unknown node"} ·
|
|
134
|
+
<span class="nid">${s.toString()}</span><span class="hex">0x${s.toString(16).toUpperCase()}</span>
|
|
135
|
+
</div>`;
|
|
136
|
+
})}`;
|
|
137
|
+
}
|
|
138
|
+
_renderTargets(entry) {
|
|
139
|
+
if (isWholeNode(entry)) return html`<span class="mut">Whole node</span>`;
|
|
140
|
+
return html`${entry.targets.map((t) => {
|
|
141
|
+
if (t.cluster != null)
|
|
142
|
+
return html`<span class="chip ep">EP ${t.endpoint ?? "*"} · ${this._clusterName(t.cluster)}</span>`;
|
|
143
|
+
if (t.deviceType != null)
|
|
144
|
+
return html`<span class="chip ep">EP ${t.endpoint ?? "*"} · device type ${t.deviceType}</span>`;
|
|
145
|
+
return html`<span class="chip ep">EP ${t.endpoint ?? "*"}</span>`;
|
|
146
|
+
})}`;
|
|
147
|
+
}
|
|
148
|
+
_renderRelationship(rel) {
|
|
149
|
+
if (rel.kind === "none") return html`<span class="mut">—</span>`;
|
|
150
|
+
const source = rel.sourceNodeId != null ? this.client.nodes[nodeIdKey(rel.sourceNodeId)] : void 0;
|
|
151
|
+
const label = source ? getDeviceName(source) : "node";
|
|
152
|
+
if (rel.kind === "overPrivileged") {
|
|
153
|
+
return html`<span class="chip bug"
|
|
154
|
+
><ha-svg-icon .path=${mdiAlert}></ha-svg-icon> over-privileged binding ACL</span
|
|
155
|
+
>`;
|
|
156
|
+
}
|
|
157
|
+
return html`<span class="chip link"
|
|
158
|
+
><ha-svg-icon .path=${mdiLink}></ha-svg-icon> backs binding · ${label} EP${rel.sourceEndpoint}</span
|
|
159
|
+
>`;
|
|
160
|
+
}
|
|
161
|
+
render() {
|
|
162
|
+
if (!this.node || this.cluster !== CLUSTER_ID) return nothing;
|
|
163
|
+
const entries = this._entries();
|
|
164
|
+
const allNodes = Object.values(this.client.nodes);
|
|
165
|
+
const rels = entries.map((e) => detectBindingRelationship(e, this.node.node_id, allNodes));
|
|
166
|
+
const capacity = aclCapacity(this.node);
|
|
167
|
+
const full = capacity.max > 0 && entries.length >= capacity.max;
|
|
168
|
+
const overPrivilegedKeys = /* @__PURE__ */ new Set();
|
|
169
|
+
entries.forEach((e, i) => {
|
|
170
|
+
if (rels[i].kind === "overPrivileged") overPrivilegedKeys.add(aclEntryKey(e));
|
|
171
|
+
});
|
|
172
|
+
return html`
|
|
173
|
+
<details class="command-panel">
|
|
174
|
+
<summary>Access Control — ACL Entries (${entries.length})</summary>
|
|
175
|
+
<div class="command-content">
|
|
176
|
+
${overPrivilegedKeys.size >= 2 ? html`<div class="banner">
|
|
177
|
+
<span
|
|
178
|
+
>${overPrivilegedKeys.size} binding ACL entries grant Administer where Operate is
|
|
179
|
+
sufficient.</span
|
|
180
|
+
>
|
|
181
|
+
<md-outlined-button
|
|
182
|
+
?disabled=${this._busy || !this.node.available}
|
|
183
|
+
@click=${handleAsync(() => this._fix(overPrivilegedKeys))}
|
|
184
|
+
>Fix all → Operate</md-outlined-button
|
|
185
|
+
>
|
|
186
|
+
</div>` : nothing}
|
|
187
|
+
<table class="acl">
|
|
188
|
+
<thead>
|
|
189
|
+
<tr>
|
|
190
|
+
<th>Privilege</th>
|
|
191
|
+
<th>Auth</th>
|
|
192
|
+
<th>Subjects</th>
|
|
193
|
+
<th>Targets</th>
|
|
194
|
+
<th>Relationship</th>
|
|
195
|
+
<th></th>
|
|
196
|
+
</tr>
|
|
197
|
+
</thead>
|
|
198
|
+
<tbody>
|
|
199
|
+
${entries.map((e, i) => this._row(e, rels[i]))}
|
|
200
|
+
</tbody>
|
|
201
|
+
</table>
|
|
202
|
+
<md-outlined-button
|
|
203
|
+
?disabled=${this._busy || full || !this.node.available}
|
|
204
|
+
title=${full ? "Access control list is full" : ""}
|
|
205
|
+
@click=${handleAsync(() => this._openAdd())}
|
|
206
|
+
>Add ACL entry</md-outlined-button
|
|
207
|
+
>
|
|
208
|
+
${full ? html`<span class="mut full-note">List full (${capacity.max} entries)</span>` : nothing}
|
|
209
|
+
</div>
|
|
210
|
+
</details>
|
|
211
|
+
`;
|
|
212
|
+
}
|
|
213
|
+
_row(entry, rel) {
|
|
214
|
+
const protectedEntry = isProtectedAdmin(entry, this._controllerNodeId);
|
|
215
|
+
const overPrivileged = rel.kind === "overPrivileged";
|
|
216
|
+
return html`
|
|
217
|
+
<tr class=${overPrivileged ? "row-warn" : ""}>
|
|
218
|
+
<td>
|
|
219
|
+
<span class=${this._privilegeClass(entry.privilege)}
|
|
220
|
+
>${PRIVILEGE_NAMES[entry.privilege] ?? entry.privilege} · ${entry.privilege}</span
|
|
221
|
+
>
|
|
222
|
+
${overPrivileged ? html`<div>
|
|
223
|
+
<md-outlined-button
|
|
224
|
+
class="fix"
|
|
225
|
+
?disabled=${this._busy || !this.node.available}
|
|
226
|
+
@click=${handleAsync(() => this._fix(/* @__PURE__ */ new Set([aclEntryKey(entry)])))}
|
|
227
|
+
>Fix → Operate</md-outlined-button
|
|
228
|
+
>
|
|
229
|
+
</div>` : nothing}
|
|
230
|
+
</td>
|
|
231
|
+
<td>${AUTH_MODE_NAMES[entry.authMode] ?? entry.authMode}</td>
|
|
232
|
+
<td>${this._renderSubjects(entry)}</td>
|
|
233
|
+
<td>${this._renderTargets(entry)}</td>
|
|
234
|
+
<td>${this._renderRelationship(rel)}</td>
|
|
235
|
+
<td>
|
|
236
|
+
${protectedEntry ? html`<ha-svg-icon
|
|
237
|
+
class="lock"
|
|
238
|
+
.path=${mdiLock}
|
|
239
|
+
title="Your controller's administrator entry — deleting it would lock you out."
|
|
240
|
+
></ha-svg-icon>` : html`<md-outlined-button
|
|
241
|
+
class="danger"
|
|
242
|
+
?disabled=${this._busy || !this.node.available}
|
|
243
|
+
@click=${handleAsync(() => this._delete(entry))}
|
|
244
|
+
>
|
|
245
|
+
<ha-svg-icon .path=${mdiTrashCan} slot="icon"></ha-svg-icon>delete
|
|
246
|
+
</md-outlined-button>`}
|
|
247
|
+
</td>
|
|
248
|
+
</tr>
|
|
249
|
+
`;
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
AccessControlClusterCommands.styles = [
|
|
253
|
+
BaseClusterCommands.styles,
|
|
254
|
+
css`
|
|
255
|
+
.acl {
|
|
256
|
+
width: 100%;
|
|
257
|
+
border-collapse: collapse;
|
|
258
|
+
margin-bottom: 12px;
|
|
259
|
+
}
|
|
260
|
+
.acl th {
|
|
261
|
+
text-align: left;
|
|
262
|
+
font-size: 11px;
|
|
263
|
+
text-transform: uppercase;
|
|
264
|
+
opacity: 0.6;
|
|
265
|
+
padding: 8px 10px;
|
|
266
|
+
border-bottom: 1px solid var(--md-sys-color-outline-variant);
|
|
267
|
+
}
|
|
268
|
+
.acl td {
|
|
269
|
+
padding: 10px;
|
|
270
|
+
border-bottom: 1px solid var(--md-sys-color-outline-variant);
|
|
271
|
+
vertical-align: middle;
|
|
272
|
+
}
|
|
273
|
+
.ident {
|
|
274
|
+
line-height: 1.4;
|
|
275
|
+
}
|
|
276
|
+
.ident.me {
|
|
277
|
+
color: var(--md-sys-color-primary);
|
|
278
|
+
font-weight: 600;
|
|
279
|
+
}
|
|
280
|
+
.ident .nid {
|
|
281
|
+
font-weight: 600;
|
|
282
|
+
}
|
|
283
|
+
.row-warn td {
|
|
284
|
+
background: var(--md-sys-color-error-container);
|
|
285
|
+
box-shadow: inset 3px 0 0 var(--md-sys-color-error);
|
|
286
|
+
}
|
|
287
|
+
.pv {
|
|
288
|
+
display: inline-block;
|
|
289
|
+
padding: 2px 8px;
|
|
290
|
+
border-radius: 999px;
|
|
291
|
+
font-size: 12px;
|
|
292
|
+
font-weight: 700;
|
|
293
|
+
}
|
|
294
|
+
.pv-5 {
|
|
295
|
+
background: var(--md-sys-color-error-container);
|
|
296
|
+
color: var(--md-sys-color-on-error-container);
|
|
297
|
+
}
|
|
298
|
+
.pv-4 {
|
|
299
|
+
background: var(--md-sys-color-tertiary-container);
|
|
300
|
+
color: var(--md-sys-color-on-tertiary-container);
|
|
301
|
+
}
|
|
302
|
+
.pv-3 {
|
|
303
|
+
background: var(--md-sys-color-primary-container);
|
|
304
|
+
color: var(--md-sys-color-on-primary-container);
|
|
305
|
+
}
|
|
306
|
+
.pv-1,
|
|
307
|
+
.pv-2 {
|
|
308
|
+
background: var(--md-sys-color-surface-container-highest);
|
|
309
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
310
|
+
}
|
|
311
|
+
.chip {
|
|
312
|
+
display: inline-flex;
|
|
313
|
+
align-items: center;
|
|
314
|
+
gap: 4px;
|
|
315
|
+
padding: 3px 8px;
|
|
316
|
+
border-radius: 6px;
|
|
317
|
+
margin: 2px 4px 2px 0;
|
|
318
|
+
font-size: inherit;
|
|
319
|
+
background: var(--md-sys-color-surface-container-high);
|
|
320
|
+
color: var(--md-sys-color-on-surface);
|
|
321
|
+
}
|
|
322
|
+
.chip ha-svg-icon {
|
|
323
|
+
--mdc-icon-size: 14px;
|
|
324
|
+
width: 14px;
|
|
325
|
+
height: 14px;
|
|
326
|
+
}
|
|
327
|
+
.chip.ep {
|
|
328
|
+
background: var(--md-sys-color-secondary-container);
|
|
329
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
330
|
+
}
|
|
331
|
+
.chip.me {
|
|
332
|
+
background: var(--md-sys-color-tertiary-container);
|
|
333
|
+
color: var(--md-sys-color-on-tertiary-container);
|
|
334
|
+
}
|
|
335
|
+
.chip.link {
|
|
336
|
+
background: var(--md-sys-color-primary-container);
|
|
337
|
+
color: var(--md-sys-color-on-primary-container);
|
|
338
|
+
}
|
|
339
|
+
.chip.bug {
|
|
340
|
+
background: var(--md-sys-color-error-container);
|
|
341
|
+
color: var(--md-sys-color-on-error-container);
|
|
342
|
+
}
|
|
343
|
+
.nid {
|
|
344
|
+
font-weight: 600;
|
|
345
|
+
}
|
|
346
|
+
.hex {
|
|
347
|
+
font-family: var(--monospace-font, monospace);
|
|
348
|
+
font-size: 10px;
|
|
349
|
+
opacity: 0.6;
|
|
350
|
+
margin-left: 4px;
|
|
351
|
+
}
|
|
352
|
+
.mut {
|
|
353
|
+
opacity: 0.6;
|
|
354
|
+
}
|
|
355
|
+
.full-note {
|
|
356
|
+
margin-left: 8px;
|
|
357
|
+
font-size: 12px;
|
|
358
|
+
}
|
|
359
|
+
.banner {
|
|
360
|
+
display: flex;
|
|
361
|
+
align-items: center;
|
|
362
|
+
justify-content: space-between;
|
|
363
|
+
gap: 12px;
|
|
364
|
+
padding: 10px 12px;
|
|
365
|
+
margin-bottom: 12px;
|
|
366
|
+
border-radius: 8px;
|
|
367
|
+
background: var(--md-sys-color-error-container);
|
|
368
|
+
color: var(--md-sys-color-on-error-container);
|
|
369
|
+
}
|
|
370
|
+
md-outlined-button.danger {
|
|
371
|
+
--md-outlined-button-label-text-color: var(--md-sys-color-error);
|
|
372
|
+
--md-outlined-button-outline-color: var(--md-sys-color-error);
|
|
373
|
+
}
|
|
374
|
+
md-outlined-button.fix {
|
|
375
|
+
margin-top: 4px;
|
|
376
|
+
--md-outlined-button-container-height: 28px;
|
|
377
|
+
}
|
|
378
|
+
`
|
|
379
|
+
];
|
|
380
|
+
__decorateClass([
|
|
381
|
+
state()
|
|
382
|
+
], AccessControlClusterCommands.prototype, "_busy", 2);
|
|
383
|
+
AccessControlClusterCommands = __decorateClass([
|
|
384
|
+
customElement("access-control-cluster-commands")
|
|
385
|
+
], AccessControlClusterCommands);
|
|
386
|
+
registerClusterCommands(CLUSTER_ID, "access-control-cluster-commands");
|
|
387
|
+
//# sourceMappingURL=access-control-commands.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/pages/cluster-commands/clusters/access-control-commands.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import "@material/web/button/outlined-button";
|
|
7
|
+
import { nothing, type CSSResultGroup, type TemplateResult } from "lit";
|
|
8
|
+
import "../../../components/ha-svg-icon.js";
|
|
9
|
+
import { BaseClusterCommands } from "../base-cluster-commands.js";
|
|
10
|
+
declare class BindingClusterCommands extends BaseClusterCommands {
|
|
11
|
+
private _unsubscribe?;
|
|
12
|
+
private _loadedKey;
|
|
13
|
+
private _busy;
|
|
14
|
+
updated(changed: Map<string, unknown>): void;
|
|
15
|
+
disconnectedCallback(): void;
|
|
16
|
+
private _ensureLoaded;
|
|
17
|
+
private _readInto;
|
|
18
|
+
private _clusterName;
|
|
19
|
+
private _targetNode;
|
|
20
|
+
private _openAdd;
|
|
21
|
+
private _run;
|
|
22
|
+
private _delete;
|
|
23
|
+
private _fixAcl;
|
|
24
|
+
render(): typeof nothing | TemplateResult<1>;
|
|
25
|
+
private _row;
|
|
26
|
+
private _aclCell;
|
|
27
|
+
static styles: CSSResultGroup;
|
|
28
|
+
}
|
|
29
|
+
declare global {
|
|
30
|
+
interface HTMLElementTagNameMap {
|
|
31
|
+
"binding-cluster-commands": BindingClusterCommands;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=binding-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding-commands.d.ts","sourceRoot":"","sources":["../../../../../src/pages/cluster-commands/clusters/binding-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,sCAAsC,CAAC;AAE9C,OAAO,EAAa,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEnF,OAAO,oCAAoC,CAAC;AAe5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKlE,cACM,sBAAuB,SAAQ,mBAAmB;IACpD,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,UAAU,CAAM;IACf,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,QAM7C;IAEQ,oBAAoB,SAG5B;YAGa,aAAa;YAyBb,SAAS;IAMvB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,WAAW;YAKL,QAAQ;YAIR,IAAI;YAWJ,OAAO;YAUP,OAAO;IAWZ,MAAM,uCAgCd;IAED,OAAO,CAAC,IAAI;IAiCZ,OAAO,CAAC,QAAQ;IAgBhB,OAAgB,MAAM,EAAE,cAAc,CAqDpC;CACL;AAID,OAAO,CAAC,MAAM,CAAC,CAAC;IACZ,UAAU,qBAAqB;QAC3B,0BAA0B,EAAE,sBAAsB,CAAC;KACtD;CACJ"}
|