diff --git a/app/Filament/Central/Resources/CompanyResource.php b/app/Filament/Central/Resources/CompanyResource.php index a48a3a4..ab35edd 100644 --- a/app/Filament/Central/Resources/CompanyResource.php +++ b/app/Filament/Central/Resources/CompanyResource.php @@ -34,9 +34,10 @@ class CompanyResource extends Resource Forms\Components\TextInput::make('slug') ->required() ->alphaDash() - ->lowercase() ->maxLength(30) ->unique(ignoreRecord: true) + ->dehydrateStateUsing(fn ($state) => strtolower((string) $state)) + ->extraInputAttributes(['style' => 'text-transform: lowercase']) ->helperText('Subdomeniul: .service.mir.md'), Forms\Components\TextInput::make('name')->required()->maxLength(120), Forms\Components\TextInput::make('display_name')->maxLength(120), diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index a80bbf8..39a2ad2 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -16,9 +16,10 @@ class AppServiceProvider extends ServiceProvider public function boot(): void { // Behind a TLS-terminating proxy (Cloudflare → Coolify Traefik → Octane). + // Force https on URL generation, but DON'T force root URL — each tenant + // subdomain must keep its own host so Livewire/CSRF work per-tenant. if (! $this->app->runningInConsole() && (str_starts_with(config('app.url'), 'https://') || env('FORCE_HTTPS'))) { URL::forceScheme('https'); - URL::forceRootUrl(config('app.url')); } } }