Table of Contents
Kanboard supports multiple roles at the application level and at the project level.
For each HTTP request:
The Access List (ACL) is based on the controller class name and the method name. The list of access is handled by the class Kanboard\Core\Security\AccessMap
.
There are two access map: one for the application and another one for projects.
$this->applicationAccessMap
$this->projectAccessMap
Examples to define a new policy from your plugin:
// All methods of the class MyController:
$this->projectAccessMap->add('MyController', '*', Role::PROJECT_MANAGER);
// Specific methods:
$this->projectAccessMap->add('MyOtherController', array('create', 'save'), Role::PROJECT_MEMBER);
Roles are defined in the class Kanboard\Core\Security\Role
.
The Authorization class (Kanboard\Core\Security\Authorization
) will check the access for each page.