2017 © Pedro Peláez
 

cakephp-plugin acl

Acl plugin for CakePHP

image

carlose119/acl

Acl plugin for CakePHP

  • Friday, March 9, 2018
  • by carlose119
  • Repository
  • 0 Watchers
  • 0 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

CakePHP Acl Plugin

License, (*1)

Proyecto basado en el proyecto: (https://packagist.org/packages/abreu1234/acl) Este proyecto es un de Fork de https://github.com/abreu1234/acl Todo el reconocimiento al trabajo hecho por el usuario abreu1234, (*2)

El plugin para el manejo de ACL en aplicaciones CakePHP., (*3)

Instalando via composer

Usted puede instalar este plugin usando el composer [Composer] (http://getcomposer.org). Agregue la siguiente dependencia en su composer.json file:, (*4)

"require": {
    "carlose119/acl": "dev-master"
}

y ahora ejecute en su terminal php composer.phar update, (*5)

Cargue el plugin añadiendo la siguiente línea en config\bootstrap.php:, (*6)

Plugin::load('Acl', ['bootstrap' => false, 'routes' => true]);

Creando tablas

Para crear las tablas necesarias para el plugin usando Migrations ejecute el siguiente comando en su terminal:, (*7)

bin/cake migrations migrate -p Acl

Cargando complemento Auth

Debe iniciar el complemento Auth del cakephp, (*8)

(Auth cakephp) (Auth tutorial), (*9)

Configuración básica

Para cargar el complemento usted debe agregar el nombre de su controlador de usuarios en Controller\AppController.php de su aplicación, (*10)

$this->loadComponent('Acl.Acl', ['controllers' =>['user'=>'Users']]);

Si utiliza grupos agregar el nombre del controlador de grupo también, (*11)

$this->loadComponent('Acl.Acl', ['controllers' =>['user'=>'Users','group'=>'Groups']]);

Sincronizar controladores de plugins

Para sincronizar los controllers de plugins basta con añadir la configuración a índice plugins, (*12)

$this->loadComponent('Acl.Acl', 
    [
        'controllers' =>['user'=>'Users','group'=>'Groups'],
        'plugins' => ['PluginName']
    ]

);

Por defecto este plugin sincronizará los controladores, (*13)

Configurar los campos de Autenticación

Para configurar campos de autenticación distintos a lo que utiliza el CakePhp por defecto, (*14)

$this->loadComponent('Acl.Acl', 
    [
            'authenticate' => [
                'username' => 'email',
                'password' => 'password'                    
            ],
    ]

);

Ignorar carpetas y archivos

Para omitir alguna carpeta o archivo durante la sincronización basta con añadir la configuración el índice ignore con la siguiente sintaxis Prefixo->Pasta/Arquivo->Action. Para omitir todos los prefijos o carpetas de un prefijo adicione *, (*15)

$this->loadComponent('Acl.Acl', [
    'controllers' =>['user'=>'Users','group'=>'Groups'],
    'plugins' => ['PluginName'],
    'ignore' => [
        '*' => [
                '.','..','Component','AppController.php','empty',
                '*'  => ['beforeFilter', 'afterFilter', 'initialize'],
                'Permission'  => ['add']
            ],
            'Admin' => [
                'Users' => ['delete']
            ]
        ]
]);

Dando permiso

Para dar permiso a algún controlador sin necesidad de la base de datos agregue las líneas siguientes., (*16)

$this->loadComponent('Acl.Acl', [
            'authorize' => [
                '/' => [
                    'Users' => ['index'],
                ]
            ],
            'controllers' =>['user'=>'Users']
        ]);

Utilizar el índice authorize con la siguiente sintaxis Prefixo->Controller->Action en el ejemplo anterior estando dando permiso al Controller User e Action index. Para la aplicación raíz sin prefijo utilizar /, (*17)

Si necesita autorizar un controlador dentro de un prefijo usar el nombre del prefijo después de /, (*18)

$this->loadComponent('Acl.Acl', [
            'authorize' => [
                '/' => [
                    'Users' => ['index'],
                ],
                '/Admin' => [
                    'Users' => ['add'],
                ]
            ],
            'controllers' =>['user'=>'Users']
        ]);

En el ejemplo anterior estamos dando permiso al Controlador User y Actionadd del prefijo Admin, (*19)

Si necesita autorizar un plugin utilizar la siguiente sintaxis Plugin.Prefix user / para la raíz del plugin, (*20)

$this->loadComponent('Acl.Acl', [
            'authorize' => [
                '/' => [
                    'Users' => ['index'],
                ],
                '/Admin' => [
                    'Users' => ['add'],
                ],
                'Acl./' => [
                    'Permission' => ['index','synchronize'],
                    'UserGroupPermission' => ['index','getPermission','addAjax']
                ],
            ],
            'controllers' =>['user'=>'Users']
        ]);

El ejemplo de arriba por seguridad sólo utilice hasta que haya agregado permisos a algún usuario o grupo. Después de quitar las líneas, (*21)

'Acl./' => [
          'Permission' => ['index','synchronize'],
          'UserGroupPermission' => ['index','getPermission','addAjax']
      ],

Método isAuthorized

Para realizar la validación del usuario o grupo, utilice el método isAuthorized del complemento Auth. Agregue en el archivo AppController.php el siguiente código., (*22)

    public function isAuthorized($user)
    {
        if(!$this->Acl->check()) {
            $this->Flash->error(__('User or group no access permission!'));
            return false;
        }

        return true;
    }

Sincronización

Para sincronizar los controllers y actions basta ir a la dirección: /acl/permission hacer clic en el enlace de sincronización es importante que el usuario tenga permiso de acceso al controlador Permission y Actions index y synchronize, (*23)

Administrar permisos

Para gestionar los permisos de los usuarios o grupos basta con ir a la dirección: /acl/user-group-permission Seleccione el usuario o el grupo y los permisos. Para funcionar el usuario hay que haber sincronizado los permisos y tener permiso de acceso al usuario controlador UserGroupPermission y Actions index, getPermission y addAjax, (*24)

The Versions

09/03 2018

dev-master

9999999-dev https://github.com/carlose119/acl

Acl plugin for CakePHP

  Sources   Download

MIT

The Requires

 

The Development Requires

09/03 2018

v1.0

1.0.0.0 https://github.com/carlose119/acl

Acl plugin for CakePHP

  Sources   Download

MIT

The Requires

 

The Development Requires