Add Personal account
This commit is contained in:
228
PROFILE_SYSTEM.md
Normal file
228
PROFILE_SYSTEM.md
Normal file
@@ -0,0 +1,228 @@
|
||||
# 👤 Система личного кабинета
|
||||
|
||||
## Что добавлено
|
||||
|
||||
### ✅ Новые возможности
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user