public function resetPost(Requests\Auth\ResetPassword $request, AppMailer $mailer) { $email = $request->input('email'); $user = User::where('email', $email)->first(); if (!$user) { session()->flash('error', 'No account found with that email!'); return redirect()->back()->withInput(); } if (!$user->verified()) { session()->flash('error', 'You must confirm your email before resetting your password!'); return redirect()->route('home'); } if (!$user->passwordReset) { $reset = $user->passwordReset()->create(['token' => str_random(30), 'created_at' => Carbon::now()]); $mailer->sendPasswordResetTo($reset->user); session()->flash('success', 'Password reset email has been sent!'); return redirect()->route('home'); } if ($user->passwordReset->created_at > Carbon::now()->subMinutes(15)) { session()->flash('error', 'You must wait ' . $user->passwordReset->created_at->addMinutes(15)->diffForHumans() . ' before requesting a new reset email!'); return redirect()->back()->withInput(); } $user->passwordReset()->update(['token' => str_random(30), 'created_at' => Carbon::now()]); $mailer->sendPasswordResetTo($user); session()->flash('success', 'Password reset email has been resent!'); return redirect()->route('home'); }
public function show($username) { $user = User::where('username', $username)->first(); if (!$user) { session()->flash('error', 'We cannot find a user with the username of [ <b>' . $username . '</b> ] Sorry.'); return redirect()->route('home'); } $bins = Bin::publicOnly()->where('user_id', $user->id)->orderBy('updated_at', 'DESC')->paginate(8); return view('user.show', compact('user', 'bins')); }
private static function usernameCheck($nickname) { $cleaned = preg_replace('/[a-zA-Z0-9_]/', '', $nickname); $found = true; $count = 1; $cleanName = $cleaned; while ($found == true) { $addName = $count == 1 ? $nickname : $nickname . $count; $data = User::where('username', $addName)->first(); $count++; if (!$data) { $cleanName = $addName; $found = false; } } return $cleanName; }
public function editPost($id, Requests\Admin\UpdateUser $request) { $user = User::where('id', $id)->whereNotIn('id', [1])->first(); if (!$user) { session()->flash('error', 'User not found!'); return redirect()->route('admin.users'); } $user->name = $request->input('name'); $user->username = $request->input('username'); $user->email = $request->input('email'); $user->save(); $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->settings()->setMany(['website' => $website, 'github_username' => $github_username, 'twitter_username' => $twitter_username]); session()->flash('success', 'Account updated successfully!'); return redirect()->route('admin.users'); }
public function resendPost(Requests\Auth\ResendEmailConfirmation $request, AppMailer $mailer) { $email = $request->email; $user = User::where('email', $email)->first(); if (!$user) { session()->flash('error', 'No account found with that email!'); return redirect()->back()->withInput(); } if ($user->verified()) { session()->flash('error', 'Your account is already confirmed! No need for confirmation.'); return redirect()->route('login'); } if ($user->emailVerification->created_at > Carbon::now()->subSeconds(2)) { session()->flash('error', 'You must wait ' . $user->emailVerification->created_at->addMinutes(15)->diffForHumans() . ' before requesting a new confirmation!'); return back()->withInput(); } $user->emailVerification->delete(); $confirmation = $user->emailVerification()->create(['token' => str_random(30), 'created_at' => Carbon::now()]); $mailer->sendEmailConfirmationTo($confirmation->user); session()->flash('success', 'Email confirmation has been resent!<br>May take up to 15 minutes. Be sure to check Spam/Junk folders!'); return redirect()->route('home'); }