@@ -381,7 +381,7 @@ def _create_insertion_event_dict(
381381
382382        return  insertion_event 
383383
384-     async  def  _create_requester_from_app_service (
384+     async  def  _create_requester_for_user_id_from_app_service (
385385        self , user_id : str , app_service : ApplicationService 
386386    ) ->  Requester :
387387        """Creates a new requester for the given user_id 
@@ -396,20 +396,7 @@ async def _create_requester_from_app_service(
396396            Requester object 
397397        """ 
398398
399-         # It's ok if the app service is trying to use the sender from their registration 
400-         if  app_service .sender  ==  user_id :
401-             pass 
402-         # Check to make sure the app service is allowed to control the user 
403-         elif  not  app_service .is_interested_in_user (user_id ):
404-             raise  AuthError (
405-                 403 ,
406-                 "Application service cannot masquerade as this user (%s)."  %  user_id ,
407-             )
408-         # Check to make sure the user is already registered on the homeserver 
409-         elif  not  (await  self .store .get_user_by_id (user_id )):
410-             raise  AuthError (
411-                 403 , "Application service has not registered this user (%s)"  %  user_id 
412-             )
399+         await  self .auth .validate_appservice_can_control_user_id (app_service , user_id )
413400
414401        return  create_requester (user_id , app_service = app_service )
415402
@@ -478,7 +465,7 @@ async def on_POST(self, request, room_id):
478465            if  event_dict ["type" ] ==  EventTypes .Member :
479466                membership  =  event_dict ["content" ].get ("membership" , None )
480467                event_id , _  =  await  self .room_member_handler .update_membership (
481-                     await  self ._create_requester_from_app_service (
468+                     await  self ._create_requester_for_user_id_from_app_service (
482469                        state_event ["sender" ], requester .app_service 
483470                    ),
484471                    target = UserID .from_string (event_dict ["state_key" ]),
@@ -500,7 +487,7 @@ async def on_POST(self, request, room_id):
500487                    event ,
501488                    _ ,
502489                ) =  await  self .event_creation_handler .create_and_send_nonmember_event (
503-                     await  self ._create_requester_from_app_service (
490+                     await  self ._create_requester_for_user_id_from_app_service (
504491                        state_event ["sender" ], requester .app_service 
505492                    ),
506493                    event_dict ,
@@ -550,7 +537,7 @@ async def on_POST(self, request, room_id):
550537                base_insertion_event ,
551538                _ ,
552539            ) =  await  self .event_creation_handler .create_and_send_nonmember_event (
553-                 await  self ._create_requester_from_app_service (
540+                 await  self ._create_requester_for_user_id_from_app_service (
554541                    base_insertion_event_dict ["sender" ],
555542                    requester .app_service ,
556543                ),
@@ -602,7 +589,7 @@ async def on_POST(self, request, room_id):
602589            }
603590
604591            event , context  =  await  self .event_creation_handler .create_event (
605-                 await  self ._create_requester_from_app_service (
592+                 await  self ._create_requester_for_user_id_from_app_service (
606593                    ev ["sender" ], requester .app_service 
607594                ),
608595                event_dict ,
@@ -634,7 +621,7 @@ async def on_POST(self, request, room_id):
634621        # where topological_ordering is just depth. 
635622        for  (event , context ) in  reversed (events_to_persist ):
636623            ev  =  await  self .event_creation_handler .handle_new_client_event (
637-                 await  self ._create_requester_from_app_service (
624+                 await  self ._create_requester_for_user_id_from_app_service (
638625                    event ["sender" ], requester .app_service 
639626                ),
640627                event = event ,
0 commit comments