首页
学习
活动
专区
圈层
工具
发布

acl权限
EN

Stack Overflow用户
提问于 2013-01-03 00:51:07
回答 2查看 637关注 0票数 0

使用蛋糕acl,我尝试为已登录的用户设置权限。我在登录函数中有以下内容:

代码语言:javascript
复制
if ($user = $this->Auth->user()) {
    CakeLog::write('debug', 'this->Auth->user');
    //debug($user['User']);
    $userGroup = $this->User->Group->findById($user['User']['group_id']);
    $aro = $this->Acl->Aro->find('first', array(
        'conditions' => array(
            'Aro.model' => 'Group',
            'Aro.foreign_key' => $this->_user['User']['group_id'],  
        ),
    ));
    $acos = $this->Acl->Aco->children();
    foreach ($acos as $aco) {
    $permission = $this->Acl->Aro->Permission->find('first', array(
        'conditions' => array(
            'Permission.aro_id' => $aro['Aro']['id'],
            'Permission.aco_id' => $aco['Aco']['id'],
        ),
    ));
    if (isset($permission['Permission']['id'])) {
        if ($permission['Permission']['_create'] == 1 ||
            $permission['Permission']['_read'] == 1 ||
            $permission['Permission']['_update'] == 1 ||
            $permission['Permission']['_delete'] == 1) {
                $this->Session->write(
                    'Auth.Permissions.' . $permission['Aco']['alias'], true
                );
                if (!empty($permission['Aco']['parent_id'])) {
                    $parentAco = $this->Acl->Aco->find('first', array(
                        'conditions' => array(
                            'id' => $permission['Aco']['parent_id']
                        )
                    ));
                    $this->Session->write(
                        'Auth.Permissions.' . $permission['Aco']['alias']
                        . '.' . $parentAco['Aco']['alias'], true
                    );
                }
            }
        }
    }
}

我得到了这个错误:

未定义的属性: UsersController::$_user APP\controllers\users_controller.php,第82行

我可以用'$this->_user'User'‘修改’$this->_user‘user’,这样做对吗?如果不是,我应该设置什么公共$_user =?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-05 01:26:20

我用$user替换了_user,它似乎可以工作。

票数 0
EN

Stack Overflow用户

发布于 2013-01-03 10:26:35

如果需要经过身份验证的用户的group_id,可以调用

代码语言:javascript
复制
AuthComponent::user('group_id');
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14125865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档