229 lines
7.4 KiB
Markdown
229 lines
7.4 KiB
Markdown
# 👤 Система личного кабинета
|
||
|
||
## Что добавлено
|
||
|
||
### ✅ Новые возможности
|
||
|
||
1. **Личный кабинет** - полноценная система управления профилем
|
||
2. **Три вкладки**:
|
||
- 📊 **Обзор** - статистика и информация о профиле
|
||
- 👤 **Имя пользователя** - изменение имени пользователя
|
||
- 🔒 **Пароль** - изменение пароля
|
||
|
||
3. **Кнопка "Личный кабинет"** в header рядом с кнопкой "Тикеты"
|
||
|
||
### 📊 Вкладка "Обзор"
|
||
|
||
#### Информация о пользователе
|
||
- Имя пользователя
|
||
- Роль (Администратор, Тех. поддержка, Пользователь)
|
||
- Цветной бейдж роли
|
||
|
||
#### Статистика
|
||
- **Серверы**:
|
||
- Всего серверов
|
||
- Мои серверы (владелец)
|
||
- Доступные серверы
|
||
|
||
- **Тикеты**:
|
||
- Всего тикетов
|
||
- На рассмотрении
|
||
- В работе
|
||
- Закрыто
|
||
|
||
- **Роль**:
|
||
- Название роли
|
||
- Описание прав
|
||
|
||
#### Список серверов
|
||
- Отображение всех серверов пользователя
|
||
- Название и ID сервера
|
||
- Красивые карточки
|
||
|
||
### 👤 Вкладка "Имя пользователя"
|
||
|
||
#### Возможности
|
||
- Просмотр текущего имени
|
||
- Ввод нового имени (минимум 3 символа)
|
||
- Подтверждение паролем
|
||
- Автоматический перелогин с новым именем
|
||
|
||
#### Безопасность
|
||
- Проверка уникальности имени
|
||
- Проверка пароля
|
||
- Обновление владельцев серверов
|
||
- Обновление доступов к серверам
|
||
- Новый JWT токен
|
||
|
||
### 🔒 Вкладка "Пароль"
|
||
|
||
#### Возможности
|
||
- Ввод текущего пароля
|
||
- Ввод нового пароля (минимум 6 символов)
|
||
- Подтверждение нового пароля
|
||
- Показ/скрытие паролей
|
||
|
||
#### Безопасность
|
||
- Проверка текущего пароля
|
||
- Проверка совпадения новых паролей
|
||
- Хеширование пароля (bcrypt)
|
||
|
||
## 🚀 Как использовать
|
||
|
||
### Открытие личного кабинета
|
||
1. Нажмите кнопку "Личный кабинет" в header
|
||
2. Откроется страница с тремя вкладками
|
||
|
||
### Просмотр статистики
|
||
1. Откройте вкладку "Обзор"
|
||
2. Посмотрите информацию о профиле
|
||
3. Посмотрите статистику по серверам и тикетам
|
||
4. Посмотрите список своих серверов
|
||
|
||
### Изменение имени пользователя
|
||
1. Откройте вкладку "Имя пользователя"
|
||
2. Введите новое имя (минимум 3 символа)
|
||
3. Введите текущий пароль для подтверждения
|
||
4. Нажмите "Изменить имя пользователя"
|
||
5. Вы будете автоматически перелогинены
|
||
|
||
⚠️ **Важно**: После изменения имени:
|
||
- Обновятся все серверы, где вы владелец
|
||
- Обновятся все доступы к серверам
|
||
- Вы получите новый токен авторизации
|
||
|
||
### Изменение пароля
|
||
1. Откройте вкладку "Пароль"
|
||
2. Введите текущий пароль
|
||
3. Введите новый пароль (минимум 6 символов)
|
||
4. Подтвердите новый пароль
|
||
5. Нажмите "Изменить пароль"
|
||
|
||
⚠️ **Важно**: После изменения пароля используйте новый пароль для входа.
|
||
|
||
## 📁 Новые файлы
|
||
|
||
### 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:**
|
||
```json
|
||
{
|
||
"new_username": "NewUsername",
|
||
"password": "current_password"
|
||
}
|
||
```
|
||
|
||
**Response:**
|
||
```json
|
||
{
|
||
"message": "Имя пользователя изменено",
|
||
"access_token": "new_jwt_token",
|
||
"username": "NewUsername"
|
||
}
|
||
```
|
||
|
||
#### PUT /api/profile/password
|
||
Изменить пароль
|
||
|
||
**Request:**
|
||
```json
|
||
{
|
||
"old_password": "old_password",
|
||
"new_password": "new_password"
|
||
}
|
||
```
|
||
|
||
**Response:**
|
||
```json
|
||
{
|
||
"message": "Пароль изменён"
|
||
}
|
||
```
|
||
|
||
#### GET /api/profile/stats
|
||
Получить статистику профиля
|
||
|
||
**Response:**
|
||
```json
|
||
{
|
||
"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
|
||
}
|
||
```
|
||
|
||
### Безопасность
|
||
|
||
#### Изменение имени пользователя
|
||
1. Проверка пароля
|
||
2. Проверка уникальности нового имени
|
||
3. Обновление владельцев серверов
|
||
4. Обновление доступов к серверам
|
||
5. Создание нового JWT токена
|
||
|
||
#### Изменение пароля
|
||
1. Проверка текущего пароля
|
||
2. Проверка длины нового пароля (минимум 6 символов)
|
||
3. Хеширование нового пароля (bcrypt)
|
||
|
||
## ✅ Готово!
|
||
|
||
Система личного кабинета полностью интегрирована в MC Panel. Пользователи могут:
|
||
- Просматривать статистику своего профиля
|
||
- Изменять имя пользователя
|
||
- Изменять пароль
|
||
- Видеть свои серверы и тикеты
|
||
|
||
### Доступ к личному кабинету
|
||
Кнопка "Личный кабинет" доступна всем пользователям в header рядом с кнопкой "Тикеты".
|
||
|
||
### Учётные данные по умолчанию
|
||
- **Логин**: Sofa12345
|
||
- **Пароль**: arkonsad123
|
||
- **Роль**: admin
|