lionel1022 2012-12-15 20:38:36 3553次浏览 5条回复 0 0 0

今天研究Srbac,安装都成功了,但是权限分配后,都提示无权限运行(WelcomeIndex等这些永远允许的都可以运行)。。。 权限分配如下 [attach]1011[/attach] 添加动作 [attach]1012[/attach] 已分配的权限

配置文件如下:

'srbac' => array(
    'userclass'=>'ManagerUser',
    'userid'=>'member_user_id',
    'username'=>'user_alias',
    'debug'=>false,
    'pageSize'=>10,
    'superUser' =>'li',
    'css'=>'srbac.css',
    'layout'=>'views.manager.layouts.main',
    'notAuthorizedView'=>'srbac.views.authitem.unauthorized',
    'alwaysAllowed'=>array('SiteLogin','SiteLogout','SiteIndex','SiteAdmin','SiteError', 'SiteContact'),
    'userActions'=>array('Show','View','List'),
    'listBoxNumberOfLines' => 20,
    'imagesPath' => 'srbac.images',
    'imagesPack'=>'noia',
    'iconText'=>true,
    'header'=>'srbac.views.authitem.header',
    'footer'=>'srbac.views.authitem.footer',
    'showHeader'=>true,
    'showFooter'=>true,
    'alwaysAllowedPath'=>'srbac.components',
),
'authManager'=>array(
    'class'=>'CDbAuthManager',
    'connectionID'=>'acl',
    'itemTable'=>'items',
    'assignmentTable'=>'assignments',
    'itemChildTable'=>'itemchildren',
),

访问后提示页面: [attach]1013[/attach] 提示无权限

请教下,如何才能有权限运行呢?弄了好长时间也不知道问题处在那里。。。请帮忙看看。(数据库三个表也建立成功,都有数据。)

  • 回复于 2012-12-16 10:28 举报

    /place/index
    controller继承的哪个类呢?

  • 回复于 2012-12-16 13:47 举报

    place/index 是placeController 里面的,他继承的是controller类, controller继承的是SBaseController 类, aseControllel继承Ccontroller类

    SBaseController 类是srbac模型中的类。

    这个权限控制,是根据我配置文件里面那个userID来控制呢,还是username控制呢,我把userID已经添加进session了,但是,username没有添加,不知道是不是这里的问题。 我研究了下checkAccess方法,也没有什么头绪,不知道是通过什么来限制的。

  • 回复于 2012-12-16 14:44 举报

    是通过SRBACController的beforeAction来实现的。可以进去看看。

  • 回复于 2012-12-17 09:27 举报

    总算是弄出来了。原来它关联的的是userID,userID 的session 名称应该是 "__id" , 所以在用户登录的时候,应该把加上$this->setState('__id', “此处是你用户的id”); 这样srbac才能真正分配到权限。希望对各位有用,不走弯路。

  • 回复于 2012-12-17 09:29 举报

    感谢楼上帮助,困扰多时啊。。。呵呵

您需要登录后才可以回复。登录 | 立即注册