/**
  * Экшен создания учетной записи администратора:
  *
  * @return nothing
  **/
 public function actionCreateuser()
 {
     $model = new InstallForm('createUser');
     if (isset($this->session['InstallForm']['createUser'])) {
         $model->setAttributes($this->session['InstallForm']['createUser']);
         if ($model->validate() && $this->session['InstallForm']['createUserStep'] === true) {
             $this->session['InstallForm'] = array_merge($this->session['InstallForm'], ['createUser' => $model->attributes, 'createUserStep' => false]);
             $this->_markFinished('createuser');
             $this->_setSession();
             $this->redirect(['/install/default/sitesettings']);
         }
     }
     if (($data = Yii::app()->getRequest()->getPost('InstallForm')) !== null) {
         // Сбрасываем сессию текущего пользователя, может поменяться id
         Yii::app()->getUser()->clearStates();
         $model->setAttributes($data);
         if ($model->validate()) {
             $user = new User();
             $user->deleteAll();
             $user->setAttributes(['nick_name' => $model->userName, 'email' => $model->userEmail, 'gender' => User::GENDER_THING, 'access_level' => User::ACCESS_LEVEL_ADMIN, 'status' => User::STATUS_ACTIVE, 'email_confirm' => User::EMAIL_CONFIRM_YES, 'hash' => Yii::app()->userManager->hasher->hashPassword($model->userPassword), 'birth_date' => null]);
             if ($user->save()) {
                 //@TODO заменить на обработку через событие
                 if (Yii::app()->hasModule('rbac')) {
                     Yii::import('application.modules.rbac.models.*');
                     $assign = new AuthAssignment();
                     $assign->itemname = AuthItem::ROLE_ADMIN;
                     $assign->userid = $user->id;
                     $assign->save();
                 }
                 $login = new LoginForm();
                 $login->email = $model->userEmail;
                 $login->password = $model->userPassword;
                 Yii::app()->authenticationManager->login($login, Yii::app()->user, Yii::app()->request);
                 Yii::app()->getUser()->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('InstallModule.install', 'The administrator has successfully created!'));
                 $this->session['InstallForm'] = array_merge($this->session['InstallForm'], ['createUser' => $model->attributes, 'createUserStep' => true]);
                 $this->_setSession();
                 $this->redirect(['/install/default/createuser']);
             } else {
                 $model->addErrors($user->getErrors());
             }
         }
     }
     $this->render('_view', ['data' => ['model' => $model]]);
 }
Example #2
0
 /**
  * Экшен создания учетной записи администратора:
  *
  * @return nothing
  **/
 public function actionCreateuser()
 {
     $model = new InstallForm('createUser');
     if (isset($this->session['InstallForm']['createUser'])) {
         $model->setAttributes($this->session['InstallForm']['createUser']);
         if ($model->validate() && $this->session['InstallForm']['createUserStep'] === true) {
             $this->session['InstallForm'] = array_merge($this->session['InstallForm'], array('createUser' => $model->attributes, 'createUserStep' => false));
             $this->_markFinished('createuser');
             $this->_setSession();
             $this->redirect(array('/install/default/sitesettings'));
         }
     }
     if (($data = Yii::app()->getRequest()->getPost('InstallForm')) !== null) {
         // Сбрасываем сессию текущего пользователя, может поменяться id
         Yii::app()->user->clearStates();
         $model->setAttributes($data);
         if ($model->validate()) {
             $user = new User();
             $user->deleteAll();
             $user->setAttributes(array('nick_name' => $model->userName, 'email' => $model->userEmail, 'gender' => 0, 'access_level' => User::ACCESS_LEVEL_ADMIN, 'status' => User::STATUS_ACTIVE, 'email_confirm' => User::EMAIL_CONFIRM_YES, 'hash' => Yii::app()->userManager->hasher->hashPassword($model->userPassword), 'birth_date' => null));
             if ($user->save()) {
                 $login = new LoginForm();
                 $login->email = $model->userEmail;
                 $login->password = $model->userPassword;
                 Yii::app()->authenticationManager->login($login, Yii::app()->user, Yii::app()->request);
                 Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('InstallModule.install', 'The administrator has successfully created!'));
                 $this->session['InstallForm'] = array_merge($this->session['InstallForm'], array('createUser' => $model->attributes, 'createUserStep' => true));
                 $this->_setSession();
                 $this->redirect(array('/install/default/createuser'));
             } else {
                 $model->addErrors($user->getErrors());
             }
         }
     }
     $this->render('_view', array('data' => array('model' => $model)));
 }