OctoPrint / OctoPrint/OctoPrint
`Admin` permission does not satisfy individual permission checks (Status, Settings, etc.) after upgrade
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 9.1k
- Forks
- 1.7k
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 4
Description
The problem
Title: Admin permission does not satisfy individual permission checks (Status, Settings, etc.) after upgrade
OctoPrint version: 2.0.0rc (also present on 1.11.8 prior to upgrade)
OS: OctoPi 1.1.0 on Raspberry Pi 3 Model B Plus, Python 3.11.2
Browser: Chrome
Summary
An existing user account with the Admin (Dangerous) permission checked in
Settings → Access Control was found to be missing several individual
operational permissions — confirmed missing at minimum Status and
Settings, likely others. This produced two concrete, reproducible symptoms:
GET /api/printerandGET /api/jobreturned403 Forbiddenon every
single request, permanently, across a 4-day log capture (over 260,000
requests each, zero successes) — both endpoints require theStatus
permission per the REST API docs.GET /api/settingsreturnednullfor backend-only plugin configuration
blocks (e.g. a third-party plugin's entire settings object), consistent
with the documented 2.0.0 behavior change whereSETTINGS_READalone
only returns frontend-related settings and fullSettingspermission is
required for backend config to be returned non-null.
Meanwhile, permissions the account did have explicitly listed — Plugin
Manager, Backup & Restore, Software Update, Logging, Achievements,
Announcements — all worked correctly. This narrows the issue specifically to
Status and Settings (and possibly other core operational permissions)
not being satisfied by the Admin permission, even though Admin was
checked.
Steps to reproduce
- On an existing instance with an admin-level user account, open
Settings → Access Controland inspect that account's permission list. - Note whether
Status,Settings,Connection,Control,Print,
Files,Webcam,System, andTerminalare present, independent of
whetherAdmin (Dangerous)is checked. - If any of the above are absent while
Adminis present, test:
curl -H "X-Api-Key: <key>" http://<host>/api/printer→ returns403
despite the account being flagged admin. - Manually check the missing individual permissions (or add the account to
theAdministratorsgroup directly, rather than relying on the standalone
Adminpermission) → both symptoms above resolve immediately.
Expected
An account with Admin (Dangerous) granted should have that permission
satisfy checks for all other permissions, consistent with how "admin" is
generally understood to work, and consistent with pre-2.0.0 behavior where
admin_permission served as a blanket check.
Actual
Admin is checked, but Status/Settings (and likely others) are not
independently satisfied by it, leaving admin-labeled accounts unable to
access core printer status or read/write plugin settings until those
specific permissions are also manually granted or the account is added to
the Administrators group.
Notes
This is likely to affect anyone upgrading an existing instance rather than
doing a fresh install, since it's easy to assume an account already marked
admin carries full access forward. Worth surfacing prominently in the
2.0.0 migration/release notes if confirmed as expected (rather than
accidental) behavior, since right now it presents as a silent, unexplained
loss of core functionality with no error pointing at the cause.
Did the issue persist even in safe mode?
Yes, it did persist
If you could not test in safe mode, please state why ("currently printing" is NOT an excuse!)
No response
Version of OctoPrint
OctoPrint 2.0.0rc
Operating system running OctoPrint
Python 3.11.2 OctoPi* 1.1.0 (build 2025.09.09.113029 on Pi 3 B Plus
Browser and version of browser, operating system running browser
Chrome 151.0.7922.76 Mac mini M4 26.5.1
Printer model & used firmware incl. version
Ender-3 V2 SE
Systeminfo Bundle
octoprint-systeminfo-20260810204859.zip[^bundle1]
Checklist of files to include below
- Contents of the JavaScript browser console (always include in cases of issues with the user interface)
- Screenshots and/or videos showing the problem (always include in case of issues with the user interface)
- GCODE file with which to reproduce (always include in case of issues with GCODE analysis or printing behaviour)
Additional information & file uploads
No response
[^bundle1]: octoprint-systeminfo-20260810204859.zip (bundleviewer) (download)
OctoPrint: 2.0.0rc4
Python: 3.11.2
OS: Linux-6.6.51+rpt-rpi-v7-armv7l-with-glibc2.36
RPi: Raspberry Pi 3 Model B Plus Rev 1.3
OctoPi: 1.1.0 (build 2025.09.09.113029)
Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Access Control permission handling and the checks behind GET /api/printer, GET /api/job, and GET /api/settings. Trace how the standalone Admin permission is evaluated versus individual permissions and the Administrators group. Done means an account with Admin receives the expected Status and Settings access, including backend plugin settings, without manually granting each permission; add or update regression coverage if the relevant tests are found.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, authorization, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100