Groups#

Groups are used for grouping users globally but also for operations. These groups can be used in the adress book.

A valid group must have an non-empty title. If a group is assigned to an operation, all group members must also be member of the operation.

Create group#

In order to create a group, the group.create permission is needed. Creating a group is done by calling:

POST /groups

{
    "title": "<group_title>",
    "description": "<group_description>",
    "operation": "<optional_operation_id>",
    "members": [
        "<id_of_member_1>",
        "<id_of_member_2>",
        "<id_of_member_n>"
    ]
}

Response:

{
    "id": "<assigned_id>",
    "title": "<group_title>",
    "description": "<group_description>",
    "operation": "<optional_operation_id>",
    "members": [
        "<id_of_member_1>",
        "<id_of_member_2>",
        "<id_of_member_n>"
    ]
}

Update group#

Updating a group requires the group.update permission. If provided, updating is done via:

PUT /groups/<group_id>

{
    "id": "<group_id>",
    "title": "<group_title>",
    "description": "<group_description>",
    "operation": "<optional_operation_id>",
    "members": [
        "<id_of_member_1>",
        "<id_of_member_2>",
        "<id_of_member_n>"
    ]
}

Delete group#

Deleting a group requires the group.delete permission and is done via:

DELETE /groups/<group_id>

Retrieve groups#

Retrieving groups requires the group.view permission. A single group can be retrieved using:

GET /groups/<group_id>

Response:

{
    "id": "<group_id>",
    "title": "<group_title>",
    "description": "<group_description>",
    "operation": "<optional_operation_id>",
    "members": [
        "<id_of_member_1>",
        "<id_of_member_2>",
        "<id_of_member_n>"
    ]
}

Paginated group lists can be retrieved via:

GET /groups

Entry payload:

{
    "id": "<group_id>",
    "title": "<group_title>",
    "description": "<group_description>",
    "operation": "<optional_operation_id>",
    "members": [
        "<id_of_member_1>",
        "<id_of_member_2>",
        "<id_of_member_n>"
    ]
}

The following fields can be used for ordering:

  • title

  • description

Additionally, query parameters can be applied in order to filter groups:

  • by_user=<user_id>: Only include groups, that the user with the given id is member of.

  • for_operation=<operation_id>: Only include groups for the operation with the given id or ones, that do not have an operation assigned (global groups).

  • exclude_global=true: Exclude groups with have no operation assigned.