22
33namespace Backstage \UserManagement ;
44
5+ use Filament \Panel ;
6+ use Livewire \Livewire ;
7+ use Filament \Contracts \Plugin ;
8+ use Filament \Navigation \MenuItem ;
9+ use Filament \View \PanelsRenderHook ;
10+ use Illuminate \Support \Facades \Blade ;
11+ use Filament \Actions \Modal \Actions \Action ;
12+ use Filament \Support \Facades \FilamentView ;
513use Backstage \UserManagement \Http \Middleware \DetectUserTraffic ;
14+ use Backstage \UserManagement \Components \ToggleSubNavigationType ;
615use Backstage \UserManagement \Http \Middleware \RedirectUnverifiedUsers ;
7- use Filament \Contracts \Plugin ;
8- use Filament \Panel ;
916
1017class UserManagementPlugin implements Plugin
1118{
@@ -17,23 +24,36 @@ public function getId(): string
1724 public function register (Panel $ panel ): void
1825 {
1926 $ panel ->resources ([
20- Resources \UserResource::class,
21- Resources \UsersTagResource::class,
27+ config ('backstage.users.resources.users ' , Resources \UserResource::class),
28+
29+ config ('backstage.users.resources.users-tags ' , Resources \UsersTagResource::class),
2230 ]);
2331
24- $ panel ->middleware ([
25- DetectUserTraffic::class,
2632
27- RedirectUnverifiedUsers::class,
28- ]);
33+ $ middleware = [];
34+
35+ if (config ('backstage.users.record.user_must_verify ' , false )) {
36+ $ panel ->emailVerification ();
2937
30- $ panel ->emailVerification ();
38+ $ panel ->requiresEmailVerification ();
3139
32- $ panel ->requiresEmailVerification ();
40+ $ panel ->emailVerificationRoutePrefix ('email-verification ' );
41+ $ panel ->emailVerificationPromptRouteSlug ('prompt ' );
42+ $ panel ->emailVerificationRouteSlug ('verify ' );
3343
34- $ panel ->emailVerificationRoutePrefix ('email-verification ' );
35- $ panel ->emailVerificationPromptRouteSlug ('prompt ' );
36- $ panel ->emailVerificationRouteSlug ('verify ' );
44+ $ middleware [] = RedirectUnverifiedUsers::class;
45+ }
46+
47+ if (config ('backstage.users.record.user_traffic ' , true )) {
48+ $ middleware [] = DetectUserTraffic::class;
49+ }
50+
51+ if (config ('backstage.users.record.can_toggle_sub_navigation ' , true )) {
52+ $ this ->initSubNavigationToggle ($ panel );
53+ }
54+
55+
56+ $ panel ->middleware ($ middleware );
3757
3858 $ panel ->authGuard ('web ' );
3959
@@ -59,4 +79,11 @@ public static function get(): static
5979
6080 return $ plugin ;
6181 }
82+
83+ protected function initSubNavigationToggle (Panel $ panel )
84+ {
85+ $ panel ->renderHook (PanelsRenderHook::GLOBAL_SEARCH_AFTER , function () {
86+ return Livewire::mount (ToggleSubNavigationType::class);
87+ });
88+ }
6289}
0 commit comments