renaming of files and classes resolve conflict with plugin ldap-identities

This commit is contained in:
cm-schl 2022-11-29 16:51:54 +01:00
parent 79191cf7a3
commit 71069a8cc9
5 changed files with 35 additions and 36 deletions

View file

@ -1,5 +0,0 @@
<?php
class LdapException extends \RainLoop\Exceptions\ClientException
{
}

View file

@ -17,7 +17,7 @@ class LdapMailAccounts
/** @var bool */
private $ldapBound = false;
/** @var LdapConfig */
/** @var LdapMailAccountsConfig */
private $config;
/** @var Logger */
@ -28,10 +28,10 @@ class LdapMailAccounts
/**
* LdapMailAccount constructor.
*
* @param LdapConfig $config LdapConfig object containing the admin configuration for this plugin
* @param LdapMailAccountsConfig $config LdapMailAccountsConfig object containing the admin configuration for this plugin
* @param Logger $logger Used to write to the logfile
*/
public function __construct(LdapConfig $config, Logger $logger)
public function __construct(LdapMailAccountsConfig $config, Logger $logger)
{
$this->config = $config;
$this->logger = $logger;
@ -60,7 +60,7 @@ class LdapMailAccounts
{
try {
$this->EnsureBound();
} catch (LdapException $e) {
} catch (LdapMailAccountsException $e) {
return false; // exceptions are only thrown from the handleerror function that does logging already
}
@ -87,7 +87,7 @@ class LdapMailAccounts
$this->config->field_domain
);
}
catch (LdapException $e) {
catch (LdapMailAccountsException $e) {
return false; // exceptions are only thrown from the handleerror function that does logging already
}
if (count($mailAddressResults) < 1) {
@ -165,7 +165,7 @@ class LdapMailAccounts
/**
* Checks if a connection to the LDAP was possible
*
* @throws LdapException
* @throws LdapMailAccountsException
*
* */
private function EnsureConnected(): void
@ -204,7 +204,7 @@ class LdapMailAccounts
/**
* Ensures the plugin has been authenticated at the LDAP
*
* @throws LdapException
* @throws LdapMailAccountsException
*
* */
private function EnsureBound(): void
@ -239,7 +239,7 @@ class LdapMailAccounts
* Handles and logs an eventual LDAP error
*
* @param string $op
* @throws LdapException
* @throws LdapMailAccountsException
*/
private function HandleLdapError(string $op = ""): void
{
@ -249,7 +249,7 @@ class LdapMailAccounts
$message = empty($op) ? "LDAP Error: {$errorMsg} ({$errorNo})" : "LDAP Error during {$op}: {$errorMsg} ({$errorNo})";
$this->logger->Write($message, \LOG_ERR, self::LOG_KEY);
throw new LdapException($message, $errorNo);
throw new LdapMailAccountsException($message, $errorNo);
}
/**
@ -264,8 +264,8 @@ class LdapMailAccounts
* @param string $nameField
* @param string $usernameField
* @param string $domainField
* @return LdapResult[]
* @throws LdapException
* @return LdapMailAccountResult[]
* @throws LdapMailAccountsException
*/
private function FindLdapResults(
string $searchField,
@ -296,12 +296,12 @@ class LdapMailAccounts
return [];
}
// Save the found ldap entries into a LdapResult object and return them
// Save the found ldap entries into a LdapMailAccountResult object and return them
$results = [];
for ($i = 0; $i < $entries["count"]; $i++) {
$entry = $entries[$i];
$result = new LdapResult();
$result = new LdapMailAccountResult();
$result->dn = $entry["dn"];
$result->name = $this->LdapGetAttribute($entry, $nameField, true, true);
@ -394,7 +394,7 @@ class LdapMailAccounts
}
}
class LdapResult
class LdapMailAccountResult
{
/** @var string */
public $dn;

View file

@ -3,7 +3,7 @@
use RainLoop\Config\Plugin;
class LdapConfig
class LdapMailAccountsConfig
{
public const CONFIG_SERVER = "server";
public const CONFIG_PROTOCOL_VERSION = "server_version";
@ -31,7 +31,7 @@ class LdapConfig
public $search_string;
public $field_domain;
public static function MakeConfig(Plugin $config): LdapConfig
public static function MakeConfig(Plugin $config): LdapMailAccountsConfig
{
$ldap = new self();
$ldap->server = trim($config->Get("plugin", self::CONFIG_SERVER));

View file

@ -0,0 +1,5 @@
<?php
class LdapMailAccountsException extends \RainLoop\Exceptions\ClientException
{
}

View file

@ -23,8 +23,8 @@ class LdapMailAccountsPlugin extends AbstractPlugin
public function __construct()
{
include_once __DIR__ . '/LdapMailAccounts.php';
include_once __DIR__ . '/LdapConfig.php';
include_once __DIR__ . '/LdapException.php';
include_once __DIR__ . '/LdapMailAccountsConfig.php';
include_once __DIR__ . '/LdapMailAccountsException.php';
parent::__construct();
}
@ -40,11 +40,10 @@ class LdapMailAccountsPlugin extends AbstractPlugin
*
* @param Account $oAccount
*/
public function AddAdditionalLdapMailAccounts(Account $oAccount)
{
// Set up config
$config = LdapConfig::MakeConfig($this->Config());
$config = LdapMailAccountsConfig::MakeConfig($this->Config());
$oldapMailAccounts = new LdapMailAccounts($config, $this->Manager()->Actions()->Logger());
@ -57,44 +56,44 @@ class LdapMailAccountsPlugin extends AbstractPlugin
protected function configMapping(): array
{
return [
Property::NewInstance(LdapConfig::CONFIG_SERVER)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_SERVER)
->SetLabel("LDAP Server URL")
->SetPlaceholder("ldap://server:port")
->SetType(PluginPropertyType::STRING),
Property::NewInstance(LdapConfig::CONFIG_PROTOCOL_VERSION)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_PROTOCOL_VERSION)
->SetLabel("LDAP Protocol Version")
->SetType(PluginPropertyType::SELECTION)
->SetDefaultValue([2, 3]),
Property::NewInstance(LdapConfig::CONFIG_BIND_USER)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_BIND_USER)
->SetLabel("LDAP Username")
->SetDescription("The user to use for binding to the LDAP server. Should be a DN or RDN. Leave empty for anonymous bind.")
->SetType(PluginPropertyType::STRING),
Property::NewInstance(LdapConfig::CONFIG_BIND_PASSWORD)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_BIND_PASSWORD)
->SetLabel("LDAP Password")
->SetDescription("Leave empty for anonymous bind.")
->SetType(PluginPropertyType::PASSWORD),
Property::NewInstance(LdapConfig::CONFIG_OBJECTCLASS)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_OBJECTCLASS)
->SetLabel("Object class")
->SetType(PluginPropertyType::STRING)
->SetDescription("The object class to use when searching for additional mail accounts of the logged in SnappyMail user")
->SetDefaultValue("user"),
Property::NewInstance(LdapConfig::CONFIG_BASE)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_BASE)
->SetLabel("Base DN")
->SetType(PluginPropertyType::STRING)
->SetDescription("The base DN to search in for additional mail accounts of the logged in SnappyMail user"),
Property::NewInstance(LdapConfig::CONFIG_FIELD_SEARCH)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_FIELD_SEARCH)
->SetLabel("Search field")
->SetType(PluginPropertyType::STRING)
->SetDescription("The name of the ldap attribute that has to contain the here defined 'LDAP search string'.")
->SetDefaultValue("member"),
Property::NewInstance(LdapConfig::CONFIG_SEARCH_STRING)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_SEARCH_STRING)
->SetLabel("LDAP search string")
->SetType(PluginPropertyType::STRING)
->SetDescription("The search string used to find ldap objects of mail accounts the user has access to.
@ -102,7 +101,7 @@ class LdapMailAccountsPlugin extends AbstractPlugin
\n#BASE_DN# - replaced with the value inside the field 'User base DN'.")
->SetDefaultValue("uid=#USERNAME#"),
Property::NewInstance(LdapConfig::CONFIG_FIELD_USERNAME)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_FIELD_USERNAME)
->SetLabel("Username field of additional account")
->SetType(PluginPropertyType::STRING)
->SetDescription("The field containing the username of the found additional mail account.
@ -110,7 +109,7 @@ class LdapMailAccountsPlugin extends AbstractPlugin
\nIf this field contains an email address, only the local-part before the @ is used.")
->SetDefaultValue("uid"),
Property::NewInstance(LdapConfig::CONFIG_FIELD_MAIL_DOMAIN)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_FIELD_MAIL_DOMAIN)
->SetLabel("Domain name field of additional account")
->SetType(PluginPropertyType::STRING)
->SetDescription("The field containing the domain name of the found additional mail account.
@ -118,7 +117,7 @@ class LdapMailAccountsPlugin extends AbstractPlugin
\nIf this field contains an email address, only the domain-part after the @ is used.")
->SetDefaultValue("mail"),
Property::NewInstance(LdapConfig::CONFIG_FIELD_NAME)
Property::NewInstance(LdapMailAccountsConfig::CONFIG_FIELD_NAME)
->SetLabel("Additional account name field")
->SetType(PluginPropertyType::STRING)
->SetDescription("The field containing the default sender name of the found additional mail account.")