public function create(RESTRequest $request) { $data = $request->getData(); if (empty($data)) { throw new RESTCommandException('HTTP POST data is empty'); } $allowed_to_update_fields = array_fill_keys(array('login', 'password', 'full_name', 'phone', 'account_number', 'tariff_plan', 'status', 'stb_mac', 'comment', 'end_date', 'account_balance'), true); $account = array_intersect_key($data, $allowed_to_update_fields); if (empty($account)) { throw new RESTCommandException('Insert data is empty'); } if (!empty($account['stb_mac'])) { $mac = Middleware::normalizeMac($account['stb_mac']); if (!$mac) { throw new RESTCommandException('Not valid mac address'); } $account['stb_mac'] = $mac; } if (empty($account['login'])) { throw new RESTCommandException('Login required'); } $user = User::getByLogin($account['login']); if (!empty($user)) { throw new RESTCommandException('Login already in use'); } if (!empty($account['stb_mac'])) { $user = User::getByMac($account['stb_mac']); if (!empty($user)) { throw new RESTCommandException('MAC address already in use'); } } return (bool) User::createAccount($account); }
/** * Create new account. * * @param Account $params * @return boolean * @throws SoapServerError */ public function CreateAccount($params) { $params = (array) $params; $this->checkLoginAndMac($params); $user_id = \User::createAccount($params); if (!$user_id) { throw new SoapServerError(__METHOD__, __FILE__ . ':' . __LINE__); } return (bool) $user_id; }
public function run() { $form = new RegistrationForm(); if (Yii::app()->request->isPostRequest && !empty($_POST['RegistrationForm'])) { $module = Yii::app()->getModule('user'); $form->setAttributes($_POST['RegistrationForm']); // проверка по "черным спискам" // проверить на email if (!$module->isAllowedEmail($form->email)) { // перенаправить на экшн для фиксации невалидных email-адресов $this->controller->redirect(array(Yii::app()->getModule('user')->invalidEmailAction)); } if (!$module->isAllowedIp(Yii::app()->request->userHostAddress)) { // перенаправить на экшн для фиксации невалидных ip-адресов $this->controller->redirect(array(Yii::app()->getModule('user')->invalidIpAction)); } if ($form->validate()) { // если требуется активация по email if ($module->emailAccountVerification) { $registration = new Registration(); // скопируем данные формы $registration->setAttributes($form->getAttributes()); if ($registration->save()) { // отправка email с просьбой активировать аккаунт $mailBody = $this->controller->renderPartial('application.modules.user.views.email.needAccountActivationEmail', array('model' => $registration), true); Yii::app()->mail->send($module->notifyEmailFrom, $registration->email, Yii::t('user', 'Регистрация на сайте {site} !', array('{site}' => Yii::app()->name)), $mailBody); // запись в лог о создании учетной записи Yii::log(Yii::t('user', "Создана учетная запись {nick_name}!", array('{nick_name}' => $registration->nick_name)), CLogger::LEVEL_INFO, UserModule::$logCategory); Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('user', 'Учетная запись создана! Инструкции по активации аккаунта отправлены Вам на email!')); $this->controller->refresh(); } else { $form->addErrors($registration->getErrors()); Yii::log(Yii::t('user', "Ошибка при создании учетной записи!"), CLogger::LEVEL_ERROR, UserModule::$logCategory); } } else { // если активации не требуется - сразу создаем аккаунт $user = new User(); $user->createAccount($form->nick_name, $form->email, $form->password); if ($user && !$user->hasErrors()) { Yii::log(Yii::t('user', "Создана учетная запись {nick_name} без активации!", array('{nick_name}' => $user->nick_name)), CLogger::LEVEL_INFO, UserModule::$logCategory); // отправить email с сообщением о успешной регистрации $emailBody = $this->controller->renderPartial('application.modules.user.views.email.accountCreatedEmail', array('model' => $user), true); Yii::app()->mail->send($module->notifyEmailFrom, $user->email, Yii::t('user', 'Регистрация на сайте {site} !', array('{site}' => Yii::app()->name)), $emailBody); Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('user', 'Учетная запись создана! Пожалуйста, авторизуйтесь!')); $this->controller->redirect(array('/user/account/login/')); } else { $form->addErrors($user->getErrors()); Yii::log(Yii::t('user', "Ошибка при создании учетной записи без активации!"), CLogger::LEVEL_ERROR, UserModule::$logCategory); } } } } $this->controller->render('registration', array('model' => $form)); }
if (!$mac) { $error = _('Error: Not valid mac address'); } else { $user_by_mac = \User::getByMac($mac); if (!empty($user_by_mac)) { $error = _('Error: STB with such MAC address already exists'); } } } if ($error) { } else { if (!empty($user)) { $error = _('Error: Login already in use'); } else { Admin::checkAccess(AdminAccess::ACCESS_CREATE); $user_id = \User::createAccount($_POST); if ($user_id) { header("Location: profile.php?id=" . $user_id); exit; } else { $error = _('Error: could not create account'); } } } } else { $error = _('Error: Not all required fields are filled'); } } ?> <html> <head>
public function signup() { if (isset($_SESSION['frompages'])) { unset($_SESSION['frompages']); /* Get posted form values */ $username = $_POST['username']; $email = $_POST['email']; $password = $_POST['password']; $phone_number = (double) $_POST['phonenumber']; $first_name = $_POST['firstname']; $last_name = $_POST['lastname']; $street_address = $_POST['saddress']; $city = $_POST['city']; $parish = $_POST['parish']; $postal_code = $_POST['postalcode']; /* Create various objects */ $shipping_address = new Address($street_address, $city, $parish, $postal_code); $user = new User($username, $password); $bool = $user->createAccount($email, $phone_number, $first_name, $last_name, $shipping_address); if (!$bool) { echo '<script>alert(\'Unknown error occurred\')</script>'; echo '<script>window.location.href = "?controller=pages&action=signup";</script>'; return; } echo '<script>window.location.href = "?controller=pages&action=index";</script>'; } else { echo '<script>window.location.href = "?controller=pages&action=error";</script>'; } }
$err = "Form fields marked with an asterix are required"; } else { /*echo var_dump($_POST); echo 'Number of Roles: '; echo count($_POST['roles']); echo '<br />';*/ $fname = $_POST['fname']; $lname = $_POST['lname']; $username = $_POST['username']; $password = $_POST['passwd']; $user = new User(); $user->setFirstName($fname); $user->setLastName($lname); $user->setUserName($username); $user->setPassword($password); if ($user->createAccount($_POST['roles'])) { $mesg = "User account created"; $session->message($mesg); redirect_to("view_users.php"); //echo var_dump($user); } else { $err = "An error occured preventing the user account from being created"; //echo var_dump($user); } } } include_layout_template('admin_header.php'); ?> <div id="container"> <h3>Actions</h3>
public function actionRegistration() { $id = Yii::app()->user->getState('sid'); $name = Yii::app()->user->getState('name'); $service = Yii::app()->user->getState('service'); if (!isset($id, $name, $service)) { Yii::app()->user->setFlash(YFlashMessages::ERROR_MESSAGE, Yii::t('social', 'При авторизации произошла ошибка!')); $this->redirect(array('/user/account/login')); } $model = new User(); if (Yii::app()->request->isPostRequest && !empty($_POST['User'])) { $nick_name = $_POST['User']['nick_name']; $transaction = Yii::app()->db->beginTransaction(); try { $model->createAccount($nick_name, "{$nick_name}@{$nick_name}.ru", null, null, User::STATUS_ACTIVE); if ($model && !$model->hasErrors()) { //создадим запись в Login $login = new Login(); $login->setAttributes(array('user_id' => $model->id, 'identity_id' => Yii::app()->user->getState('sid'), 'type' => Yii::app()->user->getState('service'))); if (!$login->save()) { throw new CDbException(Yii::t('social', 'При создании учетной записи произошла ошибка!')); } $transaction->commit(); } else { throw new CDbException(Yii::t('social', 'При создании учетной записи произошла ошибка!')); } // авторизуем нового пользователя $socialLogin = new SocialLoginIdentity(Yii::app()->user->getState('service'), Yii::app()->user->getState('sid')); if ($socialLogin->authenticate()) { $this->cleanState(); Yii::app()->user->login($socialLogin); Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('social', 'Вы успешно авторизовались!')); $this->redirect(array(Yii::app()->getModule('user')->loginSuccess)); } else { Yii::app()->user->setFlash(YFlashMessages::ERROR_MESSAGE, Yii::t('social', 'При авторизации произошла ошибка!')); $this->cleanState(); $this->redirect(array('/user/account/login')); } } catch (Exception $e) { $transaction->rollback(); $this->cleanState(); Yii::log(Yii::t('social', "При авторизации через {servive} произошла ошибка!", array('{servive}' => Yii::app()->user->getState('service'))), CLogger::LEVEL_ERROR); Yii::app()->user->setFlash(YFlashMessages::ERROR_MESSAGE, Yii::t('social', 'При создании учетной записи произошла ошибка!')); $this->redirect(array('/user/account/login')); } } $this->render('registration', array('model' => $model)); }