A friendlier backoffice for non-admin editors in Umbraco 17.
AdminOnly lets administrators hide document types, tabs and properties from everyone who isn't an admin — without touching user groups, permissions or document type structure. Editors see only what's relevant to their work; admins keep the full picture, with a 🔒 indicator next to every hidden item.
Heads up — this is a backoffice UX layer, not server-side authorization. Hidden items are removed from the UI, but the underlying Umbraco APIs are untouched. A determined user with developer tools can still reach hidden content. Use AdminOnly to keep the backoffice tidy, not to protect sensitive data. For real access control, use Umbraco's user groups and permissions.
- Hide document types — entire branches disappear from the content tree, and matching items are filtered out of backoffice search results
- Hide tabs — per document type, with composition awareness in the settings UI
- Hide properties — per document type, including properties inherited via compositions
- Lock-icon indicators (🔒) — admins see exactly what's hidden, where
- Settings dashboard — point-and-click configuration under Settings → Admin Only
- No code, no recompile — configuration is stored in
App_Data/AdminOnly/config.jsonand editable from the backoffice
dotnet add package Umbraco.Community.AdminOnlyRestart your Umbraco site. The settings dashboard appears immediately under Settings → Admin Only for any administrator.
No Startup.cs changes, no composer wiring — installation is the entire setup.
- Log in as an administrator.
- Navigate to Settings → Admin Only.
- Pick a document type and toggle the tabs, properties or the entire type to hide.
- Save. Non-admin users see the change on their next page load.
Admins continue to see everything, with 🔒 icons marking hidden tabs, properties and tree nodes — useful for understanding what an editor is (and isn't) seeing without switching accounts.
- Server side — action filters strip hidden document-type nodes from the content tree and from backoffice search responses for non-admins. A REST controller serves the configuration and document-type metadata to the settings dashboard.
- Client side — an entry-point extension reads the user's role and the config, then either decorates the UI with lock icons (admin) or hides items via Umbraco's native workspace context and a tree-aware UI guard (non-admin).
- Storage — JSON file at
App_Data/AdminOnly/config.json, cached in memory.
- Umbraco 17.2.1 or later (
[17.0.0, 18.0.0]) - .NET 10
- Not an authorization mechanism. See the disclaimer above.
- Single-instance deployments. The JSON file + in-memory cache isn't designed for load-balanced setups; config writes from one node won't propagate to others until restart.
- Backoffice only. AdminOnly affects what editors see in the Umbraco UI; it does not change Delivery API output, Razor rendering, or anything outside the backoffice.
MIT © Ambert van Unen