updated services web user selection
This commit is contained in:
@@ -210,7 +210,7 @@ class LoginHandler:
|
||||
|
||||
user_dict = found_user.get_dict()
|
||||
person_dict = found_user.person.get_dict()
|
||||
|
||||
|
||||
for living_space in living_spaces:
|
||||
build_part = BuildParts.query.filter(BuildParts.id == living_space.build_parts_id).first()
|
||||
if not build_part:
|
||||
@@ -344,7 +344,12 @@ class LoginHandler:
|
||||
# TODO: erase this bypass later
|
||||
filter_endpoints_and_events = db_session.query(EndpointRestriction.operation_uu_id, Events.function_code
|
||||
).join(EndpointRestriction, EndpointRestriction.id == Events.endpoint_id).filter().all()
|
||||
|
||||
# Get reachable applications
|
||||
reachable_app_codes = Application2Employee.get_application_codes(employee_id=int(result_with_keys_dict['Employees.id']), db=db_session)
|
||||
# Get reachable events
|
||||
reachable_event_codes = {endpoint_name: function_code for endpoint_name, function_code in filter_endpoints_and_events}
|
||||
|
||||
add_company = {
|
||||
"uu_id": str(result_with_keys_dict["Employees.uu_id"]),
|
||||
"public_name": result_with_keys_dict["Companies.public_name"],
|
||||
@@ -356,7 +361,7 @@ class LoginHandler:
|
||||
redis_handler = RedisHandlers()
|
||||
user_uu_id = Users.query.filter(Users.person_id == result_with_keys_dict['People.id']).first().uu_id
|
||||
redis_result = redis_handler.update_token_at_redis(token=access_token, add_payload=add_company, user_uuid=user_uu_id)
|
||||
return {"selected_uu_id": data.uuid}
|
||||
return {"selected_uu_id": data.uuid, "reachable_app_codes": reachable_app_codes}
|
||||
|
||||
@classmethod
|
||||
def handle_occupant_selection(cls, access_token: str, data: Any, token_dict: TokenDictType):
|
||||
@@ -391,7 +396,9 @@ class LoginHandler:
|
||||
reachable_event_codes = {endpoint_name: function_code for endpoint_name, function_code in filter_endpoints_and_events}
|
||||
|
||||
# Get reachable applications
|
||||
print('selected_build_living_space_first', selected_build_living_space_first.id)
|
||||
reachable_app_codes = Application2Occupant.get_application_codes(build_living_space_id=selected_build_living_space_first.id, db=db)
|
||||
print('reachable_app_codes', reachable_app_codes)
|
||||
|
||||
build_part = BuildParts.query.filter(BuildParts.id == result_with_keys_dict['BuildParts.id']).first()
|
||||
if not build_part:
|
||||
@@ -410,7 +417,7 @@ class LoginHandler:
|
||||
|
||||
user_uu_id = Users.query.filter(Users.person_id == result_with_keys_dict['People.id']).first().uu_id
|
||||
redis_handler.update_token_at_redis(token=access_token, add_payload=add_build_living_space, user_uuid=user_uu_id)
|
||||
return {"selected_uu_id": data.uuid}
|
||||
return {"selected_uu_id": data.uuid, "reachable_app_codes": reachable_app_codes}
|
||||
|
||||
@classmethod
|
||||
def authentication_select_company_or_occupant_type(cls, request: Any, data: Any):
|
||||
|
||||
@@ -21,14 +21,14 @@ class PageHandlers:
|
||||
|
||||
@classmethod
|
||||
def retrieve_valid_sites_via_token(cls, access_token: str) -> list:
|
||||
"""
|
||||
Retrieve valid pages via token. {"access_token": "string"} | Results: list(sites)
|
||||
"""
|
||||
""" Retrieve valid pages via token. {"access_token": "string"} | Results: list(sites) """
|
||||
if result := RedisHandlers.get_object_from_redis(access_token=access_token):
|
||||
if result.is_employee:
|
||||
if result.selected_company and result.selected_company.reachable_app_codes:
|
||||
return result.selected_company.reachable_app_codes.keys()
|
||||
elif result.is_occupant:
|
||||
if result.selected_occupant and result.selected_occupant.reachable_app_codes:
|
||||
return result.selected_occupant.reachable_app_codes.keys()
|
||||
if result.is_employee and result.selected_company:
|
||||
employee_uuid = result.selected_company.get("employee_uu_id", "")
|
||||
if reachable_app_codes_dict := result.reachable_app_codes:
|
||||
return reachable_app_codes_dict.get(employee_uuid, {}).keys()
|
||||
elif result.is_occupant and result.selected_occupant:
|
||||
living_space_uu_id = result.selected_occupant.get("build_living_space_uu_id", "")
|
||||
if reachable_app_codes_dict := result.reachable_app_codes:
|
||||
return reachable_app_codes_dict.get(living_space_uu_id, {}).keys()
|
||||
raise ValueError("EYS_0013")
|
||||
|
||||
Reference in New Issue
Block a user