@@ -381,7 +381,7 @@ def _create_insertion_event_dict(
381
381
382
382
return insertion_event
383
383
384
- async def _create_requester_from_app_service (
384
+ async def _create_requester_for_user_id_from_app_service (
385
385
self , user_id : str , app_service : ApplicationService
386
386
) -> Requester :
387
387
"""Creates a new requester for the given user_id
@@ -396,20 +396,7 @@ async def _create_requester_from_app_service(
396
396
Requester object
397
397
"""
398
398
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 )
413
400
414
401
return create_requester (user_id , app_service = app_service )
415
402
@@ -478,7 +465,7 @@ async def on_POST(self, request, room_id):
478
465
if event_dict ["type" ] == EventTypes .Member :
479
466
membership = event_dict ["content" ].get ("membership" , None )
480
467
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 (
482
469
state_event ["sender" ], requester .app_service
483
470
),
484
471
target = UserID .from_string (event_dict ["state_key" ]),
@@ -500,7 +487,7 @@ async def on_POST(self, request, room_id):
500
487
event ,
501
488
_ ,
502
489
) = 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 (
504
491
state_event ["sender" ], requester .app_service
505
492
),
506
493
event_dict ,
@@ -550,7 +537,7 @@ async def on_POST(self, request, room_id):
550
537
base_insertion_event ,
551
538
_ ,
552
539
) = 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 (
554
541
base_insertion_event_dict ["sender" ],
555
542
requester .app_service ,
556
543
),
@@ -602,7 +589,7 @@ async def on_POST(self, request, room_id):
602
589
}
603
590
604
591
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 (
606
593
ev ["sender" ], requester .app_service
607
594
),
608
595
event_dict ,
@@ -634,7 +621,7 @@ async def on_POST(self, request, room_id):
634
621
# where topological_ordering is just depth.
635
622
for (event , context ) in reversed (events_to_persist ):
636
623
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 (
638
625
event ["sender" ], requester .app_service
639
626
),
640
627
event = event ,
0 commit comments