Beispiel #1
0
 /**
  * This is the action to handle external exceptions.
  */
 public function actionLogin()
 {
     if (!Yii::app()->user->isGuest) {
         $this->redirect('/member/index.html');
     }
     $this->pageTitle = "登录中心 - " . Yii::app()->name;
     if (isset($_POST['username'])) {
         $status = array();
         if (!isset($_POST['username']) || !isset($_POST['password'])) {
             $status = array('status' => 0, "info" => '用户名或者密码错误!');
         } else {
             Yii::import("application.models.form.LoginForm", true);
             $loginform = new LoginForm();
             if (!isset($_POST['rememberMe'])) {
                 $_POST['rememberMe'] = false;
             }
             $loginform->setAttributes(array('username' => $_POST['username'], 'password' => $_POST['password'], 'rememberMe' => $_POST['rememberMe']));
             if ($loginform->validate() && $loginform->login()) {
                 $status = array('status' => 1, "info" => '登录');
             } else {
                 $status = array('status' => 0, "info" => '用户名或者密码错误!');
             }
         }
         echo json_encode($status);
         Yii::app()->end();
     }
     $this->render('html5_login');
 }
Beispiel #2
0
 /**
  * Logs in the user using the given username and password in the model.
  * @return boolean whether login is successful
  */
 public function save()
 {
     $user = new Users();
     $user->setAttributes($this->attributes);
     $user->setAttribute("password", BaseTool::ENPWD($this->password));
     if ($user->validate() && $user->save()) {
         $accountarray = array('user_id' => Yii::app()->db->getLastInsertID(), 'total' => 0, 'use_money' => 0, 'no_use_money' => 0, 'newworth' => 0);
         $newAccount = new Account();
         $newAccount->setAttributes($accountarray);
         $newAccount->save();
         //发送邮件
         $activecode = BaseTool::getActiveMailCode($this->username);
         $message = MailTemplet::getActiveEmail($this->username, $activecode);
         $mail = Yii::app()->Smtpmail;
         $mail->SetFrom(Yii::app()->params['adminEmail']);
         $mail->Subject = "好帮贷测试邮件";
         $mail->MsgHTML($message);
         $mail->AddAddress($this->email);
         if ($mail->Send()) {
             $user->updateAll(array("regtaken" => $activecode, "regativetime" => time() + 60 * 60), "username=:username", array(":username" => $this->username));
         }
         Yii::import("application.models.form.LoginForm", true);
         $loginform = new LoginForm();
         $loginarray = array('rememberMe' => false, 'username' => $this->username, 'password' => $this->password);
         $loginform->setAttributes($loginarray);
         if ($loginform->validate() && $loginform->login()) {
         }
         return true;
     } else {
         $usererror = $user->errors;
         $this->addError("username", current(current($usererror)));
         return false;
     }
 }
Beispiel #3
0
 public function run()
 {
     if (Yii::app()->user->isAuthenticated()) {
         $this->controller->redirect(Yii::app()->user->returnUrl);
     }
     /**
      * Если было совершено больше 3х попыток входа
      * в систему, используем сценарий с капчей:
      **/
     $badLoginCount = Yii::app()->authenticationManager->getBadLoginCount(Yii::app()->user);
     //@TODO 3 вынести в настройки модуля
     $scenario = $badLoginCount > 3 ? 'loginLimit' : '';
     $form = new LoginForm($scenario);
     $module = Yii::app()->getModule('user');
     if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST['LoginForm'])) {
         $form->setAttributes(Yii::app()->request->getPost('LoginForm'));
         if ($form->validate() && Yii::app()->authenticationManager->login($form, Yii::app()->user, Yii::app()->request)) {
             Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('UserModule.user', 'You authorized successfully!'));
             $module->onSuccessLogin(new CModelEvent($this->controller, array('loginForm' => $form)));
             if (Yii::app()->user->isSuperUser() && $module->loginAdminSuccess) {
                 $redirect = array($module->loginAdminSuccess);
             } else {
                 $redirect = empty($module->loginSuccess) ? Yii::app()->baseUrl : $module->loginSuccess;
             }
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->user, 0);
             $this->controller->redirect($redirect);
         } else {
             $form->addError('hash', Yii::t('UserModule.user', 'Email or password was typed wrong!'));
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->user, $badLoginCount + 1);
             $module->onErrorLogin(new CModelEvent($this->controller, array('loginForm' => $form)));
         }
     }
     $this->controller->render($this->id, array('model' => $form));
 }
