public function newPasswordAction() { $this->view->headTitle('New password'); $code = $this->_getParam('code', false); $id = $this->_getParam('id', false); if (false == $code || false == 'id') { $this->_redirect(''); } $error = false; /** * Check code */ $objUserExp = new Models_UserExpand(); $objUser = new Models_User(); $user = $objUserExp->getByColumnName(array('forgot_password_code=?' => $code, 'forgot_password_expired_date>?' => time(), 'user_id=?' => $id))->toArray(); if (empty($user)) { $error = true; } else { /** * Clear all active code */ $data = array('forgot_password_code' => '', 'forgot_password_expired_date' => 0); $objUserExp->update($data, array('user_id=?' => $id)); /** * Create new password */ $newPassword = $objUser->generateActiveCode(8); $objUser->update(array('password' => md5($newPassword)), array('user_id=?' => $id)); /** * Send email */ $user = $objUser->find($id)->toArray(); $user = current($user); $data = array('new_password' => $newPassword, 'username' => $user['username'], 'email' => $user['email'], 'full_name' => $user['full_name']); $objMail = new Models_Mail(); $objMail->sendHtmlMail('new_password', $data, $user['email']); /** * Redirect to page */ $objContent = new Models_ScontentLang(); $this->_redirect($objContent->getUrlWithoutAppBaseUrl(23)); } $this->view->error = $error; }