У меня есть типичные модели «Пользователи» и «Роли» с ролями, содержащими столбцы для разрешений со значениями true / false.
У меня также есть функция User, которая проверяет разрешения.
/** Return if the user has the given permission.
*
* @param string $permission
* @return boolean
*/
public function hasPermission($permission)
{
$roles = $this->roles();
$access = $roles->where(
$permission, true)->first();
if ($access !== null) {
//dd($permission);
return true;
}
return false;
}
Сейчас я пытаюсь сделать запрос, который возвращает всех пользователей с данным разрешением (скажем, с разрешением 'can_assign_roles').
Я подозреваю, что это выглядит как $permitted_users = User::whereHas('roles', function())->get()
с function($query)
с использованием User::hasPermission('can_assign_roles') == true
.
Но я не знаю, как все это сложить.