All,
Good Evening! I'm newbie to Python and this is my first post here.
I am a tableau developer where i have to write a python script to get all the permissions of all the worksheets. I found some script in GITHUB and tried to modify, but i'm failed due to lack of experience in python. So i thought of seeking help from here.
Sample XML :
Sample Expected Output Format:
My Code:
But the code is not giving expected result...
Any help is highly appreciable!
Good Evening! I'm newbie to Python and this is my first post here.
I am a tableau developer where i have to write a python script to get all the permissions of all the worksheets. I found some script in GITHUB and tried to modify, but i'm failed due to lack of experience in python. So i thought of seeking help from here.
Sample XML :
Output:<?xml version='1.0' encoding='UTF-8'?>
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-3.3.xsd">
<permissions>
<workbook id="42cbe061-81c0-49ca-b376-bc893452711b" name="Resource">
<owner id="6194672q-3bb5-4d53-a9ea-fa662955be12"/>
</workbook>
<granteeCapabilities>
<user id="322ee3ba-ea9e-4d9b-afc4-207dc1f632f5"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="q07aeb8a-6116-4d5a-b6f8-9404b293219e"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="8ac233be-1950-47a1-9dfd-803ac99d4f03"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="11a9dedd-3d31-4b34-8c02-5434126f060f"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="1111d529-3be8-45d8-83ba-8904c13419f0"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="12cd8acc-bf6a-4af1-af2d-f1181aeb92b4"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="e8e7afd1-4eb4-4a16-8bcd-077d23aa72a5"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="94e98f26-4339-4671-b984-eda390a841bb"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="0c3w2d31-04e7-49fe-87bc-31682a474212"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Write" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
<capability name="Delete" mode="Allow"/>
<capability name="ChangePermissions" mode="Allow"/>
<capability name="ExportXml" mode="Allow"/>
<capability name="ChangeHierarchy" mode="Allow"/>
<capability name="ShareView" mode="Allow"/>
<capability name="WebAuthoring" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="bbcs8c43-bbb5-40dc-abdb-55eed8fb21db"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Write" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
<capability name="Delete" mode="Allow"/>
<capability name="ChangePermissions" mode="Allow"/>
<capability name="ExportXml" mode="Allow"/>
<capability name="ChangeHierarchy" mode="Allow"/>
<capability name="ShareView" mode="Allow"/>
<capability name="WebAuthoring" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="bea0ebb1-6733-44ac-9a7a-8dded107b16f"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
<capability name="ShareView" mode="Allow"/>
<capability name="WebAuthoring" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="5cdeedd9-4bb3-45d8-b7e5-f6d0074376c1"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="c6797d16-dde3-4236-b5ff-1090d66704d1"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
<capability name="ShareView" mode="Allow"/>
<capability name="WebAuthoring" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="902d7a11-c675-4447-9730-13356d81a1ca"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Write" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
<capability name="Delete" mode="Allow"/>
<capability name="ChangePermissions" mode="Allow"/>
<capability name="ExportXml" mode="Allow"/>
<capability name="ChangeHierarchy" mode="Allow"/>
<capability name="ShareView" mode="Allow"/>
<capability name="WebAuthoring" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="b36d-b91d-48c1-a877-3b2dc09a27e6"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="05101ss5-932a-4815-ac72-478958f1f714"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="1d0e1599-5b00-4e37-9d75-e3bca0685c32"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="e7b2c92d-c012-452b-999d-0310ad8e4393"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="6194612e-3bb5-4d53-a9ea-fa662955be12"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Write" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
<capability name="Delete" mode="Allow"/>
<capability name="ChangePermissions" mode="Allow"/>
<capability name="ExportXml" mode="Allow"/>
<capability name="ChangeHierarchy" mode="Allow"/>
<capability name="ShareView" mode="Allow"/>
<capability name="WebAuthoring" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="2f86d222-cb42-4b1a-a22e-7d606d0aee54"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="4f0d7261-d054-413a-ad2d-68233ca3d6bf"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="1b967882-d3fe-4a2b-b364-dd79c91d7611"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="280frr3b-eb38-49fd-baad-c7a179029a55"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Write" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
<capability name="Delete" mode="Allow"/>
<capability name="ChangePermissions" mode="Allow"/>
<capability name="ExportXml" mode="Allow"/>
<capability name="ChangeHierarchy" mode="Allow"/>
<capability name="ShareView" mode="Allow"/>
<capability name="WebAuthoring" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="1675730f-4611-4ae1-abd7-83e0e9f8fff1"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Write" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
<capability name="Delete" mode="Allow"/>
<capability name="ChangePermissions" mode="Allow"/>
<capability name="ExportXml" mode="Allow"/>
<capability name="ChangeHierarchy" mode="Allow"/>
<capability name="ShareView" mode="Allow"/>
<capability name="WebAuthoring" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="4b68fee3-e5b2-478b-9882-f3bc2d8d8365"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="cabe2a41-9ba6-43ad-b808-6a83fde01cf6"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
<capability name="ShareView" mode="Allow"/>
<capability name="WebAuthoring" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="25fe2612-d85e-4dfd-8f21-106cf1774ab3"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="2b308dee-e8d2-4ff0-a6ae-4d730883226f"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="1d6c4be8-7fed-44e2-a0d7-ce01990b8c80"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
</capabilities>
</granteeCapabilities>
<granteeCapabilities>
<user id="43816cg0-3cc5-43f0-a152-3b04fb9fa884"/>
<capabilities>
<capability name="Read" mode="Allow"/>
<capability name="Write" mode="Allow"/>
<capability name="Filter" mode="Allow"/>
<capability name="ViewUnderlyingData" mode="Allow"/>
<capability name="ExportImage" mode="Allow"/>
<capability name="ExportData" mode="Allow"/>
<capability name="AddComment" mode="Allow"/>
<capability name="ViewComments" mode="Allow"/>
<capability name="Delete" mode="Allow"/>
<capability name="ChangePermissions" mode="Allow"/>
<capability name="ExportXml" mode="Allow"/>
<capability name="ChangeHierarchy" mode="Allow"/>
<capability name="ShareView" mode="Allow"/>
<capability name="WebAuthoring" mode="Allow"/>
</capabilities>
</granteeCapabilities>
</permissions>
</tsResponse>
Sample Expected Output Format:
Output:UserId Name Mode
1 Read Allow
1 Write Allow
2 Read Allow
2 ShareView Allow
I can see below the packages are used in the script.1 2 3 4 5 6 |
from version import Version import requests # Contains methods used to make HTTP requests import xml.etree.ElementTree as ET # Contains methods used to build and parse XML import sys import getpass import math |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
def query_permission(server, auth_token, site_id): """ Returns a list of all permissions for the specified user. 'server' specified server address 'auth_token' authentication token that grants user access to API calls 'site_id' ID of the site that the user is signed into 'workbook_id' ID of workbook to update permission in 'user_id' ID of the user to update """ url = server + "/api/3.3/sites/{0}/workbooks/{1}/permissions" . format ( site_id, '82cbe061-81c0-49ca-b376-bc893452760b' ) server_response = requests.get(url, headers = { 'x-tableau-auth' : auth_token},verify = False ) _check_status(server_response, 200 ) server_response = _encode_for_display(server_response.text) # Reads and parses the response parsed_response = ET.fromstring(server_response) # Find all the capabilities for a specific user capabilities = parsed_response.findall( './/t:granteeCapabilities' , namespaces = xmlns) for capability in capabilities: user_tag = capability.find( "user" ) #, namespaces=xmlns) #users = [(user.get('id')) for user in user_tag] users = user_tag.attribute( "id" ) print ( "%s" , users) # return users #, capability.findall('.//t:capability', namespaces=xmlns) |
Any help is highly appreciable!
Reply