export const ROLE_RESOURCES = [ { key: "snapshot", label: "Экспорт" }, { key: "devices", label: "Устройства" }, { key: "vehicles", label: "Транспорт" }, { key: "users", label: "Пользователи" }, { key: "sights", label: "Достопримечательности" }, { key: "stations", label: "Остановки" }, { key: "routes", label: "Маршруты" }, { key: "countries", label: "Страны" }, { key: "cities", label: "Города" }, { key: "carriers", label: "Перевозчики" }, ] as const; export type PermissionLevel = "none" | "ro" | "rw"; export function getPermissionLevel(roles: string[], resource: string): PermissionLevel { if (roles.includes(`${resource}_rw`)) return "rw"; if (roles.includes(`${resource}_ro`)) return "ro"; return "none"; } export function applyPermissionChange( roles: string[], resource: string, level: PermissionLevel, ): string[] { const filtered = roles.filter( (r) => r !== `${resource}_ro` && r !== `${resource}_rw`, ); if (level === "ro") return [...filtered, `${resource}_ro`]; if (level === "rw") return [...filtered, `${resource}_rw`]; return filtered; }