diff --git a/tableauserverclient/server/endpoint/auth_endpoint.py b/tableauserverclient/server/endpoint/auth_endpoint.py index f74b88b21..1d6ca500d 100644 --- a/tableauserverclient/server/endpoint/auth_endpoint.py +++ b/tableauserverclient/server/endpoint/auth_endpoint.py @@ -73,3 +73,9 @@ def switch_site(self, site_item): self.parent_srv._set_auth(site_id, user_id, auth_token) logger.info('Signed into {0} as user with id {1}'.format(self.parent_srv.server_address, user_id)) return Auth.contextmgr(self.sign_out) + + @api(version="3.10") + def revoke_all_server_admin_tokens(self): + url = "{0}/{1}".format(self.baseurl, 'revokeAllServerAdminTokens') + self.post_request(url, '') + logger.info('Revoked all tokens for all server admins') diff --git a/test/test_auth.py b/test/test_auth.py index b879ab121..3dbf87737 100644 --- a/test/test_auth.py +++ b/test/test_auth.py @@ -106,3 +106,19 @@ def test_switch_site(self): self.assertEqual('eIX6mvFsqyansa4KqEI1UwOpS8ggRs2l', self.server.auth_token) self.assertEqual('6b7179ba-b82b-4f0f-91ed-812074ac5da6', self.server.site_id) self.assertEqual('1a96d216-e9b8-497b-a82a-0b899a965e01', self.server.user_id) + + def test_revoke_all_server_admin_tokens(self): + self.server.version = "3.10" + baseurl = self.server.auth.baseurl + with open(SIGN_IN_XML, 'rb') as f: + response_xml = f.read().decode('utf-8') + with requests_mock.mock() as m: + m.post(baseurl + '/signin', text=response_xml) + m.post(baseurl + '/revokeAllServerAdminTokens', text='') + tableau_auth = TSC.TableauAuth('testuser', 'password') + self.server.auth.sign_in(tableau_auth) + self.server.auth.revoke_all_server_admin_tokens() + + self.assertEqual('eIX6mvFsqyansa4KqEI1UwOpS8ggRs2l', self.server.auth_token) + self.assertEqual('6b7179ba-b82b-4f0f-91ed-812074ac5da6', self.server.site_id) + self.assertEqual('1a96d216-e9b8-497b-a82a-0b899a965e01', self.server.user_id)