Milad
4a3c226518
feat(org): panel-based access system replacing roles (procurement/inventory)
- new tables user_panels (panel: procurement/inventory/pm + level full/limited)
and user_project_members (M:N membership, separate from pm responsibility)
- UserContext carries panels + member_project_ids; /users/me and the users
list include them
- admin endpoints: PUT /users/{id}/panels, PUT /users/{id}/panel-projects
- inventory scope: panel inventory 'full' -> manager scope (all projects, NO
stock change); 'limited' -> supervisor scope (own memberships, stock change
allowed); legacy roles kept as migration fallback; admin untouched
- procurement writes: _procurement_writer is now panel-aware (admin, legacy
procurement_manager, or procurement 'full') across all 18 write routers;
quote CREATE additionally allows 'limited' users restricted to their member
projects (validated server-side)
- frontend: panel-aware HomeRoute (inventory -> warehouse panel, procurement
limited -> minimal RequesterHome), wizard project options restricted for
limited users, change-inventory button/route gated to inventory 'limited',
organization panel gains the panels & access-levels management section
2026-09-29 13:37:59 +03:30
..
2026-09-20 19:44:23 +00:00
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-26 12:32:01 +03:30
2026-09-29 13:37:59 +03:30
2026-09-18 22:02:09 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-27 18:42:05 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30
2026-09-29 13:37:59 +03:30