超级用户在Yii的权利扩展中意味着什么?

时间:2011-12-14 09:01:34

标签: php yii yii-extensions

我正在使用Yii的版权扩展并收到此错误:

There must be at least one superuser!

我不知道这个superuser意味着什么,因为我使用的是用户admin和demo的默认身份验证。在阅读权限扩展的文档后,我尝试使用以下命令配置权限:

'rights'=>array(
    'superuserName'=>'admin',
    'install'=>true
),

但是它不起作用,我在网上搜索但没有结果。

7 个答案:

答案 0 :(得分:7)

您需要将用户表与表AuthAssignment连接,其名称已在数组设置中声明

'modules'=>array(
'rights'=>array(
    'superuserName'=>'admin',
     ),
 ),

然后,您必须更改引用表用户的字段ID的表AuthAssignment userid字段

答案 1 :(得分:4)

如果您安装了here之类的用户和权限, 只需在您的数据库中运行它:

INSERT INTO `AuthAssignment` (`itemname`, `userid`, `bizrule`, `data`) VALUES ('Admin', '1', NULL, 'N');
INSERT INTO `AuthItem` (`name`, `type`, `description`, `bizrule`, `data`) VALUES ('Admin', 0, 'Admin', NULL, 'N;'); 

注意:在本教程中,权限模块的所有表名均为小写。

答案 2 :(得分:2)

命名有点误导,我也偶然发现了这个问题。

superuserName应命名为superuserRole,这意味着分配给指定角色的所有用户都有超级用户

请注意,对于超级用户Yii::app()->user->checkAccess('whatever')始终为return true

另请参阅RAuthorizer.php

/**
* @property string the name of the superuser role.
*/
public $superuserName;

RWebUser.php

答案 3 :(得分:1)

有一个小黑客,你必须评论它才能工作......

查看官方扩展页面评论

编辑:我不想发布指向我自己的博客的链接,因为它看起来像是自我推销但是我觉得这是一个非常全面的解决方案:installing yii-rights extension

答案 4 :(得分:1)

FWIW(因为它已经很久了),你必须授予你的一个用户超级用户角色。

该角色名称在配置文件的superuserName属性中表示,如您的帖子所示。 这可以通过SQL直接完成,方法是更新authAssignment表(在您的情况下,它的名称可能不同,它是可配置的)。

INSERT INTO `authassignment` (`itemname`, `userid`, `bizrule`, `data`) VALUES ('admin', '1', NULL, 'N;');

然后,以适当的用户身份登录(在这种特殊情况下,对应于id#1的用户)。

答案 5 :(得分:0)

我认为你必须使用mysql数据库和表用户而不是默认身份验证 - 这只是身份验证的一个例子。导入用户表后 你应该添加一个用户名为“admin”的用户 - 如果你在用户表的superuserName配置中有“admin”。

答案 6 :(得分:0)

我设法按照yii-forums上的帖子安装它 - 这是我的帖子的固定链接: http://www.yiiframework.com/forum/index.php/topic/10556-extension-rights/page__view__findpost__p__229721