Deprecate UserItem.Roles.UnlicensedWithPublish and .ViewerWithPublish (never accepted by the server)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 55/100
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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 byusers.add):RestApiSiteRole.fromStringaccepts the modern site roles plus a handful of v2 legacy names (Publisher,Interactor,Guest,SupportUser,SiteAdministrator,ReadOnly). NeitherUnlicensedWithPublishnorViewerWithPublishis 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 byusers.bulk_add):CsvLicenseRoleTypeConverteraccepts onlycreator/interactor/explorer/viewer/unlicensed/empty; any other value throwsUSER_CSV_INVALID_LICENSE. There is no site role → license translation before the license converter runs.UnlicensedWithPublish/ViewerWithPublishas literallicensecolumn 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
DeprecationWarningwhen either is accessed as a class attribute (via__class_getattr__on a metaclass, or aRoles.__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_roleand initially defaulted unmapped site roles toUnlicensed, silently coercing these two roles to a valid-but-wrong user creation. That was changed to emitlicense="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.
- Lingua principale
- Python
- Stelle
- 716
- Fork
- 446
- Merge medio
- 8g 8h
- PR unite (30g)
- 2
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di tableau/server-client-python
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
tableau/server-client-python#1865 ·
-
in-progress
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
tableau/server-client-python#1829 · 1 commento ·
-
enhancement gap needs investigation
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
tableau/server-client-python#1322 · 1 commento ·
-
[Type2] Allow Incremental Refresh type schedules to be added via `server.schedules.add_to_schedule` Apertahelp wanted Server-Side Enhancement ui-exists
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
tableau/server-client-python#1101 · 3 commenti ·
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
tableau/server-client-python#783 · 5 commenti ·
Tutte le issue di tableau/server-client-python
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
canonical/paas-charm#368 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
tech debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
addition to tracking list Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
StevenBlack/hosts#3256 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
qualcomm/qai-appbuilder#275 ·