diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php index 17acd4b0..c2ad37f0 100644 --- a/app/Http/Controllers/Api/UserController.php +++ b/app/Http/Controllers/Api/UserController.php @@ -89,7 +89,7 @@ class UserController extends Controller ]); event(new UserUpdateCreditsEvent($user)); - + //Update Users Password on Pterodactyl //Username,Mail,First and Lastname are required aswell $response = Pterodactyl::client()->patch('/application/users/'.$user->pterodactyl_id, [ @@ -181,6 +181,53 @@ class UserController extends Controller return $user; } + /** + * Suspends the user + * + * @param Request $request + * @param int $id + * @return bool + * @throws ValidationException + */ + public function suspend(Request $request, int $id) + { + $discordUser = DiscordUser::find($id); + $user = $discordUser ? $discordUser->user : User::findOrFail($id); + + if ($user->isSuspended()) { + throw ValidationException::withMessages([ + 'error' => 'The user is already suspended', + ]); + } + $user->suspend(); + + return $user; + } + + /** + * Suspends the user + * + * @param Request $request + * @param int $id + * @return bool + * @throws ValidationException + */ + public function unsuspend(Request $request, int $id) + { + $discordUser = DiscordUser::find($id); + $user = $discordUser ? $discordUser->user : User::findOrFail($id); + + if (!$user->isSuspended()) { + throw ValidationException::withMessages([ + 'error' => "You cannot unsuspend an User who is not suspended." + ]); + } + + $user->unSuspend(); + + return $user; + } + /** * @throws ValidationException */ diff --git a/routes/api.php b/routes/api.php index bf9bc7d0..0de04de6 100644 --- a/routes/api.php +++ b/routes/api.php @@ -20,6 +20,8 @@ use Illuminate\Support\Facades\Route; Route::middleware('api.token')->group(function () { Route::patch('/users/{user}/increment', [UserController::class, 'increment']); Route::patch('/users/{user}/decrement', [UserController::class, 'decrement']); + Route::patch('/users/{user}/suspend', [UserController::class, 'suspend']); + Route::patch('/users/{user}/unsuspend', [UserController::class, 'unsuspend']); Route::resource('users', UserController::class)->except(['create']); Route::patch('/servers/{server}/suspend', [ServerController::class, 'suspend']);