Yii用户权限扩展

时间:2013-11-13 09:50:15

标签: php yii

我已经安装了yii版权扩展,这是安装后的代码,安装后会创建数据库表。

'modules'=>array(
        // uncomment the following to enable the Gii tool

            'rights'=>array( 
             'superuserName'=>'Admin',   // Name of the role with super user privileges.    
             'authenticatedName'=>'Authenticated',  //// Name of the authenticated user role.
                  'userIdColumn'=>'id',// Name of the user id column in the database.   
                   'userNameColumn'=>'username', //     Name of the user name column in the database.  
                   'enableBizRule'=>true, // Whether to enable authorization item business rules.    
                   'enableBizRuleData'=>false, //Whether to enable data for business rules.   
                         'displayDescription'=>true,  // Whether to use item description instead of name.    '
                          // Key to use for setting success flash messages.  
                            'flashErrorKey'=>'RightsError',  
                            / Key to use for setting error flash messages.    
                          //  'install'=>true,    // Whether to install rights.    
                            'baseUrl'=>'/rights', // Base URL for Rights. Change if module is nested.   
                              'layout'=>'rights.views.layouts.main',  // Layout to use for displaying Rights.    
                              'appLayout'=>'application.views.layouts.main', //Application layout.  
                                 'cssFile'=>'rights.css',   // Style sheet file to use for Rights.    '
                                 'install'=>false,  // Whether to enable installer.
                                        'debug'=>false,
                    ),


        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>'1234',
            // If removed, Gii defaults to localhost only. Edit carefully to taste.
            'ipFilters'=>array('127.0.0.1','::1'),
        ),

    ),

但是当我输入网址http://localhost/rightsTest/index.php/rights时,它会说

Error 403
There must be at least one superuser!

我尝试过很多东西但却无法找到答案。谢谢你的帮助。

4 个答案:

答案 0 :(得分:1)

您是否拥有包含id,username字段的用户表,并且您必须检查该表中是否至少有一条记录。因为权限选择用户表中的第一条记录作为管理员角色。

答案 1 :(得分:1)

创建新的管理员用户。数据库中有一个“用户”表是权利模块,使用您选择的“用户名”,“密码”输入您的管理员用户,不要忘记将“超级用户”和“状态”字段值设置为1。 ..

答案 2 :(得分:1)

您尚未在配置文件中指定超级用户。

  1. 在yii安装中打开protected-> config-> main.php文件。
  2. 查找以下与权利配置相关的行。

        'rights'=>array( 
              'install'=>false, // Enables the installer. 
              'userNameColumn'=>'user_name',
              'userClass'=>'Users',
              'superuserName'=>'your_superuser_username'
        ),
    
  3. 输入您的超级用户用户名作为'superuserName'的值。

  4. 保存main.php
  5. 并尝试重新加载权限。问题将得到解决。 :)

    注意:确保您的用户表的User Class和user_name列也在此处正确指定。否则你可能面临另一个问题。快乐的编码!感谢。

答案 3 :(得分:0)

我有同样的问题,我在RAuthorizer中添加我的超级用户名。在权利/组件/ RAuthorizer

$superusers = array('beautiful'); // Beautiful is my superadmin username
foreach( $users as $user )
$superusers[] = $user->name;

    if( $superusers===array() )
    throw new CHttpException(403, Rights::t('core', 'There must be at least one superuser!'));
    return $superusers;

它有效。