user_settings)) { foreach ($this->user_settings as $i => $setting) { $settingsByName[$setting->name] = $setting; } } return $settingsByName; } protected function _getUserSettingsByNameWithFallback() { if (!isset($this->SettingsProvider)) { $this->SettingsProvider = new UserSettingsProvider(); } $settingsByNameWithFallback = []; if (!empty($this->user_settings)) { foreach ($this->user_settings as $i => $setting) { $settingsByNameWithFallback[$setting->name] = $setting->value; } } $settingsProvider = $this->SettingsProvider->getSettingsConfiguration($settingsByNameWithFallback); $settingsFlattened = $this->SettingsProvider->flattenSettingsConfiguration($settingsProvider); return $settingsFlattened; } protected function _setPassword(string $password) : ?string { if (strlen($password) > 0) { return (new DefaultPasswordHasher())->hash($password); } } 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; } }