Files
ppeasy_vg12/app/Http/Controllers/Web/Users/SessionsController.php
T
2026-10-09 08:21:06 +02:00

43 lines
1.3 KiB
PHP

<?php
namespace App\Http\Controllers\Web\Users;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Repositories\Session\SessionRepository;
use App\Support\SessionPayload;
use Illuminate\Http\RedirectResponse;
use Inertia\Inertia;
use Inertia\Response as InertiaResponse;
class SessionsController extends Controller
{
public function __construct(private readonly SessionRepository $sessions)
{
$this->middleware('permission:users.manage');
}
public function index(User $user): InertiaResponse
{
return Inertia::render('users/Sessions', [
'adminView' => true,
'user' => [
'id' => $user->id,
'nameOrEmail' => $user->present()->nameOrEmail,
],
'sessions' => SessionPayload::collection(
$this->sessions->getUserSessions($user->id),
fn (string $sessionId) => route('user.sessions.invalidate', [$user->id, $sessionId])
),
]);
}
public function destroy(User $user, $session): RedirectResponse
{
$this->sessions->invalidateSession($session->id);
return redirect()->route('user.sessions', $user->id)
->withSuccess(__('Session invalidated successfully.'));
}
}