php-tenant/Middleware/RequireAdminDomain.php
Snider 86dbf4e763 fix: namespace to Core\Mod\Tenant, restructure package
- Changed namespace from Core\Core\Tenant to Core\Mod\Tenant
- Moved src/ contents to root
- Removed Host UK extension files (admin.php, MemberManager, TeamManager)
- Fixed composer.json autoload paths
2026-01-27 00:58:42 +00:00

34 lines
988 B
PHP

<?php
declare(strict_types=1);
namespace Core\Mod\Tenant\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class RequireAdminDomain
{
/**
* Handle an incoming request.
*
* Ensures admin routes are only accessible from admin domains.
* Service subdomains (social.host.uk.com, etc.) get redirected to their public pages.
*/
public function handle(Request $request, Closure $next): Response
{
$isAdminDomain = $request->attributes->get('is_admin_domain', true);
// Allow access on admin domains or local development
if ($isAdminDomain) {
return $next($request);
}
// On service subdomains, redirect to the public workspace page
$workspace = $request->attributes->get('workspace', 'main');
// Redirect to the public page for this workspace
return redirect()->route('workspace.show', ['workspace' => $workspace]);
}
}