2021-10-02 14:33:14 +02:00
|
|
|
<?php
|
2021-10-02 16:58:33 +02:00
|
|
|
declare(strict_types=1);
|
2021-10-02 14:33:14 +02:00
|
|
|
|
|
|
|
|
namespace FireflyIII\Ldap\Rules;
|
|
|
|
|
|
|
|
|
|
use LdapRecord\Laravel\Auth\Rule;
|
|
|
|
|
use LdapRecord\Models\ActiveDirectory\Group;
|
2021-10-03 15:31:36 +02:00
|
|
|
use Log;
|
2021-10-02 14:33:14 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Class UserDefinedRule
|
|
|
|
|
*/
|
|
|
|
|
class UserDefinedRule extends Rule
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Check if the rule passes validation.
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function isValid()
|
|
|
|
|
{
|
|
|
|
|
// LDAP_GROUP_FILTER
|
|
|
|
|
$groupFilter = config('ldap.group_filter');
|
2021-10-03 15:31:36 +02:00
|
|
|
Log::debug(sprintf('UserDefinedRule with group filter "%s"', $groupFilter));
|
2021-10-02 14:33:14 +02:00
|
|
|
if (null !== $groupFilter && '' !== (string)$groupFilter) {
|
2021-10-03 15:31:36 +02:00
|
|
|
Log::debug('Group filter is not empty, will now apply it.');
|
|
|
|
|
$administrators = Group::find($groupFilter);
|
|
|
|
|
$result = $this->user->groups()->recursive()->exists($administrators);
|
|
|
|
|
Log::debug(sprintf('Search result is %s.', var_export($result, true)));
|
2021-10-02 14:33:14 +02:00
|
|
|
|
2021-10-03 15:31:36 +02:00
|
|
|
return $result;
|
2021-10-02 14:33:14 +02:00
|
|
|
}
|
2021-10-03 15:31:36 +02:00
|
|
|
Log::debug('Group filter is empty or NULL, so will return true.');
|
2021-10-02 14:33:14 +02:00
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|