diff --git a/cncnet-api/app/Http/Controllers/AccountController.php b/cncnet-api/app/Http/Controllers/AccountController.php index 6c547ec6..04efe9e5 100755 --- a/cncnet-api/app/Http/Controllers/AccountController.php +++ b/cncnet-api/app/Http/Controllers/AccountController.php @@ -273,6 +273,35 @@ public function getNewVerification(Request $request) return view('auth.verify'); } + public function deleteAccount(Request $request) + { + + $user = $request->user(); + + if (!$request->has('confirm_delete')) + { + return redirect()->back()->with('error', 'Please confirm account deletion.'); + } + + DB::transaction(function () use ($user) + { + $user->userSettings()->delete(); + + // Anonymize the user + $user->name = 'Deleted User'; + $user->email = uniqid('deleted_user_') . '@example.com'; // Replace email with a unique placeholder + $user->password = null; // Remove password + $user->email_verified = false; + $user->save(); + + // Delete the user record + $user->delete(); + }); + + auth()->logout(); + return redirect('/goodbye')->with('status', 'Your account has been deleted.'); + } + public function createNewVerification(Request $request) { $user = $request->user(); diff --git a/cncnet-api/app/Http/Controllers/LadderController.php b/cncnet-api/app/Http/Controllers/LadderController.php index d9823369..b6bf9e24 100755 --- a/cncnet-api/app/Http/Controllers/LadderController.php +++ b/cncnet-api/app/Http/Controllers/LadderController.php @@ -440,7 +440,7 @@ public function getLadderPlayer(Request $request, $date = null, $cncnetGame = nu $recentAchievements = $this->achievementService->getRecentlyUnlockedAchievements($history, $user, 3); $achievementProgressCounts = $this->achievementService->getProgressCountsByUser($history, $user); - $isAnonymous = $player->user->userSettings->enableAnonymous; + $isAnonymous = $player?->user?->userSettings?->enableAnonymous; $ladderNicks = []; if (!$isAnonymous) diff --git a/cncnet-api/resources/views/auth/account-settings-nav.blade.php b/cncnet-api/resources/views/auth/account-settings-nav.blade.php index da416374..2252fab9 100644 --- a/cncnet-api/resources/views/auth/account-settings-nav.blade.php +++ b/cncnet-api/resources/views/auth/account-settings-nav.blade.php @@ -13,3 +13,32 @@ Ladder Account Settings + +