getUser()->isAdmin()) { throw new Forbidden(); } } public function actionRead($params, $data) { if (empty($params['scope']) || empty($params['name'])) { throw new BadRequest(); } $data = $this->getContainer()->get('fieldManager')->read($params['name'], $params['scope']); if (!isset($data)) { throw new BadRequest(); } return $data; } public function postActionCreate($params, $data) { if (empty($params['scope']) || empty($data['name'])) { throw new BadRequest(); } $fieldManager = $this->getContainer()->get('fieldManager'); $fieldManager->create($data['name'], $data, $params['scope']); try { $this->getContainer()->get('dataManager')->rebuild($params['scope']); } catch (Error $e) { $fieldManager->delete($data['name'], $params['scope']); throw new Error($e->getMessage()); } return $fieldManager->read($data['name'], $params['scope']); } public function putActionUpdate($params, $data) { if (empty($params['scope']) || empty($params['name'])) { throw new BadRequest(); } $fieldManager = $this->getContainer()->get('fieldManager'); $fieldManager->update($params['name'], $data, $params['scope']); if ($fieldManager->isChanged()) { $this->getContainer()->get('dataManager')->rebuild($params['scope']); } else { $this->getContainer()->get('dataManager')->clearCache(); } return $fieldManager->read($params['name'], $params['scope']); } public function deleteActionDelete($params, $data) { if (empty($params['scope']) || empty($params['name'])) { throw new BadRequest(); } $res = $this->getContainer()->get('fieldManager')->delete($params['name'], $params['scope']); $this->getContainer()->get('dataManager')->rebuildMetadata(); return $res; } public function postActionResetToDefault($params, $data) { if (empty($data['scope']) || empty($data['name'])) { throw new BadRequest(); } $this->getContainer()->get('fieldManager')->resetToDefault($data['name'], $data['scope']); $this->getContainer()->get('dataManager')->rebuildMetadata(); return true; } }