adldap-laravel と Laravel 5.8 を使用します。
LDAP グループに基づいて権限を取得しています。次を使用して、ユーザーがグループの一部であるかどうかを確認できます: $user->ldap->inGroup('Accounts');
(これは bool を返します)
ただし、そのメソッドは も受け入れますarray
が、「ANY」ではなく「AND」検索のようです。
だから私はこれを書いた:
/**
* LDAP helper, to see if the user is in an AD group.
* Iterate through and break when a match is found.
*
* @param mixed $input
* @return bool
*/
public function isInGroup($input)
{
if (is_string($input)) {
$input[] = $input;
}
foreach ($input as $group)
if ($this->ldap->inGroup($group)) {
return true;
}
return false;
}
次のように実装します。
$user->isInGroup(['Accounts', 'Sales', 'Marketing']);
ただし、チェックに時間がかかります。
私の問題を解決するための改善された方法を知っている人はいますか?