]> git.proxmox.com Git - pve-manager-legacy.git/commitdiff
ui: ldap: fix `Parameter verification error`
authorLukas Wagner <l.wagner@proxmox.com>
Tue, 14 Feb 2023 13:35:08 +0000 (14:35 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 15 Feb 2023 09:12:51 +0000 (10:12 +0100)
...when editing LDAP realm sync settings and only a single property is
empty and thus to be deleted (e.g. values.delete = "filter").

If `delete` is a simple string and not an array,
`PVE.Utils.delete_if_default` simply creates a comma-separated list,
(e.g. value.delete = "filter,sync-attributes").

When the properties from the other panel are evaluated and added to the
the `delete` property, comma-separated list format is not considered,
leading to a final value for `delete` that could look like this:
  value.delete = {
    "server2",
    "comment",
    "filter,sync-attributes"
  }

This commit fixes this by splitting `delete` in case it is a string.

Reported-by: Friedrich Weber <f.weber@proxmox.com>
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Friedrich Weber <f.weber@proxmox.com>
www/manager6/dc/AuthEditLDAP.js

index 96ef77b95faa2fcf232f20d6287211f5295c58b1..2ce16e58c008314f99afa7f4dd7325ca482a8500 100644 (file)
@@ -139,6 +139,11 @@ Ext.define('PVE.panel.LDAPSyncInputPanel', {
        PVE.Utils.delete_if_default(values, 'sync-defaults-options');
        PVE.Utils.delete_if_default(values, 'sync_attributes');
 
+       // Force values.delete to be an array
+       if (typeof values.delete === 'string') {
+          values.delete = values.delete.split(',');
+       }
+
        if (me.isCreate) {
            delete values.delete; // on create we cannot delete values
        }