Answer product-owner round 1: 0 🔴, 1 🟡 (0 misread); list plugin-settings among the Admin resources
This commit is contained in:
@@ -347,8 +347,8 @@ curl -X PUT http://keto:4467/admin/relation-tuples -H 'content-type: application
|
|||||||
**A permission's name is authored in plugin code; only its *grants* live in Keto.** A plugin
|
**A permission's name is authored in plugin code; only its *grants* live in Keto.** A plugin
|
||||||
declares the permissions it gates on (`permissions:` in the manifest) and the host collects them
|
declares the permissions it gates on (`permissions:` in the manifest) and the host collects them
|
||||||
into one catalog — `ctx.declaredPermissions` — which is the fixed list the admin screens offer.
|
into one catalog — `ctx.declaredPermissions` — which is the fixed list the admin screens offer.
|
||||||
Nothing in a GUI invents a name; a tuple naming something no installed plugin declares is not
|
Nothing in a GUI invents a name. A grant of a name that no installed plugin declares still reaches
|
||||||
offered by the admin screens, though a plugin may still gate on it.
|
the user's JWT, so a plugin may gate on that name without declaring it.
|
||||||
|
|
||||||
A change takes effect on the user's **next login or JWT re-mint** (~10 min) — see [Instant
|
A change takes effect on the user's **next login or JWT re-mint** (~10 min) — see [Instant
|
||||||
revoke](#instant-revoke-the-optional-denylist) when you need it sooner.
|
revoke](#instant-revoke-the-optional-denylist) when you need it sooner.
|
||||||
|
|||||||
@@ -35,9 +35,9 @@ screen degrades to a themed 503 rather than crashing. Everything else is an ordi
|
|||||||
folder-discovered, gated per route by its screen's `<resource>:<action>` permission, rendering the
|
folder-discovered, gated per route by its screen's `<resource>:<action>` permission, rendering the
|
||||||
core building blocks in `views/`.
|
core building blocks in `views/`.
|
||||||
|
|
||||||
Each screen is its own resource — `users`, `groups`, `oauth2-clients` — split into `:read` and
|
Each screen is its own resource — `users`, `groups`, `oauth2-clients`, `plugin-settings` — split
|
||||||
`:write`, so a helpdesk account can be given `users:read` alone. Holding none of the six hides the
|
into `:read` and `:write` (`plugin-settings` has only `:read`), so a helpdesk account can be given
|
||||||
Admin section entirely.
|
`users:read` alone. Holding none of the seven hides the Admin section entirely.
|
||||||
|
|
||||||
There is **no Permissions screen**. Permission names are declared in plugin code, not created in a
|
There is **no Permissions screen**. Permission names are declared in plugin code, not created in a
|
||||||
GUI, so the host's catalog (`ctx.declaredPermissions`) is the fixed list — and holding one is a
|
GUI, so the host's catalog (`ctx.declaredPermissions`) is the fixed list — and holding one is a
|
||||||
|
|||||||
Reference in New Issue
Block a user