Yii1 访问规则

Yii1 accessRules

我需要允许某种类型的用户访问控制器的操作,同时拒绝具有相同角色和附加角色的其他用户。例如,用户 x 具有角色 'building',用户 y 具有角色 'building' 和 'admin'。我想允许 'building' 角色,除了那些也有 'manager' 角色的人。还有一个应该允许访问的 "super user" 角色。

以下代码块等同于我现在拥有的:

        array('allow',
            'actions' => array('frontdesk', 'cabinet', 'replace', 'discard'),
            'expression' => array('User', 'isSuperStatic')
        ),
        array('allow',
            'actions' => array('frontdesk', 'cabinet', 'replace', 'discard'),
            'roles' => array('building')
        ),
        array('deny',
            'users' => array('*')
        )

我想出的解决方案是使用另一个角色,这个角色是我在 'building' 部门中考虑的唯一角色。因此,例如,我不会使用 'building',而是使用 'building_front_desk'。经理没有那个角色,但所需的用户有。