ваше сообщение коммита

This commit is contained in:
2025-09-24 14:46:54 +03:00
parent 76cde4b53d
commit 792282cd75
17 changed files with 631 additions and 330 deletions

View File

@@ -21,7 +21,7 @@
### Что уже работает:
- ✅ Деплой основного DLE контракта в 4 сетях с одинаковым адресом (через CREATE2)
- ✅ Деплой модулей (Treasury, Timelock, Reader) в каждой сети
-Автоматическая инициализация базовых модулей через `initializeBaseModules()`
-Модули инициализируются только через governance предложения
- ✅ Верификация контрактов в каждой сети
- ✅ Отображение модулей в виде карточек с адресами во всех сетях
@@ -72,7 +72,7 @@
**Функциональность:**
- Получает список поддерживаемых сетей из DLE контракта
- Проверяет статус инициализации в каждой сети
- Если модули не инициализированы, вызывает `initializeBaseModules()`
- Если модули не инициализированы, создает governance предложения для их добавления
- Возвращает детальный отчет по каждой сети
**Возвращаемые статусы:**
@@ -520,9 +520,11 @@ console.log("TreasuryModule инициализация:", treasuryInit);
// 8-15. Повторяем для TimelockModule и DLEReader...
// 16. Финальная инициализация всех модулей
const finalInit = await initializeBaseModules(dleResult.address, "0x...");
console.log("Финальная инициализация:", finalInit);
// 16. Создание governance предложений для добавления модулей
const addTreasuryProposal = await createAddModuleProposal(dleResult.address, treasuryAddress, "Treasury Module");
const addTimelockProposal = await createAddModuleProposal(dleResult.address, timelockAddress, "Timelock Module");
const addReaderProposal = await createAddModuleProposal(dleResult.address, readerAddress, "Reader Module");
console.log("Governance предложения созданы:", { addTreasuryProposal, addTimelockProposal, addReaderProposal });
```
### Обработка ошибок

105
docs/SETUP_ACCESS_LEVELS.md Normal file
View 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` продолжают работать
- Система автоматически мигрирует существующие данные