Files
NeveTimePanel/PROFILE_SYSTEM.md
2026-01-14 21:54:24 +06:00

229 lines
7.4 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.
# 👤 Система личного кабинета
## Что добавлено
### ✅ Новые возможности
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