]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/protected/API/Pages/API/Config.php
0ecdb0c842a330899f489ce633707aa37a401dd0
[bacula/bacula] / gui / baculum / protected / API / Pages / API / Config.php
1 <?php
2 /*
3  * Bacula(R) - The Network Backup Solution
4  * Baculum   - Bacula web interface
5  *
6  * Copyright (C) 2013-2016 Kern Sibbald
7  *
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.
11  *
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.
16  *
17  * This notice must be preserved when any source code is
18  * conveyed and/or propagated.
19  *
20  * Bacula(R) is a registered trademark of Kern Sibbald.
21  */
22
23 Prado::using('Application.Common.Class.Errors');
24
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;
30
31                 $config = $this->getModule('bacula_setting')->getConfig($component_type, $resource_type, $resource_name);
32                 $this->output = $config['output'];
33                 $this->error = $config['exitcode'];
34         }
35
36         public function set($id, $params) {
37                 $config = (array)$params;
38                 if (array_key_exists('config', $config)) {
39                         $config = json_decode($config['config'], true);
40                 } else {
41                         $config = array();
42                 }
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;
46
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;
54
55                 } else {
56                         $this->output = BaculaConfigError::MSG_ERROR_WRITE_TO_CONFIG_ERROR . print_r($result['result'], true);
57                         $this->error = BaculaConfigError::ERROR_WRITE_TO_CONFIG_ERROR;
58                 }
59         }
60 }