You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Get a list of `unifiedRoleDefinition` objects for the permissions provider. This list determines the roles that can be selected when creating sharing invites.
2003
+
responses:
2004
+
'200':
2005
+
description: A list of permission roles than can be used when sharing with users or groups.
A role definition is a collection of permissions in libre graph listing the operations that can be performed
2893
+
and the resources against which they can performed.
2894
+
properties:
2895
+
description:
2896
+
description: The description for the unifiedRoleDefinition.
2897
+
#description: The description for the unifiedRoleDefinition. Read-only when **isBuiltIn** is `true`.
2898
+
type: string
2899
+
displayName:
2900
+
description: The display name for the unifiedRoleDefinition. Required. Supports $filter (`eq`, `in`).
2901
+
#description: The display name for the unifiedRoleDefinition. Read-only when **isBuiltIn** is `true`. Required. Supports $filter (`eq`, `in`).
2902
+
type: string
2903
+
id:
2904
+
description: The unique identifier for the role definition. Key, not nullable, Read-only. Inherited from entity. Supports $filter (`eq`, `in`).
2905
+
type: string
2906
+
# isBuiltIn:
2907
+
# description: Flag indicating whether the role definition is part of the default set included in libre graph or a custom definition. Read-only. Supports $filter (`eq`, `in`).
2908
+
# type: boolean
2909
+
# isEnabled:
2910
+
# description: Flag indicating whether the role is enabled for assignment. If `false` the role is not available for assignment. Read-only when **isBuiltIn** is `true`.
2911
+
# type: boolean
2912
+
# leaving this out as it is already deprecated in msgraph and I do not think we need it right now
2913
+
#resourceScopes:
2914
+
# type: string
2915
+
# description: |
2916
+
# List of the scopes or permissions the role definition applies to. Currently only / is supported.
2917
+
# Read-only when isBuiltIn is true. DO NOT USE. This will be deprecated soon. Attach scope to role assignment.
2918
+
rolePermissions:
2919
+
description: List of permissions included in the role.
2920
+
#description: List of permissions included in the role. Read-only when **isBuiltIn** is `true`.
# Custom template identifier that can be set when isBuiltIn is `false` but is read-only when isBuiltIn is `true`.
2927
+
# This identifier is typically used if one needs an identifier to be the same across different directories.
2928
+
# type: string
2929
+
# version:
2930
+
# description: Indicates version of the role definition. Read-only when **isBuiltIn** is `true`.
2931
+
# type: string
2932
+
weight:
2933
+
description: |
2934
+
When presenting a list of roles the weight can be used to order them in a meaningful way.
2935
+
Lower weight gets higher precedence. So content with lower weight will come first. If set,
2936
+
weights should be non-zero, as 0 is interpreted as an unset weight.
2937
+
type: integer
2938
+
unifiedRolePermission:
2939
+
type: object
2940
+
description: |
2941
+
Represents a collection of allowed resource actions and the conditions that must be met for the action to be allowed.
2942
+
Resource actions are tasks that can be performed on a resource. For example, an application resource may support
2943
+
create, update, delete, and reset password actions.
2944
+
properties:
2945
+
allowedResourceActions:
2946
+
description: |
2947
+
Set of tasks that can be performed on a resource. Required.
2948
+
2949
+
The following is the schema for resource actions:
2950
+
2951
+
```
2952
+
{Namespace}/{Entity}/{PropertySet}/{Action}
2953
+
```
2954
+
2955
+
For example: `libre.graph/applications/credentials/update`
2956
+
2957
+
* *{Namespace}* - The services that exposes the task. For example, all tasks in libre graph use the namespace `libre.graph`.
2958
+
* *{Entity}* - The logical features or components exposed by the service in libre graph. For example, `applications`, `servicePrincipals`, or `groups`.
2959
+
* *{PropertySet}* - Optional. The specific properties or aspects of the entity for which access is being granted.
2960
+
For example, `libre.graph/applications/authentication/read` grants the ability to read the reply URL, logout URL,
2961
+
and implicit flow property on the **application** object in libre graph. The following are reserved names for common property sets:
2962
+
* `allProperties` - Designates all properties of the entity, including privileged properties.
2963
+
Examples include `libre.graph/applications/allProperties/read` and `libre.graph/applications/allProperties/update`.
2964
+
* `basic` - Designates common read properties but excludes privileged ones.
2965
+
For example, `libre.graph/applications/basic/update` includes the ability to update standard properties like display name.
2966
+
* `standard` - Designates common update properties but excludes privileged ones.
2967
+
For example, `libre.graph/applications/standard/read`.
2968
+
* *{Actions}* - The operations being granted. In most circumstances, permissions should be expressed in terms of CRUD operations or allTasks. Actions include:
2969
+
* `create` - The ability to create a new instance of the entity.
2970
+
* `read` - The ability to read a given property set (including allProperties).
2971
+
* `update` - The ability to update a given property set (including allProperties).
2972
+
* `delete` - The ability to delete a given entity.
2973
+
* `allTasks` - Represents all CRUD operations (create, read, update, and delete).
2974
+
2975
+
Following the CS3 API we can represent the CS3 permissions by mapping them to driveItem properties or relations like this:
Managing drives would be a different entity. A space manager role could be written as `libre.graph/drive/permission/allTasks`.
2999
+
3000
+
# microsoft.directory namespace has these built in roles and permissions: https://learn.microsoft.com/en-us/azure/active-directory/roles/permissions-reference
3001
+
type: array
3002
+
items:
3003
+
type: string
3004
+
condition:
3005
+
description: |
3006
+
Optional constraints that must be met for the permission to be effective. Not supported for custom roles.
3007
+
3008
+
Conditions define constraints that must be met. For example, a requirement that the principal be an owner of the target resource.
0 commit comments