关于srbac的authority角色的问题

师兄们请教一个问题,我用srbac模块来管理帐户,按照文档的安装方法装好以后,把authority角色赋给root帐号,然后把config中的debug改为false。之后再用root登录以后,就无法进入srbac的管理界面了,始终讲我没有权限进入。Error:403 ‘You are not authorized for this action’

是否在login的时候需要做些什么额外的工作吗?

尝试了一下srbac这个extensions里面带的blog,没发现有这个问题

的确,blog那个示例中确实不存在问题。

但是blog那个示例中的三个controller(PostController、CommentController、SiteController)并没有继承自SBaseController,而在我的webapp中,SiteController不继承自SBaseController的话,就无法在srbac的autocreate auth items的controller列表中显示出来。

确实没有看出blog中代码的特殊之处。

多谢 Davidhhuan老兄的关注。谢谢

我找到原因了,还是太大意了。我在UserIdentity中没有写getID方法。

看了assignments表,它是绑定的itemname和userid,应该是没有写getID导致srbac模块没能获取到用户的id,所以不能正确的识别用户的权限。

ok了,这个权限控制调通了,接下来省不少时间了,只需关注业务逻辑了,最后来配置一下权限就哦也了!

都是你自己的功劳,我都没有做什么。 :P

其实我没有用过srbac这个module,刚才临时用了一下它的demo blog,感觉非常不错,只有一个地方不是很同意作者的作法而已,就是它的alwayAllowed是保存在allow.php文件里面而不是用数据表来保存。。。,不过总觉得怪怪的,那些operation, task, role都是放到数据表里面了,也应该把alwayAllowed一起放到items里面作一个统一嘛,然后再做个表用来保存对应的alwaysAllowed。

可能作者这样做是为了方便一点在不同的DBMS移植吧 :)

我的srbac怎么安装不成功呢