- Реструктуризация: 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
7.8 KiB
7.8 KiB
🔐 ПРАВА ДОСТУПА - МАТРИЦЫ РАЗРЕШЕНИЙ
Версия: 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