【问题标题】:how to fix isAuthorized issue in cakephp如何修复 cakephp 中的 isAuthorized 问题
【发布时间】:2013-08-29 14:27:24
【问题描述】:

嗨,我刚刚观察到我的 isAuthorized() 有一个非常奇怪的行为。我的父函数返回 true,但我的操作仍然被拒绝访问。我会错过什么...谢谢 父函数

public function isAuthorized($user) {
        $granted = $this->getGrant($user);
        return ($granted === '1') ? true : false;
    }

儿童功能

public function isAuthorized($user){
        return parent::isAuthorized($user);
    }

我调试了 $granted 并返回“1”,但我仍然被拒绝访问我的(特权)操作。注意:这并不是在所有情况下都会发生......我有一个 /groups 控制器和 /groups/priviledge 控制器和操作。 isAuthorized() 适用于前者,但不适用于后者。感谢您的帮助。

【问题讨论】:

  • ($granted === '1') 评估为布尔值,无需附加“?true:false”。另外,你为什么要在子函数被继承(和可调用)时覆盖它?

标签: cakephp


【解决方案1】:

试试

return ($granted === 1) ? true : false;

【讨论】:

  • 可能改用return (intval($granted)===1);,以确保类型匹配。
  • 无济于事,伙计们...都试过了。这对我来说非常奇怪和令人沮丧。可能有什么问题???
  • @Luvy_soLs 尝试硬编码return true; 来测试是否存在类型不匹配问题。
  • 正是我尝试了硬编码返回 true;有用。但是,当我尝试在上述条件下返回 true 时,它​​不仅会起作用!!!。真的很奇怪,因为在 debug() 上它返回 true,但它不会正常工作!!!。我很困惑!!!
猜你喜欢
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多