Esempio n. 1
0
 /**
  * Если пользователь зарегистрировался и сохранился то возвращаем //тру
  *
  * @return boolean
  */
 public function checkAndLoginNewplayer()
 {
     if ($this->validate()) {
         // Если пароли не совпадают выдадим ошибку
         if ($this->password != $this->password_repeat) {
             $this->addError('password', 'Вы указали разные значения в поле пароль');
             return false;
         } else {
             $this->password = md5($this->password);
             $this->date_regist = time();
             if ($this->save()) {
                 // Отправить письмо с подтверждением email
                 $this->sendAndCheckEmail();
                 // Проверка и создание реферала
                 $session = new CHttpSession();
                 $session->open();
                 if (isset($session['ref_id'])) {
                     $player = Player::model()->findByAttributes(array('id' => (int) $session['ref_id']));
                     if ($player != null) {
                         $referal = new Referals();
                         $referal->id_player = $player->id;
                         $referal->id_referal = $this->id;
                         $referal->is_active = Referals::$NOT_ACTIVE;
                         $referal->save();
                     }
                 }
                 $statistic = new Statistic();
                 $statistic->id_player = $this->id;
                 $statistic->invest_summ = 0;
                 $statistic->out_sum = 0;
                 $statistic->questions_summ_complette = 0;
                 $statistic->referals = 0;
                 $statistic->save();
                 $identity = new UserIdentity($this->email, $this->password);
                 $identity->authenticate();
                 Yii::app()->user->login($identity, 0);
                 return true;
             } else {
                 return false;
             }
         }
     } else {
         return false;
     }
 }
Esempio n. 2
0
 /**
  * Создание аккаунта на сайте
  *
  * @return Users
  */
 private function _createAccount()
 {
     $transaction = db()->beginTransaction();
     $login = $this->getLogin();
     try {
         // Создаю нового юзера
         $user = new Users();
         $user->login = $login;
         $user->password = $this->password;
         $user->email = $this->email;
         $user->activated = config('register.confirm_email') ? Users::STATUS_INACTIVATED : Users::STATUS_ACTIVATED;
         $user->role = Users::ROLE_DEFAULT;
         $user->ls_id = $this->gs_list[$this->gs_id]['login_id'];
         $user->save(FALSE);
         // Referer
         if ($this->referer != '' && $this->refererInfo) {
             $referals = new Referals();
             $referals->referer = $this->refererInfo->getPrimaryKey();
             $referals->referal = $user->getPrimaryKey();
             $referals->save(FALSE);
         }
         // Удаляю реферальную куку
         if (isset(request()->cookies[app()->params['cookie_referer_name']])) {
             unset(request()->cookies[app()->params['cookie_referer_name']]);
         }
         $transaction->commit();
         return $user;
     } catch (Exception $e) {
         $transaction->rollback();
         // Удаляю созданный аккаунт на сервере
         $this->l2->getDb()->createCommand("DELETE FROM {{accounts}} WHERE login = :login LIMIT 1")->bindParam('login', $login, PDO::PARAM_STR)->execute();
         user()->setFlash(FlashConst::MESSAGE_ERROR, Yii::t('main', 'Произошла ошибка! Попробуйте повторить позже.'));
         return FALSE;
     }
 }