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) { return $this->actionPatch($params, $data); } public function actionPatch($params, $data) { if (!$this->getUser()->isAdmin()) { throw new Forbidden(); } 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 */ if (isset($data['baseCurrency']) || isset($data['currencyRates'])) { $this->getContainer()->get('dataManager')->rebuildDatabase(array()); } /** END Rebuild for Currency Settings */ return $this->getConfigData(); } }