Beispiel #4
0
 public function run()
 {
     if (Yii::app()->user->isAuthenticated()) {
         $this->controller->redirect(Url::redirectUrl(Yii::app()->getUser()->getReturnUrl()));
     }
     /**
      * Если было совершено больше 3х попыток входа
      * в систему, используем сценарий с капчей:
      **/
     $badLoginCount = Yii::app()->authenticationManager->getBadLoginCount(Yii::app()->getUser());
     $module = Yii::app()->getModule('user');
     $scenario = $badLoginCount > (int) $module->badLoginCount ? LoginForm::LOGIN_LIMIT_SCENARIO : '';
     $form = new LoginForm($scenario);
     if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST['LoginForm'])) {
         $form->setAttributes(Yii::app()->getRequest()->getPost('LoginForm'));
         if ($form->validate() && Yii::app()->authenticationManager->login($form, Yii::app()->getUser(), Yii::app()->getRequest())) {
             Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('UserModule.user', 'You authorized successfully!'));
             if (Yii::app()->getUser()->isSuperUser() && $module->loginAdminSuccess) {
                 $redirect = $module->loginAdminSuccess;
             } else {
                 $redirect = empty($module->loginSuccess) ? Yii::app()->getBaseUrl() : $module->loginSuccess;
             }
             $redirect = Yii::app()->getUser()->getReturnUrl($redirect);
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->getUser(), 0);
             $this->controller->redirect(Url::redirectUrl($redirect));
         } else {
             $form->addError('email', Yii::t('UserModule.user', 'Email or password was typed wrong!'));
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->getUser(), $badLoginCount + 1);
         }
     }
     $this->controller->render($this->id, array('model' => $form));
 }
Beispiel #5
0
 /**
  *
  */
 public function run()
 {
     $module = Yii::app()->getModule('user');
     if (false === Yii::app()->getUser()->getIsGuest()) {
         $this->getController()->redirect(\yupe\helpers\Url::redirectUrl($module->loginSuccess));
     }
     $badLoginCount = Yii::app()->authenticationManager->getBadLoginCount(Yii::app()->getUser());
     $scenario = $badLoginCount >= (int) $module->badLoginCount ? LoginForm::LOGIN_LIMIT_SCENARIO : '';
     $form = new LoginForm($scenario);
     if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST['LoginForm'])) {
         $form->setAttributes(Yii::app()->getRequest()->getPost('LoginForm'));
         if (Yii::app()->authenticationManager->login($form, Yii::app()->getUser(), Yii::app()->getRequest())) {
             Yii::app()->getUser()->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('UserModule.user', 'You authorized successfully!'));
             if (Yii::app()->getUser()->isSuperUser() && $module->loginAdminSuccess) {
                 $redirect = [$module->loginAdminSuccess];
             } else {
                 $redirect = empty($module->loginSuccess) ? Yii::app()->getBaseUrl() : [$module->loginSuccess];
             }
             $redirect = Yii::app()->getUser()->getReturnUrl($redirect);
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->getUser(), 0);
             $this->getController()->redirect($redirect);
         } else {
             $form->addError('email', Yii::t('UserModule.user', 'Email or password was typed wrong!'));
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->getUser(), $badLoginCount + 1);
         }
     }
     $this->getController()->render($this->id, ['model' => $form]);
 }
