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

51
routes/web.php Normal file
View File

@@ -0,0 +1,51 @@
<?php
use App\Http\Controllers\SuperAdmin\TenantController;
use App\Http\Controllers\SuperAdmin\SessionController;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\DB;
Route::get('/debug-db', function () {
return response()->json([
'db' => DB::connection()->getDatabaseName(),
'host' => request()->getHost(),
'tenant' => tenant('id'),
]);
});
Route::get('/', function () {
// Redirect central domain to Super Admin
return redirect()->route('super-admin.tenants.index');
});
// Super Admin Routes
Route::group(['prefix' => 'super-admin', 'as' => 'super-admin.', 'middleware' => ['web']], function () {
// Session
Route::get('login', [SessionController::class, 'create'])->name('session.create');
Route::post('login', [SessionController::class, 'store'])->name('session.store');
Route::delete('logout', [SessionController::class, 'destroy'])->name('session.destroy');
// Protected Routes
Route::group(['middleware' => ['super_admin']], function () {
Route::get('tenants', [TenantController::class, 'index'])->name('tenants.index');
Route::get('tenants/create', [TenantController::class, 'create'])->name('tenants.create');
Route::post('tenants', [TenantController::class, 'store'])->name('tenants.store');
Route::delete('tenants/{id}', [TenantController::class, 'destroy'])->name('tenants.destroy');
});
});
Route::get('/central-debug', function () {
Session::put('central_key', 'central_value_' . now());
Session::save();
return [
'context' => 'central',
'session_id' => Session::getId(),
'csrf_token' => csrf_token(),
'session_config' => config('session'),
'request_cookies' => request()->cookie(),
'test_value' => Session::get('central_key'),
'host' => request()->getHost(),
];
});