Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Default renderer for frontend.
- * @return array
- */
- public function mainFe()
- {
- Css::addInclude(AITOM_ROOT . 'moduly/' . $this->_dir . '/css/fe.css');
- Javascript::addInclude(AITOM_ROOT . 'moduly/' . $this->_dir . '/js/fe.js');
- Javascript::addVariable('userWebPasswordMinLenght', self::PASSWORD_MIN_LENGHT);
- Javascript::exportTranslation(array(
- 'uswErrorEmail',
- 'sysEmailError',
- 'uswErrorFirstname',
- 'uswErrorSurname',
- 'uswErrorPassword',
- 'uswErrorPasswordRepeat',
- 'uswDefaultErrorMsg'
- ));
- $name = Address::getParams();
- if (isset($name[0])) {
- if ($name[0] === Lang::getTranslation('uswRegistrationIdent')) {
- // registration page
- Address::setParamUsage(0);
- Address::add(Lang::getTranslation('uswRegistration'), Address::getOriginalPathAsString() . '/' . Lang::getTranslation('uswRegistrationIdent'), TRUE);
- Address::setPageTitle(Lang::getTranslation('uswRegistration') . ' - ' . Address::getPageTitle());
- if(array_key_exists('frmRegistration-submitted', $_POST) == FALSE)
- Smartyhandle::set('cfCaptcha', Exts::callFunction('CaptchaControl', 'getCaptchaHtmlImg'), TRUE);
- if (array_key_exists('frmRegistration-submitted', $_POST)) {
- // process post data
- $errors = array();
- $values = $_POST;
- $verified = array();
- try {
- // check post data
- if (self::verifyRequiredKeysFe($values) === TRUE) {
- foreach ($values as $key => $value) {
- $verified[$key] = self::checkAndNormalizeDataFe($key, $value);
- }
- }
- // spam control
- if (Exts::callFunction('CaptchaControl', 'verifiCaptchaCode', array('code' => $verified['code'])) === FALSE)
- {
- Smartyhandle::set('cfCaptcha', Exts::callFunction('CaptchaControl', 'getCaptchaHtmlImg'), TRUE);
- throw new InvalidStateException(Lang::getTranslation('cptCodeError'), 101010);
- }
- $data = array(
- 'email%s' => $verified['email'],
- 'password%s' => sha1($verified['password']),
- 'name%s' => $verified['name'],
- 'company%s' => $verified['company'],
- 'phone%s' => $verified['phone'],
- 'street%s' => $verified['street'],
- 'city%s' => $verified['city'],
- 'ic_code%s' => $verified['ic_code'],
- 'dic_code%s' => $verified['dic_code'],
- 'send_invoice_by%s' => $verified['send_invoice_by'],
- 'postalcode%s' => $verified['postalcode'],
- 'hide%i' => 0,
- 'has_cor_info%i' => ($verified['has_cor_info']) ? true : false,
- 'cor_company%s' => $verified['cor_company'],
- 'cor_name%s' => $verified['cor_name'],
- 'cor_street%s' => $verified['cor_street'],
- 'cor_city%s' => $verified['cor_city'],
- 'cor_postalcode%s' => $verified['cor_postalcode'],
- 'cor_phone%s' => $verified['cor_phone'],
- 'cor_notice%s' => $verified['cor_notice'],
- 'is_recepient%i' => ($verified['send_invoice_by']) ? UserWebModel::SEND_INVOICE_BY_POST : UserWebModel::SEND_INVOICE_BY_MAIL,
- 'created%t' => dibi::datetime(),
- );
- if ($this->model->add($data)) {
- Messages::add(Lang::getTranslation('uswRegistrationOK'), Messages::OK);
- // send info mail
- Smartyhandle::set('uswMail', array(
- 'email' => $verified['email'],
- 'password' => $verified['password'],
- ));
- $template = Smartyhandle::getPageAsText('../moduly/' . $this->_dir . '/smarty/mail/newUser.tpl');
- $mailFrom = Config::get('from_mail');
- if (Tools::checkEmail($mailFrom)) {
- // create new mail
- $mail = new Mail;
- $mail->setFrom($mailFrom)
- ->addTo($verified['email'])
- ->setHtmlBody($template)
- ->send();
- Messages::add(Lang::getTranslation('uswMailSend'), Messages::OK);
- } else {
- throw new InvalidStateException(Lang::getTranslation('uswErrorMailFrom'), 101010);
- }
- } else {
- Messages::add(Lang::getTranslation('uswRegistrationNOK'), Messages::ERROR);
- }
- } catch (DibiDriverException $e) {
- if ($e->getCode() == 1062) { // MySQL-1062
- array_push($errors, Lang::getTranslation('uswErrorEmailUnique'));
- } else {
- Messages::add(Lang::getTranslation('uswRegistrationNOK'), Messages::ERROR);
- if (DEBUG)
- Messages::add($e->getMessage(), Messages::WARNING);
- }
- } catch (InvalidStateException $e) {
- if ($e->getCode() === 101010)
- array_push($errors, $e->getMessage());
- else {
- Messages::add(Lang::getTranslation('uswRegistrationNOK'), Messages::ERROR);
- if (DEBUG)
- Messages::add($e->getMessage(), Messages::WARNING);
- }
- }
- Smartyhandle::set('uswData', $values);
- Smartyhandle::set('frmErrors', $errors);
- }
- return 'fe/registration.tpl';
- } else if ($name[0] === Lang::getTranslation('uswLostPasswordIdent')) {
- // registration page
- Address::setParamUsage(0);
- Address::add(Lang::getTranslation('uswLostPassword'), Address::getOriginalPathAsString() . '/' . Lang::getTranslation('uswLostPasswordIdent'), TRUE);
- Address::setPageTitle(Lang::getTranslation('uswLostPassword') . ' - ' . Address::getPageTitle());
- if (array_key_exists('frmLostPassword-submitted', $_POST)) {
- $password = Tools::generateRandomCode(self::PASSWORD_MIN_LENGHT);
- try {
- // fetch user info
- $user = $this->model->fetch(array('email%s' => $_POST['email']));
- $begin = FALSE;
- if ($user instanceof DibiRow) {
- // start transaction
- $this->model->begin();
- $begin = TRUE;
- // save new password
- $this->model->update(array('password%s' => sha1($password)), $_POST['itemId'], FALSE);
- // set the template variables
- Smartyhandle::set('uswMail', array(
- 'email' => $user->email,
- 'password' => $password
- ));
- $template = Smartyhandle::getPageAsText('../moduly/' . $this->_dir . '/smarty/mail/newPassword.tpl');
- $mailFrom = Config::get('from_mail');
- if (Tools::checkEmail($mailFrom)) {
- // Create new mail
- $mail = new Mail;
- $mail->setFrom($mailFrom)
- ->addTo($user->email)
- ->setHtmlBody($template)
- ->send();
- $this->model->commit();
- Messages::add(Lang::getTranslation('uswPasswordChanged'), Messages::OK);
- Messages::add(Lang::getTranslation('uswMailSend'), Messages::OK);
- } else {
- throw new InvalidStateException(Lang::getTranslation('uswErrorMailFrom'), 10101);
- }
- } else {
- throw new InvalidStateException(Lang::getTranslation('uswErrorUserNotFound'), 10101);
- }
- $values = $_POST;
- $verified = array();
- } catch (DibiDriverException $e) {
- if ($begin === TRUE) {
- $this->model->rollback();
- }
- Messages::add(Lang::getTranslation('sysDBSaveError'), Messages::ERROR);
- if (DEBUG) {
- Messages::add($e->getMessage(), Messages::ERROR);
- }
- } catch (InvalidStateException $e) {
- if ($begin === TRUE) {
- $this->model->rollback();
- }
- Messages::add(Lang::getTranslation('uswMailSendError'), Messages::ERROR);
- if ($e->getCode() === 10101) {
- Messages::add($e->getMessage(), Messages::ERROR);
- } else {
- if (DEBUG) {
- Messages::add($e->getMessage(), Messages::ERROR);
- }
- }
- } catch (Exception $e) {
- if ($begin === TRUE) {
- $this->model->rollback();
- }
- Messages::add(Lang::getTranslation('uswMailSendError'), Messages::ERROR);
- if (DEBUG) {
- Messages::add($e->getMessage(), Messages::ERROR);
- }
- }
- Address::reload(TRUE);
- }
- return 'fe/lostPassword.tpl';
- }
- } else {
- // login or setting page
- if (array_key_exists('frmSettings-submitted', $_POST)) {
- // process post data
- if (Exts::callFunction('UserWebAuthenticator', 'isLoggedIn') === FALSE) {
- Messages::add(Lang::getTranslation('uswInfoLogin'), Messages::MSG);
- Address::changeTo(AITOM_BASE);
- }
- if (($userData = Exts::callFunction('UserWebAuthenticator', 'getData')) === NULL) {
- Messages::add(Lang::getTranslation('uswInfoLogin'), Messages::MSG);
- Address::changeTo(AITOM_BASE);
- }
- $errors = array();
- $values = $_POST;
- $verified = array();
- try {
- // check post data
- if (self::verifyRequiredSettingsKeysFe($values) === TRUE) {
- foreach ($values as $key => $value) {
- $verified[$key] = self::checkAndNormalizeSettingsDataFe($key, $value);
- }
- }
- // update DB user data
- $data = array(
- 'email%s' => $verified['email'],
- 'firstname%s' => $verified['firstname'],
- 'surname%s' => $verified['surname'],
- 'phone%s' => $verified['phone'],
- 'street%s' => $verified['street'],
- 'city%s' => $verified['city'],
- 'postalcode%s' => $verified['postalcode'],
- );
- if (String::length($verified['password']) >= self::PASSWORD_MIN_LENGHT) {
- $data['password%s'] = sha1($verified['password']);
- }
- $this->model->update($data, $userData['id_user'], FALSE);
- // update user identity
- $userData['email'] = $verified['email'];
- $userData['firstname'] = $verified['firstname'];
- $userData['surname'] = $verified['surname'];
- $userData['phone'] = $verified['phone'];
- $userData['street'] = $verified['street'];
- $userData['city'] = $verified['city'];
- $userData['postalcode'] = $verified['postalcode'];
- Exts::callFunction('UserWebAuthenticator', 'setData', array($userData));
- Messages::add(Lang::getTranslation('uswErrorItemOK'), Messages::OK);
- Address::reload();
- } catch (DibiDriverException $e) {
- if ($e->getCode() == 1062) { // MySQL-1062
- array_push($errors, Lang::getTranslation('uswErrorEmailUnique'));
- } else {
- Messages::add(Lang::getTranslation('uswRegistrationNOK'), Messages::ERROR);
- if (DEBUG)
- Messages::add($e->getMessage(), Messages::WARNING);
- }
- } catch (InvalidStateException $e) {
- if ($e->getCode() === 101010)
- array_push($errors, $e->getMessage());
- else {
- Messages::add(Lang::getTranslation('uswRegistrationNOK'), Messages::ERROR);
- if (DEBUG)
- Messages::add($e->getMessage(), Messages::WARNING);
- }
- }
- Smartyhandle::set('uswData', $values);
- Smartyhandle::set('frmErrors', $errors);
- }
- return 'fe/default.tpl';
- }
- // if i'm up here -> 404 error
- Aitom::error404();
- }
Add Comment
Please, Sign In to add comment