FE-M0-09 · Permissions per pool, the page list and each role's landing page
ID FE-M0-09 · Level L0 · Run order row 26
apps/web groups my_permissions() rows by pool, lists every page in lib/nav.ts with the permission that opens it and the v1 menus it replaces, and finds each role's landing page; 21 tests pass; committed on the branch web/shell.
Before
Section titled “Before”- Timeline row 22 is Done: packages/db-types holds the generated types, my_permissions() among them (FE-R1, FE-R3). Pack B of this tab is merged (FE-M0-08 Done).
- fe-pack-c.zip, sent in the FE chat on 2026-10-07, is in ~/Downloads.
- You are in ~/opleet-v2/opleet and git status --short prints nothing.
1 · Check the zip, then unzip it next to the repository
Section titled “1 · Check the zip, then unzip it next to the repository”shasum -a 256 ~/Downloads/fe-pack-c.zipunzip -q -o ~/Downloads/fe-pack-c.zip -d ~/opleet-v2/packsls ~/opleet-v2/packs/fe-pack-c2 · A branch for pack C
Section titled “2 · A branch for pack C”git switch main && git pullgit switch -c web/shell3 · Copy this step's files: the access model, the page list, their tests, and the icons the menu uses
Section titled “3 · Copy this step's files: the access model, the page list, their tests, and the icons the menu uses”cp -R ~/opleet-v2/packs/fe-pack-c/FE-M0-09/. .git status --short4 · Test, typecheck and lint
Section titled “4 · Test, typecheck and lint”pnpm --filter web testpnpm --filter web typecheckpnpm lint5 · Commit
Section titled “5 · Commit”git add -A apps/webgit commit -m "feat(web): permissions per pool, the page list and landing pages"Expect
Section titled “Expect”- Block 1: 075051072dc506a1a6869c5eb145e26cd1aaf1ba91dc2d28f755fc32124bdc3e, then FE-M0-09 FE-M0-10 FE-M0-11 README.txt expected.
- Block 3: M apps/web/components/opleet/Icon.tsx; ?? for apps/web/lib/access/, apps/web/lib/i18n/, apps/web/lib/nav.test.ts and apps/web/lib/nav.ts.
- Block 4: “ℹ tests 21”, “ℹ pass 21” and “ℹ fail 0”, with a line per role such as “✔ finance lands on /collection and sees the menus its v1 role sees”; typecheck without errors; “No fixes applied.”
- Block 5: the commit line with 6 files changed.
pnpm --filter web test 2>&1 | grep -c 'sees the menus its v1 role sees'Expect: 11, one line per system role.
If it fails
Section titled “If it fails”- typecheck says my_permissions doesn't exist on the Database type: packages/db-types still holds the placeholder, so row 22 isn't Done. Stop.
- typecheck names a column of PermissionRow: the generated types differ from the Interface (organization_id, pool_id, pool_code, permission_code). Paste the error.
- A role's test fails: paste its lines. Don't commit.
git switch maingit branch -D web/shellNothing has been pushed.
Not run yet.