From 1e1275f3c72add42f13750900f956bb71f5c5f7a Mon Sep 17 00:00:00 2001 From: Vladless Date: Tue, 14 Apr 2026 18:58:02 +0000 Subject: [PATCH] Auth sync is_admin on TG login --- database/identities.py | 7 ++++++- main.py | 0 2 files changed, 6 insertions(+), 1 deletion(-) mode change 100644 => 100755 main.py diff --git a/database/identities.py b/database/identities.py index 52bd5665..971455a1 100644 --- a/database/identities.py +++ b/database/identities.py @@ -688,10 +688,15 @@ async def detach_telegram(session: AsyncSession, identity_id: str) -> Identity | async def get_or_create_identity_for_tg(session: AsyncSession, tg_id: int) -> Identity: """Для tg_id возвращает существующую идентичность или создаёт новую и привязывает User.""" + is_admin = (await session.execute(select(Admin).where(Admin.tg_id == tg_id))).scalar_one_or_none() is not None identity = await get_identity_by_tg_id(session, tg_id) if identity: + if is_admin and not identity.is_admin: + identity.is_admin = True + await session.flush() + await session.refresh(identity) return identity - identity = Identity(tg_id=tg_id) + identity = Identity(tg_id=tg_id, is_admin=is_admin) session.add(identity) await session.flush() await session.execute(User.__table__.update().where(User.tg_id == tg_id).values(identity_id=identity.id)) diff --git a/main.py b/main.py old mode 100644 new mode 100755