auth updated availaible event

This commit is contained in:
berkay 2024-12-06 16:35:25 +03:00
parent 88309eb49d
commit 9e955841c3
9 changed files with 51 additions and 34 deletions

View File

@ -33,8 +33,10 @@ class ModulesBindOccupantEventMethods(MethodToEvent):
living_space = BuildLivingSpace.filter_one( living_space = BuildLivingSpace.filter_one(
BuildLivingSpace.id == build_living_space_id, BuildLivingSpace.id == build_living_space_id,
system=True
).data ).data
modules = Modules.filter_all(Modules.is_default_module == True).data modules = Modules.filter_all(Modules.is_default_module == True).data
print('living_space', living_space, 'modules', modules)
if not living_space or not modules: if not living_space or not modules:
print(f"Giving living Space or Modules: Default not found") print(f"Giving living Space or Modules: Default not found")
return return
@ -104,14 +106,14 @@ class ModulesBindEmployeeEventMethods(MethodToEvent):
@classmethod @classmethod
def bind_default_module_for_first_init_occupant( def bind_default_module_for_first_init_occupant(
cls, employee_id: int, expires_at: str = None cls, employee_id: int, expires_at: str = None
): ):
employee = Employees.filter_one( employee = Employees.filter_one(
Employees.id == employee_id, Employees.id == employee_id,
).data ).data
modules = Modules.filter_all(Modules.is_default_module == True).data modules = Modules.filter_all(Modules.is_default_module == True).data
print('living_space', employee, 'modules', modules)
if not employee or not modules: if not employee or not modules:
print(f"Giving living Space or Modules: Default not found") print(f"Giving living Space or Modules: Default not found")
return return

View File

