Eu criei uma permissão para o meu sistema e por esta extensão outros trabalhando bem. Como exemplo, eu defini permissão para o módulo Page, então usei abaixo do código
if(Yii::$app->user->can("page_module")){}else{
throw new ForbiddenHttpException("You are not authorized to perform this action.", 403);
}
e isso me provê restrição. Eu usei essas linhas de código pf no controlador de extensão, então ele restringiu mas causa vulnerável se eu atualizar a extensão, em seguida, o código irá remover. E eu não entendi como eu estendo toda a permissão do controlador e do conjunto, se existe outra maneira desconhecida para mim.
Respostas:
1 para resposta № 1Uma vez que você tenha configurado a extensão mdmsoft / yii2-admin, o acesso será negado a todas as rotas até que você as conceda. Em vez de codificar yii::$app->user-can("permission")
utilize o RBAC, que deve ser a única razão pela qual você instalou o mdmsoft / yii2-admin.
Como o Access Setup
Espero que você esteja usando o modelo avançado do Yii2. Inicialmente, configure o acesso como em seu frontend/config/main.php
:
"as access" => [
//This access behavior must be in frontend and backend.
//The "as access" behavior will interfere with migrations if put in common.
"class" => "mdmadmincomponentsAccessControl",
"allowActions" => [
"site/*", //Allow by default to all.
"debug/*",
//"admin/*", //Leave commented out, unless setting up admin roles initially.
//Allow guests to do:
"ticket/ticket/index",
]
],
Configurar o RBAC
A hierarquia do RBAC é assim:
Usuário-> Funções-> Permissões-> Rotas
Exemplo
-Joey
--Admin_Role
---- Admin_Permission
-------- app / controller1 / *
-------- app / controller2 / view
Configurar o RBAC
- Primeiro adicione suas rotas.
- Adicione suas permissões.
- Atribuir rotas às suas permissões.
- Crie seus papéis.
- Atribuir permissões às suas funções.
- Atribuir funções aos seus usuários.