Kohana 3: Предотвратите действие контроллера, которое отображает подчиненное представление, если не вызвано из одобренного контроллера - PullRequest
0 голосов
/ 23 сентября 2010

Допустим, у меня есть домен www.example.com

У него есть контроллер по умолчанию, который называется 'account'.

Этот контроллер основан на шаблоне и создает представление, используя егоdata и результат нескольких визуализаций других контроллеров.

Давайте назовем другие контроллеры 'game' и 'stats'.

Эти 'субконтроллеры' вызывают View ::фабрика со своими собственными данными модели, а затем все это отображается для пользователя.

Я не хочу, чтобы люди могли войти в браузер www.example.com/game или www.example.com / stats и посмотрите представления субконтроллера, отображаемые без шаблона основного шаблона контроллера «account».

Какой лучший способ сделать это, или настроить мою структуру, чтобы сделать это.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2010
0 голосов
/ 23 сентября 2010

Вы можете проанализировать, является ли ваш запрос основным или просто подзапросом:

public function before()
{
   parent::before();
   if ($this->request === Request::instance()) 
   {
       // its a main request, throw an exception or redirect
   }
   else
   {
      // ok
   }
}

Но если вы хотите использовать Ajax-вызовы для обновления некоторых блоков, вы должны добавить Request::$is_ajax check.

...