From 883f0eb44ab7afc0d49f2ae00730ec0bb5b384cc Mon Sep 17 00:00:00 2001 From: Sami Mokaddem Date: Tue, 5 Sep 2023 10:46:25 +0200 Subject: [PATCH] fix: [userSettings:add] Aded check to avoid duplicated setting for the same user --- src/Controller/UserSettingsController.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Controller/UserSettingsController.php b/src/Controller/UserSettingsController.php index 6bcd197..29185a6 100644 --- a/src/Controller/UserSettingsController.php +++ b/src/Controller/UserSettingsController.php @@ -70,6 +70,12 @@ class UserSettingsController extends AppController $this->CRUD->add([ 'redirect' => ['action' => 'index', $user_id], 'beforeSave' => function ($data) use ($currentUser) { + $fakeUser = new \stdClass(); + $fakeUser->id = $data['user_id']; + $existingSetting = $this->UserSettings->getSettingByName($fakeUser, $data['name']); + if (!empty($existingSetting)) { + throw new MethodNotAllowedException(__('You cannot create a setting that already exists for the given user.')); + } if (empty($currentUser['role']['perm_admin'])) { $data['user_id'] = $currentUser->id; }