Access Roles

OpenTera access to REST API is limited depending on the role the currently logged on usertype (user, participant, device, service) has for a specific service.

Since the core module of OpenTera (TeraServer) is a service by itself, it defines its own access levels based on projects and sites objects (see database objects for more information on those objects). Thus, it adheres to the service-role model.

As users, participants, devices and services only have access to their particular API, roles are not defined the same depending on the API.

The tables below use this legend:

 True : Role has access to that feature

False : Role doesn’t has access to that feature

Limit : Role has limited access to this feature. Typically, in case of an update, only certain fields can be modified.


Users

This table shows the various features that are available according the user groups access level, and for super admin access.

Data access

Data [1]

Super Admin

Site Role: Admin [2]

Site Role: User [3]

Project Role: Admin [4]

Project Role: User

Assets: Create

 True

 True

 True

 True

 True

Assets: Read

 True

 True

 True

 True

 True

Assets: Update

 True

 True

 True

 True

 True

Assets: Delete

 True

 True

False

 True

False

Devices: Create

 True

 True

False

False

False

Devices: Delete

 True

 True

False

False

False

Participant Groups: Create

 True

 True

False

 True

False

Participant Groups: Read

 True

 True

 True

 True

 True

Participant Groups: Update

 True

 True

False

 True

False

Participant Groups: Delete

 True

 True

False

 True

False

Participants: Create

 True

 True

 True

 True

 True

Participants: Read

 True

 True

 True

 True

 True

Participants: Update

 True

 True

 True

 True

 True

Participants: Delete

 True

 True

False

 True

False

Projects: Create

 True

 True

False

False

False

Projects: Read

 True

 True

Limit

 True

 True

Projects: Update

 True

 True

False

 True

False

Projects: Delete

 True

 True

False

False

False

Services: Create

 True

False

False

False

False

Services: Read

 True

 True

 True

 True

 True

Services: Update

 True

False

False

False

False

Services: Delete

 True

False

False

False

False

Sessions: Create

 True

 True

 True

 True

 True

Sessions: Read

 True

 True

 True

 True

 True

Sessions: Update

 True

 True

 True

 True

 True

Sessions: Delete

 True

 True

False

 True

False

Sessions Types: Create

 True

 True

 True

 True

 True

Sessions Types: Read

 True

 True

 True

 True

 True

Sessions Types: Update

 True

 True

False

 True

False

Sessions Types: Delete

 True

 True

False

 True

False

Sessions Events: Create

 True

 True

 True

 True

 True

Sessions Events: Read

 True

 True

 True

 True

 True

Sessions Events: Update

 True

 True

 True

 True

 True

Sessions Events: Delete

 True

 True

False

 True

 True

Sites: Create

 True

False

False

False

False

Sites: Read

 True

 True

Limit

 True

 True

Sites: Update

 True

 True

False

False

False

Sites: Delete

 True

False

False

False

False

System Services

False

False

False

False

False

System Service: Logger: Read

 True

False

False

False

False

Users: Create

 True

 True

False

False

False

Users: Read

 True

 True

 True

 True

 True

Users: Update

 True

 True

False

False

False

Users: Delete

 True

 True

False

False

False

User Groups: Create

 True

 True

False

False

False

User Groups: Read

 True

 True

 True

 True

 True

User Groups: Update

 True

 True

False

False

False

User Groups: Delete

 True

 True

False

False

False

[1] All data are filtered according to the specific user group access. For example, if Sites: Read is done, only sites where the user have access with its user groups are read.

[2] Super admins always have a Site Role: Admin on all sites in the system

[3] Any user group with a role in a project automatically have a Site Role: User access

[4] Any user group with a Site Role: Admin automatically have a Project Role: Admin

Features

Feature [1]

Super Admin

Site Role: Admin [2]

Site Role: User [3]

Project Role: Admin [4]

Project Role: User

Data entry forms request

 True

 True

 True

 True

 True

Device - Participant assignation

 True

 True

 True

 True

 True

Device - Project assignation

 True

 True

 True

 True

 True

Device - Site assignation

 True

 True

 True

 True

 True

Login

 True

 True

 True

 True

 True

Logout

 True

 True

 True

 True

 True

Online users list

 True

 True

 True

 True

 True

Manage project access

 True

 True

 True

 True

 True

Manage services roles

 True

 True

 True

 True

 True

Manage site access

 True

 True

 True

 True

 True

Service configuration (self)

 True

 True

 True

 True

 True

Service configuration (others)

 True

 True

 True

 True

 True

Service - Project assignation

 True

 True

 True

 True

 True

Session Type - Device Type assignation

 True

 True

 True

 True

 True

Session Type - Project assignation

 True

 True

 True

 True

 True

Statistics module

 True

 True

 True

 True

 True

Managing sessions start/stop/resume

 True

 True

 True

 True

 True

[1] All features are limited to data that the user can access. For example, if an user can’t access a specific project, that user won’t be able to use any feature on that project.

[2] Super admins always have a Site Role: Admin on all sites in the system

[3] Any user group with a role in a project automatically have a Site Role: User access

[4] Any user group with a Site Role: Admin automatically have a Project Role: Admin


Participants

Access roles for participants are quite simpler than the users access roles. A participant only has access to objects that are directly linked to them. For example, a participant can only query the devices and sessions that are associated to it.

No write access is provided as of now to those objects, while this will change in the future.


Devices

A device only has access to objects that are directly linked to them. For example, a device can only query the participants associated to it or the sessions into which the device was involved.

Similarly, a device can only create data related to an object linked to it. For example, it can only create assets for a session into which it was involved.


Services

Services don’t have specific roles. As they likely require more access than a user, a participant or a device, they don’t have any specific limitation based on roles on what they can do with their API.

Of course, not all objects are exposed with the service API, and login and authentication mechanisms are still required to access that API to limit access to those features.