feat: the TUI adopts the permission matrix (#136) #151
No reviewers
Labels
No labels
adr
android
area/calendar
area/design-system
area/i18n
area/jobs
area/offline
area/server
area/testing
bug
ci
duplicate
enhancement
help wanted
invalid
notifications
question
reliability
security
severity/low
severity/medium
tracking
web
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
eagraiclainne/app!151
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/tui-matrix"
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?
Closes #136. PR 13 of the #137 stack, based on #150.
The TUI was the last surface guessing from role buckets (
isAdmin/isManager) — the pattern ADR-0028 retired. It now fetchesGetPermissionMatrixat entry (newpkg/clientwrapper; falls back to the compiled-in matrix on a network blip so affordances never blank) and gates every control on the verb it performs viaappCtx.can(). All four recorded divergences close:Create.standalone(children get the creation the ADR-0031 row grants them); assign readsAssignUser.other, repeatSetRepeat, linkRewardService/LinkItem, deleteDelete.Claim.other, so a MEMBER is no longer shown an action the server denies; grant/edit/link/delete split per verb.canManageEventmirror ofRequireEventMember(the verb's row, then membership or the admin bypass) replaces the tier guess that both over- and under-showed.The Family tab and Admin-tab gate adopt the same verbs (mirroring PR #150's web split), the help lines advertise only granted verbs (absent, not greyed), and
isManageris gone —isAdminsurvives solely inside guard mirrors whose server rule is itself role-based.Live-verified in tmux sessions against the deployed cluster: a CHILD's Jobs help now offers "n new" and their Lists tab offers new/rename/delete (the previously hidden grants) while assign/repeat/delete and all reward management stay absent; an ADMIN sees the full set plus the Admin tab.
make checkgreen.🤖 Generated with Claude Code
Test report
Coverage: 27.9%
Updated by the check workflow · commit
43271e76c4