mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-12-27 01:28:56 +08:00
renaming of files and classes resolve conflict with plugin ldap-identities
This commit is contained in:
parent
79191cf7a3
commit
71069a8cc9
5 changed files with 35 additions and 36 deletions
|
@ -1,5 +0,0 @@
|
|||
<?php
|
||||
|
||||
class LdapException extends \RainLoop\Exceptions\ClientException
|
||||
{
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
5
plugins/ldap-mail-accounts/LdapMailAccountsException.php
Normal file
5
plugins/ldap-mail-accounts/LdapMailAccountsException.php
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
class LdapMailAccountsException extends \RainLoop\Exceptions\ClientException
|
||||
{
|
||||
}
|
|
@ -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.")
|
||||
|
|
Loading…
Reference in a new issue