@ -87,7 +87,9 @@ class UserCreateEventMethods(MethodToEvent):
company_uuid=created_user.related_company, company_uuid=created_user.related_company,
) )
mongo_query_identity.create_domain_via_user(payload=domain_via_user) mongo_query_identity.create_domain_via_user(payload=domain_via_user)
reset_password_token = created_user.reset_password_token(found_user=created_user) reset_password_token = created_user.reset_password_token(
found_user=created_user
)
send_email_completed = send_email( send_email_completed = send_email(
subject=f"Dear {created_user.user_tag}, your password has been changed.", subject=f"Dear {created_user.user_tag}, your password has been changed.",
receivers=[str(created_user.email)], receivers=[str(created_user.email)],

View File

@ -175,7 +175,23 @@ def save_access_token_to_redis(
company_address=company_address, company_address=company_address,
) )
) )
print(dict(
access_token=access_token,
model_object=EmployeeTokenObject(
domain=domain,
user_type=UserType.employee.value,
user_uu_id=str(found_user.uu_id),
credentials=found_user.credentials(),
user_id=found_user.id,
person_id=found_user.person_id,
person_uu_id=str(found_user.person.uu_id),
request=dict(request.headers),
companies_uu_id_list=companies_uu_id_list,
companies_id_list=companies_id_list,
duty_uu_id_list=duty_uu_id_list,
duty_id_list=duty_id_list,
),
))
save_object_to_redis( save_object_to_redis(
access_token=access_token, access_token=access_token,
model_object=EmployeeTokenObject( model_object=EmployeeTokenObject(

View File

@ -126,7 +126,7 @@ class AuthModule(PasswordModule):
except Exception as e: except Exception as e:
err = e err = e
token_is_expired = system_arrow.now() >= system_arrow.get( token_is_expired = system_arrow.now() >= system_arrow.get(
found_user.password_expiry_begins str(found_user.password_expiry_begins)
).shift(days=replace_day) ).shift(days=replace_day)
if not password_token == found_user.password_token and token_is_expired: if not password_token == found_user.password_token and token_is_expired:
@ -157,7 +157,8 @@ class AuthModule(PasswordModule):
found_user.hash_password = new_password_dict.get("password") found_user.hash_password = new_password_dict.get("password")
found_user.password_token = "" if found_user.password_token else "" found_user.password_token = "" if found_user.password_token else ""
query_engine.refresh_password_history_via_user(payload=history_dict) query_engine.refresh_password_history_via_user(payload=history_dict)
return found_user.save() found_user.save()
return found_user
@staticmethod @staticmethod
def reset_password_token(found_user): def reset_password_token(found_user):
@ -241,7 +242,6 @@ class UserLoginModule(AuthModule):
found_user.last_platform = headers_request.get("evyos-platform", None) found_user.last_platform = headers_request.get("evyos-platform", None)
found_user.last_remote_addr = headers_request.get("evyos-ip-ext", None) found_user.last_remote_addr = headers_request.get("evyos-ip-ext", None)
found_user.last_seen = str(system_arrow.now()) found_user.last_seen = str(system_arrow.now())
if ext_ip := headers_request.get("evyos-ip-ext"): if ext_ip := headers_request.get("evyos-ip-ext"):
agent = headers_request.get("evyos-user-agent", "") agent = headers_request.get("evyos-user-agent", "")
platform = headers_request.get("evyos-platform", "") platform = headers_request.get("evyos-platform", "")

View File

@ -551,9 +551,7 @@ class BuildLivingSpace(CrudCollection):
token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject], token_dict: typing.Union[EmployeeTokenObject, OccupantTokenObject],
): ):
from databases import Services, OccupantTypes from databases import Services, OccupantTypes
from api_events.events.events.events_bind_services import ( from api_events.events.events.events_bind_modules import ModulesBindOccupantEventMethods
ServiceBindOccupantEventMethods,
)
if data.get("expiry_starts"): if data.get("expiry_starts"):
data["expiry_starts"] = str(system_arrow.get(data["expiry_starts"])) data["expiry_starts"] = str(system_arrow.get(data["expiry_starts"]))
@ -566,18 +564,16 @@ class BuildLivingSpace(CrudCollection):
related_service = Services.filter_by_one( related_service = Services.filter_by_one(
related_responsibility=occupant_type.occupant_code, related_responsibility=occupant_type.occupant_code,
).data ).data
created_living_space.save_and_confirm()
if not related_service: if not related_service:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_418_IM_A_TEAPOT, status_code=status.HTTP_418_IM_A_TEAPOT,
detail="Service is not found in database. Re-enter service record then try again.", detail="Service is not found in database. Re-enter service record then try again.",
) )
ServiceBindOccupantEventMethods.bind_services_occupant_system( print('created_living_space', created_living_space.get_dict())
service_id=related_service.id, ModulesBindOccupantEventMethods.bind_default_module_for_first_init_occupant(
build_living_space_id=created_living_space.id, build_living_space_id=created_living_space.id,
) )
created_living_space.save_and_confirm()
return created_living_space return created_living_space
@classmethod @classmethod

View File

