From 9be19ad88071cfe59a98212a3116917712393c22 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 19 Feb 2020 22:55:10 -0700 Subject: [PATCH] Update AdminUserController, add account deletion handler --- .../Controllers/Admin/AdminUserController.php | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/app/Http/Controllers/Admin/AdminUserController.php b/app/Http/Controllers/Admin/AdminUserController.php index 227ff53ea..af4b690b4 100644 --- a/app/Http/Controllers/Admin/AdminUserController.php +++ b/app/Http/Controllers/Admin/AdminUserController.php @@ -10,6 +10,7 @@ use App\User; use App\Mail\AdminMessage; use Illuminate\Support\Facades\Mail; use App\Services\ModLogService; +use App\Jobs\DeletePipeline\DeleteAccountPipeline; trait AdminUserController { @@ -157,6 +158,35 @@ trait AdminUserController return view('admin.users.delete', compact('user', 'profile')); } + public function userDeleteProcess(Request $request, $id) + { + $user = User::findOrFail($id); + $profile = $user->profile; + + if(config('pixelfed.account_deletion') == false) { + abort(404); + } + + if($user->is_admin == true) { + $mid = $request->user()->id; + abort_if($user->id < $mid, 403); + } + + $ts = now()->addMonth(); + $user->status = 'delete'; + $profile->status = 'delete'; + $user->delete_after = $ts; + $profile->delete_after = $ts; + $user->save(); + $profile->save(); + Cache::forget('profiles:private'); + DeleteAccountPipeline::dispatch($user)->onQueue('high'); + + $msg = "Successfully deleted {$user->username}!"; + $request->session()->flash('status', $msg); + return redirect('/i/admin/users/list'); + } + public function userModerate(Request $request) { $this->validate($request, [