tables() ->with('revision:id,row_count') ->paginate(10); return view('profile.view')->with(compact('tables', 'user')); } /** * Edit own profile (this does not include auth settings etc) * * @param User $user * @return \Illuminate\View\View */ public function editProfile() { return view('profile.edit-profile')->with('user', \user()); } public function editAccount() { return view('profile.edit-account', ['user' => user()]); } /** * Store changed profile */ public function storeProfile(Request $request) { $input = $this->validate($request, [ 'bio' => ['nullable', VALI_TEXT], 'title' => ['required', VALI_LINE], 'website' => ['required', VALI_LINE], ]); $user = user(); $user->fill($input->all()); $user->save(); flash()->success('Settings saved'); return back(); } public function storeAccount(Request $request) { $input = $this->validate($request, [ 'name' => [ 'required', VALI_NAME, Rule::unique('users')->ignoreModel(\user()), ], 'email' => [ 'required', VALI_EMAIL, Rule::unique('users')->ignoreModel(\user()), ], 'new_password' => ['nullable', 'confirmed', VALI_PASSWORD], ]); $user = user(); if ($input->email != $user->email) { $confirmation = EmailConfirmation::create([ 'user_id' => $user->id, 'email' => $input->email, 'token' => Str::random(60), ]); flash()->warning("New e-mail confirmation sent to $input->email.")->important(); // TODO send the e-mail unset($input->email); } $user->fill($input->all()); if ($input->has('new_password')) { $user->password = Hash::make($input->new_password); flash()->warning('Password changed'); } $user->save(); flash()->success('Settings saved'); return back(); } public function forgetSocialLogin($id) { $identity = user()->socialIdentities()->where('id', $id)->first(); if (null === $identity) { abort(404, "No such identity"); } $identity->delete(); return redirect(route('profile.manage-oauth')); } }