summaryrefslogtreecommitdiff
path: root/Postman/Postman-Configuration/PostmanImportableConfiguration.php
diff options
context:
space:
mode:
Diffstat (limited to 'Postman/Postman-Configuration/PostmanImportableConfiguration.php')
-rw-r--r--Postman/Postman-Configuration/PostmanImportableConfiguration.php580
1 files changed, 0 insertions, 580 deletions
diff --git a/Postman/Postman-Configuration/PostmanImportableConfiguration.php b/Postman/Postman-Configuration/PostmanImportableConfiguration.php
deleted file mode 100644
index 0008221..0000000
--- a/Postman/Postman-Configuration/PostmanImportableConfiguration.php
+++ /dev/null
@@ -1,580 +0,0 @@
-<?php
-if ( ! defined( 'ABSPATH' ) ) {
- exit; // Exit if accessed directly
-}
-
-if (! interface_exists ( 'PostmanPluginOptions' )) {
- interface PostmanPluginOptions {
- public function getPluginSlug();
- public function getPluginName();
- public function isImportable();
- public function getHostname();
- public function getPort();
- public function getMessageSenderEmail();
- public function getMessageSenderName();
- public function getAuthenticationType();
- public function getEncryptionType();
- public function getUsername();
- public function getPassword();
- }
-}
-if (! class_exists ( 'PostmanImportableConfiguration' )) {
-
- /**
- * This class instantiates the Connectors for new users to Postman.
- * It determines which Connectors can supply configuration data
- *
- * @author jasonhendriks
- *
- */
- class PostmanImportableConfiguration {
- private $lazyInit;
- private $availableOptions;
- private $importAvailable;
- private $logger;
- function __construct() {
- $this->logger = new PostmanLogger ( get_class ( $this ) );
- }
- function init() {
- if (! $this->lazyInit) {
- $this->queueIfAvailable ( new PostmanEasyWpSmtpOptions () );
- $this->queueIfAvailable ( new PostmanWpSmtpOptions () );
- $this->queueIfAvailable ( new PostmanWpMailBankOptions () );
- $this->queueIfAvailable ( new PostmanWpMailSmtpOptions () );
- $this->queueIfAvailable ( new PostmanCimySwiftSmtpOptions () );
- $this->queueIfAvailable ( new PostmanConfigureSmtpOptions () );
- }
- $this->lazyInit = true;
- }
- private function queueIfAvailable(PostmanPluginOptions $options) {
- $slug = $options->getPluginSlug ();
- if ($options->isImportable ()) {
- $this->availableOptions [$slug] = $options;
- $this->importAvailable = true;
- $this->logger->debug ( $slug . ' is importable' );
- } else {
- $this->logger->debug ( $slug . ' is not importable' );
- }
- }
- public function getAvailableOptions() {
- $this->init ();
- return $this->availableOptions;
- }
- public function isImportAvailable() {
- $this->init ();
- return $this->importAvailable;
- }
- }
-}
-
-if (! class_exists ( 'PostmanAbstractPluginOptions' )) {
-
- /**
- *
- * @author jasonhendriks
- */
- abstract class PostmanAbstractPluginOptions implements PostmanPluginOptions {
- protected $options;
- protected $logger;
- public function __construct() {
- $this->logger = new PostmanLogger ( get_class ( $this ) );
- }
- public function isValid() {
- $valid = true;
- $host = $this->getHostname ();
- $port = $this->getPort ();
- $fromEmail = $this->getMessageSenderEmail ();
- $fromName = $this->getMessageSenderName ();
- $auth = $this->getAuthenticationType ();
- $enc = $this->getEncryptionType ();
- $username = $this->getUsername ();
- $password = $this->getPassword ();
- $valid &= ! empty ( $host );
- $this->logger->trace ( 'host ok ' . $valid );
- $valid &= ! empty ( $port ) && absint ( $port ) > 0 && absint ( $port ) <= 65535;
- $this->logger->trace ( 'port ok ' . $valid );
- $valid &= ! empty ( $fromEmail );
- $this->logger->trace ( 'from email ok ' . $valid );
- $valid &= ! empty ( $fromName );
- $this->logger->trace ( 'from name ok ' . $valid );
- $valid &= ! empty ( $auth );
- $this->logger->trace ( 'auth ok ' . $valid );
- $valid &= ! empty ( $enc );
- $this->logger->trace ( 'enc ok ' . $valid );
- if ($auth != PostmanOptions::AUTHENTICATION_TYPE_NONE) {
- $valid &= ! empty ( $username );
- $valid &= ! empty ( $password );
- }
- $this->logger->trace ( 'user/pass ok ' . $valid );
- return $valid;
- }
- public function isImportable() {
- return $this->isValid ();
- }
- }
-}
-
-if (! class_exists ( 'PostmanConfigureSmtpOptions' )) {
- // ConfigureSmtp (aka "SMTP") - 80,000
- class PostmanConfigureSmtpOptions extends PostmanAbstractPluginOptions {
- const SLUG = 'configure_smtp';
- const PLUGIN_NAME = 'Configure SMTP';
- const MESSAGE_SENDER_EMAIL = 'from_email';
- const MESSAGE_SENDER_NAME = 'from_name';
- const HOSTNAME = 'host';
- const PORT = 'port';
- const AUTHENTICATION_TYPE = 'smtp_auth';
- const ENCRYPTION_TYPE = 'smtp_secure';
- const USERNAME = 'smtp_user';
- const PASSWORD = 'smtp_pass';
- public function __construct() {
- parent::__construct ();
- $this->options = get_option ( 'c2c_configure_smtp' );
- }
- public function getPluginSlug() {
- return self::SLUG;
- }
- public function getPluginName() {
- return self::PLUGIN_NAME;
- }
- public function getMessageSenderEmail() {
- if (isset ( $this->options [self::MESSAGE_SENDER_EMAIL] ))
- return $this->options [self::MESSAGE_SENDER_EMAIL];
- }
- public function getMessageSenderName() {
- if (isset ( $this->options [self::MESSAGE_SENDER_NAME] ))
- return $this->options [self::MESSAGE_SENDER_NAME];
- }
- public function getHostname() {
- if (isset ( $this->options [self::HOSTNAME] ))
- return $this->options [self::HOSTNAME];
- }
- public function getPort() {
- if (isset ( $this->options [self::PORT] ))
- return $this->options [self::PORT];
- }
- public function getUsername() {
- if (isset ( $this->options [self::USERNAME] ))
- return $this->options [self::USERNAME];
- }
- public function getPassword() {
- if (isset ( $this->options [self::PASSWORD] ))
- return $this->options [self::PASSWORD];
- }
- public function getAuthenticationType() {
- if (isset ( $this->options [self::AUTHENTICATION_TYPE] )) {
- if ($this->options [self::AUTHENTICATION_TYPE] == 1) {
- return PostmanOptions::AUTHENTICATION_TYPE_PLAIN;
- } else {
- return PostmanOptions::AUTHENTICATION_TYPE_NONE;
- }
- }
- }
- public function getEncryptionType() {
- if (isset ( $this->options [self::ENCRYPTION_TYPE] )) {
- switch ($this->options [self::ENCRYPTION_TYPE]) {
- case 'ssl' :
- return PostmanOptions::SECURITY_TYPE_SMTPS;
- case 'tls' :
- return PostmanOptions::SECURITY_TYPE_STARTTLS;
- case '' :
- return PostmanOptions::SECURITY_TYPE_NONE;
- }
- }
- }
- }
-}
-
-if (! class_exists ( 'PostmanCimySwiftSmtpOptions' )) {
- // Cimy Swift - 9,000
- class PostmanCimySwiftSmtpOptions extends PostmanAbstractPluginOptions {
- const SLUG = 'cimy_swift_smtp';
- const PLUGIN_NAME = 'Cimy Swift SMTP';
- const MESSAGE_SENDER_EMAIL = 'sender_mail';
- const MESSAGE_SENDER_NAME = 'sender_name';
- const HOSTNAME = 'server';
- const PORT = 'port';
- const ENCRYPTION_TYPE = 'ssl';
- const USERNAME = 'username';
- const PASSWORD = 'password';
- public function __construct() {
- parent::__construct ();
- $this->options = get_option ( 'cimy_swift_smtp_options' );
- }
- public function getPluginSlug() {
- return self::SLUG;
- }
- public function getPluginName() {
- return self::PLUGIN_NAME;
- }
- public function getMessageSenderEmail() {
- if (isset ( $this->options [self::MESSAGE_SENDER_EMAIL] ))
- return $this->options [self::MESSAGE_SENDER_EMAIL];
- }
- public function getMessageSenderName() {
- if (isset ( $this->options [self::MESSAGE_SENDER_NAME] ))
- return $this->options [self::MESSAGE_SENDER_NAME];
- }
- public function getHostname() {
- if (isset ( $this->options [self::HOSTNAME] ))
- return $this->options [self::HOSTNAME];
- }
- public function getPort() {
- if (isset ( $this->options [self::PORT] ))
- return $this->options [self::PORT];
- }
- public function getUsername() {
- if (isset ( $this->options [self::USERNAME] ))
- return $this->options [self::USERNAME];
- }
- public function getPassword() {
- if (isset ( $this->options [self::PASSWORD] ))
- return $this->options [self::PASSWORD];
- }
- public function getAuthenticationType() {
- if (! empty ( $this->options [self::USERNAME] ) && ! empty ( $this->options [self::PASSWORD] )) {
- return PostmanOptions::AUTHENTICATION_TYPE_PLAIN;
- } else {
- return PostmanOptions::AUTHENTICATION_TYPE_NONE;
- }
- }
- public function getEncryptionType() {
- if (isset ( $this->options [self::ENCRYPTION_TYPE] )) {
- switch ($this->options [self::ENCRYPTION_TYPE]) {
- case 'ssl' :
- return PostmanOptions::SECURITY_TYPE_SMTPS;
- case 'tls' :
- return PostmanOptions::SECURITY_TYPE_STARTTLS;
- case '' :
- return PostmanOptions::SECURITY_TYPE_NONE;
- }
- }
- }
- }
-}
-
-// Easy WP SMTP - 40,000
-if (! class_exists ( 'PostmanEasyWpSmtpOptions' )) {
-
- /**
- * Imports Easy WP SMTP options into Postman
- *
- * @author jasonhendriks
- */
- class PostmanEasyWpSmtpOptions extends PostmanAbstractPluginOptions implements PostmanPluginOptions {
- const SLUG = 'easy_wp_smtp';
- const PLUGIN_NAME = 'Easy WP SMTP';
- const SMTP_SETTINGS = 'smtp_settings';
- const MESSAGE_SENDER_EMAIL = 'from_email_field';
- const MESSAGE_SENDER_NAME = 'from_name_field';
- const HOSTNAME = 'host';
- const PORT = 'port';
- const ENCRYPTION_TYPE = 'type_encryption';
- const AUTHENTICATION_TYPE = 'autentication';
- const USERNAME = 'username';
- const PASSWORD = 'password';
- public function __construct() {
- parent::__construct ();
- $this->options = get_option ( 'swpsmtp_options' );
- }
- public function getPluginSlug() {
- return self::SLUG;
- }
- public function getPluginName() {
- return self::PLUGIN_NAME;
- }
- public function getMessageSenderEmail() {
- if (isset ( $this->options [self::MESSAGE_SENDER_EMAIL] ))
- return $this->options [self::MESSAGE_SENDER_EMAIL];
- }
- public function getMessageSenderName() {
- if (isset ( $this->options [self::MESSAGE_SENDER_NAME] ))
- return $this->options [self::MESSAGE_SENDER_NAME];
- }
- public function getHostname() {
- if (isset ( $this->options [self::SMTP_SETTINGS] [self::HOSTNAME] ))
- return $this->options [self::SMTP_SETTINGS] [self::HOSTNAME];
- }
- public function getPort() {
- if (isset ( $this->options [self::SMTP_SETTINGS] [self::PORT] ))
- return $this->options [self::SMTP_SETTINGS] [self::PORT];
- }
- public function getUsername() {
- if (isset ( $this->options [self::SMTP_SETTINGS] [self::USERNAME] ))
- return $this->options [self::SMTP_SETTINGS] [self::USERNAME];
- }
- public function getPassword() {
- if (isset ( $this->options [self::SMTP_SETTINGS] [self::PASSWORD] )) {
- // wpecommerce screwed the pooch
- $password = $this->options [self::SMTP_SETTINGS] [self::PASSWORD];
- if (strlen ( $password ) % 4 != 0 || preg_match ( '/[^A-Za-z0-9]/', $password )) {
- $decodedPw = base64_decode ( $password, true );
- $reencodedPw = base64_encode ( $decodedPw );
- if ($reencodedPw === $password) {
- // encoded
- return $decodedPw;
- } else {
- // not encoded
- return $password;
- }
- }
- }
- }
- public function getAuthenticationType() {
- if (isset ( $this->options [self::SMTP_SETTINGS] [self::AUTHENTICATION_TYPE] )) {
- switch ($this->options [self::SMTP_SETTINGS] [self::AUTHENTICATION_TYPE]) {
- case 'yes' :
- return PostmanOptions::AUTHENTICATION_TYPE_PLAIN;
- case 'no' :
- return PostmanOptions::AUTHENTICATION_TYPE_NONE;
- }
- }
- }
- public function getEncryptionType() {
- if (isset ( $this->options [self::SMTP_SETTINGS] [self::ENCRYPTION_TYPE] )) {
- switch ($this->options [self::SMTP_SETTINGS] [self::ENCRYPTION_TYPE]) {
- case 'ssl' :
- return PostmanOptions::SECURITY_TYPE_SMTPS;
- case 'tls' :
- return PostmanOptions::SECURITY_TYPE_STARTTLS;
- case 'none' :
- return PostmanOptions::SECURITY_TYPE_NONE;
- }
- }
- }
- }
-}
-
-if (! class_exists ( 'PostmanWpMailBankOptions' )) {
-
- /**
- * Import configuration from WP Mail Bank
- *
- * @author jasonhendriks
- *
- */
- class PostmanWpMailBankOptions extends PostmanAbstractPluginOptions implements PostmanPluginOptions {
- const SLUG = 'wp_mail_bank';
- const PLUGIN_NAME = 'WP Mail Bank';
- public function __construct() {
- parent::__construct ();
- // data is stored in table wp_mail_bank
- // fields are id, from_name, from_email, mailer_type, return_path, return_email, smtp_host, smtp_port, word_wrap, encryption, smtp_keep_alive, authentication, smtp_username, smtp_password
- global $wpdb;
- $wpdb->show_errors ();
- $wpdb->suppress_errors ();
- $this->options = @$wpdb->get_row ( "SELECT from_name, from_email, mailer_type, smtp_host, smtp_port, encryption, authentication, smtp_username, smtp_password FROM " . $wpdb->prefix . "mail_bank" );
- }
- public function getPluginSlug() {
- return self::SLUG;
- }
- public function getPluginName() {
- return self::PLUGIN_NAME;
- }
- public function getMessageSenderEmail() {
- if (isset ( $this->options->from_email ))
- return $this->options->from_email;
- }
- public function getMessageSenderName() {
- if (isset ( $this->options->from_name )) {
- return stripslashes ( htmlspecialchars_decode ( $this->options->from_name, ENT_QUOTES ) );
- }
- }
- public function getHostname() {
- if (isset ( $this->options->smtp_host ))
- return $this->options->smtp_host;
- }
- public function getPort() {
- if (isset ( $this->options->smtp_port ))
- return $this->options->smtp_port;
- }
- public function getUsername() {
- if (isset ( $this->options->authentication ) && isset ( $this->options->smtp_username ))
- if ($this->options->authentication == 1)
- return $this->options->smtp_username;
- }
- public function getPassword() {
- if (isset ( $this->options->authentication ) && isset ( $this->options->smtp_password )) {
- if ($this->options->authentication == 1)
- return $this->options->smtp_password;
- }
- }
- public function getAuthenticationType() {
- if (isset ( $this->options->authentication )) {
- if ($this->options->authentication == 1) {
- return PostmanOptions::AUTHENTICATION_TYPE_PLAIN;
- } else if ($this->options->authentication == 0) {
- return PostmanOptions::AUTHENTICATION_TYPE_NONE;
- }
- }
- }
- public function getEncryptionType() {
- if (isset ( $this->options->mailer_type )) {
- if ($this->options->mailer_type == 0) {
- switch ($this->options->encryption) {
- case 0 :
- return PostmanOptions::SECURITY_TYPE_NONE;
- case 1 :
- return PostmanOptions::SECURITY_TYPE_SMTPS;
- case 2 :
- return PostmanOptions::SECURITY_TYPE_STARTTLS;
- }
- }
- }
- }
- }
-}
-
-// "WP Mail SMTP" (aka "Email") - 300,000
-// each field is a new row in options : mail_from, mail_from_name, smtp_host, smtp_port, smtp_ssl, smtp_auth, smtp_user, smtp_pass
-// "Easy SMTP Mail" aka. "Webriti SMTP Mail" appears to share the data format of "WP Mail SMTP" so no need to create an Options class for it.
-//
-if (! class_exists ( 'PostmanWpMailSmtpOptions' )) {
- class PostmanWpMailSmtpOptions extends PostmanAbstractPluginOptions implements PostmanPluginOptions {
- const SLUG = 'wp_mail_smtp';
- const PLUGIN_NAME = 'WP Mail SMTP';
- const MESSAGE_SENDER_EMAIL = 'mail_from';
- const MESSAGE_SENDER_NAME = 'mail_from_name';
- const HOSTNAME = 'smtp_host';
- const PORT = 'smtp_port';
- const ENCRYPTION_TYPE = 'smtp_ssl';
- const AUTHENTICATION_TYPE = 'smtp_auth';
- const USERNAME = 'smtp_user';
- const PASSWORD = 'smtp_pass';
- public function __construct() {
- parent::__construct ();
- $this->options [self::MESSAGE_SENDER_EMAIL] = get_option ( self::MESSAGE_SENDER_EMAIL );
- $this->options [self::MESSAGE_SENDER_NAME] = get_option ( self::MESSAGE_SENDER_NAME );
- $this->options [self::HOSTNAME] = get_option ( self::HOSTNAME );
- $this->options [self::PORT] = get_option ( self::PORT );
- $this->options [self::ENCRYPTION_TYPE] = get_option ( self::ENCRYPTION_TYPE );
- $this->options [self::AUTHENTICATION_TYPE] = get_option ( self::AUTHENTICATION_TYPE );
- $this->options [self::USERNAME] = get_option ( self::USERNAME );
- $this->options [self::PASSWORD] = get_option ( self::PASSWORD );
- }
- public function getPluginSlug() {
- return self::SLUG;
- }
- public function getPluginName() {
- return self::PLUGIN_NAME;
- }
- public function getMessageSenderEmail() {
- if (isset ( $this->options [self::MESSAGE_SENDER_EMAIL] ))
- return $this->options [self::MESSAGE_SENDER_EMAIL];
- }
- public function getMessageSenderName() {
- if (isset ( $this->options [self::MESSAGE_SENDER_NAME] ))
- return $this->options [self::MESSAGE_SENDER_NAME];
- }
- public function getHostname() {
- if (isset ( $this->options [self::HOSTNAME] ))
- return $this->options [self::HOSTNAME];
- }
- public function getPort() {
- if (isset ( $this->options [self::PORT] ))
- return $this->options [self::PORT];
- }
- public function getUsername() {
- if (isset ( $this->options [self::USERNAME] ))
- return $this->options [self::USERNAME];
- }
- public function getPassword() {
- if (isset ( $this->options [self::PASSWORD] ))
- return $this->options [self::PASSWORD];
- }
- public function getAuthenticationType() {
- if (isset ( $this->options [self::AUTHENTICATION_TYPE] )) {
- switch ($this->options [self::AUTHENTICATION_TYPE]) {
- case 'true' :
- return PostmanOptions::AUTHENTICATION_TYPE_PLAIN;
- case 'false' :
- return PostmanOptions::AUTHENTICATION_TYPE_NONE;
- }
- }
- }
- public function getEncryptionType() {
- if (isset ( $this->options [self::ENCRYPTION_TYPE] )) {
- switch ($this->options [self::ENCRYPTION_TYPE]) {
- case 'ssl' :
- return PostmanOptions::SECURITY_TYPE_SMTPS;
- case 'tls' :
- return PostmanOptions::SECURITY_TYPE_STARTTLS;
- case 'none' :
- return PostmanOptions::SECURITY_TYPE_NONE;
- }
- }
- }
- }
-}
-
-// WP SMTP - 40,000
-if (! class_exists ( 'PostmanWpSmtpOptions' )) {
- class PostmanWpSmtpOptions extends PostmanAbstractPluginOptions implements PostmanPluginOptions {
- const SLUG = 'wp_smtp'; // god these names are terrible
- const PLUGIN_NAME = 'WP SMTP';
- const MESSAGE_SENDER_EMAIL = 'from';
- const MESSAGE_SENDER_NAME = 'fromname';
- const HOSTNAME = 'host';
- const PORT = 'port';
- const ENCRYPTION_TYPE = 'smtpsecure';
- const AUTHENTICATION_TYPE = 'smtpauth';
- const USERNAME = 'username';
- const PASSWORD = 'password';
- public function __construct() {
- parent::__construct ();
- $this->options = get_option ( 'wp_smtp_options' );
- }
- public function getPluginSlug() {
- return self::SLUG;
- }
- public function getPluginName() {
- return self::PLUGIN_NAME;
- }
- public function getMessageSenderEmail() {
- if (isset ( $this->options [self::MESSAGE_SENDER_EMAIL] ))
- return $this->options [self::MESSAGE_SENDER_EMAIL];
- }
- public function getMessageSenderName() {
- if (isset ( $this->options [self::MESSAGE_SENDER_NAME] ))
- return $this->options [self::MESSAGE_SENDER_NAME];
- }
- public function getHostname() {
- if (isset ( $this->options [self::HOSTNAME] ))
- return $this->options [self::HOSTNAME];
- }
- public function getPort() {
- if (isset ( $this->options [self::PORT] ))
- return $this->options [self::PORT];
- }
- public function getUsername() {
- if (isset ( $this->options [self::USERNAME] ))
- return $this->options [self::USERNAME];
- }
- public function getPassword() {
- if (isset ( $this->options [self::PASSWORD] ))
- return $this->options [self::PASSWORD];
- }
- public function getAuthenticationType() {
- if (isset ( $this->options [self::AUTHENTICATION_TYPE] )) {
- switch ($this->options [self::AUTHENTICATION_TYPE]) {
- case 'yes' :
- return PostmanOptions::AUTHENTICATION_TYPE_PLAIN;
- case 'no' :
- return PostmanOptions::AUTHENTICATION_TYPE_NONE;
- }
- }
- }
- public function getEncryptionType() {
- if (isset ( $this->options [self::ENCRYPTION_TYPE] )) {
- switch ($this->options [self::ENCRYPTION_TYPE]) {
- case 'ssl' :
- return PostmanOptions::SECURITY_TYPE_SMTPS;
- case 'tls' :
- return PostmanOptions::SECURITY_TYPE_STARTTLS;
- case '' :
- return PostmanOptions::SECURITY_TYPE_NONE;
- }
- }
- }
- }
-} \ No newline at end of file