diff --git a/plugins/ldap-mail-accounts/LdapException.php b/plugins/ldap-mail-accounts/LdapException.php deleted file mode 100644 index df489e577..000000000 --- a/plugins/ldap-mail-accounts/LdapException.php +++ /dev/null @@ -1,5 +0,0 @@ -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; diff --git a/plugins/ldap-mail-accounts/LdapConfig.php b/plugins/ldap-mail-accounts/LdapMailAccountsConfig.php similarity index 94% rename from plugins/ldap-mail-accounts/LdapConfig.php rename to plugins/ldap-mail-accounts/LdapMailAccountsConfig.php index 22361e416..f1a62786c 100644 --- a/plugins/ldap-mail-accounts/LdapConfig.php +++ b/plugins/ldap-mail-accounts/LdapMailAccountsConfig.php @@ -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)); diff --git a/plugins/ldap-mail-accounts/LdapMailAccountsException.php b/plugins/ldap-mail-accounts/LdapMailAccountsException.php new file mode 100644 index 000000000..3135cc14b --- /dev/null +++ b/plugins/ldap-mail-accounts/LdapMailAccountsException.php @@ -0,0 +1,5 @@ +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.")