Skip to content

Commit 1426abd

Browse files
authored
Filament auto login details (#94)
* Create Login.php * Update AdminPanelProvider.php * Update User.php * Update Login.php * Update User.php * Update User.php * Change seed config to have email and password * Update phpunit.xml * Update AdminPanelProvider.php
1 parent ba8e67f commit 1426abd

File tree

9 files changed

+59
-18
lines changed

9 files changed

+59
-18
lines changed

app/Filament/Pages/Auth/Login.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace App\Filament\Pages\Auth;
4+
5+
use Filament\Pages\Auth\Login as BasePage;
6+
7+
class Login extends BasePage
8+
{
9+
public function mount(): void
10+
{
11+
parent::mount();
12+
13+
if (\app()->environment('local')) {
14+
$this->form->fill([
15+
'email' => \config('app.seed.users.super.email'),
16+
'password' => \config('app.seed.users.super.password'),
17+
'remember' => true,
18+
]);
19+
}
20+
}
21+
}

app/Http/Controllers/LoginController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ class LoginController extends Controller
1111
public function show(Request $request)
1212
{
1313
return inertia('Login/Show', app()->environment('local', 'testing') ? [
14-
'email' => config('app.seed.emails.super'),
15-
'password' => '12345',
14+
'email' => config('app.seed.users.super.email'),
15+
'password' => config('app.seed.users.super.password'),
1616
'remember' => true,
1717
'redirect' => $request->query('redirect', ''),
1818
] : []);

app/Models/User.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Filament\Models\Contracts\HasName;
88
use Filament\Panel;
99
use Illuminate\Contracts\Auth\MustVerifyEmail;
10+
use Illuminate\Database\Eloquent\Builder;
1011
use Illuminate\Database\Eloquent\Casts\Attribute;
1112
use Illuminate\Database\Eloquent\Factories\HasFactory;
1213
use Illuminate\Foundation\Auth\User as Authenticatable;
@@ -62,6 +63,11 @@ protected function allPermissions(): Attribute
6263
);
6364
}
6465

66+
protected function scopeHasRoles(Builder $query, array $roles): void
67+
{
68+
$query->whereHas('roles', fn (Builder $query) => $query->whereIn('name', $roles));
69+
}
70+
6571
public function updatePassword(?string $new_password = '')
6672
{
6773
if ($new_password && $new_password != $this->password) {

app/Providers/Filament/AdminPanelProvider.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function panel(Panel $panel): Panel
2929
->default()
3030
->id('admin')
3131
->path('admin')
32-
->login()
32+
->login(\App\Filament\Pages\Auth\Login::class)
3333
->colors([
3434
'primary' => '#1e293b',
3535
])
@@ -43,6 +43,7 @@ public function panel(Panel $panel): Panel
4343
FilamentSpatieRolesPermissionsPlugin::make(),
4444
EnvironmentIndicatorPlugin::make()
4545
->visible(fn () => \auth()->user()?->hasRole(Role::SUPER_ADMIN) && \app()->environment() !== 'production')
46+
->showBorder(false)
4647
->color(fn () => match (app()->environment()) {
4748
'production' => Color::Green,
4849
'staging' => Color::Blue,

config/app.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,19 @@
33
return [
44

55
'seed' => [
6-
'emails' => [
7-
'super' => env('SEED_SUPER_ADMIN_EMAIL', '[email protected]'),
8-
'admin' => env('SEED_ADMIN_EMAIL', '[email protected]'),
9-
'user' => env('SEED_USER_EMAIL', '[email protected]'),
6+
'users' => [
7+
'super' => [
8+
'email' => env('SEED_SUPER_ADMIN_EMAIL', '[email protected]'),
9+
'password' => env('SEED_SUPER_ADMIN_PASSWORD', '12345'),
10+
],
11+
'admin' => [
12+
'email' => env('SEED_ADMIN_EMAIL', '[email protected]'),
13+
'password' => env('SEED_ADMIN_PASSWORD', '12345'),
14+
],
15+
'user' => [
16+
'email' => env('SEED_USER_EMAIL', '[email protected]'),
17+
'password' => env('SEED_USER_PASSWORD', '12345'),
18+
],
1019
],
1120
],
1221

database/factories/UserFactory.php

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,32 @@ public function superAdmin(?string $email = null)
3535
{
3636
return $this
3737
->state(fn (array $attributes) => [
38-
'email' => $email ?: \config('app.seed.emails.super'),
38+
'email' => \config('app.seed.users.super.email'),
39+
'password' => \config('app.seed.users.super.password'),
3940
])
4041
->afterCreating(function (User $user) {
4142
$user->assignRole(Role::SUPER_ADMIN->value);
4243
});
4344
}
4445

45-
public function admin(?string $email = null)
46+
public function admin()
4647
{
4748
return $this
4849
->state(fn (array $attributes) => [
49-
'email' => $email ?: \config('app.seed.emails.admin'),
50+
'email' => \config('app.seed.users.admin.email'),
51+
'password' => \config('app.seed.users.admin.password'),
5052
])
5153
->afterCreating(function (User $user) {
5254
$user->assignRole(Role::ADMIN->value);
5355
});
5456
}
5557

56-
public function user(?string $email = null)
58+
public function user()
5759
{
5860
return $this
5961
->state(fn (array $attributes) => [
60-
'email' => $email ?: \config('app.seed.emails.user'),
62+
'email' => \config('app.seed.users.user.email'),
63+
'password' => \config('app.seed.users.user.password'),
6164
])
6265
->afterCreating(function (User $user) {
6366
$user->assignRole(Role::USER->value);

phpunit.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
<directory suffix="Test.php">./tests/Feature</directory>
99
</testsuite>
1010
<testsuite name="Architecture">
11-
<directory>tests/Architecture</directory>
12-
</testsuite>
11+
<directory>tests/Architecture</directory>
12+
</testsuite>
1313
</testsuites>
1414
<coverage/>
1515
<source>
@@ -20,6 +20,7 @@
2020
<directory suffix=".php">./app/Filament</directory>
2121
<directory suffix=".php">./app/Providers/Filament</directory>
2222
<file>./app/Providers/HorizonServiceProvider.php</file>
23+
<file>./app/Providers/TelescopeServiceProvider.php</file>
2324
</exclude>
2425
</source>
2526
</phpunit>

tests/Feature/Controllers/LoginControllerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
->assertInertia(
2929
fn (Assert $page) => $page
3030
->component('Login/Show')
31-
->where('email', config('app.seed.emails.super'))
32-
->where('password', '12345')
31+
->where('email', config('app.seed.users.super.email'))
32+
->where('password', config('app.seed.users.super.password'))
3333
->where('remember', true)
3434
->where('redirect', '')
3535
);

tests/Pest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@
5555

5656
function superAdminUser()
5757
{
58-
return User::whereEmail(\config('app.seed.emails.super'))->first();
58+
return User::whereEmail(\config('app.seed.users.super.email'))->first();
5959
}
6060

6161
function adminUser()
6262
{
63-
return User::whereEmail(\config('app.seed.emails.admin'))->first();
63+
return User::whereEmail(\config('app.seed.users.admin.email'))->first();
6464
}

0 commit comments

Comments
 (0)