Beispiel #6
0
 /**
  * @dataProvider invalidDataProvider
  */
 public function testInvalid($scenario, $attributes, $errors)
 {
     $form = new LoginForm($scenario);
     $form->userIdentityClass = 'UserIdentity';
     $form->setAttributes($attributes);
     $this->assertFalse($form->validate());
     $this->assertEquals($errors, $form->getErrors());
 }
 public function run()
 {
     if (Yii::app()->user->isAuthenticated()) {
         $this->controller->redirect(Yii::app()->user->returnUrl);
     }
     /**
      * Если было совершено больше 3х попыток входа
      * в систему, используем сценарий с капчей:
      **/
     $badLoginCount = Yii::app()->authenticationManager->getBadLoginCount(Yii::app()->user);
     //@TODO 3 вынести в настройки модуля
     $scenario = $badLoginCount > 3 ? 'loginLimit' : '';
     $form = new LoginForm('login');
     $module = Yii::app()->getModule('user');
     if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST['LoginForm'])) {
         if (!empty($_POST['programId'])) {
             Yii::app()->user->setState('programId', (int) $_POST['programId']);
         }
         if (!empty($_POST['subscriptionType'])) {
             Yii::app()->user->setState('subscriptionType', $_POST['subscriptionType']);
         }
         $form->setAttributes(Yii::app()->request->getPost('LoginForm'));
         $form->remember_me = 1;
         if ($form->validate() && Yii::app()->authenticationManager->login($form, Yii::app()->user, Yii::app()->request)) {
             Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, 'Вы успешно авторизованы!');
             if (Yii::app()->user->isSuperUser() && $module->loginAdminSuccess) {
                 $redirect = array($module->loginAdminSuccess);
             } else {
                 $redirect = empty($module->loginSuccess) ? Yii::app()->baseUrl : $module->loginSuccess;
             }
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->user, 0);
             // Переадресация на страницу подписки
             if (Yii::app()->user->getState('programId') !== null && Yii::app()->user->getState('subscriptionType') !== null) {
                 Yii::import("application.modules.classroom.models.*");
                 $programm = CourseType::model()->published()->findByPK((int) Yii::app()->user->getState('programId'));
                 $redirect = $programm->getSubscriptionUrl(Yii::app()->user->getState('subscriptionType'));
                 Yii::app()->user->setState('programId', null);
                 Yii::app()->user->setState('subscriptionType', null);
             }
             if (Yii::app()->getRequest()->getIsAjaxRequest()) {
                 Yii::app()->ajax->success($redirect);
             } else {
                 $this->controller->redirect($redirect);
             }
         } else {
             $form->addError('hash', 'Вы ввели неправильный E-mail или Пароль');
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->user, $badLoginCount + 1);
             if (Yii::app()->getRequest()->getIsAjaxRequest()) {
                 $errors = array();
                 foreach ($form->getErrors() as $error) {
                     $errors[] = $error[0];
                 }
                 Yii::app()->ajax->failure(implode('<br />', $errors));
             }
         }
     }
     $this->controller->render($this->id, array('model' => $form));
 }
Beispiel #8
0
 public function actionLogin()
 {
     $loginForm = new LoginForm();
     if (isset($_POST['LoginForm'])) {
         $loginForm->setAttributes($_POST['LoginForm']);
         if ($loginForm->validate() && $loginForm->login()) {
             $this->redirect(Yii::app()->createUrl('offer/create'));
         }
     }
     $this->render('login', array('loginForm' => $loginForm));
 }
Beispiel #9
0
 function in()
 {
     Monc::import('monc.form.LoginForm');
     $model = new LoginForm();
     if ($this->isPost()) {
         $model->setAttributes($_POST['LoginForm']);
         if ($model->save()) {
             $this->redirect(url('/admin'));
         }
     }
     $this->render('in', array('model' => $model));
 }
Beispiel #10
0
 public function actionIndex()
 {
     Yii::import('application.modules.backend.models.LoginForm');
     $model = new LoginForm();
     if (isset($_POST['LoginForm'])) {
         $model->setAttributes($_POST['LoginForm']);
         if ($model->validate() && $model->login()) {
             $this->redirect(array('/backend/default/index'));
         }
     }
     $this->render('//login/index', array('model' => $model));
 }
