Plugin Cake-control-br

Este plugin está hospedado no GitHub:
https://github.com/ribafs/cake-control-br

Este plugin é uma cópia do plugin cake-control mas tem o todo o template do bake traduzido manualmente. Como a internacionalização me pareceu um processo trabalhoso para deixar todo o aplicativo traduzido, então resolvi traduzir manualmente todas as strings e frases do template do bake, de forma que agora quando gero o código ele já vem traduzido.


Roteiro para a criação do aplicativo com Controle de Acesso

Instale o cake

composer create-project --prefer-dist cakephp/app control1

Agora instale o plugin com:

cd control1
composer require ribafs/cake-control-br

Habilite o plugin com:

bin/cake plugin load CakeControlBr --bootstrap

Considere que estou criando um aplicativo chamado de control1 (altere este nome a vontade)

Faça o download do plugin em
https://github.com/ribafs/cake-control-br

Descompacte e acesse a pasta docs. Então faça as seguintes cópias sobrescrevendo existentes:

bootstrap_cli.php para a control1/config (Com isso o Bake gerarará Users com login e logout)
AppController.php para control1/src/Controller

Obs.: O AppController.php já contém os helper e o layout.
O bootstrap.php já vem com o plugin CakeControl carregado, além da formatação de datas para o Brasil.

Em AppController.php você pode definir o controller default para usuários não administradores. Caso não use a tabela customers troque logo no início do AppController por uma de suas tabelas na linha:
    protected $noAdmins = 'Customers';

Criação e Configuração do Banco

Crie o banco e importe o script existente na pasta docs do plugin baixado. Depois edite config/app.php para configurar o banco.
Aproveite e configure também o controller default em config/routes.php para Groups em index.


2) Gerar os CRUDS com suporte à formatação brasileira de datas e gerando login e logout

Agora irei gerar todo o código novamente, pois agora irá gerar com os dois templates (default e bootstrap).

cd control1

bin/cake bake all groups -t CakeControlBr
bin/cake bake all users -t CakeControlBr
bin/cake bake all permissions -t CakeControlBr
bin/cake bake all customers -t CakeControlBr

O script do banco já vem com 4 grupos,  4 usuários e os customers.

Existem 4 usuários, cada um com permissões diferentes:

super com senha super também tem total permissão em tudo.
admin com senha admin tem total permissão nas tabelas groups, users e permissions.
manager com senha manager tem total permissão somente nas tabelas diferentes de groups, users e permissions.
user com senha user não tem nenhuma permissão no aplicativo, apenas de efetuar login.

Logo no primeiro login como super ou admin conceda permissão para user em Costomers e index.

Teste bem o aplicativo logando e experimentando com cada usuário em cada controller e action.
Observe que o menu é sensível ao contexto, mostra para cada usuário somente os controllers que ele tem permissão.

Dois Layouts

Muito sutilmente existe diferença entre os layouts para os usuários: um para os usuários super e admin e outro para manager e user. Apenas muda ligeiramente a cor de fundo. Aqui fica o convite para que customize o layout.

Mais detalhes veja o tutorial do cake-control em:
http://ribafs.org/portal/cakephp/plugins/cake-control/recursos-extras

E também as dicas em:
https://github.com/ribafs/cake-control-br/tree/master/docs/dicas