Skip to content

Assigning for Object Classes Permission Set

POST /api/object-classes/object_class_id/permission-sets/permission_set_id/assignees/

Endpoint to create ObjectClassAssignee model object. Batch operation - adds single or multiple users (members) as assignees to specific permission set.

Permissions

Perm to check: object_class.edit_perm_set (for individual UObject Class).

URL parameters

KeyNotes
object_class_idObject Class ID
permission_set_idPermission Set ID

Request Schema

  • Headers
Request Method: POST
Location: /api/object-classes/{object_class_id}/permission-sets/{permission_set_id}/assignees/
Authorization: JWT access_token
  • Body
json
[<int>]

In body must be sent list of users ids to be assigned.

json
[<user_id>, <user_id>]

⚠️ 1 Time Completion accounts cannot be assignee.

If some of users is already an assignee for given permission set, then request should be silently accepted without an error or a warning.

created_at and created_by fields are set automatically if relation does not exist.

Request example

json
[2734, 7231]

Response example

KeyTypeNotes
useruser
created_atdatetime
created_byuser
  • Status 201 CREATED
  • Body
json
[
  {
    "user": {
      "id": 100,
      "first_name": "John",
      "last_name": "Smith",
      "company_name": "Company1",
      "username": "john.smith@mail.com",
      "is_deleted": false
    },
    "created_at": "2021-07-05T06:49:30.688714Z",
    "created_by": {
      "id": 5,
      "first_name": "Ann",
      "last_name": "Jackson",
      "company_name": "Company2",
      "username": "ann.jackson@mail.com",
      "is_deleted": false
    }
  },
  {
    "user": {
      "id": 30078,
      "first_name": "Jack",
      "last_name": "Lee",
      "company_name": "Company1",
      "username": "lee.jack@mail.com",
      "is_deleted": false,
      "account_type": "full"
    },
    "created_at": "2021-07-05T06:49:30.688714Z",
    "created_by": {
      "id": 5,
      "first_name": "Ann",
      "last_name": "Jackson",
      "company_name": "Company2",
      "username": "ann.jackson@mail.com",
      "is_deleted": false,
      "account_type": "super_admin"
    }
  }
]

Restriction

  • Max 100 users ids in one request
  • Max 100 items of Object Class Assignees (per Object Class and Permission Set)

Errors

ErrorResponse codeMessage
Given empty list400 Bad Request"detail": ["This list may not be empty."]
Given different type than list400 Bad Request"detail": ["Expected a list of items but got type "{type}"."]
List contains item of wrong type400 Bad Request"detail": ["Incorrect type. Expected pk value, received {type}."]
User does not exist for given ID in list400 Bad Request"detail": ["Invalid pk "{user_id}" - object does not exist."]
Given ID is for 1 Time Completion account400 Bad Request"detail": ["1 Time Completion account "{user_id}" cannot be assignee."]
Attempt to assign assignees to the everyone or members perm set400 Bad Request"detail": ["Assignees can not be set to this permission set type."]
More than 100 items on a list400 Bad Request"detail": ["Up to 100 items allowed."]
Limit of Assignees for Object Class and Permission Set exceeded.400 Bad Request"detail": "Limit of 100 permission set assignees has been exceeded.", "error_code": "ERR_LIMIT_EXCEEDED"
Request user does not have "users.list" permission for the user to be assigned to the Objects Class Permission Set400 Bad Request"detail": ["You do not have permission to assign user "{user_id}" to Object Class Permission Set "{perm_set_id}"."]
Wrong/not existing permission_set_id404 Not Found
Wrong/not existing object_class_id404 Not Found
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

OPTIONS /api/object-classes/object_class_id/permission-sets/permission_set_id/assignees/

Endpoint returns schema for POST and GET.

Permissions

Requires authentication only.

URL parameters

KeyNotes
object_class_idObject Class ID
permission_set_idPermission Set ID

Request schema

  • Headers
Request Method: OPTIONS
Location: /api/object-classes/`object_class_id`/permission-sets/`permission_set_id`/assignees/

Response example

  • Status 200 OK
  • Body
json
{
    "list": {
        "columns": [
            {
                "alias": "id",
                "type": "int",
                "predicates": [],
                "sort_ok": false
            },
            {
                "alias": "user",
                "type": "user",
                "predicates": [],
                "sort_ok": false
            },
            {
                "alias": "created_by",
                "type": "user",
                "predicates": [],
                "sort_ok": false
            },
            {
                "alias": "created_at",
                "type": "datetime",
                "predicates": [],
                "sort_ok": false
            }
        ]
    },
    "batch": {
        "type": "set",
        "required": true,
        "autocomplete": "/api/users/autocomplete/?account_type!=one_time_completion&text__icontains="
    },
    "restrictions": {
        "limit_items": 100,
        "limit_items_in_batch": 100
    }
}

