【发布时间】:2017-08-15 14:24:40
【问题描述】:
我们可以使用 yii2 中提供的 identityclass 功能对员工进行身份验证。如果管理员不是员工怎么办?
config.php 中能否有两个身份类或如何实现这种情况?
【问题讨论】:
-
您不需要为它设置两个身份类别。明智地使用 rbac,它可以通过许可来完成。
-
我们如何使用 RBAC 来做到这一点
-
创建一个表用户组(amin、employee、moderator...)并使用这些名称创建角色,然后在您的用户表中使用该用户组。按照用户指南创建权限和角色。 yiiframework.com/doc-2.0/… 并使用 \Yii::$app->user->can('PERMISSON') 签入您的控制器。就这么简单。
-
正如 Samit 所说,您可以使用 RBAC 来完成 - 创建两个角色“Admin”和“Employee”并将它们分配给用户。或者您可以创建两个不同的应用程序(使用高级 yii2 模板)并为每个应用程序实现 2 个身份类(当然您应该在 DB 中以某种方式划分用户)
-
我只有 Employee 表,其中字段是(EmpId,FirstName,MiddleName,)等。现在我已将 identityClass 分配为 app\models\Employee。我创建了四个表 auth_item、auth_item_child、auth_rule 和 cuth_assignment,并将条目插入 auth_item 作为管理员和外勤人员(即创建的角色)。同样,我还将管理员分配给一名员工,将现场官员分配给另外两名员工。现在在 Controller 中,我已经编写了上述角色的访问规则。现在,当第一个现场官员创建小组时,他应该只能查看和更新他的小组详细信息,而不能查看和更新其他人
标签: yii2 yii2-basic-app yii2-user yii2-rbac