v0.6.10: scope admins like regular users (#177) #197
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "ship-v0.6.10"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
#177 — admins are scoped exactly like regular users
Per the decision on #177 (the strict model): removes the admin exemption in
internal/storage/scope/scope.goresolve(). Admins now get the same/home+/spacesoverlay as everyone else — Personal is the admin's own home, Spaces are the admin's own groups — and there is no in-UI path to another user's home or a non-member space. Cross-user access is out-of-band only (storage backend + the deployment recovery key).Diff
scope.go: delete theif d.admins[...] || u.Admin { return unscoped }block inresolve(); update the package/Newdocs; mark theadminsfield vestigial (kept to avoid churning ~13 call sites; a follow-up removes the plumbing).scope_test.go: replaceTestAdminUnscopedwithTestAdminScoped— asserts a backend-root path isErrNotFound, a/home/<other>path maps into the admin's OWN home (/home/root/alice/...), and theauth.User.Adminflag confers no access to a non-member space.Why it's safe / what's unaffected
go test ./...is green across every package: nothing else relied on admin-unscoped file access via the scope driver.requireAdmin, not scope.holds.gorecords the typed backend path directly (not scope-resolved); enforcement is at the backend layer.Consequences (accepted per #177, tracked)
Closes #177.