10月CMS:如何使用角色范围扩展后端用户

时间:2016-11-25 03:21:43

标签: php content-management-system backend octobercms

我已经能够扩展Backend\Models\User类并添加范围查询方法以仅检索超级用户:

public function boot()
{
    User::extend(function($model) {
        $model->addDynamicMethod('scopeIsSuperUser', function($query) {
            return $query->where('is_superuser', 1);
        });
    });
}

如何为特定群组中的用户设置范围方法?就像我只想要角色为“BookManager”的用户一样。是否可以使用$groups类中已定义的Backend\Models\User关系?

public $belongsToMany = [
    'groups' => ['Backend\Models\UserGroup', 'table' => 'backend_users_groups']
];

1 个答案:

答案 0 :(得分:1)

这应该这样做

User::extend(function($model) {
    $model->addDynamicMethod('scopeIsBookManager', function($query) {
        return $query->whereHas('groups', function ($query) {
            $query->where('code', 'BookManager');
        });
    });
});