@@ -122,6 +122,7 @@ def default_config(self) -> Dict[str, Any]:
122
122
"client_id" : CLIENT_ID ,
123
123
"client_auth_method" : "client_secret_post" ,
124
124
"client_secret" : CLIENT_SECRET ,
125
+ "admin_token" : "admin_token_value" ,
125
126
}
126
127
}
127
128
return config
@@ -791,3 +792,39 @@ def test_admin_api_endpoints_removed(self) -> None:
791
792
self .expect_unrecognized ("GET" , "/_synapse/admin/v1/users/foo/admin" )
792
793
self .expect_unrecognized ("PUT" , "/_synapse/admin/v1/users/foo/admin" )
793
794
self .expect_unrecognized ("POST" , "/_synapse/admin/v1/account_validity/validity" )
795
+
796
+ def test_admin_token (self ) -> None :
797
+ """The handler should return a requester with admin rights when admin_token is used."""
798
+
799
+ request = Mock (args = {})
800
+ request .args [b"access_token" ] = [b"admin_token_value" ]
801
+ request .requestHeaders .getRawHeaders = mock_getRawHeaders ()
802
+ requester = self .get_success (self .auth .get_user_by_req (request ))
803
+ self .assertEqual (
804
+ requester .user .to_string (), "@%s:%s" % ("__oidc_admin" , SERVER_NAME )
805
+ )
806
+ self .assertEqual (requester .is_guest , False )
807
+ self .assertEqual (requester .device_id , None )
808
+ self .assertEqual (
809
+ get_awaitable_result (self .auth .is_server_admin (requester )), True
810
+ )
811
+
812
+ def test_oidc_admin_impersonate_user_id (self ) -> None :
813
+ """The handler should return a requester with the correct user when _oidc_admin_impersonate_user_id param is used."""
814
+
815
+ request = Mock (
816
+ args = {
817
+ b"_oidc_admin_impersonate_user_id" : [
818
+ ("@foo:" + SERVER_NAME ).encode ("ascii" )
819
+ ],
820
+ b"access_token" : [b"admin_token_value" ],
821
+ }
822
+ )
823
+ request .requestHeaders .getRawHeaders = mock_getRawHeaders ()
824
+ requester = self .get_success (self .auth .get_user_by_req (request ))
825
+ self .assertEqual (requester .user .to_string (), "@%s:%s" % ("foo" , SERVER_NAME ))
826
+ self .assertEqual (requester .is_guest , False )
827
+ self .assertEqual (requester .device_id , None )
828
+ self .assertEqual (
829
+ get_awaitable_result (self .auth .is_server_admin (requester )), False
830
+ )
0 commit comments