开发者

Kohana 3: Prevent a controller action which renders a sub-view from rendering if not called from approved controller

开发者 https://www.devze.com 2023-01-17 01:37 出处:网络
Let\'s say I have the do开发者_StackOverflowmain www.example.com It has a default controller called \'account\'.

Let's say I have the do开发者_StackOverflowmain www.example.com

It has a default controller called 'account'.

This controller is based on a template, and creates a view using it's data, and the result of a couple of other controller's renderings.

Let's call the other controllers, 'game', and 'stats'.

These 'sub-controllers' call View::factory with their own model data, and then the whole thing is rendered for the user.

I don't want people to be able to enter in to the browser www.example.com/game or www.example.com/stats and see the sub-controller's views rendered without the template of the main 'account' controller template.

What's the best way to do this, or adjust my structure to do it.


You can analize if your request main or its just a subrequest:

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

But if you want to use Ajax calls to update some blocks, you should add Request::$is_ajax check.


http://kerkness.ca/wiki/doku.php?id=routing:differ_request_for_internal_and_external

0

精彩评论

暂无评论...
验证码 换一张
取 消