/** * 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'); }
/** * 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; } }
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)); }
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)); }
/** * */ 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]); }
/** * @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)); }
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)); }
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)); }
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)); }
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; }
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)); }
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]); }
/** * 没有登录的错误页面 */ 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'); }
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'); }
/** * 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 }
/** * 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))); }
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)); }
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)); }