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

7.4 KiB
Raw Blame History

👤 Система личного кабинета

Что добавлено

Новые возможности

  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:

{
  "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
}

Безопасность

Изменение имени пользователя

  1. Проверка пароля
  2. Проверка уникальности нового имени
  3. Обновление владельцев серверов
  4. Обновление доступов к серверам
  5. Создание нового JWT токена

Изменение пароля

  1. Проверка текущего пароля
  2. Проверка длины нового пароля (минимум 6 символов)
  3. Хеширование нового пароля (bcrypt)

Готово!

Система личного кабинета полностью интегрирована в MC Panel. Пользователи могут:

  • Просматривать статистику своего профиля
  • Изменять имя пользователя
  • Изменять пароль
  • Видеть свои серверы и тикеты

Доступ к личному кабинету

Кнопка "Личный кабинет" доступна всем пользователям в header рядом с кнопкой "Тикеты".

Учётные данные по умолчанию

  • Логин: Sofa12345
  • Пароль: arkonsad123
  • Роль: admin