List grants no plugin declares with a Remove, and save a permission change as one Keto transaction #228

Merged
lilleman merged 7 commits from item-5 into main 2026-11-08 22:34:20 +01:00
2 changed files with 3 additions and 3 deletions
Showing only changes of commit 0727d15964 - Show all commits
+2 -2
View File
@@ -3,8 +3,8 @@
// resolves a group's grant transitively at login.
//
// The set of permissions that *exist* is `ctx.declaredPermissions` — the host's catalog, built from
// what the installed plugins declare in code. Nothing here invents a name, which is why the old
// Permissions screen is gone: a grant is a property of a user or a group, edited where they are.
// what the installed plugins declare in code. Nothing here invents a name: a grant is a property of a
// user or a group, edited where they are.
import { createHash } from "node:crypto";
import type { KetoClient, PermissionDecl, RelationTuple, SubjectSet, Translate } from "@plainpages/plugin-api";
+1 -1
View File
@@ -32,7 +32,7 @@ export interface RelationList {
// Keto's expand tree: a node is a set operation (union/…) or a leaf. The resolved subject
// (subject_id xor subject_set) rides on `tuple`, not the node itself — verified against Keto
// v26.2.0. A `subject_set` node carries its members as `children` ("effective access" view).
// v26.2.0. A `subject_set` node carries its members as `children`.
export interface ExpandTree {
children?: ExpandTree[];
tuple?: RelationTuple;