Table of Contents

Class OpenBiApiClientPermissionExtensions

Namespace
BiExcellence.OpenBi.Api.Permissions
Assembly
BiExcellence.OpenBi.Api.Client.dll

Extension methods for the /permissions REST API.

public static class OpenBiApiClientPermissionExtensions
Inheritance
object
OpenBiApiClientPermissionExtensions

Methods

AssignPermissionUsergroupAsync(IOpenBiApiClient, string, string, CancellationToken)

Grants this permission to a usergroup. Members get it with their next access token; a token already issued keeps the scope it was issued with. Idempotent, and the same link as AssignUsergroupPermissionAsync(IOpenBiApiClient, string, string, CancellationToken). Throws OpenBiApiException (404) when the permission or the usergroup does not exist. RemovePermissionUsergroupAsync(IOpenBiApiClient, string, string, CancellationToken) undoes it.

public static Task AssignPermissionUsergroupAsync(this IOpenBiApiClient client, string permissionId, string usergroupId, CancellationToken cancellationToken = default)

Parameters

client IOpenBiApiClient
permissionId string
usergroupId string
cancellationToken CancellationToken

Returns

Task

CreatePermissionAsync(IOpenBiApiClient, Permission, CancellationToken)

Creates a permission. Only needed for one the server does not ship - a plugin's own, say; the built-in ones already exist. UpdatePermissionAsync(IOpenBiApiClient, string, Permission, CancellationToken) creates as well, for a caller that picks the id.

public static Task<Permission?> CreatePermissionAsync(this IOpenBiApiClient client, Permission permission, CancellationToken cancellationToken = default)

Parameters

client IOpenBiApiClient
permission Permission
cancellationToken CancellationToken

Returns

Task<Permission>

DeletePermissionAsync(IOpenBiApiClient, string, CancellationToken)

Deletes a permission. Every usergroup link to it goes too, so the right is withdrawn from everyone at once.

public static Task DeletePermissionAsync(this IOpenBiApiClient client, string id, CancellationToken cancellationToken = default)

Parameters

client IOpenBiApiClient
id string
cancellationToken CancellationToken

Returns

Task

GetPermissionAsync(IOpenBiApiClient, string, CancellationToken)

Reads one permission by id. Throws OpenBiApiException (404) when there is no permission with this id.

public static Task<Permission> GetPermissionAsync(this IOpenBiApiClient client, string id, CancellationToken cancellationToken = default)

Parameters

client IOpenBiApiClient
id string
cancellationToken CancellationToken

Returns

Task<Permission>

GetPermissionUsergroupsAsync(IOpenBiApiClient, string, OpenBiListRequest?, CancellationToken)

Lists the usergroups that hold this permission - the reverse of GetUsergroupPermissionsAsync(IOpenBiApiClient, string, OpenBiListRequest?, CancellationToken), to answer who can do a thing.

public static Task<OpenBiListResult<Usergroup>> GetPermissionUsergroupsAsync(this IOpenBiApiClient client, string permissionId, OpenBiListRequest? request = null, CancellationToken cancellationToken = default)

Parameters

client IOpenBiApiClient
permissionId string
request OpenBiListRequest
cancellationToken CancellationToken

Returns

Task<OpenBiListResult<Usergroup>>

GetPermissionsAsync(IOpenBiApiClient, OpenBiListRequest?, CancellationToken)

Lists permissions, with the shared list options of request. A permission id is what the routes check; it is granted by linking it to a usergroup (AssignPermissionUsergroupAsync(IOpenBiApiClient, string, string, CancellationToken)).

public static Task<OpenBiListResult<Permission>> GetPermissionsAsync(this IOpenBiApiClient client, OpenBiListRequest? request = null, CancellationToken cancellationToken = default)

Parameters

client IOpenBiApiClient
request OpenBiListRequest
cancellationToken CancellationToken

Returns

Task<OpenBiListResult<Permission>>

QueryPermissionsAsync(IOpenBiApiClient, OpenBiListRequest?, CancellationToken)

Lists permissions with the options in the request body instead of in the query string - the QUERY-method form of the list route, for filters that do not fit in a URL.

public static Task<OpenBiListResult<Permission>> QueryPermissionsAsync(this IOpenBiApiClient client, OpenBiListRequest? request = null, CancellationToken cancellationToken = default)

Parameters

client IOpenBiApiClient
request OpenBiListRequest
cancellationToken CancellationToken

Returns

Task<OpenBiListResult<Permission>>

RemovePermissionUsergroupAsync(IOpenBiApiClient, string, string, CancellationToken)

Revokes this permission from a usergroup. The group's members lose it with their next access token - a token already issued keeps it until it expires - and members who hold it through another group keep it. Removing a link that is not there is not an error.

public static Task RemovePermissionUsergroupAsync(this IOpenBiApiClient client, string permissionId, string usergroupId, CancellationToken cancellationToken = default)

Parameters

client IOpenBiApiClient
permissionId string
usergroupId string
cancellationToken CancellationToken

Returns

Task

UpdatePermissionAsync(IOpenBiApiClient, string, Permission, CancellationToken)

Creates or updates the permission with this id: an id that is not there yet is inserted rather than answered with a 404.

public static Task<Permission?> UpdatePermissionAsync(this IOpenBiApiClient client, string id, Permission permission, CancellationToken cancellationToken = default)

Parameters

client IOpenBiApiClient
id string
permission Permission
cancellationToken CancellationToken

Returns

Task<Permission>