protected function createUser($attributes)
 {
     $auth = ['source' => (string) $attributes['source'], 'source_id' => (string) $attributes['source_id']];
     unset($attributes['source']);
     unset($attributes['source_id']);
     $attributes['repeat_password'] = isset($attributes['password']) ? $attributes['password'] : NULL;
     $user = new User($attributes);
     $user->setScenario(User::SCENARIO_NEW_USER);
     $user->generateAuthKey();
     //$user->generatePasswordResetToken();
     $transaction = $user->getDb()->beginTransaction();
     if ($user->save()) {
         $auth = new Auth(['user_id' => $user->id, 'source' => $auth['source'], 'source_id' => $auth['source_id']]);
         if ($auth->save()) {
             $transaction->commit();
             Yii::$app->user->login($user);
         } else {
             Yii::$app->session->setFlash('error', 'Error 901: ' . Yii::t('yee/auth', "Authentication error occurred."));
             return Yii::$app->response->redirect(Url::to(['/auth/default/login']));
         }
     } else {
         $errors = $user->getErrors();
         $fields = ['username', 'email', 'password'];
         foreach ($fields as $field) {
             if (isset($errors[$field])) {
                 Yii::$app->session->setFlash('error', $user->getFirstError($field));
                 return Yii::$app->response->redirect(Url::to(['/auth/default/set-' . $field]));
             }
         }
         Yii::$app->session->setFlash('error', 'Error 902: ' . Yii::t('yee/auth', "Authentication error occurred."));
         return Yii::$app->response->redirect(Url::to(['/auth/default/login']));
     }
     Yii::$app->session->remove(AuthModule::PARAMS_SESSION_ID);
     return Yii::$app->response->redirect(Url::to(['/']));
 }