feat: Add api routes for suspending and unsuspending an User

This commit adresses #359
This commit is contained in:
Johannes F 2022-01-03 22:14:45 +01:00
parent 74bdcffe75
commit b831bd0c22
2 changed files with 50 additions and 1 deletions

View file

@ -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
*/

View file

@ -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']);