Динамічна Навігація та Симулятор Прав Доступу
📌 Принцип Динамічного Меню
Замість жорсткого кодування списку меню у кожному клієнтському додатку, структура бічного сайдбару зберігається в PostgreSQL у таблиці navigation_items.
При вході в систему додаток викликає:
GET /api/navigation?app=DESKTOPБекенд-хендлер GetAccessibleNavigationHandler:
- Визначає поточну роль користувача (
SUPER_ADMIN,ADMIN,USER). - Завантажує активний тарифний план користувача (
STARTER,GROWTH,PRO,ENTERPRISE). - Фільтрує елементи меню:
- Елемент повинен мати
isVisible: true. - Роль користувача має бути у масиві
requiredRoles. - Якщо вказано
requiredPlan(наприклад,PRO), елемент відображається лише тим користувачам, у яких план відповідає або перевищує заданий рівень.
- Елемент повинен мати
🎮 Інтерактивний Симулятор в Адмін-Панелі
В apps/admin-portal/src/app/navigation/page.tsx реалізовано інтерактивний симулятор прав:
- Адміністратор може наживо перемикати перемикачі ролей (User / Admin / Super Admin) та тарифів (Free / Pro / Enterprise).
- Інтерфейс у реальному часі фільтрує список елементів і показує, що саме бачитиме користувач із вибраними параметрами.