updated plugin AuthLDAP
version 2.6.0
This commit is contained in:
24
wp-content/plugins/authldap/src/Exception/UnknownOption.php
Normal file
24
wp-content/plugins/authldap/src/Exception/UnknownOption.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Copyright Andreas Heigl <andreas@heigl.org>
|
||||
*
|
||||
* Licensed under the MIT-license. For details see the included file LICENSE.md
|
||||
*/
|
||||
|
||||
namespace Org_Heigl\AuthLdap\Exception;
|
||||
|
||||
use RuntimeException;
|
||||
|
||||
class UnknownOption extends RuntimeException
|
||||
{
|
||||
public static function withKey(string $key): self
|
||||
{
|
||||
return new self(sprintf(
|
||||
'An option "%1$s" is not known',
|
||||
$key
|
||||
));
|
||||
}
|
||||
}
|
@ -116,7 +116,7 @@ final class LdapUri
|
||||
if (isset($url['pass'])) {
|
||||
$this->password = $url['pass'];
|
||||
}
|
||||
if ($this->scheme === 'ldaps' && $this->port = 389) {
|
||||
if ($this->scheme === 'ldaps' && $this->port === 389) {
|
||||
$this->port = 636;
|
||||
}
|
||||
|
||||
|
27
wp-content/plugins/authldap/src/OptionFactory.php
Normal file
27
wp-content/plugins/authldap/src/OptionFactory.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Copyright Andreas Heigl <andreas@heigl.org>
|
||||
*
|
||||
* Licensed under the MIT-license. For details see the included file LICENSE.md
|
||||
*/
|
||||
|
||||
namespace Org_Heigl\AuthLdap;
|
||||
|
||||
use function json_decode;
|
||||
|
||||
class OptionFactory
|
||||
{
|
||||
public function fromJson(string $json): Options
|
||||
{
|
||||
$option = new Options();
|
||||
$content = json_decode($json, true);
|
||||
foreach ($content as $key => $value) {
|
||||
$option->set($key, $value);
|
||||
}
|
||||
|
||||
return $option;
|
||||
}
|
||||
}
|
90
wp-content/plugins/authldap/src/Options.php
Normal file
90
wp-content/plugins/authldap/src/Options.php
Normal file
@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Copyright Andreas Heigl <andreas@heigl.org>
|
||||
*
|
||||
* Licensed under the MIT-license. For details see the included file LICENSE.md
|
||||
*/
|
||||
|
||||
namespace Org_Heigl\AuthLdap;
|
||||
|
||||
use Org_Heigl\AuthLdap\Exception\UnknownOption;
|
||||
use function array_key_exists;
|
||||
|
||||
class Options
|
||||
{
|
||||
public const ENABLED = 'Enabled';
|
||||
public const CACHE_PW = 'CachePW';
|
||||
public const URI = 'URI';
|
||||
public const URI_SEPARATOR = 'URISeparator';
|
||||
public const FILTER = 'Filter';
|
||||
public const NAME_ATTR = 'NameAttr';
|
||||
public const SEC_NAME = 'SecName';
|
||||
public const UID_ATTR = 'UidAttr';
|
||||
public const MAIL_ATTR = 'MailAttr';
|
||||
public const WEB_ATTR = 'WebAttr';
|
||||
public const GROUPS = 'Groups';
|
||||
public const DEBUG = 'Debug';
|
||||
public const GROUP_ATTR = 'GroupAttr';
|
||||
public const GROUP_FILTER = 'GroupFilter';
|
||||
public const DEFAULT_ROLE = 'DefaultRole';
|
||||
public const GROUP_ENABLE = 'GroupEnable';
|
||||
public const GROUP_OVER_USER = 'GroupOverUser';
|
||||
public const VERSION = 'Version';
|
||||
public const DO_NOT_OVERWRITE_NON_LDAP_USERS = 'DoNotOverwriteNonLdapUsers';
|
||||
|
||||
private array $settings = [
|
||||
'Enabled' => false,
|
||||
'CachePW' => false,
|
||||
'URI' => '',
|
||||
'URISeparator' => ' ',
|
||||
'Filter' => '', // '(uid=%s)'
|
||||
'NameAttr' => '', // 'name'
|
||||
'SecName' => '',
|
||||
'UidAttr' => '', // 'uid'
|
||||
'MailAttr' => '', // 'mail'
|
||||
'WebAttr' => '',
|
||||
'Groups' => [],
|
||||
'Debug' => false,
|
||||
'GroupAttr' => '', // 'gidNumber'
|
||||
'GroupFilter' => '', // '(&(objectClass=posixGroup)(memberUid=%s))'
|
||||
'DefaultRole' => '',
|
||||
'GroupEnable' => true,
|
||||
'GroupOverUser' => true,
|
||||
'Version' => 1,
|
||||
'DoNotOverwriteNonLdapUsers' => false,
|
||||
];
|
||||
|
||||
public function get(string $key)
|
||||
{
|
||||
if (! array_key_exists($key, $this->settings)) {
|
||||
throw UnknownOption::withKey($key);
|
||||
}
|
||||
|
||||
return $this->settings[$key];
|
||||
}
|
||||
|
||||
public function has(string $key): bool
|
||||
{
|
||||
return array_key_exists($key, $this->settings);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $value
|
||||
*/
|
||||
public function set(string $key, $value): void
|
||||
{
|
||||
if (! array_key_exists($key, $this->settings)) {
|
||||
throw UnknownOption::withKey($key);
|
||||
}
|
||||
|
||||
$this->settings[$key] = $value;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return $this->settings;
|
||||
}
|
||||
}
|
@ -18,6 +18,7 @@ use function ldap_get_entries;
|
||||
use function ldap_set_option;
|
||||
use function ldap_start_tls;
|
||||
use function ldap_unbind;
|
||||
use function var_dump;
|
||||
|
||||
final class Ldap implements LdapInterface
|
||||
{
|
||||
|
Reference in New Issue
Block a user