# 12.3.12 — overview, sidebar and activity follow permissions

**"Inventory access"** = at least one permission switched on in the Dashboard & inventory, Transfers, Procurement, Repairs, Editing submitted requests, Scraps or Budgets & petty cash sections (by role, user group or personal override). Computed on the server and sent to the browser as `inventoryAccess`.

Without it:
- Sidebar: the Inventory heading and all its pages (Inventory, Transfers, Procurement, Repairs, Consumption, Scraps, Team Approvals, Stocking Plans, Petty Cash) are hidden. Any section heading left with no visible page is hidden too.
- Overview: the item/value/low-stock cards, category, low-stock and warranty lists, quick-review panel and the "My Location" box are hidden.
- `/api/overview` returns empty inventory data (not just hidden in the browser) and no inventory activity.

With it, cards follow their own permission: "Under repair" needs a repair permission; "Pending approvals" needs a transfer or procurement permission; scrap and book value cards keep their existing rules. Recent-activity items are filtered the same way (transfer, procurement and repair entries only for people who work with those requests).

**POS activity** (new): `GET /api/pos/activity` feeds the Overview's Recent activity with orders placed, bills finalized, voids, reopenings and corrections. Visible to people with Make sales (their own bills) or View all sales (all bills on their counters). Clicking an entry opens that bill. The feed card shows for anyone with inventory access or POS activity access.

**Groups editor:** each section gets All on / All off / Role default buttons, and a "No inventory access" quick button that switches off every inventory permission for POS-only groups.

Cache bumped (style.css?v=1242, app.js?v=1236, pos.js?v=1236, service worker v45).
