IRPCObjectOperations.GetEffectivePermissions
Vault API / core read session or assertion idempotent returns metadata structure version
Gets the effective permissions of a document.
| Service | Objects, versions, properties and files MFiles.IRPCObjectOperations |
|---|---|
| gRPC method | /MFiles.IRPCObjectOperations/GetEffectivePermissions |
| HTTP (mf-http-grpc) | POST /grpc/v1/get-effective-permissions |
| Request | GetEffectivePermissionsRequest |
| Response | GetEffectivePermissionsResponse |
| Book and level | Vault API, core |
| Kind | read |
| Session | Required: a session (mfiles-session-id-bin metadata) or a session assertion (x-mf-session-assertion metadata). |
| Idempotent | yes |
| Returns metadata structure version | yes (in the mfiles-metadata-version-bin trailer) |
| Streaming | none (unary) |
Remarks
Lists every user of the vault who has any access to the object version through its ACL, with their read, edit, delete and change-permissions access. Users without any access are left out, and vault-level rights such as seeing all objects are not counted: an object with an empty ACL returns an empty list even though administrators can see it. The caller must be able to read the object.
Request: GetEffectivePermissionsRequest
Requests effective permissions.
Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.
| Field | Type | Description |
|---|---|---|
obj_ver | ObjVer | The object version, by number. |
obj_ver.obj_id | ObjID | The object. |
obj_ver.obj_id.type | int32 | The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID). |
obj_ver.obj_id.item_id | ItemID | The ID of the object within its type, in item_id.internal_id. |
obj_ver.version | ObjVerVersion | The version. Usually OBJ_VER_VERSION_TYPE_SPECIFIC with internal_version. |
obj_ver.version.type | ObjVerVersionType | What internal_version means. OBJ_VER_VERSION_TYPE_SPECIFIC for a version number.Values: OBJ_VER_VERSION_TYPE_UNINITIALIZED (0), OBJ_VER_VERSION_TYPE_LATEST (1), OBJ_VER_VERSION_TYPE_ANY (2), OBJ_VER_VERSION_TYPE_ALL (3), OBJ_VER_VERSION_TYPE_SPECIFIC (4), OBJ_VER_VERSION_TYPE_VALUE_LIST_ITEM (6), OBJ_VER_VERSION_TYPE_OBJECT_LEVEL_REFERENCE (7). |
obj_ver.version.internal_version | int32 | The version number, starting from 1, when type is OBJ_VER_VERSION_TYPE_SPECIFIC. The server returns -1 with OBJ_VER_VERSION_TYPE_LATEST. |
obj_ver.version.external_repository_version | string | Used only for objects in external repositories. Leave empty. |
obj_ver.version.external_repository_sort_key | int64 | Used only for objects in external repositories. Leave 0. |
Response: GetEffectivePermissionsResponse
Response for effective permissions request.
Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.
| Field | Type | Description |
|---|---|---|
permissions[] | repeated EffectivePermissions | One entry per user with any access, by user ID. |
permissions[].user_id | int32 | The user account ID. |
permissions[].permissions | ObjectPermissionsForClient | What the user can do with the object according to its ACL. |
permissions[].permissions.can_user_see | bool | The object is visible for the current user (provided for symmetry). |
permissions[].permissions.can_user_edit | bool | The current user can edit the object. |
permissions[].permissions.can_user_delete | bool | The current user can delete the object. |
permissions[].permissions.can_user_change_permissions | bool | The current user can change the object permissions. |