<?php
namespace Common\Auth\Controllers;
use App\Models\User;
use Common\Core\BaseController;
use Illuminate\Support\Facades\Auth;
class BanUserController extends BaseController
{
public function store(int $userId)
{
$data = $this->validate(request(), [
'ban_until' => 'nullable|date|after:now',
'comment' => 'nullable|string|max:255',
'permanent' => 'boolean',
]);
$user = User::findOrFail($userId);
$this->authorize('destroy', [$user::class, [$user->id]]);
if ($user->hasPermission('admin')) {
abort(403, 'Admin users can\'t be suspended');
}
if ($user->id === Auth::id()) {
abort(403, 'You can\'t suspend yourself');
}
$user->createBan($data);
return $this->success(['user' => $user]);
}
public function destroy(int $userId)
{
$user = User::findOrFail($userId);
$this->authorize('destroy', [$user::class, [$user->id]]);
$user->unban();
return $this->success(['user' => $user]);
}
}