Skip to content

History / Knowledge Folders and Permissions

Revisions

  • Knowledge: folders and security — user page, developer guide, and corrections Three things. NEW: Knowledge-Folders-and-Security.md (user-facing) Folders and shortcuts, the four views, multi-select, the open/restricted model and what the list means in each, inheritance and the exceptions report, the containers-vs-filing setting, where the rules are enforced, and the administrator floor. Includes the warning that "I removed myself from the team and can still see it" is not a valid test while you hold the floor. NEW: Knowledge-Folders-and-Security-Developer-Guide.md The choke point and why knowledgeCanRead() is built on the list clause; how the ACL fragment is assembled and why the tree is walked in PHP rather than with a recursive CTE; #1217 (the most restrictive state turned the guard off) with the generalisation; polarity on the object rather than the rows. Then §4 the four renderers with code - list and cards are ONE renderer, data-article as the unifying handle, DOM order for ranges, the tree drawing its whole shape from one fetch and the two bugs that came from that - and §5 drag and drop, including one rule for the highlight rather than four copies. §6 collects the testing traps. CORRECTED: Knowledge-Folders-and-Permissions.md It contradicted the shipped product in three places. Marked inline rather than rewritten, so the reasoning that turned out wrong is still on the record: - §10 "three view modes deliberately not built" - all four exist. The estimate was wrong: list and cards are one renderer, so it was two, not three. - §10 properties/security panel - shipped as a modal, not a left-panel tab. - §10 mobile action row - now built, mobile.css layer 17k. §15 Build status rewritten: it still said "no interface, the feature is inert". Now records what shipped and what is still outstanding - user groups have no screen, and the audit trail is recorded but never displayed. UPDATED: Knowledge.md Added Folders, Permissions and Attached documents sections; test count 57 -> 88; dropped the stale "one of the four modules" on mobile. Every referenced file verified to exist; every internal link resolves.

    @edmozley edmozley committed Aug 28, 2026
  • Knowledge folders: record the build status and two deviations The engine, schema and reader are built and tested; there is no interface, so the feature is inert on a real install - with no access rows the resolver's fast path returns an empty clause and every query is byte-identical to before. Two places the build diverged from this page, both deliberate and both recorded rather than left for someone to discover: * the administrator floor is Cap::KNOWLEDGE_MANAGE, not a new knowledge.admin * folder reachability is resolved in PHP, not with WITH RECURSIVE - the visibility clause is a fragment appended to somebody else's WHERE, where a WITH cannot be introduced at all, and the correlated alternative re-walks the tree per row The MySQL 8 finding that prompted the CTE plan still stands; it is simply not needed here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    @edmozley edmozley committed Aug 27, 2026
  • Knowledge: folders and permissions design page Design agreed with Ed before any code exists. Records the governing rule (every axis narrows, nothing widens), the finding that shapes the project (no choke point — ~48 raw queries across ~30 files, plus six back doors that read article bodies without opening a document), and the decisions taken: one folder per document with shortcuts as the escape hatch, Open/Restricted polarity so an ACL cannot contradict itself, a containers-vs-filing install setting, four principal types with a new user-groups table carrying expires_at, and document-level permissions in scope with the administrator floor and empty-grant validation shipping alongside rather than deferred. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    @edmozley edmozley committed Aug 27, 2026