GET /api/object-classes/object_class_id/permission-sets/permission_set_id/assignees/

Endpoint to receive list of ObjectClassAssignee model objects for defined Object Class and Permission Set.

Permissions

Perm to check: object_class.view.

URL parameters

KeyNotes
object_class_idObject Class ID
permission_set_idPermission Set ID

Request schema

  • Headers
Request Method: GET
Location: /api/object-classes/`object_class_id`/permission-sets/`permission_set_id`/assignees/
Authorization: JWT access_token

Response

KeyTypeNotes
limitint
offsetint
total_countintTotal number of assignees for specific permission set related to specific object record.
filtered_countintNumber of assignees if some filters are applied.
nextURL / nullNext page URL (null if there is no next page)
previousURL / nullPrevious page URL (null if there is no previous page)
resultsArrayDescribed in the next table.

Response results array

KeyTypeNotes
useruser
created_atdatetime
created_byuser

Response schema

  • Status 200 OK
  • Body:
json
{
  "limit": <int>,
  "offset": <int>,
  "filtered_count": <int>,
  "total_count": <int>,
  "next": <str|null>,
  "previous": <str|null>,
  "results": [
    {
      "user": <user>,
      "created_at": <datetime>,
      "created_by": <user>
    }
  ]
}

Response example

json
{
  "limit": 100,
  "offset": 0,
  "filtered_count": 1,
  "total_count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "user": {
        "id": 11,
        "first_name": "John",
        "last_name": "Smith",
        "company_name": "Company1",
        "username": "john.smith@mail.com",
        "is_deleted": false
      },
      "created_at": "2021-05-18T06:39:17.688341Z",
      "created_by": {
        "id": 5,
        "first_name": "Ann",
        "last_name": "Jackson",
        "company_name": "Company1",
        "username": "ann.jackson@mail.com",
        "is_deleted": false
      }
    }
  ]
}

Sorting

Not available. Results are not sorted - order returned by database.

Filtering

No filters.

Errors

ErrorResponse codeMessage
Object Record for object_class_id not found.403 Forbidden
Permission set for permission_set_id not found (for given object_class_id).404 Not Found
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

DELETE /api/object-classes/object_class_id/permission-sets/permission_set_id/assignees/

Endpoint to remove ObjectClassAssignee model objects. Batch operation - removes users (assignees) from a permission set. User assigned to the permission set will be removed from assignees also if he is anonymized.

Permissions

Perm to check: object_class.edit_perm_sets (for individual Object Class).

URL parameters

KeyNotes
object_class_idObject Class ID
permission_set_idPermission Set ID

Request schema

  • Headers
Request Method: DELETE
Location: /api/object-classes/{object_class_id}/permission-sets/{permission_set_id}/assignees/
Authorization: JWT access_token
  • Body

In body must be sent list of Object Class Assignees users ids.

json
[<user_id>, <user_id>]

Response example

  • Status 204 No Content

Restrictions

  • Max 100 users ids in one request

Errors

ErrorResponse codeMessage
Given empty list400 Bad Request"detail": ["This list may not be empty."]
Given different type than list400 Bad Request"detail": ["Expected a list of items but got type "{type}"."]
List contains item of wrong type400 Bad Request"detail": ["Incorrect type. Expected pk value, received {type}."]
Assignee does not exist for given ID in list400 Bad Request"detail": ["Invalid pk "{assignee_id}" - object does not exist."]
More than 100 items on a list400 Bad Request"detail": ["Up to 100 items allowed."]
Wrong/not existing permission_set_id404 Not Found
Wrong/not existing object_class_id404 Not Found
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

Not allowed endpoints

GET /api/object-classes/object_class_id/permission-sets/permission_set_id/assignees/id/

Response example

  • Status 405 Method Not Allowed

PATCH /api/object-classes/object_class_id/permission-sets/permission_set_id/assignees/id/

Response example

  • Status 405 Method Not Allowed

PUT /api/object-classes/object_class_id/permission-sets/permission_set_id/assignees/id/

Response example

  • Status 405 Method Not Allowed

DELETE /api/object-classes/object_class_id/permission-sets/permission_set_id/assignees/id/

Response example

  • Status 405 Method Not Allowed