Skip to content

Safety Pro Troubleshooting

IncidentCenter не се показва в навигацията

Проверка 1: Admin права

IncidentCenter (Vorfallzentrale) е достъпен само за admin потребители.

Как да проверите:

  1. Проверете дали потребителят има admin роля
  2. В user_roles таблицата трябва да има запис с role = 'admin'

Как да активирате:

sql
-- Проверете текущите роли
SELECT * FROM user_roles WHERE user_id = 'your-user-id';

-- Добавете admin роля (ако липсва)
INSERT INTO user_roles (user_id, role)
VALUES ('your-user-id', 'admin')
ON CONFLICT DO NOTHING;

Проверка 2: Safety модул активиран

IncidentCenter изисква Safety модул да е активиран за tenant-а.

Как да проверите:

  1. Проверете tenant edition в tenant_editions таблицата
  2. Edition трябва да бъде safety_pro или enterprise

Как да активирате:

sql
-- Проверете текущото edition
SELECT te.*, e.name as edition_name 
FROM tenant_editions te
JOIN editions e ON e.id = te.edition_id
WHERE te.tenant_id = 'your-tenant-id';

-- Активирайте safety_pro edition
UPDATE tenant_editions
SET edition_id = (SELECT id FROM editions WHERE name = 'safety_pro')
WHERE tenant_id = 'your-tenant-id';

Проверка 3: FeatureGate проверка

Ако FeatureGate не дава достъп, страницата ще покаже съобщение за upgrade.

Как да проверите в конзолата:

  1. Отворете Developer Tools (F12)
  2. Проверете за грешки в Console
  3. Търсете съобщения от FeatureGate или hasModuleAccess

Проверка 4: Навигация филтриране

В AdminLayout.tsx навигацията филтрира items базирано на:

  • adminOnly: true → показва се само ако userRole === "admin"
  • superAdminOnly: true → показва се само ако потребителят е superadmin

Как да проверите:

  1. Проверете userRole в AuthContext
  2. Проверете дали филтърът в AdminLayout.tsx работи правилно

Често срещани проблеми

Проблем: "Module Unavailable" съобщение

Причина: Tenant-ът няма достъп до Safety модула

Решение: Активирайте safety_pro или enterprise edition

Проблем: Страницата е празна или не се зарежда

Причина: FeatureGate скрива съдържанието

Решение:

  1. Проверете дали Safety модул е активиран
  2. Проверете конзолата за грешки
  3. Проверете дали има правилни RLS policies

Проблем: Навигационният елемент не се показва

Причина:

  • Потребителят не е admin (за adminOnly items)
  • Или има проблем с навигационната структура

Решение:

  1. Проверете дали потребителят е admin
  2. Проверете AdminLayout.tsx навигационната структура
  3. Проверете дали items е правилно дефиниран като масив

Debugging стъпки

  1. Проверете правата:

    sql
    SELECT ur.*, p.email 
    FROM user_roles ur
    JOIN profiles p ON p.id = ur.user_id
    WHERE ur.user_id = 'your-user-id';
  2. Проверете tenant edition:

    sql
    SELECT t.*, e.name as edition_name
    FROM tenants t
    LEFT JOIN tenant_editions te ON te.tenant_id = t.id
    LEFT JOIN editions e ON e.id = te.edition_id
    WHERE t.id = 'your-tenant-id';
  3. Проверете модул достъп:

    • Отворете Developer Tools
    • В Console изпълнете:
    javascript
    // Проверете дали модулът е достъпен
    import { hasModuleAccess } from '@/lib/editionResolver';
    const tenantId = await getCurrentUserTenantId();
    const hasAccess = await hasModuleAccess(tenantId, 'safety');
    console.log('Has safety access:', hasAccess);

Контакт

Ако проблемът продължава, проверете:

  • Database миграциите са изпълнени
  • RLS policies са активирани
  • Tenant edition е правилно конфигуриран

Публикувано под търговска лицензия