/**
  * Обновление или создание нового пользователя
  * @param $userArray
  * @return User|\Illuminate\Http\RedirectResponse
  */
 public function userCreateUpdate($userArray)
 {
     //Проверяем, есть ли этот пользователь в БД
     if ($oauth = Oauth::where('provider_user_id', $userArray['provider_user_id'])->where('provider', $userArray['provider'])->first()) {
         //Обновляем данные в таблице oauth
         $oauth->access_token = $userArray['access_token'];
         $oauth->save();
         //Обновляем данные в таблице user
         $user = $oauth->user()->first();
         $user->email = $userArray['email'];
         $user->save();
         //Обновляем данные в таблице profile
         $profile = $user->profile()->first();
         $profile->first_name = $userArray['first_name'];
         $profile->last_name = $userArray['last_name'];
         $profile->avatar = $userArray['avatar'];
         $profile->save();
     } else {
         //Если пользователя нет в БД, то создаем нового
         try {
             //Запись в таблицу user
             $user = new User();
             $user->nickname = $userArray['first_name'] . ' ' . $userArray['last_name'];
             $user->email = $userArray['email'];
             $user->status = 1;
             $user->access = 'user';
             $user->save();
             //Запись в таблицу oauth
             $oauthUser = new Oauth();
             $oauthUser->provider_user_id = $userArray['provider_user_id'];
             $oauthUser->provider = $userArray['provider'];
             $oauthUser->access_token = $userArray['access_token'];
             $user->oauth()->save($oauthUser);
             //Запись в таблицу profile
             $profile = new Profile();
             $profile->first_name = $userArray['first_name'];
             $profile->last_name = $userArray['last_name'];
             $profile->avatar = $userArray['avatar'];
             $user->profile()->save($profile);
         } catch (\Exception $e) {
             //Ошибки заносим в лог файл
             \Log::error('Oauth: ' . $e->getMessage());
             return redirect('/')->with('error', 'Ошибка или пользователь с таким email существует!');
         }
     }
     return $user;
 }
Exemple #2
0
 /**
  * @param $id
  * @param $code
  * @return \Illuminate\Http\RedirectResponse
  */
 public function getConfirm($id, $code)
 {
     $user = User::findOrFail($id);
     //Если такого пользователя не существует
     if (!$user) {
         return redirect('/')->with('error', 'Ошибка, такого пользователя не существует!');
     }
     //Если код подтверждения не равен коду в БД
     if ($user->activation_code !== $code) {
         return redirect('/')->with('error', 'Ошибка подтверждения вашего email-a!');
     }
     //Обнуляем код активации и устанавлмваем status = 1
     $user->activation_code = '';
     $user->status = 1;
     $user->save();
     //Авторизуем пользователя
     \Auth::login($user);
     return redirect('/')->with('success', 'Ваш email подтвержден. Спасибо!');
 }
Exemple #3
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     //Admin
     $user = User::create(['nickname' => 'admin', 'email' => '*****@*****.**', 'password' => bcrypt('123456'), 'status' => 1, 'access' => 'admin']);
     Profile::create(['first_name' => 'Имя', 'last_name' => 'Фамилия', 'avatar' => 'https://pixabay.com/static/uploads/photo/2013/07/13/10/07/man-156584_960_720.png', 'user_id' => $user->id]);
 }