Files
DLE/SETUP_ACCESS_LEVELS.md

4.2 KiB
Raw Blame History

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

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

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

  • Read-Only (1+ токен) - только просмотр данных
  • Editor (2+ токен) - просмотр + редактирование + удаление
  • User (0 токенов) - базовые права без изменений

Новые поля в форме добавления токенов

На странице /settings/security в форме добавления токенов добавлены два новых поля:

  1. Минимум токенов для Read-Only доступа (по умолчанию: 1)
  2. Минимум токенов для Editor доступа (по умолчанию: 2)

Применение изменений

1. Обновление базы данных

Выполните SQL скрипт для добавления новых полей:

# Подключитесь к базе данных PostgreSQL
psql -h localhost -U your_username -d your_database

# Выполните миграцию
\i backend/scripts/add_access_thresholds.sql

2. Перезапуск сервера

# В папке backend
yarn restart
# или
docker-compose restart backend

3. Перезапуск frontend

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