Skip to content

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.

  • 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”
Terminal window
shasum -a 256 ~/Downloads/fe-pack-c.zip
unzip -q -o ~/Downloads/fe-pack-c.zip -d ~/opleet-v2/packs
ls ~/opleet-v2/packs/fe-pack-c
Terminal window
git switch main && git pull
git switch -c web/shell

3 · 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”
Terminal window
cp -R ~/opleet-v2/packs/fe-pack-c/FE-M0-09/. .
git status --short
Terminal window
pnpm --filter web test
pnpm --filter web typecheck
pnpm lint
Terminal window
git add -A apps/web
git commit -m "feat(web): permissions per pool, the page list and landing pages"
  • 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.
Terminal window
pnpm --filter web test 2>&1 | grep -c 'sees the menus its v1 role sees'

Expect: 11, one line per system role.

  • 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.
Terminal window
git switch main
git branch -D web/shell

Nothing has been pushed.

Not run yet.