允许Yii';中未经授权的用户访问模块;s srbac


Enable access to module for unauthorized users in Yii's srbac

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

操作命名为[模块ID]/[子目录]。[ControllerId][Action]

像这样:

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

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

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

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

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

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

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