OmniBoard/app/Http/Controllers/Admin/TenantController.php

49 lines
1.2 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Inertia\Inertia;
use App\Models\User;
use App\Models\Tenant;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
class TenantController extends Controller
{
public function create()
{
// Renderiza a view Vue (vamos criar no passo 4)
return Inertia::render('Admin/Tenants/Create');
}
/**
* Processa o salvamento
*/
public function store(Request $request)
{
if (Auth::user()->role !== 'admin') {
abort(401, 'Não autorizado a realizar tal ação.');
}
$request->validate([
'name' => 'required|string|max:255|unique:tenants,name',
]);
do {
$apiKey = 'sk_' . Str::random(60);
} while (Tenant::where('api_key', $apiKey)->exists());
Tenant::create([
'name' => $request->name,
'api_key' => $apiKey,
]);
// MUDANÇA AQUI: back() em vez de route('dashboard')
// O preserveScroll no Vue garante que a tela não pule.
return back()->with('message', 'Tenant criado com sucesso! Chave gerada.');
}
}