/
dmitriysturov
/
workspaces_platform
Обзор
Документация
Войти
/
dmitriysturov
/
workspaces_platform
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/utils/accessLabels.ts
48 строк
1 KB
dmitriysturov
vkr
04 июн 2026, 22:24
04 июн 2026, 22:24
971dfdc
Код
Авторство
О чём код?
import type { PermissionDefinition, Project, WorkspaceRole } from '../types' const PERMISSION_ACTION_LABELS: Record<string, string> = { VIEW: 'Просмотр', CREATE: 'Создание', UPLOAD: 'Загрузка', EDIT: 'Изменение', UPDATE: 'Изменение', DELETE: 'Удаление', DOWNLOAD: 'Скачивание', ASSIGN: 'Назначение', MANAGE_STATUS: 'Управление статусом', EXPORT: 'Экспорт', MANAGE_ACCESS: 'Управление доступом', } export function workspaceAccessLabel(role?: WorkspaceRole | null) { if (role === 'OWNER') { return 'Владелец' } if (role === 'ADMIN') { return 'Управление' } return 'Участник' } export function projectAccessLabel(project: Project) { if (project.isExternalProjectMember && !project.isWorkspaceMember) { return 'Внешний проект' } if (project.currentUserProjectRole) { return 'Участник проекта' } if (project.permissions.canManageProjectMembers) { return 'Администрирование' } if (project.permissions.canViewProject) { return 'Доступ' } return 'Нет доступа' } export function permissionDisplayLabel(definition: PermissionDefinition | undefined, fallbackKey: string) { if (definition?.action && PERMISSION_ACTION_LABELS[definition.action]) { return PERMISSION_ACTION_LABELS[definition.action] } return definition?.name || fallbackKey }