auth service up running

This commit is contained in:
2025-01-10 14:17:22 +03:00
parent 03accfed1b
commit 79aa3a1bc5
41 changed files with 480 additions and 340 deletions

View File

@@ -22,7 +22,7 @@ def save_access_token_to_redis(
Employees,
Staff,
Addresses,
OccupantTypes
OccupantTypes,
)
if not found_user:
@@ -32,7 +32,9 @@ def save_access_token_to_redis(
)
# Check user is already logged in or has a previous session
already_tokens = AccessObjectActions.get_object_via_user_uu_id(user_id=found_user.uu_id)
already_tokens = AccessObjectActions.get_object_via_user_uu_id(
user_id=found_user.uu_id
)
for key, token_user in already_tokens.items():
if token_user.get("domain", "") == domain:
redis_cli.delete(key)

View File

@@ -9,10 +9,10 @@ class AccessObjectActions:
@classmethod
def save_object_to_redis(
cls,
access_token,
model_object: typing.Union[OccupantTokenObject, EmployeeTokenObject],
expiry_minutes: int = Auth.TOKEN_EXPIRE_MINUTES_30.total_seconds() // 60
cls,
access_token,
model_object: typing.Union[OccupantTokenObject, EmployeeTokenObject],
expiry_minutes: int = Auth.TOKEN_EXPIRE_MINUTES_30.total_seconds() // 60,
) -> bool:
"""Save access token object to Redis with expiry
Args:
@@ -28,17 +28,14 @@ class AccessObjectActions:
RedisActions.save_object_to_redis(
access_token=access_token,
model_object=model_object,
expiry_minutes=expiry_minutes
expiry_minutes=expiry_minutes,
)
return True
except Exception as e:
print("Save Object to Redis Error: ", e)
raise HTTPException(
status_code=status.HTTP_503_SERVICE_UNAVAILABLE,
detail=dict(
message="Failed to save token to Redis",
error=str(e)
),
detail=dict(message="Failed to save token to Redis", error=str(e)),
)
@classmethod
@@ -64,23 +61,21 @@ class AccessObjectActions:
if not hasattr(request, "headers"):
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail=dict(
message="Headers not found in request"
)
detail=dict(message="Headers not found in request"),
)
access_token = request.headers.get(Auth.ACCESS_TOKEN_TAG)
if not access_token:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail=dict(
message="Unauthorized user, please login"
),
detail=dict(message="Unauthorized user, please login"),
)
return access_token
@classmethod
def get_token_object(cls, request) -> typing.Union[OccupantTokenObject, EmployeeTokenObject]:
def get_token_object(
cls, request
) -> typing.Union[OccupantTokenObject, EmployeeTokenObject]:
"""Get and validate token object from request
Args:
request: The request object
@@ -93,18 +88,16 @@ class AccessObjectActions:
return RedisActions.get_object_via_access_key(request)
except Exception as e:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail=dict(
message=str(e)
)
status_code=status.HTTP_401_UNAUTHORIZED, detail=dict(message=str(e))
)
@classmethod
def get_object_via_access_key(
cls, request,
cls,
request,
) -> typing.Union[EmployeeTokenObject, OccupantTokenObject, None]:
from api_configs import Auth
access_object = RedisActions.get_with_regex(
value_regex=str(request.headers.get(Auth.ACCESS_TOKEN_TAG) + ":*")
).data
@@ -120,7 +113,7 @@ class AccessObjectActions:
status_code=401,
detail=dict(
message="User type is not found in the token object. Please reach to your administrator."
)
),
)