選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

UserPanelProvider.php 2.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Providers\Filament;
  3. use App\Http\Middleware\Authenticate;
  4. use Filament\Http\Middleware\{DisableBladeIconComponents, DispatchServingFilamentEvent};
  5. use Filament\Navigation\{MenuItem, NavigationItem};
  6. use Filament\Support\Colors\Color;
  7. use Filament\{Pages, Panel, PanelProvider, Widgets};
  8. use Illuminate\Cookie\Middleware\{AddQueuedCookiesToResponse, EncryptCookies};
  9. use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
  10. use Illuminate\Routing\Middleware\SubstituteBindings;
  11. use Illuminate\Session\Middleware\{AuthenticateSession, StartSession};
  12. use Illuminate\Support\Facades\Auth;
  13. use Illuminate\View\Middleware\ShareErrorsFromSession;
  14. use Wallo\FilamentCompanies\Pages\User\{PersonalAccessTokens, Profile};
  15. class UserPanelProvider extends PanelProvider
  16. {
  17. public function panel(Panel $panel): Panel
  18. {
  19. return $panel
  20. ->id('user')
  21. ->path('user')
  22. ->colors([
  23. 'primary' => Color::Indigo,
  24. ])
  25. ->userMenuItems([
  26. 'profile' => MenuItem::make()
  27. ->label('Profile')
  28. ->icon('heroicon-o-user-circle')
  29. ->url(static fn () => url(Profile::getUrl())),
  30. MenuItem::make()
  31. ->label('Company')
  32. ->icon('heroicon-o-building-office')
  33. ->url(static fn () => url(Pages\Dashboard::getUrl(panel: 'company', tenant: Auth::user()?->personalCompany()))),
  34. ])
  35. ->navigationItems([
  36. NavigationItem::make('Personal Access Tokens')
  37. ->label(static fn (): string => __('filament-companies::default.navigation.links.tokens'))
  38. ->icon('heroicon-o-key')
  39. ->url(static fn () => url(PersonalAccessTokens::getUrl())),
  40. ])
  41. ->discoverResources(in: app_path('Filament/User/Resources'), for: 'App\\Filament\\User\\Resources')
  42. ->discoverPages(in: app_path('Filament/User/Pages'), for: 'App\\Filament\\User\\Pages')
  43. ->pages([
  44. Pages\Dashboard::class,
  45. Profile::class,
  46. PersonalAccessTokens::class,
  47. ])
  48. ->discoverWidgets(in: app_path('Filament/User/Widgets'), for: 'App\\Filament\\User\\Widgets')
  49. ->widgets([
  50. Widgets\AccountWidget::class,
  51. Widgets\FilamentInfoWidget::class,
  52. ])
  53. ->middleware([
  54. EncryptCookies::class,
  55. AddQueuedCookiesToResponse::class,
  56. StartSession::class,
  57. AuthenticateSession::class,
  58. ShareErrorsFromSession::class,
  59. VerifyCsrfToken::class,
  60. SubstituteBindings::class,
  61. DisableBladeIconComponents::class,
  62. DispatchServingFilamentEvent::class,
  63. ])
  64. ->authMiddleware([
  65. Authenticate::class,
  66. ]);
  67. }
  68. }