Ejemplo n.º 1
0
 /**
  * @param \Laravel\Socialite\Contracts\User $login
  * @return User
  */
 private function createOrFindUser($login)
 {
     $user = User::firstOrNew(['email' => $login->getEmail()]);
     if ($user->exists) {
         return $user;
     }
     $user->name = $login->getName() ?: $login->getNickname();
     $user->nickname = $login->getNickname();
     $user->password = Hash::make($login->getId() . time());
     $user->avatar = $login->getAvatar();
     $user->admin = User::count() == 0;
     $user->save();
     return $user;
 }
Ejemplo n.º 2
0
 public function profilePost(Request $request, $username)
 {
     $user = User::firstOrNew(['username' => $username]);
     $isOwn = $this->user && $this->user->id === $user->id;
     $isAdmin = $this->user && $this->user->isAdmin();
     if (!$isOwn && !$isAdmin) {
         return redirect('users/' . $this->user->username);
     }
     $user->username = $request->input('username');
     $user->name = $request->input('name');
     $user->email = $request->input('email');
     if ($request->input('password') !== $request->input('password_confirmation')) {
         $this->alert('warning', 'Your passwords did not match. Not changed.');
     } else {
         $user->password = bcrypt($request->input('password'));
     }
     $user->save();
     // Roles.
     if ($isAdmin && $request->input('roles')) {
         $user->roles()->sync($request->input('roles'));
     }
     // Save unavailabilities.
     \DB::table('user_unavailabilities')->where('user_id', '=', $user->id)->delete();
     foreach ($request->input('unavailabilities') as $unavail) {
         if (empty($unavail['start_date']) && empty($unavail['end_date'])) {
             continue;
         }
         $unavailability = new \App\Model\UserUnavailability();
         $unavailability->user_id = $user->id;
         $unavailability->start_date = $unavail['start_date'];
         $unavailability->end_date = $unavail['end_date'];
         $unavailability->save();
     }
     $this->alert('success', 'User profile information saved.');
     return redirect('users');
 }