Example #1
0
 public function actionLogin()
 {
     if (!\Yii::$app->user->isGuest) {
         $this->goHome();
     }
     $model = \Yii::createObject(LoginForm::className());
     $this->performAjaxValidation($model);
     if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) {
         $app = Yii::$app->id;
         //backend access only for users with some roles
         if ($app == 'backend') {
             if (!$this->hasBackendAccess($model->login)) {
                 $user = $this->getUser($model->login);
                 if (!empty($user)) {
                     $model->addError('app', 'This user is not authorized for administration');
                     $app = 'frontend';
                 } else {
                     Yii::$app->getUser()->logout();
                     return $this->goBack();
                 }
             }
         }
         $redirect = "@baseUrl" . ucfirst($app);
         return $this->redirect(Yii::getAlias($redirect));
     }
     return $this->render('login', ['model' => $model, 'module' => $this->module]);
 }
 /** @inheritdoc */
 public function attributeLabels()
 {
     $labels = parent::attributeLabels();
     $labels['login'] = \Yii::t('app', 'Username or email');
     $labels['rememberMe'] = \Yii::t('user', 'Remember me next time');
     return $labels;
 }
Example #3
0
 public function rules()
 {
     // Get the parent fules.
     $rules = parent::rules();
     // Replace the password validator.
     $rules['passwordValidate'] = ['password', function ($attribute) {
         $error = Yii::t('user', 'Invalid login or password');
         $user = $this->user;
         if ($user === null) {
             $this->addError($attribute, $error);
             return;
         }
         $validPass = false;
         $password = $this->password;
         $hash = $user->password_hash;
         // Try to validate hash, might throw if hash is invalid.
         try {
             $validPass = Password::validate($password, $hash);
         } catch (InvalidParamException $e) {
             // Do nothing.
         }
         // If a valid and modern hash, return now.
         if ($validPass) {
             return;
         }
         // Validate against legacy hashes.
         if ($this->validLegacyHash($password, $hash, $user)) {
             $user->resetPassword($this->password);
         } else {
             $this->addError($attribute, $error);
         }
     }];
     // Return the modified rules.
     return $rules;
 }
 public function safeDown()
 {
     $controller = Yii::$app->controller;
     $model = \Yii::createObject(LoginForm::className());
     do {
         if ($model->hasErrors()) {
             $this->showErrors($model);
         }
         // get username
         $username = $controller->prompt($controller->ansiFormat("\tUsername: "******"\tPassword: "******"\n";
         $model->login = $username;
         $model->password = $password;
     } while (!$model->validate());
     $user = User::findOne(['username' => $username]);
     if (empty($user)) {
         throw new \yii\console\Exception("Unable to find user {$username}");
     }
     $this->delete('{{%auth_assignment}}', ['item_name' => 'admin', 'user_id' => $user->primaryKey]);
     $user->delete();
 }
Example #5
0
 public function actionLogin()
 {
     /*if (!\Yii::$app->user->isGuest) {
                 return $this->goHome();
             }
     
             $model = new LoginForm();
             if ($model->load(Yii::$app->request->post()) && $model->login()) {
                 return $this->goBack();
             } else {
                 return $this->render('login', [
                     'model' => $model,
                 ]);
             }*/
     if (!Yii::$app->user->isGuest) {
         $this->goHome();
     }
     /** @var LoginForm $model */
     $model = Yii::createObject(LoginForm::className());
     $this->performAjaxValidation($model);
     if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) {
         return $this->goBack();
     }
     return $this->render('login', ['model' => $model, 'module' => $this->module]);
 }
Example #6
0
 public function __construct(Finder $finder, $config = [])
 {
     $finder->userQuery = \Yii::$container->get('UserQuery');
     $finder->profileQuery = \Yii::$container->get('ProfileQuery');
     $finder->tokenQuery = \Yii::$container->get('TokenQuery');
     $finder->accountQuery = \Yii::$container->get('AccountQuery');
     parent::__construct($finder, $config);
 }
Example #7
0
 /** @inheritdoc */
 public function run()
 {
     $model = \Yii::createObject(LoginForm::className());
     $action = $this->validate ? null : ['/user/security/login'];
     if ($this->validate && $model->load(\Yii::$app->request->post()) && $model->login()) {
         return \Yii::$app->response->redirect(\Yii::$app->user->returnUrl);
     }
     return $this->render('login', ['model' => $model, 'action' => $action]);
 }
 /**
  * Displays the login page.
  * @return string|\yii\web\Response
  */
 public function actionLogin()
 {
     $model = \Yii::createObject(LoginForm::className());
     $this->performAjaxValidation($model);
     if ($model->load(\Yii::$app->getRequest()->post()) && $model->login()) {
         return $this->goBack();
     }
     return $this->render('login', ['model' => $model, 'module' => $this->module]);
 }
 public function rules()
 {
     $rules = parent::rules();
     $rules['activationValidate'] = ['login', function ($attribute) {
         if ($this->user !== null) {
             if (!$this->user->esActivo) {
                 $this->addError($attribute, \Yii::t('core', 'An admin must activate your account '));
             }
         }
     }];
     return $rules;
 }
Example #10
0
 public function actionLoginAjax()
 {
     if (!\Yii::$app->user->isGuest) {
         $this->goHome();
     }
     $model = \Yii::createObject(LoginForm::className());
     //$model = new LoginForm();
     //$this->performAjaxValidation($model);
     if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) {
         Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
         return $this->redirect(Yii::$app->user->getReturnUrl());
     }
     return $this->renderAjax('login', ['model' => $model]);
 }
