# Настройка расширенной системы прав доступа

## Описание изменений

Добавлена расширенная система прав доступа с настраиваемыми порогами:

- **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` продолжают работать
- Система автоматически мигрирует существующие данные
