From 62bda6fd3b709211f949d10027996563334a7410 Mon Sep 17 00:00:00 2001 From: mszulik <69617961+mszulik@users.noreply.github.com> Date: Wed, 4 Sep 2024 15:31:47 +0200 Subject: [PATCH] published configs won't have "web" middleware added (#36) --- .github/workflows/pullpreview.yml | 1 + CHANGELOG.md | 11 +++++++++++ amigor/composer.lock | 4 ++-- amigor/config/transmorpher.php | 8 ++++---- config/transmorpher.php | 8 ++++---- src/TransmorpherServiceProvider.php | 3 ++- 6 files changed, 24 insertions(+), 11 deletions(-) create mode 100644 CHANGELOG.md 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 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..959dbb9 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,11 @@ +# Release Notes + +## [v0.4.0](https://github.com/cybex-gmbh/laravel-transmorpher-client/compare/v0.3.0...v0.4.0) + +> [!WARNING] +> Breaking change! + +- 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 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..156e6db 100644 --- a/amigor/config/transmorpher.php +++ b/amigor/config/transmorpher.php @@ -3,10 +3,10 @@ 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' => [ -// 'auth' - ], + // 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. diff --git a/config/transmorpher.php b/config/transmorpher.php index 1fc3e82..07fbba0 100644 --- a/config/transmorpher.php +++ b/config/transmorpher.php @@ -3,10 +3,10 @@ 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' => [ - 'auth' - ], + // 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' => [ // 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 849c237..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(array_merge(['web'], config('transmorpher.routeMiddleware', [])))->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');