【问题标题】:Enable access to module for unauthorized users in Yii's srbac在 Yii 的 srbac 中允许未经授权的用户访问模块
【发布时间】:2013-08-29 07:15:55
【问题描述】:

我正在尝试在 Yii 中使用 hybridauth 扩展名。没有srbac 扩展一切都很好,问题是我需要为使用它的未经授权的用户启用对该模块的访问。我已经尝试按照srbac guide 中的说明设置属性 alwaysAllowed:

这些操作被命名为 [ModuleId]/[子目录].[ContollerId][Action]

像这样:

'alwaysAllowed'=>array( //default: array()
            'SiteLogin','SiteLogout','SiteIndex','SiteAdmin',
            'SiteError', 'SiteContact','hybridauth@controllers.DefaultLogin'),

(我的分隔符是@),它不起作用。我一直在调试它,似乎Hybridauth控制器(DefaultController)在函数_extendsSBaseController(modules/srbac/controllers/AuthItemController.php)中未被识别为SBaseController:

if ($cont instanceof SBaseController) {
  return true;
}

我的 Controller 类正在扩展 SBaseController,它适用于不在模块中的控制器,但不适用于此模块。我还尝试使用 SBaseController 直接扩展 DefaultController,但没有成功。

如何设置模块为alwaysAllowed?

【问题讨论】:

    标签: php yii module hybridauth


    【解决方案1】:

    我已将 hybridauth@DefaultIndexhybridauth@DefaultCallback 添加到始终允许的列表中,现在它可以工作了。这个字符串的构造可以在srbac/Controllers/SBaseController.php函数beforeAction中看到:

    $access = $mod . $controller . ucfirst($this->action->id);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-10
      • 2013-11-25
      • 2019-11-20
      • 2021-01-20
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 2019-09-06
      相关资源
      最近更新 更多