. */ namespace SP\Modules\Web\Controllers\ConfigLdap; use SP\Domain\Core\Exceptions\ValidationException; use SP\Domain\Http\Ports\RequestService; use SP\Domain\Auth\Providers\Ldap\LdapParams; use SP\Domain\Auth\Providers\Ldap\LdapTypeEnum; use function SP\__u; /** * Trait ConfigLdapTrait */ trait ConfigLdapTrait { /** * @param \SP\Domain\Http\Ports\RequestService $request * * @return LdapParams * @throws ValidationException */ protected function getLdapParamsFromRequest(RequestService $request): LdapParams { $data = LdapParams::getServerAndPort($request->analyzeString('ldap_server')); if (count($data) === 0) { throw new ValidationException(__u('Wrong LDAP parameters')); } $type = LdapTypeEnum::tryFrom($request->analyzeInt('ldap_server_type')) ?: LdapTypeEnum::STD; $params = new LdapParams( $data['server'], $type, $request->analyzeString('ldap_binduser'), $request->analyzeEncrypted('ldap_bindpass') ); $params->setPort($data['port'] ?? 389); $params->setSearchBase($request->analyzeString('ldap_base')); $params->setGroup($request->analyzeString('ldap_group')); $params->setTlsEnabled($request->analyzeBool('ldap_tls_enabled', false)); $params->setFilterUserObject($request->analyzeString('ldap_filter_user_object')); $params->setFilterGroupObject($request->analyzeString('ldap_filter_group_object')); $params->setFilterUserAttributes($request->analyzeArray('ldap_filter_user_attributes')); $params->setFilterGroupAttributes($request->analyzeArray('ldap_filter_group_attributes')); return $params; } }