$request->user(), ]); } /** * Update the user's profile information. */ public function update(Request $request): RedirectResponse { $user = $request->user(); // Handle photo-only upload form if ($request->input('_photo_only')) { $request->validate([ 'profile_photo' => ['required', 'image', 'max:2048'], ]); if ($user->profile_photo) { Storage::disk('public')->delete($user->profile_photo); } $user->profile_photo = $request->file('profile_photo')->store('profile-photos', 'public'); $user->save(); return Redirect::route('profile.edit')->with('status', 'profile-updated'); } // Handle full profile update $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'nip' => ['nullable', 'string', 'max:50'], 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', \Illuminate\Validation\Rule::unique('users')->ignore($user->id)], 'phone' => ['nullable', 'string', 'max:20'], 'gender' => ['required', 'in:laki-laki,perempuan'], 'address' => ['nullable', 'string', 'max:1000'], 'division' => ['nullable', 'string', 'max:255'], 'position' => ['nullable', 'string', 'max:255'], ]); $user->fill($validated); if ($user->isDirty('email')) { $user->email_verified_at = null; } $user->save(); return Redirect::route('profile.edit')->with('status', 'profile-updated'); } /** * Delete the user's account. */ public function destroy(Request $request): RedirectResponse { $request->validateWithBag('userDeletion', [ 'password' => ['required', 'current_password'], ]); $user = $request->user(); if ($user->profile_photo) { Storage::disk('public')->delete($user->profile_photo); } Auth::logout(); $user->delete(); $request->session()->invalidate(); $request->session()->regenerateToken(); return Redirect::to('/'); } }