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 if ($this->getClientVersion() <= 0.2) {
40 // old way sending config as serialized array
41 $config = unserialize($config['config']);
43 $config = json_decode($config['config'], true);
48 $component_type = $this->Request->contains('component_type') ? $this->Request['component_type'] : null;
49 $resource_type = $this->Request->contains('resource_type') ? $this->Request['resource_type'] : null;
50 $resource_name = $this->Request->contains('resource_name') ? $this->Request['resource_name'] : null;
52 $result = $this->getModule('bacula_setting')->setConfig($config, $component_type, $resource_type, $resource_name);
53 if ($result['save_result'] === true) {
54 $this->output = BaculaConfigError::MSG_ERROR_NO_ERRORS;
55 $this->error = BaculaConfigError::ERROR_NO_ERRORS;
56 } else if ($result['is_valid'] === false) {
57 $this->output = BaculaConfigError::MSG_ERROR_CONFIG_VALIDATION_ERROR . print_r($result['result'], true);
58 $this->error = BaculaConfigError::ERROR_CONFIG_VALIDATION_ERROR;
60 $this->output = BaculaConfigError::MSG_ERROR_WRITE_TO_CONFIG_ERROR . print_r($result['result'], true);
61 $this->error = BaculaConfigError::ERROR_WRITE_TO_CONFIG_ERROR;