From 72437ffb1c3cc2d5c89274ec889a8794e73d4473 Mon Sep 17 00:00:00 2001 From: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com> Date: Tue, 11 Aug 2026 18:09:52 +0200 Subject: [PATCH] fix(user_ldap): restore OCS API functionality for configID = '' The default in the past for a config prefix was '', changed to a default of s01 some year back. A refactor of the routes led to dropping the possibility of passing an empty config ID, breaking the administration interface for all users affected. Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com> --- apps/user_ldap/lib/Controller/ConfigAPIController.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/user_ldap/lib/Controller/ConfigAPIController.php b/apps/user_ldap/lib/Controller/ConfigAPIController.php index 96ee62f6707f1..56dde01b3c71d 100644 --- a/apps/user_ldap/lib/Controller/ConfigAPIController.php +++ b/apps/user_ldap/lib/Controller/ConfigAPIController.php @@ -72,7 +72,7 @@ public function create() { * 200: Config deleted successfully */ #[AuthorizedAdminSetting(settings: Admin::class)] - #[ApiRoute(verb: 'DELETE', url: '/api/v1/config/{configID}')] + #[ApiRoute(verb: 'DELETE', url: '/api/v1/config/{configID}', requirements: ['configID' => '.*'], defaults: ['configID' => ''])] public function delete($configID) { try { $this->ensureConfigIDExists($configID); @@ -102,7 +102,7 @@ public function delete($configID) { * 200: Config returned */ #[AuthorizedAdminSetting(settings: Admin::class)] - #[ApiRoute(verb: 'PUT', url: '/api/v1/config/{configID}')] + #[ApiRoute(verb: 'PUT', url: '/api/v1/config/{configID}', requirements: ['configID' => '.*'], defaults: ['configID' => ''])] public function modify($configID, $configData) { try { $this->ensureConfigIDExists($configID); @@ -207,7 +207,7 @@ public function modify($configID, $configData) { * 200: Config returned */ #[AuthorizedAdminSetting(settings: Admin::class)] - #[ApiRoute(verb: 'GET', url: '/api/v1/config/{configID}')] + #[ApiRoute(verb: 'GET', url: '/api/v1/config/{configID}', requirements: ['configID' => '.*'], defaults: ['configID' => ''])] public function show($configID, $showPassword = false) { try { $this->ensureConfigIDExists($configID); @@ -244,7 +244,7 @@ public function show($configID, $showPassword = false) { * 200: Test was run and results are returned */ #[AuthorizedAdminSetting(settings: Admin::class)] - #[ApiRoute(verb: 'POST', url: '/api/v1/config/{configID}/test')] + #[ApiRoute(verb: 'POST', url: '/api/v1/config/{configID}/test', requirements: ['configID' => '.*'], defaults: ['configID' => ''])] public function testConfiguration(string $configID) { try { $this->ensureConfigIDExists($configID); @@ -312,7 +312,7 @@ public function testConfiguration(string $configID) { * 200: Config was copied, new configID was returned */ #[AuthorizedAdminSetting(settings: Admin::class)] - #[ApiRoute(verb: 'POST', url: '/api/v1/config/{configID}/copy')] + #[ApiRoute(verb: 'POST', url: '/api/v1/config/{configID}/copy', requirements: ['configID' => '.*'], defaults: ['configID' => ''])] public function copyConfiguration(string $configID) { try { $this->ensureConfigIDExists($configID);