]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
baculum: Add capability to use many ACL Console directives in one config resource
authorMarcin Haba <marcin.haba@bacula.pl>
Tue, 23 Apr 2019 04:04:33 +0000 (06:04 +0200)
committerMarcin Haba <marcin.haba@bacula.pl>
Tue, 23 Apr 2019 04:04:33 +0000 (06:04 +0200)
gui/baculum/protected/Web/Data/data_desc.json
gui/baculum/protected/Web/Portlets/BaculaConfigDirectives.php

index 0e5142530b12d12012640c6b58821bf34a97d03d..851e3a00b0bbaf285f3dccc4d2cf8d9d5e504a90 100644 (file)
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "ClientAcl": {
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "StorageAcl": {
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "ScheduleAcl": {
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "RunAcl": {
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "PoolAcl": {
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "CommandAcl": {
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "FilesetAcl": {
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "CatalogAcl": {
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "WhereAcl": {
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "PluginOptionsAcl": {
                                "Required": false,
                                "ValueType": "acl",
                                "DefaultValue": 0,
-                               "FieldType": "TextBox"
+                               "FieldType": "MultiTextBox"
                        },
                        "TlsAuthenticate": {
                                "Required": false,
index 274ae3d588567834ea1a78053466055946bae758..3e768e1c75f16764c7bca033223a138e09e91221 100644 (file)
@@ -61,7 +61,8 @@ class BaculaConfigDirectives extends DirectiveListTemplate {
                'DirectiveFileSet',
                'DirectiveSchedule',
                'DirectiveMessages',
-               'DirectiveRunscript'
+               'DirectiveRunscript',
+               'DirectiveMultiTextBox'
        );
 
        private $field_multple_values = array(
@@ -298,6 +299,11 @@ class BaculaConfigDirectives extends DirectiveListTemplate {
                                                $directives[$directive_name] = $directive_value[$directive_name];
                                        } elseif ($this->directive_list_types[$i] === 'DirectiveSchedule') {
                                                $directives[$directive_name] = $directive_value[$directive_name];
+                                       } elseif ($this->directive_list_types[$i] === 'DirectiveMultiTextBox') {
+                                               if (key_exists($directive_name, $directives)) {
+                                                       $directive_value = array_merge($directives[$directive_name], $directive_value);
+                                               }
+                                               $directives[$directive_name] = array_filter($directive_value);
                                        } elseif (array_key_exists($directive_name, $directive_value)) {
                                                $directives[$directive_name][] = $directive_value[$directive_name];
                                        } elseif (count($directive_value) > 0) {