From 0e3b0d36d80d0fb2439094ff37ec9001b442b239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Jaussoin?= Date: Mon, 6 Oct 2025 11:43:52 +0200 Subject: [PATCH] Fix FLEXIAPI-397 Fix Carddav Spaces creation and CommaList validation --- CHANGELOG.md | 1 + .../Controllers/Admin/Space/CardDavServerController.php | 8 ++++---- flexiapi/app/Rules/CommaList.php | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca4f6f4..df33bd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ v2.1 - Fix FLEXIAPI-392 Fix the recover_by_code view and use the account space object - Fix FLEXIAPI-395 Remove config()->set('app.sip_domain') and directly use the correct domain - Fix FLEXIAPI-393 Autofill the digits when pasting a code +- Fix FLEXIAPI-397 Fix Carddav Spaces creation and CommaList validation v2.0 ---- diff --git a/flexiapi/app/Http/Controllers/Admin/Space/CardDavServerController.php b/flexiapi/app/Http/Controllers/Admin/Space/CardDavServerController.php index 26257b8..7ed808e 100644 --- a/flexiapi/app/Http/Controllers/Admin/Space/CardDavServerController.php +++ b/flexiapi/app/Http/Controllers/Admin/Space/CardDavServerController.php @@ -19,16 +19,16 @@ class CardDavServerController extends Controller ]); } - public function store(CardDavServer $request) + public function store(CardDavServer $request, Space $space) { $carddavServer = new SpaceCardDavServer; - $carddavServer->space_id = $request->space->id; + $carddavServer->space_id = $space->id; $carddavServer->fill($request->validated()); $carddavServer->enabled = getRequestBoolean($request, 'enabled'); $carddavServer->use_exact_match_policy = getRequestBoolean($request, 'use_exact_match_policy'); $carddavServer->save(); - return redirect()->route('admin.spaces.integration', $request->space); + return redirect()->route('admin.spaces.integration', $space); } public function edit(Space $space, int $carddavServerId) @@ -47,7 +47,7 @@ class CardDavServerController extends Controller $carddavServer->use_exact_match_policy = getRequestBoolean($request, 'use_exact_match_policy'); $carddavServer->save(); - return redirect()->route('admin.spaces.integration', $request->space); + return redirect()->route('admin.spaces.integration', $space); } public function delete(Space $space, int $carddavServerId) diff --git a/flexiapi/app/Rules/CommaList.php b/flexiapi/app/Rules/CommaList.php index e01a0c5..16cdb68 100644 --- a/flexiapi/app/Rules/CommaList.php +++ b/flexiapi/app/Rules/CommaList.php @@ -9,13 +9,13 @@ class CommaList implements Rule { public function passes($attribute, $value) { - preg_match('/^(\w+),(\w)*/', $value, $matches); + preg_match_all('/[^, ]+/', $value, $matches); - return $value == null || (!empty($matches) && $matches[0] == $value); + return $value == null || (!empty($matches) && (implode(',', $matches[0]) == $value)); } public function message() { - return 'The :attribute should be null or contain a list of words separated by commas'; + return 'The :attribute should be null or contain a list of words separated by commas without spaces'; } }