@ -216,7 +216,10 @@ class Event2Employee(CrudCollection):
cls.employee_id == employee_id, cls.employee_id == employee_id,
).data ).data
active_events = Service2Events.filter_all( active_events = Service2Events.filter_all(
Service2Events.service_id.in_([event.event_service_id for event in occupant_events]), system=True Service2Events.service_id.in_(
[event.event_service_id for event in occupant_events]
),
system=True,
).data ).data
active_events_id = [event.event_id for event in active_events] active_events_id = [event.event_id for event in active_events]
if extra_events := Event2EmployeeExtra.filter_all( if extra_events := Event2EmployeeExtra.filter_all(
@ -265,7 +268,10 @@ class Event2Occupant(CrudCollection):
cls.build_living_space_id == build_living_space_id, cls.build_living_space_id == build_living_space_id,
).data ).data
active_events = Service2Events.filter_all( active_events = Service2Events.filter_all(
Service2Events.service_id.in_([event.event_service_id for event in occupant_events]), system=True Service2Events.service_id.in_(
[event.event_service_id for event in occupant_events]
),
system=True,
).data ).data
active_events_id = [event.event_id for event in active_events] active_events_id = [event.event_id for event in active_events]
if extra_events := Event2OccupantExtra.filter_all( if extra_events := Event2OccupantExtra.filter_all(

View File

@ -44,23 +44,18 @@ def endpoint_restriction_update(request: Request, data: UpdateEndpointAccessList
def endpoint_restriction_list(request: Request): def endpoint_restriction_list(request: Request):
token_dict, records = parse_token_object_to_dict(request=request), [] token_dict, records = parse_token_object_to_dict(request=request), []
if isinstance(token_dict, OccupantTokenObject): if isinstance(token_dict, OccupantTokenObject):
occupant_events = Event2Occupant.filter_all( occupant_events = Event2Occupant.get_event_id_by_build_living_space_id(
Event2Occupant.build_living_space_id build_living_space_id=token_dict.selected_occupant.living_space_id
== token_dict.selected_occupant.living_space_id )
).data events_list = Events.filter_all(Events.id.in_(occupant_events)).data
events_list = Events.filter_all(
Events.id.in_([event.event_id for event in occupant_events])
).data
records = EndpointRestriction.filter_all( records = EndpointRestriction.filter_all(
EndpointRestriction.id.in_([event.endpoint_id for event in events_list]) EndpointRestriction.id.in_([event.endpoint_id for event in events_list])
).data ).data
elif isinstance(token_dict, EmployeeTokenObject): elif isinstance(token_dict, EmployeeTokenObject):
employee_events = Event2Employee.filter_all( employee_events = Event2Employee.get_event_id_by_employee_id(
Event2Employee.employee_id == token_dict.selected_company.employee_id employee_id=token_dict.selected_company.employee_id
).data )
events_list = Events.filter_all( events_list = Events.filter_all(Events.id.in_(employee_events)).data
Events.id.in_([event.event_id for event in employee_events])
).data
records = EndpointRestriction.filter_all( records = EndpointRestriction.filter_all(
EndpointRestriction.id.in_([event.endpoint_id for event in events_list]) EndpointRestriction.id.in_([event.endpoint_id for event in events_list])
).data ).data

View File

@ -94,7 +94,7 @@ class RequestToApi:
access_token = content.get("access_token") access_token = content.get("access_token")
refresh_token = content.get("refresh_token") refresh_token = content.get("refresh_token")
access_object = content.get("access_object") access_object = content.get("access_object")
print('access_object', access_object) print("access_object", access_object)
if not access_object: if not access_object:
raise Exception("Access object is not found") raise Exception("Access object is not found")
@ -112,8 +112,8 @@ class RequestToApi:
self.set_access_token(access_token) self.set_access_token(access_token)
if access_object.get("user_type") == "employee": if access_object.get("user_type") == "employee":
uu_id = companies_uu_id_list[0].get('uu_id') uu_id = companies_uu_id_list[0].get("uu_id")
print('uu_id', uu_id) print("uu_id", uu_id)
refresh_company = self.post( refresh_company = self.post(
endpoint="authentication/select", data={"company_uu_id": uu_id} endpoint="authentication/select", data={"company_uu_id": uu_id}
) )

View File

@ -50,7 +50,7 @@ def decode_as_json_indent(data):
return json.dumps(json.loads(json.dumps(data)), indent=2) return json.dumps(json.loads(json.dumps(data)), indent=2)
password_token = "AVqRAPWQ9yvZqX14pWEAHfv72MsTYbjrlPNH97xDPr9RrDySPmu1zlPEH-IsQ9GNR1wrGQHv4xsR6eNbZYDe8rnvYbaiGOFpu1t18AMOZBEB3cKiashFCXznglPGd670QmAsRAqC-VO8GsIoGjtRr2ZQCKVY2lXTc3RcqRA26YXP31Bc-mDr_nzpjQCGrVcd" password_token = "EKWKEMvmeXathlGjRPqnlmGA7ybWSuB9OWpyP0qPc-_K75pa0A5EDj7uxqjgk5Zaz_DJsm1Xugx4KbHT07cSRpRnc9IlTomQAORHwrVycaMno_nbNbLm85cRmrMXz2G4uOMkIqpdtWFI4SAmIwSMacZO3ns0RPYQSI_GnZhrrbAzXFJJq_aoW0N8uFbAdC5J"
password_token_occ = "" password_token_occ = ""
login_data = { login_data = {
"domain": "evyos.com.tr", "domain": "evyos.com.tr",