Перейти до вмісту

Динамічна Навігація та Симулятор Прав Доступу

📌 Принцип Динамічного Меню

Замість жорсткого кодування списку меню у кожному клієнтському додатку, структура бічного сайдбару зберігається в PostgreSQL у таблиці navigation_items.

При вході в систему додаток викликає:

GET /api/navigation?app=DESKTOP

Бекенд-хендлер GetAccessibleNavigationHandler:

  1. Визначає поточну роль користувача (SUPER_ADMIN, ADMIN, USER).
  2. Завантажує активний тарифний план користувача (STARTER, GROWTH, PRO, ENTERPRISE).
  3. Фільтрує елементи меню:
    • Елемент повинен мати isVisible: true.
    • Роль користувача має бути у масиві requiredRoles.
    • Якщо вказано requiredPlan (наприклад, PRO), елемент відображається лише тим користувачам, у яких план відповідає або перевищує заданий рівень.

🎮 Інтерактивний Симулятор в Адмін-Панелі

В apps/admin-portal/src/app/navigation/page.tsx реалізовано інтерактивний симулятор прав:

  • Адміністратор може наживо перемикати перемикачі ролей (User / Admin / Super Admin) та тарифів (Free / Pro / Enterprise).
  • Інтерфейс у реальному часі фільтрує список елементів і показує, що саме бачитиме користувач із вибраними параметрами.