Add a department section
Hand a part of the site to a department: its editors manage everything under one path prefix and one menu, and nothing else.
Before you start: a manager or admin account (site.settings for the section, users.manage for the role assignments). The department's pages, if they exist already, should sit under one path such as /engineering.
Steps
- Site settings → Sections → New section. Key
engineering, label School of Engineering, path prefix/engineering. If the department has its own navigation, create a menu first (Menus → New, keyengineering) and pick it as the section's menu. - Save. Every published or draft page whose path is
/engineeringor starts with/engineering/is assigned to the section at once; new content saved under the prefix joins it automatically. - Users → the department's editor → Section roles. Add
engineeringwith the roleeditor(publishes) orauthor(drafts only). A user who holds only section roles sees nothing outside the section. - Ask the editor to sign in. Their content list shows only the section's pages; New page places new slugs under
/engineering/unless they type the full path.
Check the result
- The section editor can open and edit
/engineering/labsbut gets 403 on a page outside the prefix, and cannot open Settings, Types or Forms. - The editor can edit the
engineeringmenu under Menus but notmain. GET /api/auth/mefor the editor lists the section undersectionswith its permissions; the site-widepermissionshold only the ambient subset (view drafts, create, submit, upload, AI).- The audit log has
user.section_rolesrows for the assignment.
Notes
- A section is per site. On a multisite instance, give the editor a site role instead when they should manage a whole site.
- Deleting a section clears the assignment on its entities and removes the role rows; nothing is deleted from the site.
Going further
- Multisite and department delegation, including the university walk-through.
- Permissions reference for what each role grants.
- Sections in the API.
Spillway 0.1.0 · Edit this page on GitHub