ユーザー認証パッケージで有名なSentryとその後継のSentinelの話題です。
Sentryには特定のパーミッションをもつユーザーをすべて取得する「findAllUsersWithAccess」というファンクションがありました。
ところがその後継のSentinelには同様の機能が無くなってしまったため、同等の動作を考えました。
環境
- Laravel 5.1
- Sentinel 2.0.8
コード
Eloquentのfilterで特定のユーザーのみ抜き出すようにします。
[php]$permissions = [‘admin’];
$users = \Sentinel::getUserRepository()->get()->filter(function ($user) use ($permissions) {
return $user->hasAccess($permissions);
});[/php]