/** * Lost password */ public function submitLostPasswordForm($form) { $front = Zend_Controller_Front::getInstance(); if ($form->isValid($_POST)) { $name = $form->getValue('name'); $Profiles = new Application_Model_Profiles(); $nameRow = $Profiles->getProfileByField('name', $name); // maybe user is entering email? $nameRow_byEmail = $Profiles->getProfileByField('email', $name); if ($nameRow_byEmail) { $nameRow = $Profiles->getProfileByField('name', $nameRow_byEmail->name); } if ($nameRow && $Profiles->isActivated($nameRow->name) && $nameRow->is_hidden == 0) { $resetPasswordKey = $Profiles->generateActivationKey($nameRow->email); $ProfilesMeta = new Application_Model_ProfilesMeta(); $profile = $ProfilesMeta->metaUpdate('password_reset', $resetPasswordKey, $nameRow->id); // password recovery email $ret = Application_Plugin_Common::sendRecoveryEmail($nameRow->email, $name, $resetPasswordKey); // show info message if ($ret) { Application_Plugin_Alerts::success(Zend_Registry::get('Zend_Translate')->translate('We have sent an email to your registered email address. Follow the instructions and you will be able to enter a new password.'), 'off'); } // flush url Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector')->gotoUrl(''); } else { sleep(2); $form->getElement('name')->setErrors(array(Zend_Registry::get('Zend_Translate')->translate('Username does not exists'))); } } return $form; }