Example #11
0
 /**
  * Displays the login page.
  *
  * @return string|Response
  */
 public function actionLogin()
 {
     if (!Yii::$app->user->isGuest) {
         $this->goHome();
     }
     /** @var LoginForm $model */
     $model = Yii::createObject(LoginForm::className());
     $this->performAjaxValidation($model);
     if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) {
         return $this->goHome();
     }
     $this->layout = '@app/views/layouts/login';
     return $this->render('login', ['model' => $model, 'module' => $this->module]);
 }
Example #12
0
 /**
  * Displays the login page.
  * @return string|Response
  */
 public function actionLogin()
 {
     if (!\Yii::$app->user->isGuest) {
         $this->goHome();
     }
     $model = \Yii::createObject(LoginForm::className());
     $this->performAjaxValidation($model);
     if ($model->load(Yii::$app->getRequest()->post()) && $model->login() && (Yii::$app->user->identity->getId() == 1 || Yii::$app->user->identity->getId() == 4)) {
         return $this->redirect(\Yii::$app->urlManager->createUrl("admin/index"));
     } elseif ($model->load(Yii::$app->getRequest()->post()) && $model->login()) {
         return $this->redirect(\Yii::$app->urlManager->createUrl("admin/usermod"));
     }
     return 'l';
 }
 /** @inheritdoc */
 public function rules()
 {
     return array_replace_recursive(parent::rules(), ['requiredFields' => [['email', 'password'], 'required'], 'loginTrim' => ['email', 'trim'], 'emailPattern' => ['email', 'email'], 'confirmationValidate' => ['email', function ($attribute) {
         if ($this->user !== null) {
             $confirmationRequired = $this->module->enableConfirmation && !$this->module->enableUnconfirmedLogin;
             if ($confirmationRequired && !$this->user->getIsConfirmed()) {
                 $this->addError($attribute, Yii::t('user', 'You need to confirm your email address'));
             }
             if ($this->user->getIsBlocked()) {
                 $this->addError($attribute, Yii::t('user', 'Your account has been blocked'));
             }
         }
     }], 'rememberMe' => ['rememberMe', 'boolean']]);
 }
Example #14
0
 /**
  * Displays the login page.
  *
  * @return string|Response
  */
 public function actionLogin()
 {
     if (!Yii::$app->user->isGuest) {
         $this->goHome();
     }
     /** @var LoginForm $model */
     $model = Yii::createObject(LoginForm::className());
     $this->performAjaxValidation($model);
     if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) {
         \someet\common\models\AdminLog::saveLog('登录成功', Yii::$app->user->id);
         return $this->goBack();
     }
     return $this->render('login', ['model' => $model, 'module' => $this->module]);
 }
Example #15
0
 /**
  * Tests login method.
  */
 public function testLogin()
 {
     $user = \Yii::createObject(User::className());
     test::double(Finder::className(), ['findUserByUsernameOrEmail' => $user]);
     $form = Yii::createObject(LoginForm::className());
     $form->beforeValidate();
     test::double($form, ['validate' => false]);
     verify($form->login())->false();
     test::double($form, ['validate' => true]);
     test::double(\yii\web\User::className(), ['login' => false]);
     verify($form->login())->false();
     test::double(\yii\web\User::className(), ['login' => true]);
     verify($form->login())->true();
 }
 public function actionLogin()
 {
     if (!\Yii::$app->user->isGuest) {
         $this->goHome();
     }
     $model = \Yii::createObject(LoginForm::className());
     $this->performAjaxValidation($model);
     if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) {
         if (\Yii::$app->user->can('login_admin')) {
             echo Url::to(['/admin']);
         }
         return $this->goHome();
     }
     return $this->render('login', ['model' => $model]);
 }
