formularios - Cómo verificar el rol en yii
yii2 html::a (2)
El director tiene los derechos de creador y revisor
if(Yii::app()->user->checkAccess(''Creator''))
{
// creator and director are here
}
if(Yii::app()->user->checkAccess(''Reviewer''))
{
// reviewer and director are here
}
if(Yii::app()->user->checkAccess(''Director''))
{
// director is here
}
Creé una aplicación web con el framework YII. Usé el módulo de derechos. Y creé 3 roles. Son
- Creador
- Crítico
- Director
"Creador" tiene algunas acciones y "Revisor" tiene algunas acciones. Y "Director" es hijo de "Creador" y "Revisor".
La pregunta es, si verifico un rol (por ejemplo, Creador), permitirá su función de niño (por ejemplo, "Director").
Por ejemplo, si marqué la función "Creador" como sigue, la declaración también debe funcionar para la función "Director".
if(Yii::app()->user->checkAccess(''Creator''))
{
statement....;
}
¿Cómo debería hacer?
Por ejemplo:
$role = Rights::getAssignedRoles(Yii::app() -> user -> Id);
foreach ($role as $role)
$role -> name;
if ($role -> name == ''Creator''|| $role -> name == ''Director'')
//do what you need
checkAccess () verifica el acceso para el elemento no rol. Por ejemplo:
if(Yii::app()->user->checkAccess(''Creator''))
Verifica el acceso a AuthItem ''Creator'' para el rol actual. Devuelve verdadero / falso.
Otro ejemplo de uso: menú principal para diferentes roles:
$role = Rights::getAssignedRoles(Yii::app() -> user -> Id);
foreach ($role as $role)
$role->name;
if ($role->name == ''Manager'' or Yii::app()->user->isSuperuser) {
$this->widget(''ext.cssmenu.CssMenu'', array(''items'' => array(array(''url'' => array(''/user/general/index''), ''label'' => "General", ''visible'' => Yii::app()->user->checkAccess(''general'')), array(''url'' => array(''/data''), ''label'' => "Data", ''visible'' => Yii::app()->user->checkAccess(''data'')), array(''url'' => Yii::app()->getModule(''user'')->clientsUrl, ''label'' => "Clients", ''visible'' => Yii::app()->user->checkAccess(''clients'')), array(''url'' => Yii::app()->getModule(''user'')->providersUrl, ''label'' => "Data Providers", ''visible'' => Yii::app()->user->checkAccess(''providers'')), array(''url'' => Yii::app()->getModule(''user'')->ordersUrl, ''label'' => "Orders", ''visible'' => Yii::app()->user->checkAccess(''orders'')), array(''url'' => Yii::app()->getModule(''user'')->profileUrl, ''label'' => "Tools", ''visible'' => Yii::app()->user->checkAccess(''tools'')), array(''url'' => Yii::app()->getModule(''user'')->logoutUrl, ''label'' => Yii::app()->getModule(''user'')->t("Logout"), ''visible'' => !Yii::app()->user->isGuest)),));
} elseif ($role->name == ''Client'') {
$this->widget(''ext.cssmenu.CssMenu'', array(''items'' => array(array(''url'' => array(''/user/general/index''), ''label'' => "General", ''visible'' => Yii::app()->user->checkAccess(''general'')), array(''url'' => array(''/user/data''), ''label'' => "Data", ''visible'' => Yii::app()->user->checkAccess(''data'')), array(''url'' => array(''/user/client/lists''), ''label'' => ''Lists'', ''visible'' => Yii::app()->user->checkAccess(''User.Client.Lists'')), array(''url'' => array(''/user/orders/index'', "id" => Yii::app()->user->Id), ''label'' => ''Orders'', ''visible'' => Yii::app()->user->checkaccess(''User.Orders.Index'')), array(''url'' => Yii::app()->getModule(''user'')->profileUrl, ''label'' => "Profile", ''visible'' => Yii::app()->user->checkAccess(''tools'')), array(''url'' => Yii::app()->getModule(''user'')->logoutUrl, ''label'' => Yii::app()->getModule(''user'')->t("Logout"), ''visible'' => !Yii::app()->user->isGuest))));
}
;
if ($role->name == ''Provider'') {
$this->widget(''ext.cssmenu.CssMenu'', array(''items'' => array(array(''url'' => array(''/user/general/index''), ''label'' => "General", ''visible'' => Yii::app()->user->checkAccess(''general'')), array(''url'' => array(''/user/data''), ''label'' => "Data", ''visible'' => Yii::app()->user->checkAccess(''data'')), array(''url'' => array(''/user/provider/data'', "id" => Yii::app()->user->Id), ''label'' => ''Data'', ''visible'' => Yii::app()->user->checkAccess(''User.Feeds.Feeds'')), array(''url'' => array(''/user/feeds/feeds'', "id" => Yii::app()->user->Id), ''label'' => ''Feeds'', ''visible'' => Yii::app()->user->checkAccess(''User.Feeds.Feeds'')), array(''url'' => array(''/user/payments'', "id" => Yii::app()->user->Id), ''label'' => ''Payments'', ''visible'' => Yii::app()->user->checkAccess(''User.Feeds.Feeds'')), array(''url'' => Yii::app()->getModule(''user'')->logoutUrl, ''label'' => Yii::app()->getModule(''user'')->t("Logout"), ''visible'' => !Yii::app()->user->isGuest))));
}