creating first admin and update restrictions for ordinary users

This commit is contained in:
2026-03-04 17:06:43 +03:00
parent 08e48aac29
commit ea06c16aac
16 changed files with 128 additions and 58 deletions

View File

@@ -38,15 +38,19 @@ class User(Base):
async def create_user(user_info):
async with AsyncSessionLocal() as session:
user_data = user_info.dict(exclude_unset=True)
new_user = User(**user_data)
session.add(new_user)
await session.commit()
await session.refresh(new_user)
result = await session.execute(select(User).where(User.code==user_info.code))
user = result.scalar_one_or_none()
if user == None:
user_data = user_info.dict(exclude_unset=True)
new_user = User(**user_data)
session.add(new_user)
await session.commit()
await session.refresh(new_user)
return user
async def update_user(user_info):
async with AsyncSessionLocal() as session:
result = await session.execute(select(User).where(User.code==user_info.code))
result = await session.execute(select(User).where(User.id==user_info.id))
user = result.scalar_one_or_none()
if user:
update_data = user_info.dict(exclude_unset=True)
@@ -64,13 +68,29 @@ async def list_users():
return users
else:
return None
async def list_user(id):
async with AsyncSessionLocal() as session:
result = await session.execute(select(User).where(User.id == id))
user = result.scalar_one_or_none()
if user:
return user
else:
return None
async def list_user_by_code(code):
async with AsyncSessionLocal() as session:
result = await session.execute(select(User).where(User.code == code))
user = result.scalar_one_or_none()
if user:
return user
else:
return None
async def login_user(code):
async with AsyncSessionLocal() as session:
result = await session.execute(select(User).where(User.code == code.code))
user = result.scalar_one_or_none()
if user:
user.last_login=datetime.now(timezone.utc)
user.activated=True
await session.commit()
return user
else: