проверка активности клиета и изменение своего профиля
This commit is contained in:
Binary file not shown.
+31
-1
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user