getConfig()->getData($this->getUser()->isAdmin()); $fieldDefs = $this->getMetadata()->get('entityDefs.Settings.fields'); foreach ($fieldDefs as $field => $d) { if ($d['type'] == 'password') { unset($data[$field]); } } return $data; } public function actionRead($params, $data) { return $this->getConfigData(); } public function actionUpdate($params, $data, $request) { return $this->actionPatch($params, $data, $request); } public function actionPatch($params, $data, $request) { if (!$this->getUser()->isAdmin()) { throw new Forbidden(); } if (!$request->isPut() && !$request->isPatch()) { throw new BadRequest(); } if (isset($data['useCache']) && $data['useCache'] != $this->getConfig()->get('useCache')) { $this->getContainer()->get('dataManager')->clearCache(); } $this->getConfig()->setData($data, $this->getUser()->isAdmin()); $result = $this->getConfig()->save(); if ($result === false) { throw new Error('Cannot save settings'); } /** Rebuild for Currency Settings * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ if (isset($data['baseCurrency']) || isset($data['currencyRates'])) { $this->getContainer()->get('dataManager')->rebuildDatabase(array()); } /** END Rebuild for Currency Settings * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ return $this->getConfigData(); } }