From a880ab9e152731235a6d215076f0ba220ce8852b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Fri, 29 Jan 2016 11:59:57 +0100 Subject: [PATCH] FEATURE #1401: add middleware for registering modules --- app/Handlers/Handler.php | 37 +++++++++++++++++++++-- app/Http/Kernel.php | 1 + app/Http/Middleware/ModuleRegistrator.php | 33 ++++++++++++++++++++ config/app.php | 1 + 4 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 app/Http/Middleware/ModuleRegistrator.php diff --git a/app/Handlers/Handler.php b/app/Handlers/Handler.php index 25ade56d..d7d4432e 100644 --- a/app/Handlers/Handler.php +++ b/app/Handlers/Handler.php @@ -1,6 +1,39 @@ [ diff --git a/app/Http/Middleware/ModuleRegistrator.php b/app/Http/Middleware/ModuleRegistrator.php new file mode 100644 index 00000000..8d2071af --- /dev/null +++ b/app/Http/Middleware/ModuleRegistrator.php @@ -0,0 +1,33 @@ + $module) { + $handler = config($module->getName() . '.handler'); + + // try to register menus + if (method_exists($handler, 'registerAdminMenu') && \Auth::check()) { + call_user_func([$handler, 'registerAdminMenu'], \Auth::user()); + } + } + + return $next($request); + } +} diff --git a/config/app.php b/config/app.php index 0d4c5cc6..0fd1d264 100644 --- a/config/app.php +++ b/config/app.php @@ -182,6 +182,7 @@ return [ 'Log' => Illuminate\Support\Facades\Log::class, 'Mail' => Illuminate\Support\Facades\Mail::class, 'Menu' => Pingpong\Menus\MenuFacade::class, + 'Module' => Pingpong\Modules\Facades\Module::class, 'Password' => Illuminate\Support\Facades\Password::class, 'Queue' => Illuminate\Support\Facades\Queue::class, 'Redirect' => Illuminate\Support\Facades\Redirect::class,