ваше сообщение коммита
This commit is contained in:
105
SETUP_ACCESS_LEVELS.md
Normal file
105
SETUP_ACCESS_LEVELS.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Настройка расширенной системы прав доступа
|
||||
|
||||
## Описание изменений
|
||||
|
||||
Добавлена расширенная система прав доступа с настраиваемыми порогами:
|
||||
|
||||
- **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` продолжают работать
|
||||
- Система автоматически мигрирует существующие данные
|
||||
Reference in New Issue
Block a user