PHPackages                             abreu1234/acl - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. abreu1234/acl

ActiveCakephp-plugin

abreu1234/acl
=============

Acl plugin for CakePHP

2971PHP

Since Oct 29Pushed 10y ago4 watchersCompare

[ Source](https://github.com/abreu1234/acl)[ Packagist](https://packagist.org/packages/abreu1234/acl)[ RSS](/packages/abreu1234-acl/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

CakePHP Acl Plugin
==================

[](#cakephp-acl-plugin)

[![License](https://camo.githubusercontent.com/099bb612b9b2e8026e9ae1359d565c4503ef83415f83272e80aaf84a91cbff24/68747470733a2f2f706f7365722e707567782e6f72672f63616b657068702f61636c2f6c6963656e73652e737667)](https://packagist.org/packages/abreu1234/acl)

A plugin for managing ACL in CakePHP applications.

Plugin está em faze inicial de desenvolvimento, estou iniciando com o cakephp faz pouco tempo, favor enviar sugestões e críticas construtivas.

Instalando via composer
-----------------------

[](#instalando-via-composer)

Você pode instalar este plugin usando o composer [composer](http://getcomposer.org). Adicionar a seguinte dependência em seu `composer.json` file:

```
"require": {
	"abreu1234/acl": "dev-master"
}
```

e agora rode em seu terminal `php composer.phar update`

Carregue o plugin adicionando a seguinte linha em `config\bootstrap.php`:

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

Criando tabelas
---------------

[](#criando-tabelas)

Para criar as tabelas necessárias para o plugin usando `Migrations`rode o seguinte comando em seu terminal:

```
bin/cake migrations migrate -p Acl

```

Carregando complemento Auth
---------------------------

[](#carregando-complemento-auth)

Você deve iniciar o complemento `Auth` do cakephp

[(Auth cakephp)](http://book.cakephp.org/3.0/en/controllers/components/authentication.html)[(Auth tutorial)](http://book.cakephp.org/3.0/en/tutorials-and-examples/blog-auth-example/auth.html)

Configuração básica
-------------------

[](#configuração-básica)

Para carregar o complemento você deve adicionar o nome do seu controller de usuários em `Controller\AppController.php` da sua aplicação

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

Caso você utilize grupos adicionar o nome do controller de grupos também

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

Sincronizar controllers de plugins
----------------------------------

[](#sincronizar-controllers-de-plugins)

Para sincronizar os controllers de plugins basta adicionar a configuração a índice `plugins`

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

);
```

Por padrão o plugin este plugin irá sincronizar os controlelrs

Ignorando pastas e arquivos
---------------------------

[](#ignorando-pastas-e-arquivos)

Para ignorar alguma pasta ou arquivo durante a sincronização basta adicionar a configuração o índice `ignore`com a seguinte sintaxe `Prefixo->Pasta/Arquivo->Action`. Para ignorar todos os prefixos ou pasta de um prefixo adicione `*`

```
$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 permissão
---------------

[](#dando-permissão)

Para dar permissão para algum controller sem precisar do banco de dados adicione as seguintes linhas.

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

Usar o índice `authorize` com a seguinte sintaxe `Prefixo->Controller->Action`no exemplo acima estando dando permissão para o Controller `User` e Action `index`. Para aplicação raiz sem prefixo utilizar `/`

Caso precise autorizar um controller dentro de um prefixo usar o nome do prefixo depois da `/`

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

No exemplo acima estamos dando permissão para o Controller `User` e Action `add` do prefixo `Admin`

Caso precise autorizar um plugin utilizar a seguinte sintaxe `Plugin.Prefix` user `/` para a raiz do plugin

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

Exemplo acima por segurança apenas utilize até você ter adicionado permissões para algum usuário ou grupo. Após remover as linhas

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

Método isAuthorized
-------------------

[](#método-isauthorized)

Para fazer a validação do usuário ou grupo, use o método isAuthorized do complemento Auth. Adicione no arquivo `AppController.php` o seguinte código.

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

        return true;
    }
```

Sincronizando
-------------

[](#sincronizando)

Para sincronizar os controllers e actions basta ir até o endereço: `/acl/permission` e clicar no link de sincronização é importante o usuário ter permissão de acesso ao controller `Permission` e Actions `index` e `synchronize`

Gerenciando permissões
----------------------

[](#gerenciando-permissões)

Para gerenciar as permissões dos usuários ou grupos bastar ir até o endereço : `/acl/user-group-permission`Selecionar o usuário ou grupo e a as permissões. Para funcionar o usuário é preciso ter sincronizado as permissões e ter permissão de acesso ao controller `UserGroupPermission` e Actions `index`, `getPermission` e `addAjax`

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/dd5b994405f30161470d332ff9a0df53de67b27ea1605497fc1247d18f4eb262?d=identicon)[abreu1234](/maintainers/abreu1234)

---

Top Contributors

[![abreu1234](https://avatars.githubusercontent.com/u/5509247?v=4)](https://github.com/abreu1234 "abreu1234 (32 commits)")

### Embed Badge

![Health badge](/badges/abreu1234-acl/health.svg)

```
[![Health](https://phpackages.com/badges/abreu1234-acl/health.svg)](https://phpackages.com/packages/abreu1234-acl)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
