diff --git a/airtime_mvc/application/configs/constants.php b/airtime_mvc/application/configs/constants.php index 0a3d320a2..47c93d200 100644 --- a/airtime_mvc/application/configs/constants.php +++ b/airtime_mvc/application/configs/constants.php @@ -17,6 +17,7 @@ define('TERMS_AND_CONDITIONS_URL' , 'http://www.sourcefabric.org/en/about/poli define('PRIVACY_POLICY_URL' , 'http://www.sourcefabric.org/en/about/policy/'); define('USER_MANUAL_URL' , 'http://sourcefabric.booktype.pro/airtime-pro-for-broadcasters'); define('AIRTIME_TRANSIFEX_URL' , 'https://www.transifex.com/projects/p/airtime/'); +define('WHMCS_PASSWORD_RESET_URL' , 'https://account.sourcefabric.com/pwreset.php'); define('LICENSE_VERSION' , 'GNU AGPL v.3'); define('LICENSE_URL' , 'http://www.gnu.org/licenses/agpl-3.0-standalone.html'); diff --git a/airtime_mvc/application/controllers/LoginController.php b/airtime_mvc/application/controllers/LoginController.php index 920a258cc..e11cc3233 100644 --- a/airtime_mvc/application/controllers/LoginController.php +++ b/airtime_mvc/application/controllers/LoginController.php @@ -140,26 +140,23 @@ class LoginController extends Zend_Controller_Action Application_Model_Locale::configureLocalization($request->getcookie('airtime_locale', $stationLocale)); - if (!Application_Model_Preference::GetEnableSystemEmail()) { - $this->_redirect('login'); - } else { - //uses separate layout without a navigation. - $this->_helper->layout->setLayout('login'); + //uses separate layout without a navigation. + $this->_helper->layout->setLayout('login'); - $form = new Application_Form_PasswordRestore(); + $form = new Application_Form_PasswordRestore(); - $request = $this->getRequest(); - if ($request->isPost() && $form->isValid($request->getPost())) { - if (is_null($form->username->getValue()) || $form->username->getValue() == '') { - $user = CcSubjsQuery::create() - ->filterByDbEmail($form->email->getValue()) - ->findOne(); - } else { - $user = CcSubjsQuery::create() - ->filterByDbEmail($form->email->getValue()) - ->filterByDbLogin($form->username->getValue()) - ->findOne(); - } + $request = $this->getRequest(); + if ($request->isPost() && $form->isValid($request->getPost())) { + $query = CcSubjsQuery::create(); + if (empty($form->username->getValue())) { + $query->filterByDbEmail($form->email->getValue()); + } else if (empty($form->email->getValue())) { + $query->filterByDbLogin($form->username->getValue()); + } else { + $query->filterByDbEmail($form->email->getValue()) + ->filterByDbLogin($form->username->getValue()); + } + $user = $query->findOne(); if (!empty($user)) { $auth = new Application_Model_Auth(); @@ -171,12 +168,13 @@ class LoginController extends Zend_Controller_Action $form->email->addError($this->view->translate(_("Email could not be sent. Check your mail server settings and ensure it has been configured properly."))); } } else { - $form->email->addError($this->view->translate(_("Given email not found."))); + $form->email->addError($this->view->translate(_("There was a problem sending the recovery email."))); } + } else { + $form->email->addError($this->view->translate(_("We couldn't find the email you entered - you can also try here."))); } - $this->view->form = $form; - } + $this->view->form = $form; } public function passwordRestoreAfterAction() diff --git a/airtime_mvc/application/forms/EmailServerPreferences.php b/airtime_mvc/application/forms/EmailServerPreferences.php deleted file mode 100644 index 1e0feda79..000000000 --- a/airtime_mvc/application/forms/EmailServerPreferences.php +++ /dev/null @@ -1,106 +0,0 @@ -setDecorators(array( - array('ViewScript', array('viewScript' => 'form/preferences_email_server.phtml')) - )); - - // Enable system emails - $this->addElement('checkbox', 'enableSystemEmail', array( - 'label' => _('Enable System Emails (Password Reset)'), - 'required' => false, - 'value' => Application_Model_Preference::GetEnableSystemEmail(), - 'decorators' => array( - 'ViewHelper' - ) - )); - - $this->addElement('text', 'systemEmail', array( - 'class' => 'input_text', - 'label' => _("Reset Password 'From' Email"), - 'value' => Application_Model_Preference::GetSystemEmail(), - 'readonly' => true, - 'decorators' => array('viewHelper') - )); - - $this->addElement('checkbox', 'configureMailServer', array( - 'label' => _('Configure Mail Server'), - 'required' => false, - 'value' => Application_Model_Preference::GetMailServerConfigured(), - 'decorators' => array ( - 'viewHelper' - ) - )); - - $this->addElement('checkbox', 'msRequiresAuth', array( - 'label' => _('Requires Authentication'), - 'required' => false, - 'value' => Application_Model_Preference::GetMailServerRequiresAuth(), - 'decorators' => array( - 'viewHelper' - ) - )); - - $this->addElement('text', 'mailServer', array( - 'class' => 'input_text', - 'label' => _('Mail Server'), - 'value' => Application_Model_Preference::GetMailServer(), - 'readonly' => true, - 'decorators' => array('viewHelper'), - 'allowEmpty' => false, - 'validators' => array( - new ConditionalNotEmpty(array( - 'configureMailServer' => '1' - )) - ) - )); - - $this->addElement('text', 'email', array( - 'class' => 'input_text', - 'label' => _('Email Address'), - 'value' => Application_Model_Preference::GetMailServerEmailAddress(), - 'readonly' => true, - 'decorators' => array('viewHelper'), - 'allowEmpty' => false, - 'validators' => array( - new ConditionalNotEmpty(array( - 'configureMailServer' => '1', - 'msRequiresAuth' => '1' - )) - ) - )); - - $this->addElement('password', 'ms_password', array( - 'class' => 'input_text', - 'label' => _('Password'), - 'value' => Application_Model_Preference::GetMailServerPassword(), - 'readonly' => true, - 'decorators' => array('viewHelper'), - 'allowEmpty' => false, - 'validators' => array( - new ConditionalNotEmpty(array( - 'configureMailServer' => '1', - 'msRequiresAuth' => '1' - )) - ), - 'renderPassword' => true - )); - - $port = new Zend_Form_Element_Text('port'); - $port->class = 'input_text'; - $port->setRequired(false) - ->setValue(Application_Model_Preference::GetMailServerPort()) - ->setLabel(_('Port')) - ->setAttrib('readonly', true) - ->setDecorators(array('viewHelper')); - - $this->addElement($port); - - } - -} diff --git a/airtime_mvc/application/forms/PasswordRestore.php b/airtime_mvc/application/forms/PasswordRestore.php index 0e8f4ad9c..12a957617 100644 --- a/airtime_mvc/application/forms/PasswordRestore.php +++ b/airtime_mvc/application/forms/PasswordRestore.php @@ -11,7 +11,7 @@ class Application_Form_PasswordRestore extends Zend_Form )); $this->addElement('text', 'email', array( - 'label' => _('E-mail'), + 'label' => _('Email'), 'required' => true, 'filters' => array( 'stringTrim', @@ -43,7 +43,7 @@ class Application_Form_PasswordRestore extends Zend_Form $cancel = new Zend_Form_Element_Button("cancel"); $cancel->class = 'ui-button ui-widget ui-state-default ui-button-text-only center'; - $cancel->setLabel(_("Cancel")) + $cancel->setLabel(_("Return to login")) ->setIgnore(True) ->setAttrib('onclick', 'redirectToLogin();') ->setDecorators(array('ViewHelper')); diff --git a/airtime_mvc/application/models/Auth.php b/airtime_mvc/application/models/Auth.php index 6c4c75edd..044972b37 100644 --- a/airtime_mvc/application/models/Auth.php +++ b/airtime_mvc/application/models/Auth.php @@ -34,9 +34,7 @@ class Application_Model_Auth $message .= "{$e_link_protocol}://{$e_link_base}:{$e_link_port}{$e_link_path}"; $str = sprintf(_('%s Password Reset'), PRODUCT_NAME); - $success = Application_Model_Email::send($str, $message, $user->getDbEmail()); - - return $success; + return Application_Model_Email::send($str, $message, $user->getDbEmail()); } public function invalidateTokens($user, $action) diff --git a/airtime_mvc/application/models/Email.php b/airtime_mvc/application/models/Email.php index 774617c1e..e1b399f4c 100644 --- a/airtime_mvc/application/models/Email.php +++ b/airtime_mvc/application/models/Email.php @@ -2,18 +2,20 @@ class Application_Model_Email { + /** * Send email * * @param string $subject * @param string $message - * @param mixed $tos - * @return void + * @param mixed $to + * @return boolean */ - public static function send($subject, $message, $tos, $from = null) - { + public static function send($subject, $message, $to) { - return mail($tos, $subject, $message); + $headers = 'From: Airtime '; + return mail($to, $subject, $message, $headers); } + } diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index 980220860..6a73ceb30 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -1161,87 +1161,6 @@ class Application_Model_Preference { return self::getValue("auto_switch"); } - - public static function SetEnableSystemEmail($upload) - { - self::setValue("enable_system_email", $upload); - } - - public static function GetEnableSystemEmail() - { - $v = self::getValue("enable_system_email"); - return ($v === "") ? 0 : $v; - } - - public static function SetSystemEmail($value) - { - self::setValue("system_email", $value, false); - } - - public static function GetSystemEmail() - { - return self::getValue("system_email"); - } - - public static function SetMailServerConfigured($value) - { - self::setValue("mail_server_configured", $value, false); - } - - public static function GetMailServerConfigured() - { - return self::getValue("mail_server_configured"); - } - - public static function SetMailServer($value) - { - self::setValue("mail_server", $value, false); - } - - public static function GetMailServer() - { - return self::getValue("mail_server"); - } - - public static function SetMailServerEmailAddress($value) - { - self::setValue("mail_server_email_address", $value, false); - } - - public static function GetMailServerEmailAddress() - { - return self::getValue("mail_server_email_address"); - } - - public static function SetMailServerPassword($value) - { - self::setValue("mail_server_password", $value, false); - } - - public static function GetMailServerPassword() - { - return self::getValue("mail_server_password"); - } - - public static function SetMailServerPort($value) - { - self::setValue("mail_server_port", $value, false); - } - - public static function GetMailServerPort() - { - return self::getValue("mail_server_port"); - } - - public static function SetMailServerRequiresAuth($value) - { - self::setValue("mail_server_requires_auth", $value, false); - } - - public static function GetMailServerRequiresAuth() - { - return self::getValue("mail_server_requires_auth"); - } /* User specific preferences end */ public static function ShouldShowPopUp() diff --git a/airtime_mvc/application/views/scripts/form/login.phtml b/airtime_mvc/application/views/scripts/form/login.phtml index c286c45be..0c96983ca 100644 --- a/airtime_mvc/application/views/scripts/form/login.phtml +++ b/airtime_mvc/application/views/scripts/form/login.phtml @@ -30,17 +30,15 @@ element->getElement('csrf') ?> - - -
- -
- element->getElement('captcha') ?>
 
element->getElement('submit') ?>
- + + +
+ +
diff --git a/airtime_mvc/application/views/scripts/form/password-restore.phtml b/airtime_mvc/application/views/scripts/form/password-restore.phtml index a43b9fe36..db7c4e491 100644 --- a/airtime_mvc/application/views/scripts/form/password-restore.phtml +++ b/airtime_mvc/application/views/scripts/form/password-restore.phtml @@ -1,36 +1,36 @@
-
-
- -
-
- element->getElement('username') ?> -
- -
- -
-
- element->getElement('email') ?> -
- element->getElement('email')->hasErrors()): ?> -
    - element->getElement('email')->getMessages() as $error): ?> -
  • - -
- - -
 
-
- element->getElement('submit') ?> -
-
- element->getElement('cancel') ?> -
+
+
+
+ +
+
+ element->getElement('email') ?> +
+ element->getElement('email')->hasErrors()): ?> +
    + element->getElement('email')->getMessages() as $error): ?> +
  • + +
+ + + + +
+ element->getElement('username') ?> +
+ +
 
+
+ element->getElement('submit') ?> +
+
+ element->getElement('cancel') ?> +
\ No newline at end of file diff --git a/airtime_mvc/application/views/scripts/login/password-restore.phtml b/airtime_mvc/application/views/scripts/login/password-restore.phtml index e814ca6be..945ae73e4 100644 --- a/airtime_mvc/application/views/scripts/login/password-restore.phtml +++ b/airtime_mvc/application/views/scripts/login/password-restore.phtml @@ -1,10 +1,11 @@