Safety Pro Troubleshooting
IncidentCenter не се показва в навигацията
Проверка 1: Admin права
IncidentCenter (Vorfallzentrale) е достъпен само за admin потребители.
Как да проверите:
- Проверете дали потребителят има
adminроля - В
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-а.
Как да проверите:
- Проверете tenant edition в
tenant_editionsтаблицата - 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.
Как да проверите в конзолата:
- Отворете Developer Tools (F12)
- Проверете за грешки в Console
- Търсете съобщения от
FeatureGateилиhasModuleAccess
Проверка 4: Навигация филтриране
В AdminLayout.tsx навигацията филтрира items базирано на:
adminOnly: true→ показва се само акоuserRole === "admin"superAdminOnly: true→ показва се само ако потребителят е superadmin
Как да проверите:
- Проверете
userRoleвAuthContext - Проверете дали филтърът в
AdminLayout.tsxработи правилно
Често срещани проблеми
Проблем: "Module Unavailable" съобщение
Причина: Tenant-ът няма достъп до Safety модула
Решение: Активирайте safety_pro или enterprise edition
Проблем: Страницата е празна или не се зарежда
Причина: FeatureGate скрива съдържанието
Решение:
- Проверете дали Safety модул е активиран
- Проверете конзолата за грешки
- Проверете дали има правилни RLS policies
Проблем: Навигационният елемент не се показва
Причина:
- Потребителят не е admin (за adminOnly items)
- Или има проблем с навигационната структура
Решение:
- Проверете дали потребителят е admin
- Проверете
AdminLayout.tsxнавигационната структура - Проверете дали
itemsе правилно дефиниран като масив
Debugging стъпки
Проверете правата:
sqlSELECT ur.*, p.email FROM user_roles ur JOIN profiles p ON p.id = ur.user_id WHERE ur.user_id = 'your-user-id';Проверете tenant edition:
sqlSELECT 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';Проверете модул достъп:
- Отворете 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 е правилно конфигуриран