31 lines
916 B
PHP
31 lines
916 B
PHP
<?php
|
|
|
|
namespace App\Middleware;
|
|
|
|
use App\Providers\AuthCheckProvider;
|
|
use Closure;
|
|
|
|
/**
|
|
* Nur für Hauptadministrator*innen.
|
|
*
|
|
* Abgegrenzt von {@see AdminRoleMiddleware}, die zusätzlich `ROLE_GROUP_LEADER` durchlässt: die
|
|
* Dokumentvorlagen gelten app-weit für alle Mandanten, das darf keine Gruppenleitung ändern.
|
|
*/
|
|
class MainAdminRoleMiddleware
|
|
{
|
|
public function handle($request, Closure $next)
|
|
{
|
|
if (currentUser() === null) {
|
|
return redirect('/login')->with('message', 'Du musst eingeloggt sein.');
|
|
}
|
|
|
|
// Bewusst `isMainAdministrator()` statt `getUserRole()`: geprüft wird `user_role_main`, nicht die
|
|
// auf einem Sub-Tenant abgeleitete Rolle.
|
|
if (!new AuthCheckProvider()->isMainAdministrator()) {
|
|
return redirect('/admin')->with('message', 'Du bist dazu nicht berechtigt.');
|
|
}
|
|
|
|
return $next($request);
|
|
}
|
|
}
|