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(['/'])); }