add: full multi-tenancy control

This commit is contained in:
Cauê Faleiros
2026-02-02 15:31:15 -03:00
commit c6ec92802b
1711 changed files with 258106 additions and 0 deletions

48
routes/tenant.php Normal file
View File

@@ -0,0 +1,48 @@
<?php
declare(strict_types=1);
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Session;
use Stancl\Tenancy\Middleware\PreventAccessFromCentralDomains;
use App\Http\Middleware\UniversalTenancy;
Route::middleware([
'web',
UniversalTenancy::class,
])->group(function () {
// Root route handles both Central and Tenant contexts
Route::get('/', function () {
$centralDomains = config('tenancy.central_domains');
if (in_array(request()->getHost(), $centralDomains)) {
return redirect()->route('super-admin.tenants.index');
}
return redirect()->route('admin.session.create');
});
// Protected Tenant Routes
Route::middleware([
PreventAccessFromCentralDomains::class,
])->group(function () {
Route::get('/tenant-debug', function () {
Session::put('tenant_key', 'tenant_value_' . now());
Session::save();
return [
'context' => 'tenant',
'session_id' => Session::getId(),
'csrf_token' => csrf_token(),
'session_config' => config('session'),
'request_cookies' => request()->cookie(),
'test_value' => Session::get('tenant_key'),
'host' => request()->getHost(),
'tenant_id' => tenant('id'),
'locale' => app()->getLocale(),
'core_config_locale' => core()->getConfigData('general.general.locale_settings.locale'),
];
});
});
});