Example #1
0
 /**
  * @return $mixed Return false on error
  */
 public static function createFromAuth0($auth0Data)
 {
     // check is email taken
     $query = User::find()->andWhere(['email' => $auth0Data['email']]);
     if ($query->exists()) {
         $model = $query->one();
         $auth = new Auth(['user_id' => $model->id, 'source' => 'auth0', 'source_id' => (string) $auth0Data['user_id']]);
         if ($auth->save()) {
             return $model;
         }
         print_r($auth->getErrors());
         return false;
     } else {
         $model = new self(['username' => $auth0Data['nickname'], 'email' => $auth0Data['email'], 'password' => Yii::$app->security->generateRandomString(6)]);
         $model->generateAuthKey();
         $model->generatePasswordResetToken();
         $transaction = $model->getDb()->beginTransaction();
         if ($model->save()) {
             $auth = new Auth(['user_id' => $model->id, 'source' => 'auth0', 'source_id' => (string) $auth0Data['user_id']]);
             if ($auth->save()) {
                 $transaction->commit();
                 return $model;
             }
             print_r($auth->getErrors());
             return false;
         }
         print_r($user->getErrors());
         return false;
     }
 }