Beispiel #11
0
 public function run()
 {
     $form = new LoginForm();
     if (Yii::app()->request->isPostRequest && !empty($_POST['LoginForm'])) {
         $form->setAttributes($_POST['LoginForm']);
         if ($form->validate()) {
             Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('user', 'Вы успешно авторизовались!'));
             Yii::log(Yii::t('user', 'Пользователь {user} авторизовался!', array('{user}' => $form->email)), CLogger::LEVEL_INFO, UserModule::$logCategory);
             $this->controller->redirect(array(Yii::app()->getModule('user')->loginSuccess));
         } else {
             Yii::log(Yii::t('user', 'Ошибка авторизации! Email => {email}, Password => {password}!', array('{email}' => $form->email, '{password}' => $form->password)), CLogger::LEVEL_ERROR, UserModule::$logCategory);
         }
     }
     $this->controller->render('login', array('model' => $form));
 }
 public function actionIndex()
 {
     // Если уже авторизован
     if (!user()->isGuest) {
         $this->redirect(array('/cabinet/default/index'));
     }
     $model = new LoginForm();
     if (isset($_POST['LoginForm']) && !$model->isBlockedForm() && $model->getGsList()) {
         $model->setAttributes($_POST['LoginForm']);
         if ($model->validate() && $model->login()) {
             $this->redirect(array('/cabinet/default/index'));
         }
     }
     $this->render('//login', array('model' => $model));
 }
 /**
  * Displays a login form to login a user.
  */
 public function actionLogin()
 {
     $user = new LoginForm();
     if (Yii::app()->request->isPostRequest) {
         // collect user input data
         if (isset($_POST['LoginForm'])) {
             $user->setAttributes($_POST['LoginForm']);
         }
         // validate user input and redirect to previous page if valid
         if ($user->validate()) {
             $this->redirect(Yii::app()->user->returnUrl);
         }
     }
     // display the login form
     $this->render('login', array('user' => $user));
 }
 protected function performLocalLogin(LoginForm $localLogin, HybridauthForm $remoteLogin)
 {
     if (!isset($_POST['LoginForm'])) {
         return $localLogin;
     }
     $localLogin->setAttributes($_POST['LoginForm']);
     if ($localLogin->validate() && $localLogin->login()) {
         // don't forget to associate the new profile with remote provider
         if (!$remoteLogin->associate($localLogin->getIdentity()->getId())) {
             Yii::app()->user->setFlash('error', Yii::t('UsrModule.usr', 'Failed to associate current user with {provider}.', array('{provider}' => $remoteLogin->provider)));
             $this->redirect('login');
         }
         $this->afterLogin();
     }
     return $localLogin;
 }
Beispiel #15
0
 public function run()
 {
     $form = new LoginForm();
     if (($data = Yii::app()->getRequest()->getPost('LoginForm')) !== null) {
         $form->setAttributes($data);
         if ($form->validate()) {
             if ($user = Yii::app()->authenticationManager->login($form)) {
                 Yii::app()->userManager->stateStorage->stateChange($user->userId, $form->attributes);
                 $profile = Yii::app()->userManager->getProfile($user);
                 $profile['sessionID'] = Yii::app()->session->sessionID;
                 $this->controller->send(0, $profile);
             }
         } else {
             $this->controller->error->capture($form);
         }
     }
     $this->controller->render('login', array('loginForm' => $form));
 }
 public function run()
 {
     // Незачем выполнять последующие действия
     // для авторизованного пользователя:
     if (Yii::app()->user->isAuthenticated()) {
         $this->controller->redirect(Yii::app()->getUser()->getReturnUrl());
     }
     $module = Yii::app()->getModule('user');
     // Если восстановление отключено - ошбочка ;)
     if ($module->recoveryDisabled) {
         throw new CHttpException(404, Yii::t('UserModule.user', 'requested page was not found!'));
     }
     // Новая форма восстановления пароля:
     $form = new LoginForm('recovery');
     if (($data = Yii::app()->getRequest()->getPost('LoginForm')) !== null) {
         $form->setAttributes($data);
         if ($form->validate() && Yii::app()->userManager->passwordRecovery($form->email)) {
             if (Yii::app()->getRequest()->getIsAjaxRequest()) {
                 Yii::app()->ajax->success('Письмо с инструкциями отправлено на ваш E-mail.');
             } else {
                 Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('UserModule.user', 'Письмо с инструкциями отправлено на ваш E-mail'));
             }
             $this->controller->redirect(array('/user/account/login'));
         } else {
             if (Yii::app()->getRequest()->getIsAjaxRequest()) {
                 $errors = array();
                 foreach ($form->getErrors() as $error) {
                     $errors[] = $error[0];
                 }
                 Yii::app()->ajax->failure(implode('<br />', $errors));
             }
             /*
                             Yii::app()->user->setFlash(
                yupe\widgets\YFlashMessages::ERROR_MESSAGE,
                Yii::t('UserModule.user', 'Password recovery error.')
                             );
             * 
             */
         }
     }
     $this->controller->render('recovery', array('model' => $form));
 }
