0

我正在使用 Yii2 基础版。

我有 Employee 表,并在配置文件中将 Employee 模型分配给用户应用程序组件,如下所示:

'user' => [
            'identityClass' => 'app\models\Employee',
            'enableSession' => true,
          ],

我还使用 RBAC 为员工创建了权限、角色和分配角色。

1.现在当角色为admin的员工登录时,他可以在Admin LTE的侧边栏看到以下菜单:

  1. 硕士
  2. 员工
  3. 员工培训
  4. SHG简介
  5. 民意调查

当角色为外勤人员的员工登录时,他还会在侧边栏上看到上面的菜单。Fieldofficer 应该只看到以下菜单:

  1. 我的简历
  2. SHG简介

如何根据员工的角色更改 Admin LTE 侧边栏上的菜单?

2.员工必须分配角色才能登录系统。如何做到这一点?

4

1 回答 1

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->user->can('permCheckAdmin');

  • 您可以为管理员和员工分配权限,并根据权限使用操作。

希望能帮助到你

于 2017-09-15T07:45:53.717 回答