我正在使用Yii2 basic。
我有Employee表,我已将Employee模型分配给用户应用程序组件,如下所示在配置文件中:
'user' => [
'identityClass' => 'app\models\Employee',
'enableSession' => true,
],
我还使用RBAC为员工创建了权限,角色和分配的角色。
1。现在,当管理员的角色为admin时,他可以在Admin LTE的侧边栏上看到foll菜单:
当角色为fieldofficer的员工登录时,他还会在侧栏上看到上面的菜单。 Fieldofficer应该只看到foll菜单:
如何根据员工的角色更改Admin LTE边栏上的菜单?
2。只有在为员工分配角色时,员工才能登录系统。怎么做到这一点?
答案 0 :(得分:0)
我是Yii 2的新手,上周这样做了。希望它有所帮助。
您可以使用Rbac完成您想要的任务。要了解有关RBAC的更多信息:https://en.wikipedia.org/wiki/Role-based_access_control
在您的系统中有一个Yii 2插件可以实现RBAC。 https://github.com/dektrium/yii2-rbac
您可以为用户分配角色。并授予这些角色的权限,基本上它是父子关系的亲属。
每当您创建新用户时,都会按如下方式为其分配权限:
$auth = Yii::$app->authManager;
$admin = $auth->getRole('admin');
$auth->assign($admin, 1); // the second parameter is user id
为角色分配权限:
$auth = Yii::$app->authManager;
$admin = $auth->getRole('admin');
$permCheckAdmin = $auth->createPermission('permCheckAdmin');
$permCheckAdmin->description = 'Check if admin';
$auth->add($permCheckAdmin);
$auth->addChild($admin, $permCheckAdmin);
使用以下方法检查用户是否拥有权限:
的Yii :: $ APP->用户每个可以( 'permCheckAdmin');
希望有所帮助