bac415d003bfde4210db161d7f3b9a7beb7d03ba
adminAuthGuard only checked isAuthenticated() - any signed-in admin could reach any route. The live Telegram/QR auth (Mechanism A) carries no role claim, so a real gate needs a backend change (tracked in BACKEND-API-REFERENCE.md). Added AdminPermissionsService + requireAdminPermission() guard factory that derive a permission set locally by matching the Telegram username against the mock Users domain's roleId - the same local-only stand-in already used for the rest of that domain. Wired onto /backoffice/users requiring 'users.manage'. Explicitly cosmetic: backend must independently authorize every mutation regardless of what this guard decides. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Description
No description provided
Languages
TypeScript
71.4%
HTML
15.3%
SCSS
11.9%
Shell
1.3%
JavaScript
0.1%