【问题标题】:CakePHP 2 - Issue allowing Controller's actionCakePHP 2 - 允许控制器操作的问题
【发布时间】:2013-11-13 22:41:22
【问题描述】:

这是我的情况:

我在 mi PluginAppController 中有一个 lang 函数,它可以更改语言环境并重定向到引用页面。

我有一个标志的图像菜单,用户也可以在其中单击它们以更改语言。

然后,因为我有一个身份验证系统,我想让用户只运行这个动作('lang')。

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

我的 lang 动作代码:

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

【问题讨论】:

  • 您可以在其他区域或使用其他方法允许或拒绝。此操作不应是控制允许/拒绝访问所有其他操作的操作。

标签: cakephp permissions cakephp-2.0


【解决方案1】:

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

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

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

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

【讨论】:

  • @GuillermoMansilla 但在我的 AppController 的 beforeFilter 操作中,我调用了一个检查权限的 cuestom 组件,因此在 '$this->Auth->allow('lang')' 之后,URL 被禁止,显示下一条通用消息:“Yue 未自动访问此位置”。我不明白为什么显示此消息,因为此消息属于 Auth 组件
猜你喜欢
  • 2014-03-15
  • 1970-01-01
  • 2020-02-16
  • 1970-01-01
  • 2010-10-16
  • 2021-11-21
  • 1970-01-01
  • 2017-05-31
  • 2016-03-27
相关资源
最近更新 更多