我正在尝试在Yii中使用hybridauth扩展名。如果没有srbac扩展,一切都很好,问题是我需要为未经授权的用户启用此模块的访问权限。我已尝试设置属性alwaysAllowed,如srbac guide中所述:
像这样:操作命名为 [的moduleId] / [子目录]。[ContollerId] [动作]
'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?
答案 0 :(得分:0)
已将hybridauth@DefaultIndex
和hybridauth@DefaultCallback
添加到始终允许的列表中,现在可以正常运行。可以在函数srbac/Controllers/SBaseController.php
中的beforeAction
中看到此字符串的构造:
$access = $mod . $controller . ucfirst($this->action->id);