From bbccf0bc4eabdf4d7b6022c2898985b4b6cf3f40 Mon Sep 17 00:00:00 2001 From: Younes ENNAJI Date: Wed, 22 May 2024 22:48:17 +0100 Subject: [PATCH] fix: Correctly disable FlasherMiddleware when inject_assets is set to false --- demo/laravel/config/flasher.php | 5 +++++ src/Laravel/FlasherServiceProvider.php | 5 +++++ src/Laravel/Support/PluginServiceProvider.php | 9 +++++++++ 3 files changed, 19 insertions(+) create mode 100644 demo/laravel/config/flasher.php diff --git a/demo/laravel/config/flasher.php b/demo/laravel/config/flasher.php new file mode 100644 index 00000000..1bec23f3 --- /dev/null +++ b/demo/laravel/config/flasher.php @@ -0,0 +1,5 @@ + false, +]; diff --git a/src/Laravel/FlasherServiceProvider.php b/src/Laravel/FlasherServiceProvider.php index bc324595..9264c36f 100644 --- a/src/Laravel/FlasherServiceProvider.php +++ b/src/Laravel/FlasherServiceProvider.php @@ -34,6 +34,7 @@ use Flasher\Prime\Storage\Filter\FilterFactory; use Flasher\Prime\Storage\Storage; use Flasher\Prime\Storage\StorageManager; use Illuminate\Container\Container; +use Illuminate\Contracts\Config\Repository; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Foundation\Application; use Illuminate\Foundation\Console\AboutCommand; @@ -222,6 +223,10 @@ final class FlasherServiceProvider extends PluginServiceProvider private function registerFlasherMiddleware(): void { + if(!$this->getConfig('inject_assets')) { + return; + } + $this->app->singleton(FlasherMiddleware::class, static function (Application $app) { $flasher = $app->make('flasher'); $cspHandler = $app->make('flasher.csp_handler'); diff --git a/src/Laravel/Support/PluginServiceProvider.php b/src/Laravel/Support/PluginServiceProvider.php index 7e576b4b..b8506363 100644 --- a/src/Laravel/Support/PluginServiceProvider.php +++ b/src/Laravel/Support/PluginServiceProvider.php @@ -6,6 +6,7 @@ namespace Flasher\Laravel\Support; use Flasher\Prime\Factory\NotificationFactoryLocator; use Flasher\Prime\Plugin\PluginInterface; +use Illuminate\Contracts\Config\Repository; use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Foundation\CachesConfiguration; use Illuminate\Support\ServiceProvider; @@ -35,6 +36,14 @@ abstract class PluginServiceProvider extends ServiceProvider return rtrim($this->getResourcesDir(), '/').'/config.php'; } + protected function getConfig(string $key = null, mixed $default = null): mixed + { + /** @var Repository $config */ + $config = $this->app->make('config'); + + return $key ? $config->get('flasher.'.$key, $default) : $config; + } + protected function getResourcesDir(): string { $r = new \ReflectionClass($this);