File tree Expand file tree Collapse file tree 2 files changed +47
-1
lines changed
Expand file tree Collapse file tree 2 files changed +47
-1
lines changed Original file line number Diff line number Diff line change 77use App \Enums \Subscription ;
88use App \Enums \TeamUserStatus ;
99use Filament \Models \Contracts \FilamentUser ;
10+ use Filament \Models \Contracts \HasName ;
1011use Filament \Panel ;
1112use Illuminate \Database \Eloquent \Casts \Attribute ;
1213use Illuminate \Database \Eloquent \Factories \HasFactory ;
1819use Laravel \Cashier \Billable ;
1920use Laravel \Sanctum \HasApiTokens ;
2021
21- class User extends Authenticatable implements FilamentUser
22+ class User extends Authenticatable implements FilamentUser, HasName
2223{
2324 use Billable, HasApiTokens, HasFactory, Notifiable;
2425
@@ -30,6 +31,11 @@ class User extends Authenticatable implements FilamentUser
3031 'github_token ' ,
3132 ];
3233
34+ public function getFilamentName (): string
35+ {
36+ return $ this ->attributes ['display_name ' ] ?? $ this ->name ?? $ this ->email ;
37+ }
38+
3339 public function canAccessPanel (Panel $ panel ): bool
3440 {
3541 return $ this ->isAdmin ();
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tests \Feature ;
4+
5+ use App \Models \User ;
6+ use Illuminate \Foundation \Testing \RefreshDatabase ;
7+ use Tests \TestCase ;
8+
9+ class UserModelTest extends TestCase
10+ {
11+ use RefreshDatabase;
12+
13+ public function test_get_filament_name_returns_name_when_present (): void
14+ {
15+ $ user = User::factory ()->create (['name ' => 'John Doe ' ]);
16+
17+ $ this ->assertSame ('John Doe ' , $ user ->getFilamentName ());
18+ }
19+
20+ public function test_get_filament_name_returns_display_name_when_name_is_null (): void
21+ {
22+ $ user = User::factory ()->create (['name ' => null , 'display_name ' => 'Custom Name ' ]);
23+
24+ $ this ->assertSame ('Custom Name ' , $ user ->getFilamentName ());
25+ }
26+
27+ public function test_get_filament_name_returns_email_when_name_and_display_name_are_null (): void
28+ {
29+ $ user = User::factory ()->create (['name ' => null , 'display_name ' => null ]);
30+
31+ $ this ->assertSame ($ user ->email , $ user ->getFilamentName ());
32+ }
33+
34+ public function test_get_filament_name_always_returns_string (): void
35+ {
36+ $ user = User::factory ()->create (['name ' => null , 'display_name ' => null ]);
37+
38+ $ this ->assertIsString ($ user ->getFilamentName ());
39+ }
40+ }
You can’t perform that action at this time.
0 commit comments