From 88162b9cb913b99596d9002e3282520c15126706 Mon Sep 17 00:00:00 2001 From: Marco Szulik Date: Tue, 23 Jul 2024 08:52:12 +0200 Subject: [PATCH 01/11] make route middleware fully configurable --- config/transmorpher.php | 3 ++- src/TransmorpherServiceProvider.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/config/transmorpher.php b/config/transmorpher.php index 1fc3e82..d575da0 100644 --- a/config/transmorpher.php +++ b/config/transmorpher.php @@ -3,8 +3,9 @@ return [ 'client_name' => env('TRANSMORPHER_CLIENT_NAME'), - // The middleware applied to routes provided by this package. The 'web' middleware is necessary and applied by default. + // The middleware applied to routes provided by this package. 'routeMiddleware' => [ + 'web', 'auth' ], diff --git a/src/TransmorpherServiceProvider.php b/src/TransmorpherServiceProvider.php index 849c237..587899d 100644 --- a/src/TransmorpherServiceProvider.php +++ b/src/TransmorpherServiceProvider.php @@ -62,7 +62,7 @@ public function register(): void protected function registerRoutes(): void { Route::post(config('transmorpher.api.notifications_route'), ApiController::class)->name('transmorpherNotifications'); - Route::middleware(array_merge(['web'], config('transmorpher.routeMiddleware', [])))->group(function () { + Route::middleware(config('transmorpher.routeMiddleware'))->group(function () { Route::post('transmorpher/{transmorpherMedia}/token', [UploadController::class, 'getUploadToken'])->name('transmorpherUploadToken'); Route::post('transmorpher/handleUploadResponse/{transmorpherUpload}', [UploadController::class, 'handleUploadResponse'])->name('transmorpherHandleUploadResponse'); Route::post('transmorpher/{transmorpherMedia}/state', [UploadStateController::class, 'getState'])->name('transmorpherState'); From 3820571a92d540a620a3c897c2a652b70645d450 Mon Sep 17 00:00:00 2001 From: Marco Szulik Date: Wed, 7 Aug 2024 11:38:58 +0200 Subject: [PATCH 02/11] set middleware for transmorpher client routes in amigor config --- amigor/composer.lock | 4 ++-- amigor/config/transmorpher.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/amigor/composer.lock b/amigor/composer.lock index 69d4991..b372f3b 100644 --- a/amigor/composer.lock +++ b/amigor/composer.lock @@ -137,11 +137,11 @@ }, { "name": "cybex/laravel-transmorpher-client", - "version": "dev-fix/unintended-requests-on-mimetype-validation-error", + "version": "dev-feature/fully-configurable-route-middleware", "dist": { "type": "path", "url": "vendor/cybex/laravel-transmorpher-client", - "reference": "95f2af449ea6d05ecd24d571d1c1d5d92ec4aa2f" + "reference": "686cdd797bceebbfb7ca3510cd0f25c3ef6eda74" }, "require": { "enyo/dropzone": "^5.9", diff --git a/amigor/config/transmorpher.php b/amigor/config/transmorpher.php index 5a2ee43..fdabae4 100644 --- a/amigor/config/transmorpher.php +++ b/amigor/config/transmorpher.php @@ -5,7 +5,7 @@ // The middleware applied to routes provided by this package. The 'web' middleware is necessary and applied by default. 'routeMiddleware' => [ -// 'auth' + 'web' ], 'api' => [ From d7cc6879fc429059fe78db08f93adede5c36aef9 Mon Sep 17 00:00:00 2001 From: Marco Szulik Date: Wed, 7 Aug 2024 11:40:20 +0200 Subject: [PATCH 03/11] add a changelog --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..786bf76 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,13 @@ +# Release Notes + +## [v0.4.0](https://github.com/cybex-gmbh/laravel-transmorpher-client/compare/v0.3.0...v0.4.0) + +> [!WARNING] +> Breaking change! + +- Route middleware is now fully configurable + - the `web` middleware is no longer applied by default and has to be set in already published config files + + + + From 9f19ffdc9c1ea67c982e0f64a017d11785d3fd50 Mon Sep 17 00:00:00 2001 From: Marco Szulik Date: Mon, 2 Sep 2024 14:46:01 +0200 Subject: [PATCH 04/11] change the default behaviour for middlewares --- CHANGELOG.md | 3 ++- amigor/config/transmorpher.php | 7 +++---- config/transmorpher.php | 6 ++---- src/TransmorpherServiceProvider.php | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 786bf76..de53cfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,8 @@ > Breaking change! - Route middleware is now fully configurable - - the `web` middleware is no longer applied by default and has to be set in already published config files + - the `web` and `auth` middlewares are now only applied by default when no config value is set + - already published config files have to be adjusted accordingly diff --git a/amigor/config/transmorpher.php b/amigor/config/transmorpher.php index fdabae4..2665e9e 100644 --- a/amigor/config/transmorpher.php +++ b/amigor/config/transmorpher.php @@ -3,10 +3,9 @@ return [ 'client_name' => env('TRANSMORPHER_CLIENT_NAME'), - // The middleware applied to routes provided by this package. The 'web' middleware is necessary and applied by default. - 'routeMiddleware' => [ - 'web' - ], + // The middleware applied to routes provided by this package. + // The SubstituteBindings middleware is necessary (included in web and api middleware groups). + 'routeMiddleware' => ['web'], 'api' => [ // Optionally, specify the Transmorpher API version which should be used. For supported versions, check the SupportedApiVersion enum. diff --git a/config/transmorpher.php b/config/transmorpher.php index d575da0..991f89c 100644 --- a/config/transmorpher.php +++ b/config/transmorpher.php @@ -4,10 +4,8 @@ 'client_name' => env('TRANSMORPHER_CLIENT_NAME'), // The middleware applied to routes provided by this package. - 'routeMiddleware' => [ - 'web', - 'auth' - ], + // The SubstituteBindings middleware is necessary (included in web and api middleware groups). +// 'routeMiddleware' => ['web', 'auth'], 'api' => [ // Optionally, specify the Transmorpher API version which should be used. For supported versions, check the SupportedApiVersion enum. diff --git a/src/TransmorpherServiceProvider.php b/src/TransmorpherServiceProvider.php index 587899d..0659f98 100644 --- a/src/TransmorpherServiceProvider.php +++ b/src/TransmorpherServiceProvider.php @@ -62,7 +62,7 @@ public function register(): void protected function registerRoutes(): void { Route::post(config('transmorpher.api.notifications_route'), ApiController::class)->name('transmorpherNotifications'); - Route::middleware(config('transmorpher.routeMiddleware'))->group(function () { + Route::middleware(config('transmorpher.routeMiddleware', ['web', 'auth']))->group(function () { Route::post('transmorpher/{transmorpherMedia}/token', [UploadController::class, 'getUploadToken'])->name('transmorpherUploadToken'); Route::post('transmorpher/handleUploadResponse/{transmorpherUpload}', [UploadController::class, 'handleUploadResponse'])->name('transmorpherHandleUploadResponse'); Route::post('transmorpher/{transmorpherMedia}/state', [UploadStateController::class, 'getState'])->name('transmorpherState'); From 4b8f59398a26e04904a8c25354158121d701b47e Mon Sep 17 00:00:00 2001 From: Marco Szulik Date: Mon, 2 Sep 2024 15:33:21 +0200 Subject: [PATCH 05/11] always apply the SubstituteBindings middleware --- CHANGELOG.md | 5 +---- amigor/config/transmorpher.php | 2 +- config/transmorpher.php | 2 +- src/TransmorpherServiceProvider.php | 3 ++- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de53cfc..7fbdf2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,6 @@ > Breaking change! - Route middleware is now fully configurable + - the `SubstitueBindings` middleware is now always applied as it is necessary to resolve route model bindings - the `web` and `auth` middlewares are now only applied by default when no config value is set - already published config files have to be adjusted accordingly - - - - diff --git a/amigor/config/transmorpher.php b/amigor/config/transmorpher.php index 2665e9e..59a0ac1 100644 --- a/amigor/config/transmorpher.php +++ b/amigor/config/transmorpher.php @@ -4,7 +4,7 @@ 'client_name' => env('TRANSMORPHER_CLIENT_NAME'), // The middleware applied to routes provided by this package. - // The SubstituteBindings middleware is necessary (included in web and api middleware groups). + // The SubstituteBindings middleware is always applied. 'routeMiddleware' => ['web'], 'api' => [ diff --git a/config/transmorpher.php b/config/transmorpher.php index 991f89c..341677d 100644 --- a/config/transmorpher.php +++ b/config/transmorpher.php @@ -4,7 +4,7 @@ 'client_name' => env('TRANSMORPHER_CLIENT_NAME'), // The middleware applied to routes provided by this package. - // The SubstituteBindings middleware is necessary (included in web and api middleware groups). + // The SubstituteBindings middleware is always applied. // 'routeMiddleware' => ['web', 'auth'], 'api' => [ diff --git a/src/TransmorpherServiceProvider.php b/src/TransmorpherServiceProvider.php index 0659f98..96b6528 100644 --- a/src/TransmorpherServiceProvider.php +++ b/src/TransmorpherServiceProvider.php @@ -2,6 +2,7 @@ namespace Transmorpher; +use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Support\Facades\Blade; use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider; @@ -62,7 +63,7 @@ public function register(): void protected function registerRoutes(): void { Route::post(config('transmorpher.api.notifications_route'), ApiController::class)->name('transmorpherNotifications'); - Route::middleware(config('transmorpher.routeMiddleware', ['web', 'auth']))->group(function () { + Route::middleware(array_merge(config('transmorpher.routeMiddleware', ['web', 'auth']), [SubstituteBindings::class]))->group(function () { Route::post('transmorpher/{transmorpherMedia}/token', [UploadController::class, 'getUploadToken'])->name('transmorpherUploadToken'); Route::post('transmorpher/handleUploadResponse/{transmorpherUpload}', [UploadController::class, 'handleUploadResponse'])->name('transmorpherHandleUploadResponse'); Route::post('transmorpher/{transmorpherMedia}/state', [UploadStateController::class, 'getState'])->name('transmorpherState'); From eaabc1bdbac77a603d65f85b5b0d7269a3d8103e Mon Sep 17 00:00:00 2001 From: Marco Szulik Date: Mon, 2 Sep 2024 15:41:44 +0200 Subject: [PATCH 06/11] fix typo --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fbdf2d..71e87d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,6 @@ > Breaking change! - Route middleware is now fully configurable - - the `SubstitueBindings` middleware is now always applied as it is necessary to resolve route model bindings + - the `SubstituteBindings` middleware is now always applied as it is necessary to resolve route model bindings - the `web` and `auth` middlewares are now only applied by default when no config value is set - already published config files have to be adjusted accordingly From 726f2bd1f943aa96fd29d00c5ae79ee2b556e987 Mon Sep 17 00:00:00 2001 From: Marco Szulik Date: Mon, 2 Sep 2024 16:19:21 +0200 Subject: [PATCH 07/11] include hidden files for artifact github workflow --- .github/workflows/pullpreview.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pullpreview.yml b/.github/workflows/pullpreview.yml index d854e4f..3249d09 100644 --- a/.github/workflows/pullpreview.yml +++ b/.github/workflows/pullpreview.yml @@ -35,6 +35,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: transmorpher-env + include-hidden-files: true path: | placeholderSoFilePathsArePreserved amigor/.env.transmorpher From 6005332be14ca3b6ab2e88719c6ef08b88412d13 Mon Sep 17 00:00:00 2001 From: mszulik <69617961+mszulik@users.noreply.github.com> Date: Tue, 3 Sep 2024 07:40:51 +0200 Subject: [PATCH 08/11] Update CHANGELOG.md Co-authored-by: Gael Connan --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71e87d8..c28ba32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,5 +7,5 @@ - Route middleware is now fully configurable - the `SubstituteBindings` middleware is now always applied as it is necessary to resolve route model bindings - - the `web` and `auth` middlewares are now only applied by default when no config value is set + - when `transmorpher.routeMiddleware` is not set, the `web` and `auth` middlewares are applied - already published config files have to be adjusted accordingly From 155da9818c7f40b6252bc042e4a4c5cd42e33563 Mon Sep 17 00:00:00 2001 From: mszulik <69617961+mszulik@users.noreply.github.com> Date: Tue, 3 Sep 2024 07:40:58 +0200 Subject: [PATCH 09/11] Update CHANGELOG.md Co-authored-by: Gael Connan --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c28ba32..959dbb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ > [!WARNING] > Breaking change! -- Route middleware is now fully configurable +- Route middlewares are now fully configurable - the `SubstituteBindings` middleware is now always applied as it is necessary to resolve route model bindings - when `transmorpher.routeMiddleware` is not set, the `web` and `auth` middlewares are applied - already published config files have to be adjusted accordingly From 2f512d5f1f38953f109a7b49fb9c1feba63f63ac Mon Sep 17 00:00:00 2001 From: mszulik <69617961+mszulik@users.noreply.github.com> Date: Tue, 3 Sep 2024 07:41:23 +0200 Subject: [PATCH 10/11] Update config/transmorpher.php Co-authored-by: Gael Connan --- config/transmorpher.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/config/transmorpher.php b/config/transmorpher.php index 341677d..07fbba0 100644 --- a/config/transmorpher.php +++ b/config/transmorpher.php @@ -3,8 +3,9 @@ return [ 'client_name' => env('TRANSMORPHER_CLIENT_NAME'), - // The middleware applied to routes provided by this package. - // The SubstituteBindings middleware is always applied. + // The middlewares applied to routes provided by this package: + // - the "SubstituteBindings" middleware will be applied additionally. + // - "web" and "auth" middlewares will be applied when this is not set. // 'routeMiddleware' => ['web', 'auth'], 'api' => [ From 5e76e32355cdbc573a75cc6403137d087511fbfe Mon Sep 17 00:00:00 2001 From: Marco Szulik Date: Tue, 3 Sep 2024 08:52:50 +0200 Subject: [PATCH 11/11] remove unnecessary web middleware in amigor transmorpher config --- amigor/config/transmorpher.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/amigor/config/transmorpher.php b/amigor/config/transmorpher.php index 59a0ac1..156e6db 100644 --- a/amigor/config/transmorpher.php +++ b/amigor/config/transmorpher.php @@ -3,9 +3,10 @@ return [ 'client_name' => env('TRANSMORPHER_CLIENT_NAME'), - // The middleware applied to routes provided by this package. - // The SubstituteBindings middleware is always applied. - 'routeMiddleware' => ['web'], + // The middlewares applied to routes provided by this package: + // - the "SubstituteBindings" middleware will be applied additionally. + // - "web" and "auth" middlewares will be applied when this is not set. + 'routeMiddleware' => [], 'api' => [ // Optionally, specify the Transmorpher API version which should be used. For supported versions, check the SupportedApiVersion enum.