# πŸ‘€ БистСма Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π° ## Π§Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ### βœ… НовыС возмоТности 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