# 🎉 MC Panel v1.1.0 - Система прав и ролей **Дата релиза:** 15 января 2026 **Тип релиза:** Minor Update **Статус:** RELEASED ✅ --- ## 📋 Что нового? ### 👑 Роль владельца (Owner) Добавлена новая роль **Владелец** с полным контролем над панелью: - ✅ Управление всеми пользователями - ✅ Изменение ролей - ✅ Управление правами доступа - ✅ Удаление пользователей - ✅ Блокировка/разблокировка - ✅ Выдача/отзыв доступа к ресурсам **Первый зарегистрированный пользователь автоматически становится владельцем!** --- ### 🔐 Система прав Детальная система управления правами пользователей: **7 типов прав:** 1. `manage_users` - Управление пользователями 2. `manage_roles` - Изменение ролей (только Owner) 3. `manage_servers` - Управление серверами 4. `manage_tickets` - Управление тикетами 5. `manage_files` - Управление файлами 6. `delete_users` - Удаление пользователей (только Owner) 7. `view_all_resources` - Просмотр всех ресурсов --- ### 👥 5 ролей пользователей ``` Owner (Владелец) - Полный контроль ↓ Admin (Администратор) - Управление панелью ↓ Support (Поддержка) - Работа с тикетами ↓ User (Пользователь) - Базовые возможности ↓ Banned (Заблокирован) - Нет доступа ``` --- ### 🆕 Новые API эндпоинты #### 1. Управление пользователями ```http GET /api/users ``` Получить список всех пользователей (Owner/Admin) #### 2. Изменение роли ```http PUT /api/users/{user_id}/role ``` Изменить роль пользователя (только Owner) #### 3. Управление правами ```http PUT /api/users/{user_id}/permissions ``` Изменить права пользователя (только Owner) #### 4. Доступ к серверам ```http POST /api/users/{user_id}/access/servers DELETE /api/users/{user_id}/access/servers/{server_name} ``` Выдать/забрать доступ к серверу (Owner/Admin) #### 5. Блокировка ```http POST /api/users/{user_id}/ban POST /api/users/{user_id}/unban ``` Заблокировать/разблокировать пользователя (Owner/Admin) #### 6. Удаление ```http DELETE /api/users/{user_id} ``` Удалить пользователя (только Owner) --- ### 🛠️ Инструменты миграции #### migrate_users.py Автоматический скрипт миграции существующих пользователей: ```bash cd backend python migrate_users.py ``` **Что делает:** - ✅ Создаёт backup users.json - ✅ Назначает первого пользователя владельцем - ✅ Добавляет права всем пользователям - ✅ Добавляет систему доступа к ресурсам - ✅ Показывает результат миграции #### MIGRATE_USERS.bat Bat файл для Windows: ```bash MIGRATE_USERS.bat ``` --- ### 📚 Новая документация #### OWNER_PERMISSIONS.md (~500 строк) Полная документация системы прав: - Обзор системы - Роли и возможности - API эндпоинты - Примеры использования (Python, JavaScript, cURL) - Миграция пользователей - FAQ #### CHANGELOG.md История всех изменений проекта: - Версия 1.1.0 - Система прав - Версия 1.0.0 - Первый релиз --- ## 🔄 Изменения ### Backend **Структура пользователя:** ```json { "username": "example", "role": "user", "permissions": { "manage_users": false, "manage_roles": false, "manage_servers": true, "manage_tickets": true, "manage_files": true, "delete_users": false, "view_all_resources": false }, "resource_access": { "servers": ["server1"], "tickets": ["ticket1"], "files": ["server1/*"] } } ``` **Проверка прав:** ```python def require_owner(current_user: dict): if current_user["role"] != "owner": raise HTTPException(status_code=403) def require_admin_or_owner(current_user: dict): if current_user["role"] not in ["owner", "admin"]: raise HTTPException(status_code=403) ``` --- ## 📊 Сравнение версий | Функция | v1.0.0 | v1.1.0 | |---------|--------|--------| | Роли | 2 (admin, user) | 5 (owner, admin, support, user, banned) | | Система прав | ❌ | ✅ 7 типов прав | | Управление пользователями | Базовое | Расширенное | | Блокировка пользователей | ❌ | ✅ | | Удаление пользователей | ❌ | ✅ (только Owner) | | Доступ к ресурсам | Все или ничего | Детальный контроль | | API эндпоинтов | 37 | 45 (+8) | --- ## 🚀 Обновление с v1.0.0 ### Шаг 1: Backup ```bash # Создайте backup BACKUP_DATA.bat ``` ### Шаг 2: Обновление кода ```bash # Остановите панель STOP_DOCKER.bat # Обновите код git pull origin main # Или скачайте новую версию ``` ### Шаг 3: Миграция пользователей ```bash # Запустите миграцию MIGRATE_USERS.bat # Или вручную cd backend python migrate_users.py ``` ### Шаг 4: Перезапуск ```bash # Запустите панель START_DOCKER.bat # Или docker-compose up -d --build ``` ### Шаг 5: Проверка 1. Войдите как владелец 2. Проверьте права пользователей 3. Настройте доступ к ресурсам --- ## 💡 Примеры использования ### Python ```python import requests token = "owner_token" headers = {"Authorization": f"Bearer {token}"} base_url = "http://localhost:8000" # Получить пользователей users = requests.get(f"{base_url}/api/users", headers=headers).json() # Изменить роль requests.put( f"{base_url}/api/users/2/role", headers=headers, json={"role": "admin"} ) # Выдать доступ к серверу requests.post( f"{base_url}/api/users/2/access/servers", headers=headers, json={"server_name": "Survival"} ) # Заблокировать пользователя requests.post( f"{base_url}/api/users/2/ban", headers=headers, json={"reason": "Нарушение правил"} ) ``` ### JavaScript ```javascript const token = "owner_token"; const baseUrl = "http://localhost:8000"; // Получить пользователей const users = await fetch(`${baseUrl}/api/users`, { headers: { "Authorization": `Bearer ${token}` } }).then(r => r.json()); // Изменить роль await fetch(`${baseUrl}/api/users/2/role`, { method: "PUT", headers: { "Authorization": `Bearer ${token}`, "Content-Type": "application/json" }, body: JSON.stringify({ role: "admin" }) }); ``` --- ## 🔒 Безопасность ### Новые меры безопасности - ✅ Проверка прав на всех административных эндпоинтах - ✅ Логирование действий владельца - ✅ Защита от удаления владельца - ✅ Автоматическое понижение роли при передаче прав - ✅ Детальный контроль доступа к ресурсам ### Рекомендации 1. Регулярно проверяйте права пользователей 2. Используйте роль Support для службы поддержки 3. Блокируйте неактивных пользователей 4. Логируйте все административные действия 5. Создавайте backup перед изменением прав --- ## 📝 Миграция данных ### Автоматическая миграция При запуске `migrate_users.py`: 1. ✅ Создаётся backup с timestamp 2. ✅ Первый пользователь → Owner 3. ✅ Admin остаются Admin 4. ✅ Остальные → User 5. ✅ Всем добавляются права 6. ✅ Добавляется система доступа к ресурсам ### Ручная миграция Если нужно вручную: ```json { "username": "Root", "password": "hashed_password", "role": "owner", "permissions": { "manage_users": true, "manage_roles": true, "manage_servers": true, "manage_tickets": true, "manage_files": true, "delete_users": true, "view_all_resources": true }, "resource_access": { "servers": [], "tickets": [], "files": [] } } ``` --- ## 🐛 Известные проблемы ### Нет критических проблем Все функции протестированы и работают корректно. ### Ограничения - Может быть только один владелец - Владельца нельзя удалить - Передача прав владельца понижает текущего владельца до admin --- ## 📞 Поддержка ### Документация - [OWNER_PERMISSIONS.md](OWNER_PERMISSIONS.md) - Система прав - [CHANGELOG.md](CHANGELOG.md) - История изменений - [API.md](API.md) - API документация - [FAQ.md](FAQ.md) - Часто задаваемые вопросы ### Проблемы с миграцией? 1. Проверьте backup файл 2. Читайте вывод скрипта миграции 3. Проверьте формат users.json 4. Восстановите из backup если нужно --- ## 🎯 Что дальше? ### Планы на v1.2.0 - [ ] UI компонент управления пользователями - [ ] Логи действий администраторов - [ ] Экспорт/импорт пользователей - [ ] Групповое управление правами - [ ] История изменений прав - [ ] Email уведомления о изменении прав --- ## 🙏 Благодарности Спасибо за использование MC Panel! Эта версия добавляет мощную систему управления пользователями, которая даёт полный контроль над панелью. --- **Версия:** 1.1.0 **Дата:** 15 января 2026 **Статус:** RELEASED ✅ **Полный контроль над панелью!** 👑🚀