3 * Bacula(R) - The Network Backup Solution
4 * Baculum - Bacula web interface
6 * Copyright (C) 2013-2016 Kern Sibbald
8 * The main author of Baculum is Marcin Haba.
9 * The original author of Bacula is Kern Sibbald, with contributions
10 * from many others, a complete list can be found in the file AUTHORS.
12 * You may use this file and others of this release according to the
13 * license defined in the LICENSE file, which includes the Affero General
14 * Public License, v3.0 ("AGPLv3") and some additional permissions and
15 * terms pursuant to its AGPLv3 Section 7.
17 * This notice must be preserved when any source code is
18 * conveyed and/or propagated.
20 * Bacula(R) is a registered trademark of Kern Sibbald.
23 Prado::using('Application.Common.Class.Errors');
25 class Config extends BaculumAPIServer {
26 public function get() {
27 $component_type = $this->Request->contains('component_type') ? $this->Request['component_type'] : null;
28 $resource_type = $this->Request->contains('resource_type') ? $this->Request['resource_type'] : null;
29 $resource_name = $this->Request->contains('resource_name') ? $this->Request['resource_name'] : null;
31 $config = $this->getModule('bacula_setting')->getConfig($component_type, $resource_type, $resource_name);
32 $this->output = $config['output'];
33 $this->error = $config['exitcode'];
36 public function set($id, $params) {
37 $config = (array)$params;
38 if (array_key_exists('config', $config)) {
39 $config = json_decode($config['config'], true);
43 $component_type = $this->Request->contains('component_type') ? $this->Request['component_type'] : null;
44 $resource_type = $this->Request->contains('resource_type') ? $this->Request['resource_type'] : null;
45 $resource_name = $this->Request->contains('resource_name') ? $this->Request['resource_name'] : null;
47 $result = $this->getModule('bacula_setting')->setConfig($config, $component_type, $resource_type, $resource_name);
48 if ($result['save_result'] === true) {
49 $this->output = BaculaConfigError::MSG_ERROR_NO_ERRORS;
50 $this->error = BaculaConfigError::ERROR_NO_ERRORS;
51 } else if ($result['is_valid'] === false) {
52 $this->output = BaculaConfigError::MSG_ERROR_CONFIG_VALIDATION_ERROR . print_r($result['result'], true);
53 $this->error = BaculaConfigError::ERROR_CONFIG_VALIDATION_ERROR;
56 $this->output = BaculaConfigError::MSG_ERROR_WRITE_TO_CONFIG_ERROR . print_r($result['result'], true);
57 $this->error = BaculaConfigError::ERROR_WRITE_TO_CONFIG_ERROR;