summaryrefslogtreecommitdiff
path: root/doc/en_US/plugin-authorization-architecture.markdown
diff options
context:
space:
mode:
authorFrédéric Guillot <fred@kanboard.net>2018-04-06 10:54:58 -0700
committerFrédéric Guillot <fred@kanboard.net>2018-04-06 10:54:58 -0700
commit0b306fa60ad84ea077111e0ff7b59208ba7bc8a3 (patch)
tree5d8941b5950ede2db8ca3fba0213792db0f07a50 /doc/en_US/plugin-authorization-architecture.markdown
parentac11220a1aa7ae30b8827d9bbf221888d3edd0a7 (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.markdown39
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.