Files
RoleForge/app/services/account_status.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

25 lines
618 B
Python

"""Account availability (temporary ban expiry, etc.)."""
from __future__ import annotations
import asyncpg
async def clear_expired_temporary_ban(conn: asyncpg.Connection, user_id: str) -> None:
"""If ban_until has passed, clear ban fields and re-enable login."""
await conn.execute(
"""
update users
set
is_active = true,
ban_until = null,
ban_reason = null,
banned_by_id = null,
updated_at = now()
where id = $1::uuid
and ban_until is not null
and ban_until <= now()
""",
user_id,
)