Yii framework 2 - direitos do usuário através do banco de dados.
Criamos um controlador a partir do qual todos os controladores serão herdados e beforeAction - um método que será executado antes da ação.
PS: modelos e CRUDs devem ser gerados usando o módulo Gii.
<?php namespace app\helper; use yii\web\Controller; use app\models\Users; use app\models\Rights; use Yii; class AppController extends Controller{ public function beforeAction($action){ $controller = $action->controller->id;
Modelo e tabela de direitos:
CREATE TABLE `rights` ( `id` int(11) NOT NULL AUTO_INCREMENT, `controller` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `rights` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=32 DEFAULT CHARSET=utf8
O modelo e a tabela de usuários, a peculiaridade é que há um campo de direitos:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(255) NOT NULL, `phone` varchar(22) NOT NULL, `password` varchar(64) NOT NULL, `righgts` varchar(60) NOT NULL, `verify_key` varchar(65) NOT NULL, `activated` int(11) NOT NULL, `recovery_key` varchar(65) NOT NULL, `recovery_key_life` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `auth_key` varchar(255) NOT NULL, `accessToken` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=37 DEFAULT CHARSET=utf8
Na tabela de usuários, temos a capacidade de alterar o campo de direitos, responsável pelos direitos de acesso às ações do controlador.

Na tabela de direitos que escrevemos: o controlador, ação e funções (direitos, direitos) que têm acesso a eles.

Algoritmo:
- O controlador pai verifica os direitos do usuário no banco de dados (coluna de direitos).
- O controlador pai obtém o nome do controlador chamado e o nome da ação chamada.
- O controlador pai acessa a tabela de direitos e verifica quais direitos são necessários para usar o chamado controlador e ação.
- Se os direitos do usuário corresponderem aos direitos na tabela de direitos, a ação será executada; caso contrário, o redirecionamento será executado.
Listar direitos na tabela de direitos separados por vírgulas.
É bom usar esse método no módulo do administrador, pois os direitos padrão da parte do usuário são adequados.
Não sou mestre em escrever artigos e me expressar lindamente; acabei de descrever a essência técnica, por favor, acrescente uma vantagem - escreverei muitas coisas interessantes.