Files
NeveTimePanel/VERSION_1.1.0.md

11 KiB
Raw Blame History

🎉 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. Управление пользователями

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: Проверка

  1. Войдите как владелец
  2. Проверьте права пользователей
  3. Настройте доступ к ресурсам

💡 Примеры использования

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" })
});

🔒 Безопасность

Новые меры безопасности

  • Проверка прав на всех административных эндпоинтах
  • Логирование действий владельца
  • Защита от удаления владельца
  • Автоматическое понижение роли при передаче прав
  • Детальный контроль доступа к ресурсам

Рекомендации

  1. Регулярно проверяйте права пользователей
  2. Используйте роль Support для службы поддержки
  3. Блокируйте неактивных пользователей
  4. Логируйте все административные действия
  5. Создавайте backup перед изменением прав

📝 Миграция данных

Автоматическая миграция

При запуске migrate_users.py:

  1. Создаётся backup с timestamp
  2. Первый пользователь → Owner
  3. Admin остаются Admin
  4. Остальные → User
  5. Всем добавляются права
  6. Добавляется система доступа к ресурсам

Ручная миграция

Если нужно вручную:

{
  "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

📞 Поддержка

Документация

Проблемы с миграцией?

  1. Проверьте backup файл
  2. Читайте вывод скрипта миграции
  3. Проверьте формат users.json
  4. Восстановите из backup если нужно

🎯 Что дальше?

Планы на v1.2.0

  • UI компонент управления пользователями
  • Логи действий администраторов
  • Экспорт/импорт пользователей
  • Групповое управление правами
  • История изменений прав
  • Email уведомления о изменении прав

🙏 Благодарности

Спасибо за использование MC Panel!

Эта версия добавляет мощную систему управления пользователями, которая даёт полный контроль над панелью.


Версия: 1.1.0
Дата: 15 января 2026
Статус: RELEASED

Полный контроль над панелью! 👑🚀