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
This commit is contained in:
Deploy Bot
2026-01-14 18:37:00 +02:00
parent 4898f5ec7f
commit 64403d6fd6
113 changed files with 19231 additions and 3084 deletions

217
ACCESS_RIGHTS.md Normal file
View File

@@ -0,0 +1,217 @@
# 🔐 ПРАВА ДОСТУПА - МАТРИЦЫ РАЗРЕШЕНИЙ
**Версия**: 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 проверка прав:**
```typescript
// 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 проверка прав:**
```javascript
// 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