glastree_on_gitea

This commit is contained in:
2026-05-26 08:14:29 +02:00
commit 0bed099d05
9556 changed files with 1186307 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class AdminOnly
{
public function handle(Request $request, Closure $next): Response
{
if (!auth()->check()) {
return redirect('/login');
}
if (!auth()->user()->isSuperAdmin()) {
abort(403, 'Accesso riservato agli amministratori.');
}
return $next($request);
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class CheckPermission
{
public function handle(Request $request, Closure $next, string $module, string $level = 'read'): Response
{
if (!auth()->check()) {
return redirect('/login');
}
$user = auth()->user();
if ($user->isSuperAdmin()) {
return $next($request);
}
$requiredLevel = match ($level) {
'read' => 1,
'write', 'create', 'edit' => 2,
'delete' => 2,
default => 1,
};
if (!$user->hasPermission($module, $requiredLevel)) {
abort(403, 'Permesso insufficiente per questa operazione.');
}
return $next($request);
}
}
+22
View File
@@ -0,0 +1,22 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class ForceHttps
{
public function handle(Request $request, Closure $next): Response
{
if (env('FORCE_HTTPS', false)) {
$scheme = $request->headers->get('X-Forwarded-Proto', $request->getScheme());
if ($scheme === 'https' && !$request->isSecure()) {
return redirect()->secure($request->getRequestUri());
}
}
return $next($request);
}
}