Files
NeveTimePanel/VERSION_1.1.0.md

428 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎉 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 ✅
**Полный контроль над панелью!** 👑🚀