Страница 1 из 1

Ошибка в Gii после настройки авторизации с PhpAuthManager

Добавлено: 2012.06.01, 17:27
Andre_487
Здравствуйте!

У меня такая проблема. Я настроил авторизацию с использованием ролей так, как написано в этой статье: http://yiiframework.ru/doc/cookbook/ru/access.rbac.file

После этого в Gii при выборе "Model Generator" возникает ошибка: Property "CWebUser.role" is not defined. Причем, только при выборе этого пункта.

Может быть, нужно как-то настроить Gii? Или как можно исправить такую ситуацию?

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.06.01, 18:18
anton44eg
вы в указали в конфиге

Код: Выделить всё

'user'=>array(
    'class' => 'WebUser',
    // …
), 

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.06.01, 18:36
Andre_487
Да, указал, и в других местах авторизация работает правильно.

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.06.01, 18:51
anton44eg
а Yii::app()->user->getRole(); что выдаёт?

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.06.01, 20:50
Andre_487
Ни метод getRole(), ни свойство role у Yii::app()->user не определены. Но если вывести var_dump(Yii::app()->user), получится вот что:

Код: Выделить всё

object(CWebUser)#12 (14) {
  ["allowAutoLogin"]=>
  bool(false)
  ["guestName"]=>
  string(5) "Guest"
  ["loginUrl"]=>
  string(46) "/moon/backoffice/index.php?r=gii/default/login"
  ["identityCookie"]=>
  NULL
  ["authTimeout"]=>
  NULL
  ["autoRenewCookie"]=>
  bool(false)
  ["autoUpdateFlash"]=>
  bool(true)
  ["loginRequiredAjaxResponse"]=>
  NULL
  ["_keyPrefix":"CWebUser":private]=>
  string(3) "gii"
  ["_access":"CWebUser":private]=>
  array(0) {
  }
  ["behaviors"]=>
  array(0) {
  }
  ["_initialized":"CApplicationComponent":private]=>
  bool(true)
  ["_e":"CComponent":private]=>
  NULL
  ["_m":"CComponent":private]=>
  NULL
}
При этом запрашивается ресурс http://127.0.0.1/moon/backoffice/index.php?r=gii/model

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.06.02, 18:08
anton44eg
У вас не подключается ваш класс WebUser. Я бы искал проблему в первую очередь в кониге

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.06.02, 19:17
TBIKC
Столкнулся с такой же проблемой, хотя конфиг чистенький ...

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.06.04, 09:24
Andre_487
В конфиге компоненты настроены следующим образом:

Код: Выделить всё

    // application components
    'components' => array(
        'user' => array(
            'class' => 'WebUser',
            // enable cookie-based authentication
            'allowAutoLogin' => TRUE,
        ),
        // uncomment the following to enable URLs in path-format
        /*
          'urlManager'=>array(
              'urlFormat'=>'path',
              'rules'=>array(
                  '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                  '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                  '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
              ),
          ),
          */
        /*'db'=>array(
              'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
          ),*/
        // uncomment the following to use a MySQL database
        'db' => array(
            'connectionString' => 'mysql:host=localhost;dbname=moon',
            'emulatePrepare' => TRUE,
            'username' => 'root',
            'password' => 'password',
            'charset' => 'utf8',
        ),
        'authManager' => array(
            'class' => 'PhpAuthManager',
            'defaultRoles' => array('guest'),
        ),
        'errorHandler' => array(
            // use 'site/error' action to display errors
            'errorAction' => 'site/error',
        ),
        'log' => array(
            'class' => 'CLogRouter',
            'routes' => array(
                array(
                    'class' => 'CFileLogRoute',
                    'levels' => 'error, warning',
                ),
                // uncomment the following to show log messages on web pages
                /*
                    array(
                        'class'=>'CWebLogRoute',
                    ),
                    */
            ),
        ),
    ),
 
Мог ли я тут что-то упустить?

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.06.13, 12:06
Andre_487
Эта тема все еще актуальна. Никто не может хотя бы предположить, в чем проблема?

В этом месте вызывается новый класс PhpAuthManager, но Yii::app()->user в нем ссылается на стандартный CWebUser, а не на новый WebUser.

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.06.14, 00:23
Zadira
А WebUser.php точно в паке protected/components ?

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.06.14, 10:43
Andre_487
Не совсем. Там определен алиас:

Код: Выделить всё

Yii::setPathOfAlias('root', realpath('../')); 
И конфигурация такая:

Код: Выделить всё

        'user' => array(
            'class' => 'root.common.components.WebUser',
            // enable cookie-based authentication
            'allowAutoLogin' => TRUE,
        ),
 

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.08.17, 11:30
kedaria
Ели проблему еще не решили, посмотрите эту тему: viewtopic.php?f=3&t=801

Re: Ошибка в Gii после настройки авторизации с PhpAuthManage

Добавлено: 2012.08.21, 07:58
chungachguk
kedaria писал(а):Ели проблему еще не решили, посмотрите эту тему: viewtopic.php?f=3&t=801
не понял, чем этот топик помогает.

Помогло обновление до "Version 1.1.12 August 19, 2012"