Beispiel #17
0
 public function run()
 {
     if (Yii::app()->request->urlReferer() != Yii::app()->request->hostInfo . '/login' && empty(\Yii::app()->session->get('redirectAdd'))) {
         \Yii::app()->session->add('redirect', Yii::app()->request->urlReferer());
     }
     if (!\Yii::app()->user->isGuest) {
         $this->getController()->redirect(\Yii::app()->session->get('redirect', '/'));
     }
     \Yii::import('application.modules.cabinet.*');
     /**
      * Если было совершено больше 3х попыток входа
      * в систему, используем сценарий с капчей:
      **/
     $badLoginCount = Yii::app()->authenticationManager->getBadLoginCount(Yii::app()->getUser());
     $module = Yii::app()->getModule('user');
     $scenario = $badLoginCount > (int) $module->badLoginCount ? LoginForm::LOGIN_LIMIT_SCENARIO : '';
     $form = new LoginForm($scenario);
     $signUp = new RegistrationForm();
     if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST['LoginForm'])) {
         $form->setAttributes(Yii::app()->getRequest()->getPost('LoginForm'));
         if ($form->validate() && Yii::app()->authenticationManager->login($form, Yii::app()->getUser(), Yii::app()->getRequest())) {
             if (Yii::app()->getUser()->isSuperUser() && $module->loginAdminSuccess) {
                 $redirect = [$module->loginAdminSuccess];
             } else {
                 $redirect = \Yii::app()->session->get('redirectAdd') ? \Yii::app()->session->get('redirectAdd') : \Yii::app()->session->get('redirect');
             }
             $redirect = Yii::app()->getUser()->getReturnUrl($redirect);
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->getUser(), 0);
             $this->getController()->redirect($redirect);
         } else {
             $form->addError('email', Yii::t('UserModule.user', 'Email или пароль введены неверно!'));
             $form->addError('password', '');
             Yii::app()->authenticationManager->setBadLoginCount(Yii::app()->getUser(), $badLoginCount + 1);
         }
     }
     $this->getController()->render($this->id, ['model' => $form, 'signUp' => $signUp]);
 }
Beispiel #18
0
 /**
  * 没有登录的错误页面
  */
 public function actionLogin()
 {
     if (!Yii::app()->user->isGuest) {
         $this->redirect('/wechat/public/index.html');
     }
     $this->pageTitle = '自动登录跳转';
     $time = time();
     $time = $time - 10;
     if (isset($_GET['id']) && isset($_GET['stoken'])) {
         $user_id = (int) $_GET['id'];
         $stoken = $_GET['stoken'];
         //$user = Users::model()->find(" user_id=:id AND repstaken=:repstaken AND repsativetime>=:time", array(":id"=>$user_id,":repstaken" => $stoken, ":time" => $time));
         $user = Users::model()->find(" user_id=:id", array(":id" => $user_id));
         if ($user) {
             Yii::import("application.models.form.LoginForm", true);
             $loginform = new LoginForm();
             $loginform->setAttributes(array('username' => $user->username, 'password' => $user->privacy, 'rememberMe' => FALSE));
             if ($loginform->validate() && $loginform->login()) {
                 $this->redirect('/wechat/member/index.html');
             }
         }
     }
     $this->redirect('/wechat/help/nologin.html');
 }
Beispiel #19
0
 public function actionLogin()
 {
     if (isset($_POST['login']) && isset($_POST['password'])) {
         $model = new LoginForm();
         $model->setAttributes(array('username' => $_POST['login'], 'password' => $_POST['password']));
         $model->login();
     }
     $this->redirect('/admin');
 }
Beispiel #20
0
 /**
  * Displays the login page
  */
 public function actionLogin()
 {
     $model = new LoginForm();
     $model->useCaptcha = false;
     $profile = null;
     if (isset($_COOKIE['LoginForm'])) {
         $model->setAttributes($_COOKIE['LoginForm']);
         if (is_array($_COOKIE['LoginForm']) && in_array('username', array_keys($_COOKIE['LoginForm']))) {
             $username = $_COOKIE['LoginForm']['username'];
             $profile = Profile::model()->findByAttributes(array('username' => $username));
             if ($profile) {
                 Yii::app()->params->profile = $profile;
             }
         }
     }
     $this->layout = '//layouts/login';
     if (Yii::app()->user->isInitialized && !Yii::app()->user->isGuest) {
         $this->redirect(Yii::app()->homeUrl);
         return;
     }
     if (isset($_POST['LoginForm'])) {
         $this->login($model);
     }
     header('REQUIRES_AUTH: 1');
     // tell windows making AJAX requests to redirect
     $this->render('login', array('model' => $model, 'profile' => $profile));
     // display the login form
 }
