diff --git a/config/filament.php b/config/filament.php index bee423cd48..1145dc163e 100644 --- a/config/filament.php +++ b/config/filament.php @@ -56,6 +56,18 @@ return [ ], + /* + |-------------------------------------------------------------------------- + | Home + |-------------------------------------------------------------------------- + | + | The path to the "home" route for Filament. + | This is used by Filament authentication to redirect users after login. + | + */ + + 'home' => 'filament.dashboard', // string or named route + /* |-------------------------------------------------------------------------- | Navigation diff --git a/src/Filament.php b/src/Filament.php index 5fe57b0a0e..62fb6db4cb 100644 --- a/src/Filament.php +++ b/src/Filament.php @@ -8,6 +8,7 @@ use Illuminate\Support\Facades\{ Request, File, Storage, + Route, }; use Illuminate\Support\{ Str, @@ -166,6 +167,17 @@ class Filament }); } + /** + * Returns the path to the "home" route for Filament. + * + * @return string + */ + public function home() + { + $home = config('filament.home'); + return Route::has($home) ? route($home) : $home; + } + /** * Generates a secure Glide image URL. * diff --git a/src/Http/Livewire/Auth/Login.php b/src/Http/Livewire/Auth/Login.php index be94067b3a..3d00283226 100644 --- a/src/Http/Livewire/Auth/Login.php +++ b/src/Http/Livewire/Auth/Login.php @@ -5,6 +5,7 @@ namespace Filament\Http\Livewire\Auth; use Livewire\Component; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Filament; use Filament\Traits\ThrottlesLogins; class Login extends Component @@ -37,7 +38,7 @@ class Login extends Component } if (Auth::attempt($data, (bool) $this->remember)) { - return redirect()->intended(route('filament.dashboard')); + return redirect()->intended(Filament::home()); } $this->incrementLoginAttempts($request); diff --git a/src/Http/Livewire/Auth/Register.php b/src/Http/Livewire/Auth/Register.php index f3daf5bf11..03ff175474 100644 --- a/src/Http/Livewire/Auth/Register.php +++ b/src/Http/Livewire/Auth/Register.php @@ -6,6 +6,7 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Auth\Events\Registered; use Livewire\Component; +use Filament; class Register extends Component { @@ -39,7 +40,7 @@ class Register extends Component event(new Registered($user)); Auth::login($user); - return redirect()->route('filament.dashboard'); + return redirect()->to(Filament::home()); } public function render() diff --git a/src/Http/Livewire/Auth/ResetPassword.php b/src/Http/Livewire/Auth/ResetPassword.php index 10cbd64e94..1b316a4b70 100644 --- a/src/Http/Livewire/Auth/ResetPassword.php +++ b/src/Http/Livewire/Auth/ResetPassword.php @@ -11,6 +11,7 @@ use Illuminate\Support\Facades\{ Password, }; use Livewire\Component; +use Filament; class ResetPassword extends Component { @@ -47,7 +48,7 @@ class ResetPassword extends Component if ($status === Password::PASSWORD_RESET) { Auth::login($this->user); - return redirect()->route('filament.dashboard'); + return redirect()->to(Filament::home()); } else { $this->addError('email', __($status)); } diff --git a/tests/Feature/LoginTest.php b/tests/Feature/LoginTest.php index b2d6b683b6..f604e4cc26 100644 --- a/tests/Feature/LoginTest.php +++ b/tests/Feature/LoginTest.php @@ -4,6 +4,7 @@ namespace Filament\Tests\Feature; use Livewire\Livewire; use Filament\Tests\TestCase; +use Filament; use Filament\Tests\Database\Models\User; use Filament\Http\Livewire\Auth\Login; @@ -25,7 +26,7 @@ class LoginTest extends TestCase ->set('email', $user->email) ->set('password', 'password') ->call('login') - ->assertRedirect(route('filament.dashboard')); + ->assertRedirect(Filament::home()); $this->assertAuthenticated(); } diff --git a/tests/Feature/LogoutTest.php b/tests/Feature/LogoutTest.php index e46bd4e800..04c5b0aca8 100644 --- a/tests/Feature/LogoutTest.php +++ b/tests/Feature/LogoutTest.php @@ -4,6 +4,7 @@ namespace Filament\Tests\Feature; use Livewire\Livewire; use Filament\Tests\TestCase; +use Filament; use Filament\Tests\Database\Models\User; use Filament\Http\Livewire\Auth\Logout; @@ -14,7 +15,7 @@ class LogoutTest extends TestCase $this->withoutExceptionHandling(); $user = User::factory()->create(); $this->actingAs($user) - ->get(route('filament.dashboard')) + ->get(Filament::home()) ->assertSeeLivewire('filament-logout'); } diff --git a/tests/Feature/RegisterTest.php b/tests/Feature/RegisterTest.php index db18d37a28..892db8bae1 100644 --- a/tests/Feature/RegisterTest.php +++ b/tests/Feature/RegisterTest.php @@ -4,6 +4,7 @@ namespace Filament\Tests\Feature; use Livewire\Livewire; use Filament\Tests\TestCase; +use Filament; use Filament\Http\Livewire\Auth\Register; use Filament\Tests\Database\Models\User; @@ -25,7 +26,7 @@ class RegisterTest extends TestCase ->set('password_confirmation', 'password') ->call('register') ->assertHasNoErrors(['name', 'email', 'password', 'password_confirmation']) - ->assertRedirect(route('filament.dashboard')); + ->assertRedirect(Filament::home()); $this->assertDatabaseHas('users', [ 'name' => 'Me', diff --git a/tests/Feature/ResetPasswordTest.php b/tests/Feature/ResetPasswordTest.php index 7973c93df2..837b1edff3 100644 --- a/tests/Feature/ResetPasswordTest.php +++ b/tests/Feature/ResetPasswordTest.php @@ -6,9 +6,12 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Password; use Livewire\Livewire; use Filament\Tests\TestCase; +use Filament; use Filament\Tests\Database\Models\User; -use Filament\Http\Livewire\Auth\Login; -use Filament\Http\Livewire\Auth\ResetPassword; +use Filament\Http\Livewire\Auth\{ + Login, + ResetPassword, +}; class ResetPasswordTest extends TestCase { @@ -93,7 +96,7 @@ class ResetPasswordTest extends TestCase public function test_user_can_reset_password_with_valid_token() { - $dashboard = route('filament.dashboard'); + $dashboard = Filament::home(); Livewire::test(ResetPassword::class, ['token' => $this->token]) ->set('email', $this->user->email)