/** * Obtain the user information from GitHub. * * @return Response */ public function handleProviderCallback() { $user = Socialite::driver('github')->user(); if (auth()->guest()) { $exists = User::where('github_token', $user->token)->first(); if (!$exists) { $username = static::usernameCheck($user->getNickname()); $checkEmail = User::where('email', $user->getEmail())->first(); $email = $checkEmail ? null : $user->getEmail(); $name = trim($user->getName()) != '' ? $user->getName() : $username; $newUser = User::create(['github_token' => $user->token, 'name' => $name, 'username' => $username, 'email' => $email, 'verified' => true, 'settings' => []]); auth()->login($newUser, true); session()->flash('success', 'Successfully logged in!'); return redirect()->route('home'); } auth()->login($exists, true); session()->flash('success', 'Successfully logged in!'); return redirect()->route('home'); } $current = User::find(auth()->user()->getAuthIdentifier()); $current->github_token = $user->token; $current->save(); session()->flash('success', 'GitHub details updated successfully!'); return redirect()->route('settings'); }
public function update(Requests\Auth\UpdateUser $request) { // Update Password if ($request->has('new_password')) { // Check if user has an existing password - GitHub users will not if (auth()->user()->getAuthPassword() && !$request->has('current_password')) { session()->flash('error', 'You must supply your current password!'); return redirect()->back()->withInput(); } // Check if existing password is correct if (auth()->user()->getAuthPassword() && !Hash::check($request->input('current_password'), auth()->user()->getAuthPassword())) { session()->flash('error', 'Your current password is incorrect!'); return redirect()->back()->withInput(); } } $website = $request->has('website') && trim($request->input('website')) != '' ? $request->input('website') : null; $github_username = $request->has('github_username') && trim($request->input('github_username')) != '' ? $request->input('github_username') : null; $twitter_username = $request->has('twitter_username') && trim($request->input('twitter_username')) != '' ? $request->input('twitter_username') : null; $user = User::find(auth()->user()->getAuthIdentifier()); $user->name = $request->input('name'); $user->username = $request->input('username'); $user->email = $request->input('email'); if ($request->has('new_password')) { $user->password = bcrypt($request->input('new_password')); } $user->save(); settings()->setMany(['website' => $website, 'github_username' => $github_username, 'twitter_username' => $twitter_username]); session()->flash('success', 'Account updated successfully!'); return redirect()->back(); }
public function activate(Request $request, AppMailer $mailer) { $user = User::find($request->input('id')); $user->verified = 1; $user->save(); $user->emailVerification()->delete(); $mailer->sendManualActivationEmailTo($user); session()->flash('success', 'User <strong>' . $user->username . '</strong> successfully activated!'); return redirect()->route('admin.users'); }