Yii2 usuario:检查管理员

Yii2 usuario:检查管理员,yii2,rbac,Yii2,Rbac,我是Yii2 usuario和Yii2身份验证的新手 Yii2提供内置Yii::$app->user->isGuest,但没有Yii::$app->user->isAdmin 我在config/web.php中将用户chef配置为管理员: 我的数据库表auth_*为空 如何检查当前用户 是管理员吗? 具有管理员权限角色admin? 看起来您缺少RBAC相关表中的数据。您应该阅读有关advance RBAC以及如何构建授权数据(即 定义角色和权限; 建立角色和权限之间的关系; 界定规则; 将规则与

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

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

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

我的数据库表auth_*为空

如何检查当前用户

是管理员吗? 具有管理员权限角色admin?
看起来您缺少RBAC相关表中的数据。您应该阅读有关advance RBAC以及如何构建授权数据(即

定义角色和权限; 建立角色和权限之间的关系; 界定规则; 将规则与角色和权限关联; 为用户分配角色。 因此,要使其工作,请验证是否在表auth_项中定义了名为admin且类型为1的角色,然后auth_分配应具有您在用户表中添加的管理员用户chef的用户id,与定义的角色(即admin)相对应

查看我的一个应用程序中的图像,其中定义了管理员角色,以及一个需要在以后使用Yii::$app->user->can定义和检查的路由

验证项

授权分配

**使用者**

如果您根据指南实施advance RBAC,我认为您不需要在模块配置下指定任何管理员,因为您可以通过Yii::$app->user->can$route检查对任何操作、模块或控制器的访问,其中$route在auth_项中定义,类型为2


注意,还有一个auth_item_子表,在应用程序扩展时使用,并且定义了多个角色,主要是用于存储授权项层次结构的表。您可以在上面提到的链接中阅读相关内容。

您是否在表auth_项中定义了一个名为admin且类型为1的角色,那么auth_分配应该具有您在用户表中添加的管理员用户chef的用户id,而不是定义的角色,即admin?如果您实现RBAC,我认为您不需要在模块配置下指定任何管理员,因为您可以通过Yii::$app->user->can$route检查对任何操作、模块或控制器的访问,其中$route在auth_项中定义,类型为2@MuhammadOmerAslam非常感谢。它起作用了。我在哪里可以读到这些。有导游之类的吗?我必须在配置中将admin指定为“administrators”,因为在第一次登录时,我需要一个用户和一个管理员。@MuhammadOmerAslam根据您的评论回答,我会将其标记为已解决。谢谢,太好了!1如果我没有在config/web.php中指定'administrators'=>['chef'],那么允许谁使用空数据库登录?2是否可以通过迁移添加用户(如chef)?2是的,您可以为添加管理员创建单独的迁移。2关于属性管理员,它配置被视为管理员的用户的用户名。管理员可以在这里配置,也可以像我们一样通过RBAC使用特殊的权限名进行配置。推荐的方法是使用模块的属性administratorPermissionName,因为它们可以在整个RBAC界面中动态设置,但对于静态管理员的简单后端,使用此属性不会随时间变化@Wesee的意思是,如果没有随机分配的管理员,那么您可以在此处指定管理员,但是如果有多个角色,并且管理员角色的分配会随着时间的推移而改变,那么可以使用adminstratorPermissionName,然后您也可以使用AccessRuleFilter,如所述,查看完整的配置选项列表@威西
'user' => [
    'class' => Da\User\Module::class,
    'administrators' => ['chef'],
    ...
],