Files
RoleForge/app/schemas/profile.py
Sergey Antropoff b2d3b6b803 Профиль и аккаунт
- API и страницы профиля (редактирование, смена пароля, аватар), публичные карточки.
- Сайдбар: блок пользователя, пункт Users для admin/root, исправлен порядок
  инициализации (показ admin-only после initAuthSession, currentUser).
- GET /auth/me: ответ через ProfileMeResponse, исправлена валидация (is_founder bool).

Команды и роли
- Маршруты и UI команд; при редактировании роли: видимость Team, выбор команды
  в модалке, только команды с активным членством; API team_id в details/ update.
- GET /api/v1/teams?membership=active для списка «своих» команд.
- Форма роли: сегмент Team, панель выбора команды только при Team и не при
  с
2026-05-05 08:15:21 +03:00

44 lines
1.2 KiB
Python

from pydantic import BaseModel, Field
class ProfileMeResponse(BaseModel):
id: str
username: str
email: str
full_name: str
role: str
account_group: str = "users"
is_founder: bool = False
profile_bio: str = ""
avatar_ext: str | None = None
avatar_54: str | None = None
avatar_128: str | None = None
avatar_256: str | None = None
avatar_original: str | None = None
class PublicProfileResponse(BaseModel):
id: str
username: str
full_name: str
profile_bio: str = ""
role: str = "user"
account_group: str = "users"
is_founder: bool = False
is_removed: bool = False
avatar_54: str | None = None
avatar_128: str | None = None
avatar_256: str | None = None
class ProfileUpdate(BaseModel):
full_name: str | None = Field(default=None, max_length=200)
profile_bio: str | None = Field(default=None, max_length=4000)
username: str | None = Field(default=None, max_length=80)
class ProfilePasswordChange(BaseModel):
current_password: str = Field(min_length=1, max_length=500)
new_password: str = Field(min_length=8, max_length=500)
new_password_confirm: str = Field(min_length=8, max_length=500)