コード例 #1
0
 public function saveData()
 {
     if ($this->model->load(Yii::$app->request->post())) {
         if (Yii::$app->request->isAjax) {
             Yii::$app->response->format = Response::FORMAT_JSON;
             // perform AJAX validation
             echo ActiveForm::validate($this->model);
             Yii::$app->end();
             return '';
         }
         /** @var User|bool $registeredUser */
         $registeredUser = $this->model->register();
         if ($registeredUser !== false) {
             $module = UsersModule::module();
             // login registered user if there's no need in confirmation
             $shouldLogin = $module->allowLoginInactiveAccounts || $module->emailConfirmationNeeded === false;
             if ($module->emailConfirmationNeeded === true && $registeredUser->is_active) {
                 $shouldLogin = true;
             }
             if ($shouldLogin && $registeredUser->login(UsersModule::module()->loginDuration)) {
                 $returnUrl = Yii::$app->request->get('returnUrl');
                 if ($returnUrl !== null) {
                     return $this->controller->redirect($returnUrl);
                 }
             }
             return $this->controller->goBack();
         }
     }
     return '';
 }
コード例 #2
0
 public function socialRegistrationScenario(RegistrationForm &$registrationForm, BaseClient &$client)
 {
     if (empty($registrationForm->username)) {
         $registrationForm->generateUsername($client->getUserAttributes());
         $registrationForm->username_is_temporary = true;
     }
     if (empty($registrationForm->password)) {
         $registrationForm->password = PasswordHelper::generate(UsersModule::module()->generatedPasswordLength);
     }
 }