Yii2-usuario:检查管理员

Yii2-usuario: Check for Admin

我是 Yii2-usuario 和 Yii2 身份验证的新手。

Yii2 提供了内置的 Yii::$app->user->isGuest 但没有 Yii::$app->user->isAdmin

我在 config/web.php 中将用户 chef 配置为 adminstrators:

'user' => [
    'class' => Da\User\Module::class,
    'administrators' => ['chef'],
    ...
],

我的数据库 tables auth_* 是空的。

如何查看当前用户是否

您似乎缺少 RBAC 的相关 table 中的数据。您应该阅读有关高级 RBAC 的 GUIDE 以及您应该如何构建授权数据,即

  • 定义角色和权限;
  • 建立角色和权限之间的关系;
  • 定义规则;
  • 将规则与角色和权限相关联;
  • 正在为用户分配角色。

因此,要使其正常工作,请验证您是否在 table auth_item 中使用 name 管理员定义了一个角色,然后键入 1 ,那么 auth_assignment 应该有你在 user table 中添加的管理员用户 (chef)user_id,反对角色定义即 admin

查看我的其中一个应用程序的图像,其中定义了 admin 角色和一个需要定义的路由,稍后使用 Yii::$app->user->can()

检查

auth_item

auth_assignment

**用户**

如果您根据指南实施高级 RBAC,我认为您不需要在模块配置下指定任何管理员,因为您随后会通过 [=16= 检查对任何操作、模块或控制器的访问权限] 其中 $routeauth_item 中定义,类型为 2.

注意还有auth_item_child table 当你的应用程序扩展并且你定义了多个角色时使用,主要是table 用于存储授权项层次结构。你可以在上面提到的 link 中阅读它。