Files
Aknaproff/ACCESS_RIGHTS.md
Deploy Bot 64403d6fd6 v4.1.21: Реструктуризация проекта для Synology ARM
- Реструктуризация: src/ разбит на middleware/, utils/, repositories/ (удалены), routes/ (удалены)
- Добавлен src/original-html.ts — полный HTML с reportModal
- Добавлен src/index.tsx.backup — React-компонент с reportModal
- Миграции переименованы (0001_initial_schema.sql)
- Добавлена миграция 0018 (удалена позже)
- Docker: multi-stage build, wrangler.toml
- Frontend: public/static/app.js + style.css
- seed.sql добавлен
- Документация: CHANGELOG, CHANGES_v4.1.0-4.1.9, PROJECT_STRUCTURE
2026-01-14 18:37:00 +02:00

7.8 KiB
Raw Blame History

🔐 ПРАВА ДОСТУПА - МАТРИЦЫ РАЗРЕШЕНИЙ

Версия: v4.1.17
Дата: 2026-01-14
Обновление: Уточнены права доступа User и Guest


🔐 МАТРИЦА ПРАВ ДОСТУПА - РЕДАКТИРОВАНИЕ

Поле Admin User Guest
MAT-1 календарь
MAT-1 подтверждение
MAT-2 календарь
MAT-2 подтверждение
PAKETT календарь
Töölehti toggle
LÕIKUS toggle
KLAAS toggle
VALMIS toggle * *
VÄLJAS toggle * *

*Блокируется при наличии проблем/ошибок


👁️ МАТРИЦА ПРАВ ДОСТУПА - ПРОСМОТР

Поле Admin User Guest
MAT-1 дата
MAT-1 кнопка ✓
MAT-2 дата
MAT-2 кнопка ✓
PAKETT дата
Töölehti дата+статус
LÕIKUS дата
KLAAS дата
VALMIS дата
VÄLJAS дата

👤 РОЛИ ПОЛЬЗОВАТЕЛЕЙ

Admin (admin, aknaproff)

Редактирование:

  • MAT-1: выбор даты через календарь
  • MAT-1: подтверждение (кнопка ✓)
  • MAT-2: выбор даты через календарь
  • MAT-2: подтверждение (кнопка ✓)
  • PAKETT: выбор даты через календарь
  • Töölehti: полный контроль 3-шагового цикла
  • LÕIKUS: toggle даты
  • KLAAS: toggle даты
  • VALMIS: toggle даты (если нет блокировки)
  • VÄLJAS: toggle даты (если нет блокировки)
  • Добавление записей
  • Редактирование записей
  • Удаление записей
  • Изменение проблем и ошибок

Просмотр:

  • Все поля видны полностью

User (kasutaja)

Редактирование:

  • MAT-1: НЕТ доступа к календарю
  • MAT-1: ЕСТЬ доступ к подтверждению (кнопка ✓)
  • MAT-2: НЕТ доступа к календарю
  • MAT-2: ЕСТЬ доступ к подтверждению (кнопка ✓)
  • PAKETT: нет доступа к календарю
  • Töölehti: полный контроль 3-шагового цикла
  • LÕIKUS: toggle даты
  • KLAAS: toggle даты
  • VALMIS: toggle даты (если нет блокировки)
  • VÄLJAS: toggle даты (если нет блокировки)
  • Добавление/редактирование/удаление записей

Просмотр:

  • MAT-1, MAT-2: видит дату + кнопку подтверждения
  • PAKETT: видит дату
  • Töölehti, LÕIKUS, KLAAS, VALMIS, VÄLJAS: видит дату

Guest (неавторизованный пользователь)

Редактирование:

  • Все поля: нет доступа к редактированию

Просмотр:

  • MAT-1, MAT-2: видит только дату (БЕЗ кнопки подтверждения)
  • PAKETT: видит дату
  • Töölehti, LÕIKUS, KLAAS, VALMIS, VÄLJAS: видит дату

📊 ДЕТАЛЬНОЕ ОПИСАНИЕ

MAT-1 (Material)

  • Admin: открывает календарь + подтверждает
  • User: только подтверждает (кнопка ✓)
  • Guest: только просмотр даты

MAT-2 (Material2)

  • Admin: открывает календарь + подтверждает
  • User: только подтверждает (кнопка ✓)
  • Guest: только просмотр даты
  • Блокировка: если MAT-1 пустая

PAKETT (Package)

  • Admin: открывает календарь
  • User: только просмотр
  • Guest: только просмотр

Töölehti (Worksheets)

  • Admin: полный контроль 3-цикла
  • User: полный контроль 3-цикла
  • Guest: только просмотр

LÕIKUS (Cutting)

  • Admin: toggle (добавить/удалить дату)
  • User: toggle (добавить/удалить дату)
  • Guest: только просмотр

KLAAS (Glazing)

  • Admin: toggle (добавить/удалить дату)
  • User: toggle (добавить/удалить дату)
  • Guest: только просмотр

VALMIS (Ready)

  • Admin: toggle (если нет проблем/ошибок)
  • User: toggle (если нет проблем/ошибок)
  • Guest: только просмотр
  • Блокировка: при наличии проблем или ошибок

VÄLJAS (Issued)

  • Admin: toggle (если нет проблем/ошибок)
  • User: toggle (если нет проблем/ошибок)
  • Guest: только просмотр
  • Блокировка: при наличии проблем или ошибок

🔑 ТЕХНИЧЕСКИЕ ДЕТАЛИ

Backend проверка прав:

// optionalAuthMiddleware - разрешает Guest просмотр
// authMiddleware - требует авторизацию

// Календари (MAT-1, MAT-2, PAKETT)
if (userRole !== 'admin') {
  return c.json({ error: 'Only admin can change dates' }, 403)
}

// Подтверждение (MAT-1, MAT-2)
// Разрешено всем авторизованным (Admin + User)

// Toggle (Töölehti, LÕIKUS, KLAAS, VALMIS, VÄLJAS)
// Разрешено всем авторизованным (Admin + User)

Frontend проверка прав:

// canEditRecords() - проверяет наличие токена и роль
// Для Admin + User = true
// Для Guest = false

// MAT-1/MAT-2 календарь
if (currentUser.role !== 'admin') {
  // Скрыть календарь
}

// MAT-1/MAT-2 подтверждение
if (!token) {
  // Скрыть кнопку ✓
}

// Toggle поля
if (!canEditRecords()) {
  // Отключить клик
}

СВОДКА

Что может Admin:

  • 📅 Выбирать даты через календарь (MAT-1, MAT-2, PAKETT)
  • ✓ Подтверждать материалы
  • 🔄 Управлять всеми toggle-полями
  • Добавлять/редактировать/удалять записи

Что может User:

  • НЕ может выбирать даты через календарь
  • ✓ МОЖЕТ подтверждать материалы (MAT-1, MAT-2)
  • 🔄 МОЖЕТ управлять toggle-полями (Töölehti, LÕIKUS, KLAAS, VALMIS, VÄLJAS)
  • НЕ может добавлять/редактировать/удалять записи

Что может Guest:

  • 👁️ Только просмотр всех дат
  • НЕ видит кнопки подтверждения
  • НЕ может редактировать ничего

Статус: Права доступа корректны
Версия: v4.1.17
Дата: 2026-01-14