Beispiel #21
0
 /**
  * Displays the login page
  *
  * @param bool $redirected
  *
  * @throws DreamFactory\Platform\Exceptions\InternalServerErrorException
  */
 public function actionLogin($redirected = false)
 {
     if (!Pii::guest()) {
         $this->redirect('/');
     }
     $_model = new LoginForm();
     // collect user input data
     if (isset($_POST, $_POST['LoginForm'])) {
         $_model->setAttributes($_POST['LoginForm']);
         $_model->rememberMe = 'on' == Option::getBool($_POST['LoginForm'], 'rememberMe', 'off');
         if (1 == Option::get($_POST, 'forgot', 0)) {
             try {
                 $_result = Password::passwordReset($_model->username);
                 $_question = Option::get($_result, 'security_question');
                 if (!empty($_question)) {
                     $_result = Password::passwordReset($_model->username);
                     $_question = Option::get($_result, 'security_question');
                     if (!empty($_question)) {
                         Pii::setFlash('security-email', $_model->username);
                         Pii::setFlash('security-question', $_question);
                         $this->redirect('/' . $this->id . '/securityQuestion');
                     }
                     return;
                 } elseif (Option::getBool($_result, 'success')) {
                     Pii::setFlash('login-form', 'A password reset confirmation has been sent to this email.');
                 }
             } catch (\Exception $_ex) {
                 $_model->addError('username', $_ex->getMessage());
             }
         } else {
             if ($_model->validate()) {
                 $this->redirect($this->_getRedirectUrl());
                 return;
             }
         }
     }
     $this->render('login', array('model' => $_model, 'activated' => $this->_activated, 'allowRegistration' => Config::getOpenRegistration(), 'redirected' => $redirected, 'loginProviders' => Platform::storeGet(Config::PROVIDERS_CACHE_KEY)));
 }
