Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Deprecate UserItem.Roles.UnlicensedWithPublish and .ViewerWithPublish (never accepted by the server)

Đang mở
#1,834 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
55/100
Loại issue
Tái cấu trúc
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
python
Lĩnh vực
api

Hướng nghiên cứu

Start by locating UserItem.Roles and how its class attributes are resolved; compare a class_getattr approach with a Roles.getattribute shim. Review _decompose_site_role and the behavior introduced by PR #1812. Done means accesses to both constants warn, their docstring records historical compatibility and server incompatibility, and existing invalid-user handling remains intact.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement

UserItem.Roles.UnlicensedWithPublish and UserItem.Roles.ViewerWithPublish are in the public API but have never worked as site role values against the Tableau server:

  • POST /users (XML path used by users.add): RestApiSiteRole.fromString accepts the modern site roles plus a handful of v2 legacy names (Publisher, Interactor, Guest, SupportUser, SiteAdministrator, ReadOnly). Neither UnlicensedWithPublish nor ViewerWithPublish is in that enum on any REST API version I can see in monolith git history (back to 2023 Perforce snapshot).
  • POST /users/import (CSV path used by users.bulk_add): CsvLicenseRoleTypeConverter accepts only creator/interactor/explorer/viewer/unlicensed/empty; any other value throws USER_CSV_INVALID_LICENSE. There is no site role → license translation before the license converter runs. UnlicensedWithPublish / ViewerWithPublish as literal license column values are rejected outright.

They've been in UserItem.Roles since the first commit of the library (2016-09-02) and have almost certainly been broken since Tableau Server 8.x/9.x-era licensing was replaced with the current Creator/Explorer/Viewer model.

Proposed fix:

  • Emit a DeprecationWarning when either is accessed as a class attribute (via __class_getattr__ on a metaclass, or a Roles.__getattribute__ shim).
  • Update the docstring to note the constants are retained for historical compatibility but do not correspond to any accepted server-side site role.
  • Remove in a future major version.

Alternatively, if there is any historical or planned server behavior that would accept these strings that I have not found, please point at it and this issue can be closed.

Related

  • PR #1812 refactored _decompose_site_role and initially defaulted unmapped site roles to Unlicensed, silently coercing these two roles to a valid-but-wrong user creation. That was changed to emit license="Invalid" (commit ac84fd3) so the server continues to reject the row instead of silently succeeding. This issue is the longer-term followup to properly deprecate the offending constants.
Ngôn ngữ chính
Python
Star
716
Fork
446
Merge trung bình
8 ngày 8 giờ
Pull request đã merge (30 ngày)
2

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của tableau/server-client-python

Tất cả issue của tableau/server-client-python

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.