Top right user menu

This commit is contained in:
Lance Pioch 2024-04-06 10:11:10 -04:00
parent a133503256
commit b0067c4e4b
2 changed files with 20 additions and 1 deletions

View File

@ -6,6 +6,8 @@ use App\Exceptions\DisplayException;
use App\Rules\Username;
use App\Facades\Activity;
use Filament\Models\Contracts\FilamentUser;
use Filament\Models\Contracts\HasAvatar;
use Filament\Models\Contracts\HasName;
use Filament\Panel;
use Illuminate\Support\Str;
use Illuminate\Validation\Rules\In;
@ -81,7 +83,7 @@ use App\Notifications\SendPasswordReset as ResetPasswordNotification;
*
* @mixin \Eloquent
*/
class User extends Model implements AuthenticatableContract, AuthorizableContract, CanResetPasswordContract, FilamentUser
class User extends Model implements AuthenticatableContract, AuthorizableContract, CanResetPasswordContract, FilamentUser, HasName, HasAvatar
{
use Authenticatable;
use Authorizable {can as protected canned; }
@ -338,4 +340,14 @@ class User extends Model implements AuthenticatableContract, AuthorizableContrac
{
return $this->root_admin;
}
public function getFilamentName(): string
{
return $this->name_first ?: $this->username;
}
public function getFilamentAvatarUrl(): ?string
{
return 'https://gravatar.com/avatar/' . md5(strtolower($this->email));
}
}

View File

@ -5,11 +5,13 @@ namespace App\Providers\Filament;
use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\DisableBladeIconComponents;
use Filament\Http\Middleware\DispatchServingFilamentEvent;
use Filament\Navigation\MenuItem;
use Filament\Pages;
use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Colors\Color;
use Filament\Widgets;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
@ -30,6 +32,11 @@ class AdminPanelProvider extends PanelProvider
->brandName('Pelican')
->homeUrl('/')
->favicon('/favicon.ico')
->userMenuItems([
'profile' => MenuItem::make()
->label('Edit profile')
->url(fn (Guard $guard) => '/panel/users/' . $guard->id() . '/edit'),
])
->colors([
'danger' => Color::Red,
'gray' => Color::Zinc,