CakePHP 2 - 允许Controller操作的问题

时间:2013-11-13 12:27:53

标签: cakephp permissions cakephp-2.0

这是我的情况:

我在mi PluginAppController中有一个lang函数,它改变了语言环境语言,并被重定向到referer页面。

我有一个标志的图像菜单,用户可以对它们进行clic来改变语言。

然后,因为我有一个身份验证系统,我想允许用户只运行此操作('lang')。

问题是我的系统获取了URL,但它是引用URL,因为在lang操作结束时我重定向到引用者,因此我不能允许或拒绝此操作。

我的行动代码:

public function lang($lang = 'spa'){
  $this->Session->write('Config.language', $lang);
  $this->redirect($this->referer());
}

1 个答案:

答案 0 :(得分:0)

您是否允许访问名为“lang”的操作? 然后把它放在你的beforeFilter(AppController,而不是你的插件的AppController)

$this->Auth->allow('lang')

当然,这假设你的应用程序中没有其他具有该名称的操作,在这种情况下,您需要检查请求并确定它是否来自您的插件

if ($this->request->params['plugin'] == 'yourPlugin' && $this->request->params['controller'] == 'controllerOfYourPlugin') {
   $this->Auth->allow('lang');
}
相关问题