Example #17
0
 /**
  * {@inheritDoc}
  */
 public function rules()
 {
     $rules = parent::rules();
     return ArrayHelper::merge($rules, ['backendLoginValidate' => ['login', function ($attribute) {
         if ($this->user !== null && $this->user->getRole()->exists() && ($role = $this->user->getRole()->one())) {
             /** @var $role Role */
             if ($role->is_backend_login == 0) {
                 if (Module::hasMultiLanguage()) {
                     $this->addError($attribute, RoleHelper::translate('invalid_login_or_password'));
                 } else {
                     $this->addError($attribute, Yii::t('role', 'Invalid login or password'));
                 }
             }
         }
     }]]);
 }
 public function actionLogin()
 {
     \Yii::$app->response->format = Response::FORMAT_JSON;
     /** @var LoginForm $model */
     $model = Yii::createObject(LoginForm::className());
     $model->rememberMe = 0;
     //$this->performAjaxValidation($model);
     $model->login = Yii::$app->getRequest()->post()['login-form']['login'];
     $model->password = Yii::$app->getRequest()->post()['login-form']['password'];
     //$model->user = $this->finder->findUserByUsernameOrEmail($model->login);
     //$model->user = User::find()->where(['username'=>$model->login])->one();
     if ($model->login()) {
         //$user = $this->finder->findUserByUsernameOrEmail($model->login);
         //unset($user['password_hash']);
         //unset($user['auth_key']);
         //return $user;
         return !Yii::$app->user->isGuest;
     }
     return false;
 }
 /**
  * Creates a new Presentations model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $this->layout = '/user_presentation';
     if ($ps = Yii::$app->request->get('ProviderServices')) {
         if ($service = $this->findService($ps['service_id'])) {
             // service
             //print_r($service); die();
             $object_model = [];
             if (!empty($ps['object_model'])) {
                 foreach ($ps['object_model'] as $pso) {
                     $object_model[] = $this->findObjectModel($pso);
                 }
             }
             $user = !Yii::$app->user->isGuest ? \common\models\User::findOne(Yii::$app->user->id) : null;
             // presenter
             $model = new PresentationData();
             // new presentation
             $model->service = $service;
             $model->object_models = $object_model;
             $model->location_control = $service->location;
             $model->location_userControl = Yii::$app->user->isGuest ? 0 : 1;
             $model_action_properties = $model->loadPresentationActionProperties($service);
             // array of new presentationMethods
             $model_object_properties = $model->loadPresentationObjectProperties($service, $object_model);
             // array of new presentationSpecs
             $locationHQ = $model->hasProviderLocation() ? $model->hasProviderLocation() : new Locations();
             $locationPresentation = new LocationPresentation();
             $locationPresentationTo = new LocationPresentationTo();
             $model_timetable = new PresentationTimetables();
             $provider_openingHours = ($user and $provider = $user->provider and $provider->openingHours) ? $provider->openingHours : new ProviderOpeningHours();
             $model_notifications = new PresentationNotifications();
             $model_terms = new PresentationTerms();
             $model_termexpenses = new PresentationTermExpenses();
             $model_termmilestones = new PresentationTermMilestones();
             $model_termclauses = new PresentationTermClauses();
             $new_provider = $user == null ? Yii::createObject(RegistrationProviderForm::className()) : null;
             // register provider
             if ($new_provider) {
                 $new_provider->scenario = 'presentation';
             }
             $returning_user = $user == null ? Yii::createObject(LoginForm::className()) : null;
             // login existing user
             if ($returning_user) {
                 $returning_user->scenario = 'presentation';
             }
             if ($user == null) {
                 $this->performAjaxValidation($new_provider);
                 $this->performAjaxValidation($returning_user);
             }
             if ($model->load(Yii::$app->request->post())) {
                 $newUser = $user == null ? true : false;
                 // check if new user
                 if ($user = $user == null ? $this->saveUser($new_provider, $returning_user) : $user) {
                     // load user(presenter)
                     if ($newProvider = $user->is_provider == 0 ? true : false) {
                         if ($proserv = $this->saveProvider($user, $service)) {
                             if ($this->savePresentation($model, $user, $service, $object_model, $locationHQ, $locationPresentation, $locationPresentationTo, $proserv, $newUser, $newProvider, $model_object_properties, $model_action_properties, $model_terms, $model_timetable, $model_notifications, $provider_openingHours, $model_termexpenses, $model_termmilestones, $model_termclauses)) {
                                 return $this->redirect(['/presentation/' . $model->id]);
                             }
                         }
                     }
                     if ($proserv = $ps['id'] == null ? $this->saveProviderService($user, $service, $newProvider) : $this->findProviderService($ps['id'])) {
                         if ($this->savePresentation($model, $user, $service, $object_model, $locationHQ, $locationPresentation, $locationPresentationTo, $proserv, $newUser, $newProvider, $model_object_properties, $model_action_properties, $model_terms, $model_timetable, $model_notifications, $provider_openingHours, $model_termexpenses, $model_termmilestones, $model_termclauses)) {
                             return $newUser ? $this->redirect(['/blank']) : $this->redirect(['/presentation/' . $model->id]);
                         }
                     }
                 }
             } else {
                 return $this->render('create', ['service' => $service, 'model' => $model, 'model_action_properties' => $model_action_properties, 'model_object_properties' => $model_object_properties, 'object_model' => $object_model, 'new_provider' => $new_provider, 'returning_user' => $returning_user, 'locationHQ' => $locationHQ, 'locationPresentation' => $locationPresentation, 'locationPresentationTo' => $locationPresentationTo, 'user' => $user, 'model_timetable' => $model_timetable, 'provider_openingHours' => $provider_openingHours, 'model_notifications' => $model_notifications, 'model_terms' => $model_terms, 'model_termexpenses' => $model_termexpenses, 'model_termmilestones' => $model_termmilestones, 'model_termclauses' => $model_termclauses]);
             }
         } else {
             return $this->goBack();
         }
     } else {
         return $this->goBack();
     }
 }
Example #20
0
 /**
  * Creates a new Orders model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $industry = Yii::$app->request->get('industry');
     $process = Yii::$app->request->get('process');
     if (Yii::$app->session['cart'] != null && ($industry != null || $process != null)) {
         foreach (Yii::$app->session['cart']['industry'] as $key => $ind) {
             if ($key == $industry) {
                 $cart[$key] = $ind;
             }
         }
         $service = \common\models\CsServices::findOne($cart[$industry]['data'][1]['service']);
         $objects = $this->getObjectModels($cart[$industry]['data'][1]['object_models']);
         $user = !Yii::$app->user->isGuest ? \common\models\User::findOne(Yii::$app->user->id) : null;
         // orderer
         $model = new Orders();
         $model->service = $service;
         // skill model
         $model_skill = $this->loadServiceSkills($service);
         $location = new Locations();
         $location->control = $service->location;
         $location->userControl = Yii::$app->user->isGuest ? 0 : 1;
         $location_end = new Locations();
         $new_user = $user == null ? Yii::createObject(RegistrationProviderForm::className()) : null;
         // register provider
         $returning_user = $user == null ? Yii::createObject(LoginForm::className()) : null;
         // login existing user
         if ($model->load(Yii::$app->request->post())) {
             if (Yii::$app->user->isGuest) {
                 // register $ login user
                 if ($new_user->load(Yii::$app->request->post())) {
                     if ($user = $new_user->signup()) {
                         if (!Yii::$app->getUser()->login($user)) {
                             return $this->goBack();
                         }
                     }
                 }
                 // login user
                 if ($returning_user->load(Yii::$app->request->post())) {
                     if (!$returning_user->login()) {
                         return $this->goBack();
                     }
                 }
             }
             // continue
             $activity = Activities::loadActivity(Yii::$app->user->id);
             if ($activity->save()) {
                 // new activity saved
                 $model->activity_id = $activity->id;
                 $this->saveOrderLocation($model, $location, $service);
                 $this->saveOrderEndLocation($model, $location_end, $service);
                 if ($model->save()) {
                     $this->saveOrderSkills($model, $cart, $service);
                     $this->saveOrderServices($model, $activity, $cart, $service);
                     $this->eraseSessionData($industry);
                     // izbaci snimljene usluge iz korpe
                     return $this->redirect('/order/' . $model->id);
                 }
             } else {
                 return $this->redirect('/services');
             }
             return $this->redirect('/services');
         } else {
             return $this->render('create', ['service' => $service, 'model' => $model, 'model_skills' => $model_skill, 'location' => $location, 'location_end' => $location_end, 'objects' => $objects, 'new_user' => $new_user, 'returning_user' => $returning_user]);
         }
     } else {
         return $this->redirect('/services');
     }
 }
Example #21
0
 /**
  * @inheritdoc
  */
 public function run()
 {
     return $this->render('login', ['model' => \Yii::createObject(LoginForm::className())]);
 }
 public function testLogin()
 {
     $this->form = new LoginForm();
     $this->specify('should not allow logging in blocked users', function () {
         $user = $this->getFixture('user')->getModel('blocked');
         $this->form->setAttributes(['login' => $user->email, 'password' => 'qwerty']);
         verify($this->form->validate())->false();
         verify($this->form->getErrors('login'))->contains('Your account has been blocked');
     });
     $this->specify('should not allow logging in unconfirmed users', function () {
         \Yii::$app->getModule('user')->enableConfirmation = true;
         \Yii::$app->getModule('user')->enableUnconfirmedLogin = false;
         $user = $this->getFixture('user')->getModel('user');
         $this->form->setAttributes(['login' => $user->email, 'password' => 'qwerty']);
         verify($this->form->validate())->true();
         $user = $this->getFixture('user')->getModel('unconfirmed');
         $this->form->setAttributes(['login' => $user->email, 'password' => 'unconfirmed']);
         verify($this->form->validate())->false();
         \Yii::$app->getModule('user')->enableUnconfirmedLogin = true;
         verify($this->form->validate())->true();
     });
     $this->specify('should log the user in with correct credentials', function () {
         $user = $this->getFixture('user')->getModel('user');
         $this->form->setAttributes(['login' => $user->email, 'password' => 'wrong']);
         verify($this->form->validate())->false();
         $this->form->setAttributes(['login' => $user->email, 'password' => 'qwerty']);
         verify($this->form->validate())->true();
     });
 }
