summaryrefslogtreecommitdiff
path: root/doc/es_ES/plugin-authorization-architecture.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'doc/es_ES/plugin-authorization-architecture.markdown')
-rw-r--r--doc/es_ES/plugin-authorization-architecture.markdown39
1 files changed, 39 insertions, 0 deletions
diff --git a/doc/es_ES/plugin-authorization-architecture.markdown b/doc/es_ES/plugin-authorization-architecture.markdown
new file mode 100644
index 00000000..884e90aa
--- /dev/null
+++ b/doc/es_ES/plugin-authorization-architecture.markdown
@@ -0,0 +1,39 @@
+Arquitecuta de autorización
+===========================
+
+Kanboard [soporta multiples roles](roles.markdown) a nivel de aplicación y a nivel de proyecto.
+
+Workflow de autorización
+--------------------------
+
+Para cada solicitud HTTP:
+
+1. Autorizar o no el acceso a los recursos en base a la lista de acceso a las aplicaciones
+2. Si el recurso es para un projecto (board, tarea...):
+ 1. Extrae los roles de usuario para este proyecto
+ 2. Permitir/Denegar accesos basados en el mapa de acceso del proyecto
+
+Extendiendo mapa de accesos
+---------------------------
+
+Lista de accesos (ACL) se basa en el nombre de clase del controlador y el nombre del método
+La lista de acceso está a cargo de la clase `Kanboard\Core\Security\AccessMap`.
+
+Hay dos mapa de acceso: una para la aplicación y la otra para un proyecto.
+
+- Acceso al mapa de aplicación : `$this->applicationAccessMap`
+- Acceso al mapa del proyecto: `$this->projectAccessMap`
+
+Ejemplos para definir una nueva política para tu plugin:
+
+```php
+// Todos los metodos de la clase MyController:
+$this->projectAccessMap->add('MyController', '*', Role::PROJECT_MANAGER);
+
+// Todos los metodos:
+$this->projectAccessMap->add('MyOtherController', array('create', 'save'), Role::PROJECT_MEMBER);
+```
+
+Los roles estan defidos en la clase `Kanboard\Core\Security\Role`.
+
+Clase de autorización (`Kanboard\Core\Security\Authorization`) comprobará el acceso de cada página.