feat: global blocked_doctypes list (block doctypes not on /desk)
desk_layout._build merges a top-level config 'blocked_doctypes' list into the blocked-doctype set, so arbitrary doctypes (including ones absent from any workspace card) are denied at before_request + has_permission when enforcing. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
acb1010324
commit
20e7e834c2
|
|
@ -201,6 +201,11 @@ def _build_inner() -> dict:
|
||||||
elif ltype == "Page":
|
elif ltype == "Page":
|
||||||
blocked_pages.add(lto)
|
blocked_pages.add(lto)
|
||||||
|
|
||||||
|
# Global block list — doctypes blocked anywhere, including ones not on /desk.
|
||||||
|
for dt in layout.get("blocked_doctypes") or []:
|
||||||
|
if isinstance(dt, str) and dt:
|
||||||
|
blocked_doctypes.add(dt)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"workspaces": workspaces,
|
"workspaces": workspaces,
|
||||||
"hidden_ws": frozenset(hidden_ws),
|
"hidden_ws": frozenset(hidden_ws),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue