diff options
author | Frédéric Guillot <fred@kanboard.net> | 2018-04-06 10:54:58 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@kanboard.net> | 2018-04-06 10:54:58 -0700 |
commit | 0b306fa60ad84ea077111e0ff7b59208ba7bc8a3 (patch) | |
tree | 5d8941b5950ede2db8ca3fba0213792db0f07a50 /doc/en_US/plugin-authorization-architecture.markdown | |
parent | ac11220a1aa7ae30b8827d9bbf221888d3edd0a7 (diff) |
Move documentation to https://docs.kanboard.org/
Diffstat (limited to 'doc/en_US/plugin-authorization-architecture.markdown')
-rw-r--r-- | doc/en_US/plugin-authorization-architecture.markdown | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/doc/en_US/plugin-authorization-architecture.markdown b/doc/en_US/plugin-authorization-architecture.markdown deleted file mode 100644 index 24acee17..00000000 --- a/doc/en_US/plugin-authorization-architecture.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Authorization Architecture -========================== - -Kanboard [supports multiple roles](roles.markdown) at the application level and at the project level. - -Authorization Workflow ----------------------- - -For each HTTP request: - -1. Authorize or not access to the resource based on the application access list -2. If the resource is for a project (board, task...): - 1. Fetch user role for this project - 2. Grant/Denied access based on the project access map - -Extending Access Map --------------------- - -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. - -- Application access map: `$this->applicationAccessMap` -- Project access map: `$this->projectAccessMap` - -Examples to define a new policy from your plugin: - -```php -// All methods of the class MyController: -$this->projectAccessMap->add('MyController', '*', Role::PROJECT_MANAGER); - -// All some 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. |