Помогите...

В окне браузера ссылка - http://127.0.0.1/blog/index.php?r=User/index.

Пункт меню высвечивает ссылку - http://127.0.0.1/blog/index.php?r=user/create.

Нажимаю на пункт меню и попадаю на раскрытую ссылку http://127.0.0.1/blog/index.php?r=site/login.

Все как положено - есть стандартно сгенерированные с помощью gii модель user, соответствующий контроллер

и представления.

Бьюсь полдня, хоть ты тресни…

Сейчас вот пришло в голову, что такая ситуация возникла для всех layout типа column2 после перехода с yiic на

gii.

У кого есть время, подскажите, пожалуйста, в чем тут может быть дело.


Посмотрел вот сейчас правило доступа-


         array('allow', // allow authenticated user to perform 'create' and 'update' actions

                'actions'=>array('create','update'),

                'users'=>array('@'),



Возможно yii сама посылает на аутентификацию, но откуда ей известен

контроллер/действие, ответственные за аутентификацию ?

После аутентификации все заработало.

Она не знает, она предпологает. Убери из котроллера SiteController экшен Login и получишь HTTP404

В чем проблема, я так и непонял.

Если нужен доступ к update, create без авторизации, замени собаку на звездочку




array('allow', // allow authenticated user to perform 'create' and 'update' actions

                'actions'=>array('create','update'),

                'users'=>array('*'),



[/quote]

А где у меня написано, что site/login - отвечает за аутентификацию ?

У меня написано только что контроллер site - является контроллером по умолчанию.

У меня нигде не сказано, что в контроллере site действие login отвечает за аутентификацию

и, тем более не сказано, что в случае нарушения правил доступа по причине неприемлемой

аутентификации, необходимо идти на аутентификацию.

Ладно, будем считать, что в случае, когда правила доступа требуют аутентификации,

yii по умолчанию направляет нас на site/login - url.

Может это где-то и есть в документации, пока еще не дошел, наверное.

Ну вообще, там в случае непрохода через accessRules котроллера вызывается метод CWebUser->loginRequired()

то есть loginUrl можно установить самостоятельно.

config/main.php:




        'components'=>array(

            'user'=>array(

                'loginUrl'=>array('site/login'),

                'allowAutoLogin'=>true,

            ),

        ),



Вообще-то у меня в этом месте вот что:


   // application components

    'components'=>array(

        'user'=>array(

            // enable cookie-based authentication

            'allowAutoLogin'=>true,

        ),

Но в принципе картина прояснилась. Скорее всего, в случае отсутствия явного определения loginURL, метод CWebUser->loginRequired() по умолчанию пытается обратиться к действию login default-контроллера.

Большое спасибо kitt и Andy_s.

Вопрос в тему, может быть есть что-то под рукой:

где задается этот вот homeUrl - Yii::app()->homeUrl ?

config/main.php




<?php


// uncomment the following to define a path alias

// Yii::setPathOfAlias('local','path/to/local-folder');


// This is the main Web application configuration. Any writable

// CWebApplication properties can be configured here.

return array(

  'homeUrl'=>'/post/',