Make "home" configurable

This commit is contained in:
Ryan Scherler
2020-11-25 12:08:12 -08:00
parent 9412215c2c
commit 072b9d90be
9 changed files with 42 additions and 9 deletions
+12
View File
@@ -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
+12
View File
@@ -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.
*
+2 -1
View File
@@ -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);
+2 -1
View File
@@ -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()
+2 -1
View File
@@ -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));
}
+2 -1
View File
@@ -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();
}
+2 -1
View File
@@ -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');
}
+2 -1
View File
@@ -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',
+6 -3
View File
@@ -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)