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

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Andre_487
Сообщения: 27
Зарегистрирован: 2012.06.01, 11:54

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

Сообщение Andre_487 »

Здравствуйте!

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

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

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

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

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

Сообщение anton44eg »

вы в указали в конфиге

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

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

Аватара пользователя
Andre_487
Сообщения: 27
Зарегистрирован: 2012.06.01, 11:54

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

Сообщение Andre_487 »

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

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

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

Сообщение anton44eg »

а Yii::app()->user->getRole(); что выдаёт?

Аватара пользователя
Andre_487
Сообщения: 27
Зарегистрирован: 2012.06.01, 11:54

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

Сообщение 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

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

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

Сообщение anton44eg »

У вас не подключается ваш класс WebUser. Я бы искал проблему в первую очередь в кониге

Аватара пользователя
TBIKC
Сообщения: 133
Зарегистрирован: 2011.07.23, 16:30

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

Сообщение TBIKC »

Столкнулся с такой же проблемой, хотя конфиг чистенький ...

Аватара пользователя
Andre_487
Сообщения: 27
Зарегистрирован: 2012.06.01, 11:54

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

Сообщение 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',
                    ),
                    */
            ),
        ),
    ),
 
Мог ли я тут что-то упустить?

Аватара пользователя
Andre_487
Сообщения: 27
Зарегистрирован: 2012.06.01, 11:54

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

Сообщение Andre_487 »

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

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

Zadira
Сообщения: 48
Зарегистрирован: 2011.11.11, 18:20
Откуда: Москва
Контактная информация:

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

Сообщение Zadira »

А WebUser.php точно в паке protected/components ?

Аватара пользователя
Andre_487
Сообщения: 27
Зарегистрирован: 2012.06.01, 11:54

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

Сообщение Andre_487 »

Не совсем. Там определен алиас:

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

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

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

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

kedaria
Сообщения: 51
Зарегистрирован: 2012.05.16, 17:07

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

Сообщение kedaria »

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

Аватара пользователя
chungachguk
Сообщения: 428
Зарегистрирован: 2012.07.17, 11:52

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

Сообщение chungachguk »

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

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

Ответить