# Настройка расширенной системы прав доступа ## Описание изменений Добавлена расширенная система прав доступа с настраиваемыми порогами: - **Read-Only (1+ токен)** - только просмотр данных - **Editor (2+ токен)** - просмотр + редактирование + удаление - **User (0 токенов)** - базовые права без изменений ## Новые поля в форме добавления токенов На странице `/settings/security` в форме добавления токенов добавлены два новых поля: 1. **Минимум токенов для Read-Only доступа** (по умолчанию: 1) 2. **Минимум токенов для Editor доступа** (по умолчанию: 2) ## Применение изменений ### 1. Обновление базы данных Выполните SQL скрипт для добавления новых полей: ```bash # Подключитесь к базе данных PostgreSQL psql -h localhost -U your_username -d your_database # Выполните миграцию \i backend/scripts/add_access_thresholds.sql ``` ### 2. Перезапуск сервера ```bash # В папке backend yarn restart # или docker-compose restart backend ``` ### 3. Перезапуск frontend ```bash # В папке frontend yarn dev ``` ## Как использовать ### Для администраторов: 1. Перейдите на страницу `/settings/security` 2. В разделе "Токены аутентификации" нажмите "Подробнее" 3. При добавлении нового токена заполните: - Название токена - Адрес смарт-контракта - Сеть блокчейна - Минимальный баланс - **Минимум токенов для Read-Only доступа** - **Минимум токенов для Editor доступа** ### Для пользователей: - Система автоматически определяет уровень доступа на основе количества токенов - Отображается текущий уровень доступа с визуальными индикаторами - UI автоматически адаптируется под уровень доступа ## Примеры настроек ### Стандартные настройки: - Read-Only: 1 токен - Editor: 2 токена ### Строгие настройки: - Read-Only: 2 токена - Editor: 5 токенов ### Либеральные настройки: - Read-Only: 1 токен - Editor: 1 токен (все пользователи с токенами могут редактировать) ## Технические детали ### Backend изменения: - `auth-service.js` - добавлена функция `getUserAccessLevel()` - `authTokenService.js` - поддержка новых полей - `tokenBalanceService.js` - возврат порогов доступа - `routes/settings.js` - API endpoint для новых полей - `routes/auth.js` - новый endpoint `/access-level/:address` ### Frontend изменения: - `useAuth.js` - поддержка уровней доступа - `usePermissions.js` - новый composable для проверки прав - `AuthTokensSettings.vue` - форма с новыми полями - `SecuritySettingsView.vue` - использование новых прав доступа ### Новые поля в БД: - `auth_tokens.readonly_threshold` - порог для Read-Only - `auth_tokens.editor_threshold` - порог для Editor ## Обратная совместимость - Все существующие токены получают значения по умолчанию (1 и 2) - Старые проверки `isAdmin` продолжают работать - Система автоматически мигрирует существующие данные