【问题标题】:Yii user types different to 'admin'Yii 用户类型不同于 'admin'
【发布时间】:2013-11-29 21:02:54
【问题描述】:

使用 gii 为实体创建 CRUD,它在每个控制器中创建一个 accessRules() 函数,如下所示:

public function accessRules()
{
    return array(
        array('allow',
            'actions'=>array('create','update'),
            'users'=>array('@'),
        ),
        array('allow', 
            'actions'=>array('admin','delete'),
            'users'=>array('admin'),
        ),
        array('deny',  // deny all users
            'users'=>array('*'),
        ),
    );
}

这基本上告诉 Yii 允许 认证 用户执行“创建”和“更新”操作,并允许 admin 用户执行“管理”和“删除”行动。

在我的应用程序中还有另一种类型的用户,即 HouseAdmin 用户,在简单的经过身份验证的用户和超级用户之间具有不同的角色。

在此处的帮助下,我创建了一个 isHouseAdmin() 函数,用于判断用户是否属于 HouseAdmin 类型。现在,我需要使用该信息使 accessRules() 与“houseAdmin”用户一起使用,因此我可以制定如下规则:

public function accessRules()
{
    return array(
    array('allow',
        'actions'=>array('index','view'),
        'users'=>array('@'),
        ),
        array('allow',
            'actions'=>array('create','update'),
            'users'=>array('houseAdmin'),
        ),
        array('allow', 
            'actions'=>array('admin','delete'),
            'users'=>array('admin'),
        ),
        array('deny',  // deny all users
            'users'=>array('*'),
        ),
    );
}

我怎么能这样做? 那些 'admin' 和 '@' 是在哪里定义的,所以我可以添加我的 'houseAdmin'?

【问题讨论】:

    标签: php yii yii-extensions


    【解决方案1】:

    adminhouseAdmin 是角色的名称。所以应该用 roles 键指定,而不是 users

    array('allow',
        'actions' => array('create','update'),
        'roles' => array('houseAdmin'),
    ),
    

    阅读this了解更多详情。

    【讨论】:

    猜你喜欢
    • 2018-07-02
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2015-02-03
    • 2013-02-03
    • 2021-02-02
    相关资源
    最近更新 更多