/** * Единый источник прав портала: роли, разделы по умолчанию, scope по умолчанию. * Используется на фронте и синхронизируется с backend/constants/roleAccess.js. */ export type UserRole = | 'DIRECTOR' | 'ENGINEER' | 'MASTER' | 'LAWYER' | 'FINANCIER' | 'HR_MANAGER' | 'PR_MANAGER'; /** Названия ролей для UI */ export const ROLE_NAMES: Record = { DIRECTOR: 'Директор', ENGINEER: 'Гл. Инженер', MASTER: 'Мастер', LAWYER: 'Юрист', FINANCIER: 'Финансист', HR_MANAGER: 'HR-менеджер', PR_MANAGER: 'PR-менеджер', }; /** Разделы по умолчанию для каждой роли (при пустом permissions) */ export const ROLE_ACCESS: Record = { DIRECTOR: ['all'], ENGINEER: ['dashboard', 'objects', 'requests', 'office', 'development'], MASTER: ['objects', 'requests'], LAWYER: ['dashboard', 'legal', 'objects', 'requests'], FINANCIER: ['dashboard', 'finance', 'office', 'objects'], HR_MANAGER: ['dashboard', 'hr', 'office'], PR_MANAGER: ['dashboard', 'pr', 'requests'], }; /** Scope по умолчанию для каждой роли */ export const ROLE_DEFAULT_SCOPE: Record = { DIRECTOR: 'all', ENGINEER: 'all', MASTER: 'own_district', LAWYER: 'all', FINANCIER: 'all', HR_MANAGER: 'all', PR_MANAGER: 'all', }; /** Список кодов разделов портала (порядок для allowedSections) */ export const SECTION_IDS: string[] = [ 'dashboard', 'objects', 'requests', 'pr', 'finance', 'legal', 'development', 'hr', 'office', 'admin', ];