Использование adldap-laravel и Laravel 5.8.
Я получаю разрешения на основе групп LDAP. Я могу проверить, является ли пользователь частью группы, используя: $user->ldap->inGroup('Accounts');
(который возвращает bool)
Однако этот метод также принимает array
, но, по-видимому, это поиск "AND", а не "ANY".
Итак, я написал это:
/**
* 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']);
Однако проверка занимает много времени.
Кто-нибудь знает улучшенный способ решения моей проблемы?