From 06ebe9f2520e9c37d0d3a3d64558798e344f9991 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Tue, 16 Jun 2026 17:59:58 -0700 Subject: [PATCH 1/2] fix: don't default authSetting to ServerDefault in bulk user add ServerDefault is wrong for Tableau Cloud. Match the single-user add/update behaviour and only send authSetting when explicitly set. Fixes #1777 Co-Authored-By: Claude Sonnet 4.6 --- tableauserverclient/server/request_factory.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tableauserverclient/server/request_factory.py b/tableauserverclient/server/request_factory.py index 589b6beb4..aa9596389 100644 --- a/tableauserverclient/server/request_factory.py +++ b/tableauserverclient/server/request_factory.py @@ -997,8 +997,8 @@ def import_from_csv_req(self, csv_content: bytes, users: Iterable[UserItem]): raise ValueError("User cannot have both authSetting and idpConfigurationId.") elif user.idp_configuration_id is not None: user_element.attrib["idpConfigurationId"] = user.idp_configuration_id - else: - user_element.attrib["authSetting"] = user.auth_setting or "ServerDefault" + elif user.auth_setting is not None: + user_element.attrib["authSetting"] = user.auth_setting parts = { "tableau_user_import": ("tsc_users_file.csv", csv_content, "file"), From 5ec82db612d01a97d686d7f67ae79d69e4ae98cc Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Tue, 16 Jun 2026 22:54:48 -0700 Subject: [PATCH 2/2] fix: update test to match corrected bulk add authSetting behaviour Co-Authored-By: Claude Sonnet 4.6 --- test/test_user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_user.py b/test/test_user.py index 8f489187f..6e481fce2 100644 --- a/test/test_user.py +++ b/test/test_user.py @@ -467,7 +467,7 @@ def test_bulk_add(server: TSC.Server) -> None: for user, xml_user in zip(users, xml_users): assert user.name == xml_user.get("name") if user.idp_configuration_id is None: - assert xml_user.get("authSetting") == (user.auth_setting or "ServerDefault") + assert xml_user.get("authSetting") == user.auth_setting else: assert xml_user.get("idpConfigurationId") == user.idp_configuration_id assert xml_user.get("authSetting") is None