Roles

Introduction

Roles are used to manage Permissions in intratool.

The binding of Permissions to a Role is done by a pivot table called permission_role, in which each Permission of the unique Role is assigned.

Those Roles will then get assigned to a Department so that every member of a Department has the same Permissions.

Model Definition

Alias

role

Relations

Key
Relation
Type
Relation Field(s)

user

Belongs to

user_id

department

Belongs to

department_id

folder

Belongs to

folder_id

departments

Belongs to many

Intermediate table

infoboardDepartments

Belongs to many

Intermediate table

permissions

Belongs to many

Intermediate table

users

Has many

users.role_id

List

Get a list of all Roles.

Definition

GET /api/roles

Example Request

$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('GET', '/api/roles', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);

Example Response

[
  {
    "id": 2,
    "name": "Standort 01",
    "active": true,
    "user_id": 2,
    "department_id": 2,
    "folder_id": null,
    "location_key": null,
    "sort_number": 2,
    "created_at": "2019-01-15 12:00:00",
    "updated_at": "2019-01-15 12:00:00",
    "deleted_at": null
  },
  {
    "id": 3,
    "name": "Standort 02",
    "active": true,
    "user_id": 2,
    "department_id": 3,
    "folder_id": null,
    "location_key": null,
    "sort_number": 3,
    "created_at": "2019-01-15 13:00:00",
    "updated_at": "2019-01-15 13:00:00",
    "deleted_at": null
  }
]

Show

Show a single Role by id.

Definition

GET /api/roles/{id}

Example Request

$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('GET', '/api/roles/2', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);

Example Response

{
  "id": 2,
  "name": "Standort 01",
  "active": true,
  "user_id": 2,
  "department_id": 2,
  "folder_id": null,
  "location_key": null,
  "sort_number": 2,
  "created_at": "2019-01-15 12:00:00",
  "updated_at": "2019-01-15 12:00:00",
  "deleted_at": null
}

Create

Create a new Role.

Definition

POST /api/roles

Request Keys

Key
Type
Default
Description

department_id *

integer

-

The ID of the Department the Role is assigned to.

name *

string

-

The name of the Role.

active

boolean

true

Whether the Role is active.

permissions_ids *

array

-

The IDs of Permissions to grant the Role.

department_ids

array

Related Department

The IDs of Departments the Role has "advanced access" to view content from.

infoboard_department_ids

array

Related Department

The IDs of Departments the Role is allowed to assign InfoboardPosts to.

folder_id

integer

-

The ID of Folder the Role is assigned to.

location_key

string

-

The location description of the Role.

sort_number

integer

Current highest +1

The index of the Role related to the Folder.

Keys with * are required.

Example Request

$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('POST', '/api/roles', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'department_id' => 4,
        'name' => 'Standort 03',
        'permission_ids' => [1]
    ]
]);

Example Response

{
  "status": "success",
  "data": {
    "id": 4,
    "name": "Standort 03",
    "active": true,
    "user_id": 2,
    "department_id": 4,
    "folder_id": null,
    "location_key": null,
    "sort_number": 4,
    "created_at": "2019-01-15 14:00:00",
    "updated_at": "2019-01-15 14:00:00",
    "deleted_at": null
  }
}

Update

Update an existing Role by id.

Definition

PUT /api/roles/{id}

Request Keys

Key
Type
Description

department_id

integer

The ID of the Department the Role is assigned to.

name

string

The name of the Role.

active

boolean

Whether the Role is active.

permissions_ids

array

The IDs of Permissions to grant the Role.

department_ids

array

The IDs of Departments the Role has "advanced access" to view content from.

infoboard_department_ids

array

The IDs of Departments the Role is allowed to assign InfoboardPosts to.

folder_id

integer

The ID of Folder the Role is assigned to.

location_key

string

The location description of the Role.

sort_number

integer

The index of the Role related to the Folder.

Example Request

$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('PUT', '/api/roles/4', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'department_ids' => [2, 3],
        'location_key' => 'Standort-03'
    ]
]);

Example Response

{
  "status": "success",
  "data": {
    "id": 4,
    "name": "Standort 03",
    "active": true,
    "user_id": 2,
    "department_id": 4,
    "folder_id": null,
    "location_key": "Standort-03",
    "sort_number": 4,
    "created_at": "2019-01-15 14:00:00",
    "updated_at": "2019-01-15 14:30:00",
    "deleted_at": null
  }
}

Delete

Delete an existing Role by id.

Definition

DELETE /api/roles/{id}

Example Request

$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('DELETE', '/api/roles/4', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);

Example Response

{
  "status": "success",
  "data": null
}

Last updated