7.4 KiB
7.4 KiB
👤 Система личного кабинета
Что добавлено
✅ Новые возможности
-
Личный кабинет - полноценная система управления профилем
-
Три вкладки:
- 📊 Обзор - статистика и информация о профиле
- 👤 Имя пользователя - изменение имени пользователя
- 🔒 Пароль - изменение пароля
-
Кнопка "Личный кабинет" в header рядом с кнопкой "Тикеты"
📊 Вкладка "Обзор"
Информация о пользователе
- Имя пользователя
- Роль (Администратор, Тех. поддержка, Пользователь)
- Цветной бейдж роли
Статистика
-
Серверы:
- Всего серверов
- Мои серверы (владелец)
- Доступные серверы
-
Тикеты:
- Всего тикетов
- На рассмотрении
- В работе
- Закрыто
-
Роль:
- Название роли
- Описание прав
Список серверов
- Отображение всех серверов пользователя
- Название и ID сервера
- Красивые карточки
👤 Вкладка "Имя пользователя"
Возможности
- Просмотр текущего имени
- Ввод нового имени (минимум 3 символа)
- Подтверждение паролем
- Автоматический перелогин с новым именем
Безопасность
- Проверка уникальности имени
- Проверка пароля
- Обновление владельцев серверов
- Обновление доступов к серверам
- Новый JWT токен
🔒 Вкладка "Пароль"
Возможности
- Ввод текущего пароля
- Ввод нового пароля (минимум 6 символов)
- Подтверждение нового пароля
- Показ/скрытие паролей
Безопасность
- Проверка текущего пароля
- Проверка совпадения новых паролей
- Хеширование пароля (bcrypt)
🚀 Как использовать
Открытие личного кабинета
- Нажмите кнопку "Личный кабинет" в header
- Откроется страница с тремя вкладками
Просмотр статистики
- Откройте вкладку "Обзор"
- Посмотрите информацию о профиле
- Посмотрите статистику по серверам и тикетам
- Посмотрите список своих серверов
Изменение имени пользователя
- Откройте вкладку "Имя пользователя"
- Введите новое имя (минимум 3 символа)
- Введите текущий пароль для подтверждения
- Нажмите "Изменить имя пользователя"
- Вы будете автоматически перелогинены
⚠️ Важно: После изменения имени:
- Обновятся все серверы, где вы владелец
- Обновятся все доступы к серверам
- Вы получите новый токен авторизации
Изменение пароля
- Откройте вкладку "Пароль"
- Введите текущий пароль
- Введите новый пароль (минимум 6 символов)
- Подтвердите новый пароль
- Нажмите "Изменить пароль"
⚠️ Важно: После изменения пароля используйте новый пароль для входа.
📁 Новые файлы
Backend
- Добавлены endpoints в
backend/main.py:PUT /api/profile/username- изменить имя пользователяPUT /api/profile/password- изменить парольGET /api/profile/stats- получить статистику профиля
Frontend
frontend/src/components/Profile.jsx- компонент личного кабинета
🎨 Интерфейс
Вкладки
- Современный дизайн с вкладками
- Плавные переходы между вкладками
- Адаптивный дизайн
Карточки статистики
- Цветные иконки
- Числовые показатели
- Детальная информация
Формы
- Валидация полей
- Показ/скрытие паролей
- Предупреждения о последствиях
- Кнопки с индикацией загрузки
🔧 Технические детали
API Endpoints
PUT /api/profile/username
Изменить имя пользователя
Request:
{
"new_username": "NewUsername",
"password": "current_password"
}
Response:
{
"message": "Имя пользователя изменено",
"access_token": "new_jwt_token",
"username": "NewUsername"
}
PUT /api/profile/password
Изменить пароль
Request:
{
"old_password": "old_password",
"new_password": "new_password"
}
Response:
{
"message": "Пароль изменён"
}
GET /api/profile/stats
Получить статистику профиля
Response:
{
"username": "username",
"role": "user",
"owned_servers": [
{
"name": "server1",
"displayName": "My Server"
}
],
"accessible_servers": [],
"tickets": {
"total": 5,
"pending": 2,
"in_progress": 1,
"closed": 2
},
"total_servers": 1
}
Безопасность
Изменение имени пользователя
- Проверка пароля
- Проверка уникальности нового имени
- Обновление владельцев серверов
- Обновление доступов к серверам
- Создание нового JWT токена
Изменение пароля
- Проверка текущего пароля
- Проверка длины нового пароля (минимум 6 символов)
- Хеширование нового пароля (bcrypt)
✅ Готово!
Система личного кабинета полностью интегрирована в MC Panel. Пользователи могут:
- Просматривать статистику своего профиля
- Изменять имя пользователя
- Изменять пароль
- Видеть свои серверы и тикеты
Доступ к личному кабинету
Кнопка "Личный кабинет" доступна всем пользователям в header рядом с кнопкой "Тикеты".
Учётные данные по умолчанию
- Логин: Sofa12345
- Пароль: arkonsad123
- Роль: admin