Grokify
Grokify

Reputation: 16354

Where is the RingCentral ReadPresenceSettings set in the portal?

I see the ReadPresenceSettings permission in the API for my role, but I do not see it in the Online Account Portal (https://service.ringcentral.com). What does this correspond to in the portal so I can set/unset it?

Permission in Role

Request

GET /restapi/v1.0/dictionary/user-role/:roleId
GET /restapi/v1.0/dictionary/user-role/3

Response

{
    "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/user-role/3",
    "id": "3",
    "displayName": "Standard (International)",
    "description": "User level access with international dialing access.",
    "custom": false,
    "scope": "Self",
    "hidden": false,
    "siteCompatible": false,
    "permissions": [
        {
            "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/permission/ReadPresenceSettings",
            "id": "ReadPresenceSettings",
            "assignable": false,
            "readOnly": false,
            "siteCompatible": "Independent"
        },
        ...
    ]
}

Permission Info Exists

When I check the presence info endpoint, I see that it is called "Read Presence Settings" but there is no such permission in the portal.

Request

GET /restapi/v1.0/dictionary/permission/:permissionId
GET /restapi/v1.0/dictionary/permission/ReadPresenceSettings

Response

{
    "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/permission/ReadPresenceSettings",
    "id": "ReadPresenceSettings",
    "displayName": "Read Presence Settings",
    "assignable": false,
    "readOnly": false,
    "siteCompatible": "Independent",
    "category": {
        "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/permission-category/Features",
        "id": "Features"
    },
    "includedPermissions": []
}

I'm using the Postman with the collection here:

https://github.com/grokify/swaggman

Upvotes: 0

Views: 49

Answers (1)

Grokify
Grokify

Reputation: 16354

RingCentral permissions can be fairly granular and not every API permission appears in the Online Account Portal.

Permissions that are assignable to users are indicated by the permission's boolean assignable property. This is set to false for ReadPresenceSettings.

Some permissions are child permissions of another permission that is assignable. In this case, they will be listed in a permissions includedPermissions property.

In this case, the assignable parent permission is: ConfigurePresence in the API or "Configure Presence" in the UI.

Finding the Assignable Parent Permission

To find this using the API, call the permission list endpoint and then check each permission for ReadPresenceSettings in the includedPermissions property where the assignable property is also true.

Request

GET /restapi/v1.0/dictionary/permission

Response

The response will include an array of permissions as follows. Filtering for permissions that are assignable and have ReadPresenceSettings permission as an included permissions returns only ConfigurePresence for me.

{
    "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/permission?page=1&perPage=100",
    "records": [
        {
            "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/permission/ConfigurePresence",
            "id": "ConfigurePresence",
            "displayName": "Configure Presence",
            "description": "Allows to manage Presence settings",
            "assignable": true,
            "readOnly": false,
            "siteCompatible": "Independent",
            "category": {
                "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/permission-category/Features",
                "id": "Features"
            },
            "includedPermissions": [
                {
                    "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/permission/EditPresenceStatus",
                    "id": "EditPresenceStatus",
                    "assignable": false,
                    "readOnly": false,
                    "siteCompatible": "Independent"
                },
                {
                    "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/permission/ReadPresenceSettings",
                    "id": "ReadPresenceSettings",
                    "assignable": false,
                    "readOnly": false,
                    "siteCompatible": "Independent"
                },
                {
                    "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/permission/ReadPresenceStatus",
                    "id": "ReadPresenceStatus",
                    "assignable": false,
                    "readOnly": false,
                    "siteCompatible": "Independent"
                },
                {
                    "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/dictionary/permission/EditPresenceSettings",
                    "id": "EditPresenceSettings",
                    "assignable": false,
                    "readOnly": false,
                    "siteCompatible": "Independent"
                }
            ]
        },
        ....
    ]
}

Updating the Permission

Once you have the assignable, parent permission, you can update it for the user as normal. Doing this will have child permissions enabled/disabled as well. For example, for ReadPresenceSettings you would update the user's role "Configure Presence" permission using the Online Account Portal as normal. If the user is using a built-in permission, you may need to create a new, modified role for the user if there isn't one already.

You can learn more about how to do this in this KB article:

https://success.ringcentral.com/articles/RC_Knowledge_Article/5-10-Editing-the-Extension-Permissions-via-Web

Upvotes: 2

Related Questions