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

218 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔐 ПРАВА ДОСТУПА - МАТРИЦЫ РАЗРЕШЕНИЙ
**Версия**: 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