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;
 }
Beispiel #3
0
 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));
 }
Beispiel #4
0
            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>
Beispiel #7
0
 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));
 }