проверка активности клиета и изменение своего профиля

This commit is contained in:
2025-12-15 10:54:11 +03:00
parent 1a677f9ef2
commit a484d03894
9 changed files with 298 additions and 44 deletions
+31 -1
View File
@@ -109,6 +109,20 @@ class UserHandler:
else:
userData["photo"] = "static/images/users/default.png"
deleteImage(user.photo)
if "login" in userData:
uniqueLogin = await CRUD.read(
select(User).where(User.login == userData["login"])
)
if uniqueLogin and uniqueLogin.id != user.id:
logger.error("Пользователь с таким логином уже существует")
return {"error": "Пользователь с таким логином уже существует"}
if "username" in userData:
uniqueUserName = await CRUD.read(
select(User).where(User.username == userData["username"])
)
if uniqueUserName and uniqueUserName.id != user.id:
logger.error("Пользователь с таким именем уже существует")
return {"error": "Пользователь с таким именем уже существует"}
try:
userData.pop("id")
editedUser = await user.edit(**userData)
@@ -156,7 +170,9 @@ class UserHandler:
if not user:
logger.error("Пользователь с таким id не найден")
return {}
return user.toDict()
userdata = user.toDict()
userdata.pop("hashed_password")
return userdata
async def delete(id: int, user_id: int = None) -> dict:
userRecordsCount = await StocksRecordsHandler.getUserRecords(id)
@@ -202,12 +218,26 @@ class UserHandler:
)
return True
async def checkActive(id: int) -> bool:
query = select(User).where(User.id == id)
user = await CRUD.read(query)
if not user:
logger.error("Пользователь с таким id не найден")
return False
return user.is_active
async def auth(login: str, password: str) -> dict:
query = select(User).where(User.login == login)
user = await CRUD.read(query)
if not user:
logger.error(f"Пользователь с логином {login} не найден")
return {}
if not user.is_active:
logger.error(f"Пользователь {user.username} не активен")
await ServiceRecordsHandler.add(
user.id, {"Пользователь не активен": user.username}
)
return {}
if not pwd_verify(password, user.hashed_password):
logger.error(f"Неверный пароль пользователя {user.username}")
await ServiceRecordsHandler.add(