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

问题描述 投票:3回答:1

我已经能够扩展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']
];
php content-management-system backend octobercms
1个回答
1
投票

这应该做到这一点

User::extend(function($model) {
    $model->addDynamicMethod('scopeIsBookManager', function($query) {
        return $query->whereHas('groups', function ($query) {
            $query->where('code', 'BookManager');
        });
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.