Getting all permissions for a role

Hi,

I am trying to get all permissions assigned to a list of roles. Below is a an example JSON response.

{
  "id": "60a63986-4de2-44e1-ad29-fb5f9d1194c5",
  "name": "admin",
  "description": "Organization Administrator",
  "defaultRoleId": "admin",
  "permissions": [
    "content_management_user",
    "admin",
    "employee",
    "content_management_admin"
  ],
  "permissionPolicies": [
    {
      "domain": "wfm",
      "entityName": "adhocModel",
      "actionSet": [
        "add",
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "conversation",
      "entityName": "communication",
      "actionSet": [
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "chat",
      "entityName": "*",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "analytics",
      "entityName": "queueObservation",
      "actionSet": [
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "webchat",
      "entityName": "deployment",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "analytics",
      "entityName": "speechAndTextAnalyticsAggregates",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "reporting",
      "entityName": "*",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "analytics",
      "entityName": "conversationDetail",
      "actionSet": [
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "telephony",
      "entityName": "*",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "authorization",
      "entityName": "*",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "presence",
      "entityName": "userPresence",
      "actionSet": [
        "edit"
      ],
      "allowConditions": false
    },
    {
      "domain": "routing",
      "entityName": "wrapupCode",
      "actionSet": [
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "geolocation",
      "entityName": "settings",
      "actionSet": [
        "edit"
      ],
      "allowConditions": false
    },
    {
      "domain": "bridge",
      "entityName": "server",
      "actionSet": [
        "add",
        "view",
        "edit",
        "delete"
      ],
      "allowConditions": false
    },
    {
      "domain": "analytics",
      "entityName": "userAggregate",
      "actionSet": [
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "integrations",
      "entityName": "action",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "externalContacts",
      "entityName": "externalEntity",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "directory",
      "entityName": "*",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "wfm",
      "entityName": "adhocForecast",
      "actionSet": [
        "add",
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "audits",
      "entityName": "*",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "quality",
      "entityName": "evaluation",
      "actionSet": [
        "add",
        "editScore"
      ],
      "allowConditions": false
    },
    {
      "domain": "bridge",
      "entityName": "pluginType",
      "actionSet": [
        "add",
        "edit"
      ],
      "allowConditions": false
    },
    {
      "domain": "conversation",
      "entityName": "email",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "routing",
      "entityName": "schedule",
      "actionSet": [
        "add",
        "view",
        "search",
        "edit",
        "delete"
      ],
      "allowConditions": false
    },
    {
      "domain": "analytics",
      "entityName": "conversationAggregate",
      "actionSet": [
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "bridge",
      "entityName": "publisher",
      "actionSet": [
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "integrations",
      "entityName": "integration",
      "actionSet": [
        "add",
        "view",
        "edit",
        "delete"
      ],
      "allowConditions": false
    },
    {
      "domain": "routing",
      "entityName": "skill",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "outbound",
      "entityName": "campaign",
      "actionSet": [
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "documents",
      "entityName": "audit",
      "actionSet": [
        "search"
      ],
      "allowConditions": false
    },
    {
      "domain": "routing",
      "entityName": "queue",
      "actionSet": [
        "view",
        "search"
      ],
      "allowConditions": false
    },
    {
      "domain": "widgets",
      "entityName": "deployment",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "bridge",
      "entityName": "notification",
      "actionSet": [
        "add",
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "cobrowse",
      "entityName": "deployment",
      "actionSet": [
        "manage"
      ],
      "allowConditions": false
    },
    {
      "domain": "routing",
      "entityName": "callRoute",
      "actionSet": [
        "add",
        "view",
        "search",
        "edit",
        "delete"
      ],
      "allowConditions": false
    },
    {
      "domain": "routing",
      "entityName": "emergencyGroup",
      "actionSet": [
        "add",
        "view",
        "search",
        "edit",
        "delete"
      ],
      "allowConditions": false
    },
    {
      "domain": "speechAndTextAnalytics",
      "entityName": "*",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "voicebots",
      "entityName": "*",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "quality",
      "entityName": "calibration",
      "actionSet": [
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "externalContacts",
      "entityName": "contact",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "routing",
      "entityName": "scheduleGroup",
      "actionSet": [
        "add",
        "view",
        "search",
        "edit",
        "delete"
      ],
      "allowConditions": false
    },
    {
      "domain": "bridge",
      "entityName": "plugin",
      "actionSet": [
        "add",
        "call",
        "view",
        "edit",
        "delete"
      ],
      "allowConditions": false
    },
    {
      "domain": "oauth",
      "entityName": "*",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "gdpr",
      "entityName": "*",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "voicemail",
      "entityName": "groupPolicy",
      "actionSet": [
        "view",
        "edit"
      ],
      "allowConditions": false
    },
    {
      "domain": "wfm",
      "entityName": "schedulingrequest",
      "actionSet": [
        "add",
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "externalContacts",
      "entityName": "externalOrganization",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "externalContacts",
      "entityName": "customFields",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "attributes",
      "entityName": "attribute",
      "actionSet": [
        "add",
        "view",
        "edit",
        "delete"
      ],
      "allowConditions": false
    },
    {
      "domain": "ui",
      "entityName": "networkPerformanceIndicators",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "bridge",
      "entityName": "actions",
      "actionSet": [
        "add",
        "view",
        "edit",
        "delete",
        "execute"
      ],
      "allowConditions": false
    },
    {
      "domain": "billing",
      "entityName": "subscription",
      "actionSet": [
        "add",
        "view"
      ],
      "allowConditions": false
    },
    {
      "domain": "presence",
      "entityName": "presenceDefinition",
      "actionSet": [
        "add",
        "edit",
        "delete"
      ],
      "allowConditions": false
    },
    {
      "domain": "analytics",
      "entityName": "dataExport",
      "actionSet": [
        "*"
      ],
      "allowConditions": false
    },
    {
      "domain": "bridge",
      "entityName": "serverFile",
      "actionSet": [
        "add",
        "request",
        "view"
      ],
      "allowConditions": false
    }
  ],
  "userCount": 68,
  "default": true,
  "base": false,
  "selfUri": "/api/v2/authorization/roles/60a63986-4de2-44e1-ad29-fb5f9d1194c5"
}

I am trying to get all of the domain names, entitity names and action set arrays, however, the function below is only providing me with a single domain per role ID that I have in my list.

def z():

      for r in roleList:
            rp_role = json.loads(autho.get_authorization_role(r).to_json())
            print(rp_role['id'])
            print(rp_role['permission_policies'][0]['domain'])
            print('-------------------------------------------')

Are you able to help me?

Thank you.

Hello,

I am not a regular python developer but the following should do what you are asking:

def z():

    for r in roleList:
        rp_role = autho.get_authorization_role(r)
        print('Role name:', rp_role.name, '- id:', rp_role.id)
        for pol in rp_role.permission_policies:
            print('Domain:', pol.domain, '- Entity:', pol.entity_name, '- ActionSet:', pol.action_set)
        print('-------------------------------------------')

Regards,

Hi Jerome,

Thank you so much this is perfect! I appreciate it.

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.