Example #23
0
 /**
  * @inheritdoc
  */
 public function rules()
 {
     $rules = parent::rules();
     return $rules;
 }
 /**
  * Displays the login page.
  *
  * @return string|Response
  */
 public function actionLogin()
 {
     if (!Yii::$app->user->isGuest) {
         $this->goHome();
     }
     /** @var LoginForm $model */
     $model = Yii::createObject(LoginForm::className());
     $event = $this->getFormEvent($model);
     $this->performAjaxValidation($model);
     $this->trigger(self::EVENT_BEFORE_LOGIN, $event);
     if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) {
         $this->trigger(self::EVENT_AFTER_LOGIN, $event);
         return $this->goBack();
     }
     return $this->render('login', ['model' => $model, 'module' => $this->module]);
 }
Example #25
0
                    </div>
                </li>
            </ul>
        </div>
    </li>
</ul>
<!--login popup-->
<div class="popup_wrap d_none" id="login_popup">
    <section class="popup r_corners shadow">
        <button class="bg_tr color_dark tr_all_hover text_cs_hover close f_size_large"><i class="fa fa-times"></i>
        </button>
        <h3 class="m_bottom_20 color_dark">Log In</h3>
        <?php 
$form = ActiveForm::begin(['id' => 'login-form', 'enableAjaxValidation' => true, 'enableClientValidation' => false, 'validateOnBlur' => false, 'validateOnType' => false, 'validateOnChange' => false, 'action' => Url::to(['/user/security/login'])]);
/** @var dektrium\user\models\LoginForm $model */
$model = \Yii::createObject(LoginForm::className());
?>
        <ul>
            <li class="m_bottom_15">
                <?php 
echo $form->field($model, 'login', ['inputOptions' => ['autofocus' => 'autofocus', 'class' => 'r_corners full_width', 'tabindex' => '1']])->textInput()->label('Username', ['class' => 'm_bottom_5 d_inline_b']);
?>
            </li>
            <li class="m_bottom_25">
                <?php 
echo $form->field($model, 'password', ['inputOptions' => ['class' => 'r_corners full_width', 'tabindex' => '2']])->passwordInput()->label(Yii::t('user', 'Password'));
?>
            </li>
            <li class="m_bottom_15">
                <?php 
echo $form->field($model, 'rememberMe')->checkbox(['tabindex' => '4', 'class' => 'd_none']);