# 🔐 ПРАВА ДОСТУПА - МАТРИЦЫ РАЗРЕШЕНИЙ **Версия**: 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