/** * Генерируем служебную почту (если она не была сгенерирована) */ function create_service_mail() { $mail = _Core_Request::getCurrent()->post['mail']; $user = Core::getInstance()->user; if (Helper_Mail::validateEmail($mail)) { if ($this->model->checkServiceEmailIsUnique($mail)) { if ($this->model->createServiceMail($user, $mail)) { $this->tpl->assign('result', array('text' => 'Email успешно создан')); } } else { $this->tpl->assign('error', array('text' => "Придумайте другой email.\nЭтот email уже занят")); } } else { $this->tpl->assign('error', array('text' => 'Используйте только английские буквы и цифры')); } }
/** * Создаём нового пользователя * @param $args array mixed * @return void */ function new_user() { $login = isset($_POST['login']) ? trim((string) $_POST['login']) : ''; $password = isset($_POST['password']) ? trim((string) $_POST['password']) : ''; $confirm_password = isset($_POST['confirm_password']) ? trim((string) $_POST['confirm_password']) : ''; $name = isset($_POST['name']) ? trim((string) $_POST['name']) : ''; $mail = isset($_POST['mail']) ? trim((string) $_POST['mail']) : ''; // Проверяем валидность заполненных данных if (!empty($password) && !empty($confirm_password)) { if ($password === $confirm_password) { $sha1_password = SHA1($password); } else { $this->_error['pass'] = "******"; } } else { $this->_error['pass'] = "******"; } if (!$this->validate_login($login)) { $this->_error['login'] = "******"; } $login = htmlspecialchars($login); if (!Helper_Mail::validateEmail($mail)) { $this->_error['mail'] = "Неверно введен e-mail!"; } $mail = htmlspecialchars($mail); // Проверить наличие пользователя // TODO: model->exist_user() готовит собщение об ошибке - надо перенести сюда $this->model->exist_user($login, $mail); // Если нет ошибок создать и авторизовать пользователя $errors = array_merge($this->model->getErrors(), $this->_error); if (!$errors) { // Создать пользователя $this->model->new_user($name, $login, $password, $confirm_password, $mail); // Отправить ему уведомление с реквизитами $this->_send_mail_success($name, $login, $password, $mail); $user = Core::getInstance()->user; if (!$user->initUser($login, $sha1_password)) { $this->_output(array('error' => array('text' => 'Некорректный логин или пароль!'))); } // Авторизовать пользователя $this->_authenticateUser($login, $sha1_password); $answer = array('result' => array('text' => 'Спасибо, вы зарегистрированы!', 'redirect' => URL_ROOT_MAIN . "my/review/")); } else { $answer = array('error' => array('text' => implode('<br />', $errors))); } $this->_output($answer); }
/** * @dataProvider planForValidateEmail */ public function testValidateEmail($mail, $bool) { $this->assertEquals(Helper_Mail::validateEmail($mail), $bool); }