Skip to content

Assigning User Groups for Object Classes Permission Set

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

Endpoint to create ObjectClassAssigneeUserGroups model object. Batch operation - adds single or multiple user groups as assignees to specific permission set.

Permissions

Perm to check: object_class.edit_perm_set (for individual Object 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/user-groups/
Authorization: JWT access_token
  • Body
json
[<int>]

Request body must contain a list of user group ids to be assigned.

json
[<group_id1>, <group_id2>]

If some of user group 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
idpkAutomatically generated by the backend.
user_groupuser_group
created_atdatetime
created_byuser
  • Status 201 CREATED
  • Body
json
[
  {
    "id": 1,
    "user_group": {
      "id": 100,
      "name": "User Group 1"
    },
    "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
    }
  },
  {
    "id": 2,
    "user_group": {
      "id": 101,
      "name": "User Group 2"
    },
    "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 10 user groups ids in one request
  • Max 10 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}."]
Users Group does not exist for given ID in list400 Bad Request"detail": ["Invalid pk "{group_id}" - object does not exist."]
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 10 items in a list400 Bad Request"detail": ["Up to 10 items allowed."]
User has no list group permission for the group that was passed.400 Bad Request"detail": ["Invalid pk "{group_id}" - You do not have permission for this Group."]
Limit of Assignees for Object Class and Permission Set exceeded.400 Bad Request"detail": "Limit of 10 permission set assignees has been exceeded.", "error_code": "ERR_LIMIT_EXCEEDED"
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/user-groups/

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/user-groups/

Response example

  • Status 200 OK
  • Body
json
{
    "list": {
        "columns": [
            {
                "alias": "id",
                "type": "int",
                "predicates": [],
                "sort_ok": false
            },
            {
                "alias": "user_group",
                "type": "user_group",
                "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/user-groups/autocomplete/?text__icontains="
    },
    "restrictions": {
        "limit_items": 10,
        "limit_items_in_batch": 10
    }
}

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

Endpoint to receive list of ObjectClassAssigneeUserGroups 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/user-groups/
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
idpkAutomatically generated by the backend.
user_groupuser_group
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": [
    {
      "id": <int>,
      "user_group": <user_group>,
      "created_at": <datetime>,
      "created_by": <user>
    }
  ]
}

Response example

json
[
  {
    "id": 1,
    "user_group": {
      "id": 100,
      "name": "User Group 1"
    },
    "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
    }
  }
]

Sorting

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

Filtering

No filters.

Errors

ErrorResponse codeMessage
Object Class for object_class_id not found.404 Not Found
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/user-groups/

Endpoint to remove ObjectClassAssigneeUserGroups model objects. Batch operation - removes user groups (assignees) from a permission set.

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/user-groups/
Authorization: JWT access_token
  • Body

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

json
[<group_id1>, <group_id2>]

Response example

  • Status 204 No Content

Restrictions

  • Max 10 user groups 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 10 items on a list400 Bad Request"detail": ["Up to 10 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."