From 7675e27e90286d0223aa469d0bdfde1ef70bb02d Mon Sep 17 00:00:00 2001 From: iglocska Date: Fri, 4 Nov 2022 09:59:48 +0100 Subject: [PATCH] chg: [user index] API refactored --- src/Model/Entity/User.php | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/Model/Entity/User.php b/src/Model/Entity/User.php index cf8fb6e..5f39720 100644 --- a/src/Model/Entity/User.php +++ b/src/Model/Entity/User.php @@ -11,7 +11,7 @@ use App\Settings\SettingsProvider\UserSettingsProvider; class User extends AppModel { - protected $_hidden = ['password', 'confirm_password']; + protected $_hidden = ['password', 'confirm_password', 'user_settings_by_name', 'user_settings_by_name_with_fallback', 'SettingsProvider', 'user_settings']; protected $_virtual = ['user_settings_by_name', 'user_settings_by_name_with_fallback']; @@ -51,11 +51,36 @@ class User extends AppModel public function rearrangeForAPI(): void { + if (!empty($this->tags)) { + $this->tags = $this->rearrangeTags($this->tags); + } if (!empty($this->meta_fields)) { $this->rearrangeMetaFields(); } if (!empty($this->MetaTemplates)) { unset($this->MetaTemplates); } + if (!empty($this->user_settings_by_name)) { + $this->rearrangeUserSettings(); + } + $this->rearrangeSimplify(['organisation', 'individual']); + } + + private function rearrangeUserSettings() + { + $settings = []; + if (isset($this->user_settings_by_name)) { + foreach ($this->user_settings_by_name as $setting => $data) { + $settings[$setting] = $data['value']; + } + } + if (isset($this->user_settings_by_name_with_fallback)) { + foreach ($this->user_settings_by_name_with_fallback as $setting => $data) { + if (!isset($settings[$setting])) { + $settings[$setting] = $data['value']; + } + } + } + $this->settings = $settings; } }