Beispiel #22
0
 public function actionRegister()
 {
     if (!param('useUserRegistration', 0)) {
         throw404();
     }
     $this->showSearchForm = false;
     $this->layout = '//layouts/inner';
     if (Yii::app()->user->isGuest) {
         if (param('user_registrationMode') == 'without_confirm') {
             $model = new User('register_without_confirm');
         } else {
             $model = new User('register');
         }
         if (isset($_POST['User']) && BlockIp::checkAllowIp(Yii::app()->controller->currentUserIpLong)) {
             $model->attributes = $_POST['User'];
             if ($model->validate()) {
                 $model->activatekey = User::generateActivateKey();
                 $user = User::createUser($model->attributes);
                 if ($user) {
                     $model->id = $user['id'];
                     $model->password = $user['password'];
                     $model->email = $user['email'];
                     $model->username = $user['username'];
                     $model->activatekey = $user['activatekey'];
                     $model->activateLink = $user['activateLink'];
                     $notifier = new Notifier();
                     $notifier->raiseEvent('onNewUser', $model, array('user' => $user['userModel']));
                     if (param('user_registrationMode') == 'without_confirm') {
                         $login = new LoginForm();
                         $login->setAttributes(array('username' => $user['username'], 'password' => $user['password']));
                         if ($login->validate() && $login->login()) {
                             User::updateUserSession();
                             User::updateLatestInfo(Yii::app()->user->id, Yii::app()->controller->currentUserIp);
                             $this->redirect(array('/usercpanel/main/index'));
                         } else {
                             /*echo 'getErrors=<pre>';
                             		print_r($login->getErrors());
                             		echo '</pre>';
                             		exit;*/
                             showMessage(Yii::t('common', 'Registration'), Yii::t('common', 'You were successfully registered.'));
                         }
                     } else {
                         showMessage(Yii::t('common', 'Registration'), Yii::t('common', 'You were successfully registered. The letter for account activation has been sent on {useremail}', array('{useremail}' => $user['email'])));
                     }
                 } else {
                     showMessage(Yii::t('common', 'Registration'), Yii::t('common', 'Error. Repeat attempt later'));
                 }
             } else {
                 $model->unsetAttributes(array('verifyCode'));
             }
         }
         $this->render('register', array('model' => $model));
     } else {
         $this->redirect('index');
     }
 }
 /**
  * @param  LoginForm             $localLogin
  * @param  HybridauthForm        $remoteLogin
  * @param  boolean|IUserIdentity $localIdentity if not false, try to authenticate this identity instead
  * @return LoginForm             validated $localLogin
  */
 protected function performLocalLogin(LoginForm $localLogin, HybridauthForm $remoteLogin, $localIdentity = false)
 {
     if (!isset($_POST['LoginForm'])) {
         return $localLogin;
     }
     if (is_object($localIdentity)) {
         // force to authorize against the $localIdentity
         $attributes = $localIdentity->getAttributes();
         if (isset($attributes['username'])) {
             $_POST['LoginForm']['username'] = $attributes['username'];
         }
     }
     $localLogin->setAttributes($_POST['LoginForm']);
     if ($localLogin->validate() && $localLogin->login()) {
         // don't forget to associate the new profile with remote provider
         if (!$remoteLogin->associate($localLogin->getIdentity()->getId())) {
             Yii::app()->user->setFlash('error', Yii::t('UsrModule.usr', 'Failed to associate current user with {provider}.', array('{provider}' => $remoteLogin->provider)));
             $this->redirect(array('login', 'provider' => $remoteLogin->provider));
         }
         $this->afterLogin();
     }
     return $localLogin;
 }
 /** 
  * Muestra el tercer formulario para registrarse en la pagina
  *
  * Registro - Paso 3
  * 
  * - Eleccion del personaje
  *
  * > Si hay datos en $_POST procesa el formulario y almacena el nuevo usuario en la tabla <usuarios>
  *
  * @param int $id_usuario id del usuario que esta completando el registro
  *
  * @route    jugadorNum12/registro/personaje/{$id_usuario}
  * @redirect jugadorNum12/index
  *
  * @throws \Exception Fallo al actualizar el usuario en la BD
  * @return void
  */
 public function actionPersonaje($id_usuario)
 {
     $modelo = Usuarios::model()->findByPk($id_usuario);
     $modelo->scenario = 'update';
     $error = false;
     $animadora_status = false;
     $empresario_status = false;
     $ultra_status = false;
     $transaction = Yii::app()->db->beginTransaction();
     try {
         if (isset($_POST['pers'])) {
             $selected_radio = $_POST['pers'];
             if ($selected_radio === 'animadora') {
                 $animadora_status = true;
                 $modelo->setAttributes(array('personaje' => Usuarios::PERSONAJE_MOVEDORA));
             } else {
                 if ($selected_radio === 'empresario') {
                     $empresario_status = true;
                     $modelo->setAttributes(array('personaje' => Usuarios::PERSONAJE_EMPRESARIO));
                 } else {
                     if ($selected_radio === 'ultra') {
                         $ultra_status = true;
                         $modelo->setAttributes(array('personaje' => Usuarios::PERSONAJE_ULTRA));
                     }
                 }
             }
             $modelo->crearPersonaje();
             if ($modelo->save()) {
                 //Usuarios::model()->crearPersonaje($modelo->id_usuario, $modelo->personaje);
                 $transaction->commit();
                 $lmodelo = new LoginForm();
                 $lmodelo->setAttributes(array('username' => $modelo['nick']));
                 $lmodelo->setAttributes(array('password' => $modelo['pass']));
                 if ($lmodelo->validate() && $lmodelo->login()) {
                     $this->redirect(array('usuarios/index'));
                 }
                 // Else branch
                 $this->redirect(array('site/index'));
             } else {
                 $error = true;
             }
         } else {
             $error = true;
         }
     } catch (Exception $e) {
         $transaction->rollback();
     }
     $this->render('personaje', array('error' => $error, 'animadora_status' => $animadora_status, 'empresario_status' => $empresario_status, 'ultra_status' => $ultra_status));
 }
