11 KiB
🎉 MC Panel v1.1.0 - Система прав и ролей
Дата релиза: 15 января 2026
Тип релиза: Minor Update
Статус: RELEASED ✅
📋 Что нового?
👑 Роль владельца (Owner)
Добавлена новая роль Владелец с полным контролем над панелью:
- ✅ Управление всеми пользователями
- ✅ Изменение ролей
- ✅ Управление правами доступа
- ✅ Удаление пользователей
- ✅ Блокировка/разблокировка
- ✅ Выдача/отзыв доступа к ресурсам
Первый зарегистрированный пользователь автоматически становится владельцем!
🔐 Система прав
Детальная система управления правами пользователей:
7 типов прав:
manage_users- Управление пользователямиmanage_roles- Изменение ролей (только Owner)manage_servers- Управление серверамиmanage_tickets- Управление тикетамиmanage_files- Управление файламиdelete_users- Удаление пользователей (только Owner)view_all_resources- Просмотр всех ресурсов
👥 5 ролей пользователей
Owner (Владелец) - Полный контроль
↓
Admin (Администратор) - Управление панелью
↓
Support (Поддержка) - Работа с тикетами
↓
User (Пользователь) - Базовые возможности
↓
Banned (Заблокирован) - Нет доступа
🆕 Новые API эндпоинты
1. Управление пользователями
GET /api/users
Получить список всех пользователей (Owner/Admin)
2. Изменение роли
PUT /api/users/{user_id}/role
Изменить роль пользователя (только Owner)
3. Управление правами
PUT /api/users/{user_id}/permissions
Изменить права пользователя (только Owner)
4. Доступ к серверам
POST /api/users/{user_id}/access/servers
DELETE /api/users/{user_id}/access/servers/{server_name}
Выдать/забрать доступ к серверу (Owner/Admin)
5. Блокировка
POST /api/users/{user_id}/ban
POST /api/users/{user_id}/unban
Заблокировать/разблокировать пользователя (Owner/Admin)
6. Удаление
DELETE /api/users/{user_id}
Удалить пользователя (только Owner)
🛠️ Инструменты миграции
migrate_users.py
Автоматический скрипт миграции существующих пользователей:
cd backend
python migrate_users.py
Что делает:
- ✅ Создаёт backup users.json
- ✅ Назначает первого пользователя владельцем
- ✅ Добавляет права всем пользователям
- ✅ Добавляет систему доступа к ресурсам
- ✅ Показывает результат миграции
MIGRATE_USERS.bat
Bat файл для Windows:
MIGRATE_USERS.bat
📚 Новая документация
OWNER_PERMISSIONS.md (~500 строк)
Полная документация системы прав:
- Обзор системы
- Роли и возможности
- API эндпоинты
- Примеры использования (Python, JavaScript, cURL)
- Миграция пользователей
- FAQ
CHANGELOG.md
История всех изменений проекта:
- Версия 1.1.0 - Система прав
- Версия 1.0.0 - Первый релиз
🔄 Изменения
Backend
Структура пользователя:
{
"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/*"]
}
}
Проверка прав:
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
# Создайте backup
BACKUP_DATA.bat
Шаг 2: Обновление кода
# Остановите панель
STOP_DOCKER.bat
# Обновите код
git pull origin main
# Или скачайте новую версию
Шаг 3: Миграция пользователей
# Запустите миграцию
MIGRATE_USERS.bat
# Или вручную
cd backend
python migrate_users.py
Шаг 4: Перезапуск
# Запустите панель
START_DOCKER.bat
# Или
docker-compose up -d --build
Шаг 5: Проверка
- Войдите как владелец
- Проверьте права пользователей
- Настройте доступ к ресурсам
💡 Примеры использования
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
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" })
});
🔒 Безопасность
Новые меры безопасности
- ✅ Проверка прав на всех административных эндпоинтах
- ✅ Логирование действий владельца
- ✅ Защита от удаления владельца
- ✅ Автоматическое понижение роли при передаче прав
- ✅ Детальный контроль доступа к ресурсам
Рекомендации
- Регулярно проверяйте права пользователей
- Используйте роль Support для службы поддержки
- Блокируйте неактивных пользователей
- Логируйте все административные действия
- Создавайте backup перед изменением прав
📝 Миграция данных
Автоматическая миграция
При запуске migrate_users.py:
- ✅ Создаётся backup с timestamp
- ✅ Первый пользователь → Owner
- ✅ Admin остаются Admin
- ✅ Остальные → User
- ✅ Всем добавляются права
- ✅ Добавляется система доступа к ресурсам
Ручная миграция
Если нужно вручную:
{
"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 - Система прав
- CHANGELOG.md - История изменений
- API.md - API документация
- FAQ.md - Часто задаваемые вопросы
Проблемы с миграцией?
- Проверьте backup файл
- Читайте вывод скрипта миграции
- Проверьте формат users.json
- Восстановите из backup если нужно
🎯 Что дальше?
Планы на v1.2.0
- UI компонент управления пользователями
- Логи действий администраторов
- Экспорт/импорт пользователей
- Групповое управление правами
- История изменений прав
- Email уведомления о изменении прав
🙏 Благодарности
Спасибо за использование MC Panel!
Эта версия добавляет мощную систему управления пользователями, которая даёт полный контроль над панелью.
Версия: 1.1.0
Дата: 15 января 2026
Статус: RELEASED ✅
Полный контроль над панелью! 👑🚀