login tested updated
This commit is contained in:
@@ -1,12 +1,9 @@
|
||||
from typing import Any, ClassVar, Dict
|
||||
from sqlalchemy import or_
|
||||
from typing import Any, Dict
|
||||
|
||||
from ApiLayers.ApiLibrary.common.line_number import get_line_number_for_error
|
||||
from ApiLayers.ErrorHandlers import HTTPExceptionApi
|
||||
from ApiLayers.ApiValidations.Request.authentication import Login
|
||||
from ApiLayers.ApiLibrary.token.password_module import PasswordModule
|
||||
from ApiLayers.ApiServices.Token.token_handler import TokenService
|
||||
from ApiLayers.Schemas import Users
|
||||
from ApiLayers.ApiLibrary.common.line_number import get_line_number_for_error
|
||||
|
||||
|
||||
class UserLoginModule:
|
||||
@@ -15,15 +12,17 @@ class UserLoginModule:
|
||||
self.request = request
|
||||
|
||||
@staticmethod
|
||||
async def check_user_exists(access_key) -> ClassVar[Users]:
|
||||
def check_user_exists(access_key: str):
|
||||
from ApiLayers.Schemas import Users
|
||||
|
||||
"""Check if user exists."""
|
||||
db_session = Users.new_session()
|
||||
if "@" in access_key:
|
||||
found_user = Users.filter_one(
|
||||
found_user: Users = Users.filter_one(
|
||||
Users.email == access_key.lower(), db=db_session
|
||||
).data
|
||||
else:
|
||||
found_user = Users.filter_one(
|
||||
found_user: Users = Users.filter_one(
|
||||
Users.phone_number == access_key.replace(" ", ""), db=db_session
|
||||
).data
|
||||
if not found_user:
|
||||
@@ -35,15 +34,13 @@ class UserLoginModule:
|
||||
)
|
||||
return found_user
|
||||
|
||||
async def login_user_via_credentials(self, access_data: "Login") -> Dict[str, Any]:
|
||||
def login_user_via_credentials(self, access_data: "Login") -> Dict[str, Any]:
|
||||
from ApiLayers.ApiServices.Token.token_handler import TokenService
|
||||
from ApiLayers.Schemas import Users
|
||||
|
||||
"""Login user via credentials."""
|
||||
# Get the actual data from the BaseRequestModel if needed
|
||||
if hasattr(access_data, "data"):
|
||||
access_data = access_data.data
|
||||
|
||||
found_user: Users = await self.check_user_exists(
|
||||
access_key=access_data.access_key
|
||||
)
|
||||
found_user: Users = self.check_user_exists(access_key=access_data.access_key)
|
||||
if len(found_user.hash_password) < 5:
|
||||
raise HTTPExceptionApi(
|
||||
error_code="HTTP_400_BAD_REQUEST",
|
||||
@@ -51,7 +48,6 @@ class UserLoginModule:
|
||||
loc=get_line_number_for_error(),
|
||||
sys_msg="Invalid password create a password to user first",
|
||||
)
|
||||
|
||||
if PasswordModule.check_password(
|
||||
domain=access_data.domain,
|
||||
id_=found_user.uu_id,
|
||||
|
||||
@@ -126,7 +126,7 @@ class TokenService:
|
||||
request=dict(request.headers),
|
||||
available_occupants=occupants_selection_dict,
|
||||
timezone=user.local_timezone or "GMT+0",
|
||||
lang=user.lang or "tr",
|
||||
lang="tr",
|
||||
).model_dump()
|
||||
if access_token := cls.set_object_to_redis(user, model_value):
|
||||
return {
|
||||
@@ -229,6 +229,7 @@ class TokenService:
|
||||
}
|
||||
)
|
||||
person = People.filter_one(People.id == user.person_id, db=db_session).data
|
||||
|
||||
model_value = EmployeeTokenObject(
|
||||
domain=domain,
|
||||
user_type=UserType.employee.value,
|
||||
@@ -243,7 +244,7 @@ class TokenService:
|
||||
duty_uu_id_list=duty_uu_id_list,
|
||||
duty_id_list=duty_id_list,
|
||||
timezone=user.local_timezone or "GMT+0",
|
||||
lang=user.lang or "tr",
|
||||
lang="tr",
|
||||
).model_dump()
|
||||
if access_token := cls.set_object_to_redis(user, model_value):
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user