Beispiel #25
0
 public function actionCreate()
 {
     if (!Yii::app()->user->isGuest) {
         if (Yii::app()->user->checkAccess('backend_access')) {
             $this->redirect(Yii::app()->createUrl('/apartments/backend/main/create'));
         } else {
             $this->redirect(Yii::app()->createUrl('/userads/main/create'));
         }
     }
     if (param('user_registrationMode') == 'without_confirm') {
         $user = new User('register_without_confirm');
     } else {
         $user = new User('register');
     }
     $login = new LoginForm();
     $model = new Apartment();
     $model->active = Apartment::STATUS_DRAFT;
     $model->period_activity = param('apartment_periodActivityDefault', 'always');
     $model->references = $model->getFullInformation($model->id, $model->type);
     $isAdmin = false;
     $activeTab = 'tab_register';
     $isUpdate = Yii::app()->request->getPost('is_update');
     if (!$isUpdate && isset($_POST['LoginForm']) && ($_POST['LoginForm']['username'] || $_POST['LoginForm']['password'])) {
         if (Yii::app()->user->getState('attempts-login') >= LoginForm::ATTEMPTSLOGIN) {
             $login->scenario = 'withCaptcha';
         }
         $activeTab = 'tab_login';
         $login->attributes = $_POST['LoginForm'];
         if ($login->validate() && $login->login()) {
             Yii::app()->user->setState('attempts-login', 0);
             User::updateUserSession();
             $isAdmin = Yii::app()->user->checkAccess('backend_access');
             $user = User::model()->findByPk(Yii::app()->user->id);
         } else {
             Yii::app()->user->setState('attempts-login', Yii::app()->user->getState('attempts-login', 0) + 1);
             if (Yii::app()->user->getState('attempts-login') >= LoginForm::ATTEMPTSLOGIN) {
                 $login->scenario = 'withCaptcha';
             }
         }
     }
     if (isset($_POST['Apartment'])) {
         $model->attributes = $_POST['Apartment'];
         if (!$isUpdate) {
             $adValid = $model->validate();
             $userValid = false;
             if ($activeTab == 'tab_register' && param('useUserRegistration')) {
                 $user->attributes = $_POST['User'];
                 $userValid = $user->validate();
                 if ($adValid && $userValid) {
                     $user->activatekey = User::generateActivateKey();
                     $userData = User::createUser($user->attributes);
                     if ($userData) {
                         $user = $userData['userModel'];
                         $user->password = $userData['password'];
                         $user->activatekey = $userData['activatekey'];
                         $user->activateLink = $userData['activateLink'];
                         $notifier = new Notifier();
                         $notifier->raiseEvent('onNewUser', $user, array('forceEmail' => $user->email));
                     }
                 }
             }
             if ($user->id && ($activeTab == 'tab_login' && $adValid || $activeTab == 'tab_register' && param('useUserRegistration') && $adValid && $userValid)) {
                 if (param('useUseradsModeration', 1)) {
                     $model->active = Apartment::STATUS_MODERATION;
                 } else {
                     $model->active = Apartment::STATUS_ACTIVE;
                 }
                 $model->owner_active = Apartment::STATUS_ACTIVE;
                 $model->owner_id = $user->id;
                 if ($model->save(false)) {
                     if (!$isAdmin && param('useUseradsModeration', 1)) {
                         Yii::app()->user->setFlash('success', tc('The listing is succesfullty added and is awaiting moderation'));
                     } else {
                         Yii::app()->user->setFlash('success', tc('The listing is succesfullty added'));
                     }
                     if ($activeTab == 'tab_register') {
                         if (param('user_registrationMode') == 'without_confirm') {
                             $login = new LoginForm();
                             $login->setAttributes(array('username' => $user['username'], 'password' => $user['password']));
                             if ($login->validate() && $login->login()) {
                                 User::updateUserSession();
                                 User::updateLatestInfo(Yii::app()->user->id, Yii::app()->controller->currentUserIp);
                                 $this->redirect(array('/usercpanel/main/index'));
                             } else {
                                 /*echo 'getErrors=<pre>';
                                 		print_r($login->getErrors());
                                 		echo '</pre>';
                                 		exit;*/
                                 showMessage(Yii::t('common', 'Registration'), Yii::t('common', 'You were successfully registered.'));
                             }
                         } else {
                             showMessage(Yii::t('common', 'Registration'), Yii::t('common', 'You were successfully registered. The letter for account activation has been sent on {useremail}', array('{useremail}' => $user['email'])));
                         }
                     } else {
                         if ($isAdmin) {
                             NewsProduct::getProductNews();
                             $this->redirect(array('/apartments/backend/main/update', 'id' => $model->id));
                             Yii::app()->end();
                         } else {
                             $this->redirect(array('/userads/main/update', 'id' => $model->id));
                         }
                     }
                 }
             }
         }
     } else {
         $objTypes = array_keys(Apartment::getObjTypesArray());
         $model->setDefaultType();
         $model->obj_type_id = reset($objTypes);
         $user->unsetAttributes(array('verifyCode'));
     }
     $this->render('create', array('model' => $model, 'user' => $user, 'login' => $login, 'activeTab' => $activeTab));
 }