我是Yii2-usuario和Yii2认证的新手。
Yii2提供内置的Yii::$app->user->isGuest
,但没有Yii::$app->user->isAdmin
。
我在chef
中将用户adminstrators
配置为config/web.php
:
'user' => [
'class' => Da\User\Module::class,
'administrators' => ['chef'],
...
],
我的数据库tables auth_*
为空。
如何检查当前用户
答案 0 :(得分:1)
看起来像您在RBAC的相关表中缺少数据。您应该阅读GUIDE有关高级RBAC的知识,以及应该如何构建授权数据,即
因此,要使其正常工作,请验证您是否具有name
管理员在表auth_item中定义的角色,并键入 1 ,然后auth_assignment
应该具有{{1您在user_id
表中添加的管理员用户(主厨)的}}角色,与定义的角色 admin 相对。
从我的一个应用程序中定义了user
角色的图像以及以后需要使用admin
的一个路由查看并检查图像
auth_item
auth_assignment
**用户**
如果您按照指南实施高级RBAC,我认为您无需在模块配置下指定任何管理员,因为您随后将通过Yii::$app->user->can()
检查对任何操作,模块或控制器的访问,其中Yii::$app->user->can($route)
在$route
中定义,类型为 2 。
请注意,还有一个auth_item
表,该表在您的应用程序扩展且定义了多个角色时使用,主要是用于存储授权项目层次结构的表。您可以在顶部提到的链接中了解它。