0

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

这些操作被命名为 [ModuleId]/[Subdirectory].[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,但没有成功。

如何将模块设置为始终允许?

4

1 回答 1

0

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

$access = $mod . $controller . ucfirst($this->action->id);
于 2013-09-03T13:57:27.873 回答