From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 5CD0D92CF1 for ; Wed, 15 Feb 2023 09:29:48 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 3D2D519C63 for ; Wed, 15 Feb 2023 09:29:48 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 15 Feb 2023 09:29:47 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 2777047234 for ; Wed, 15 Feb 2023 09:29:47 +0100 (CET) Message-ID: <56ef8846-5387-e295-6cb8-25051c4f33a9@proxmox.com> Date: Wed, 15 Feb 2023 09:29:45 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Content-Language: en-US To: Lukas Wagner References: <20230214133508.760282-1-l.wagner@proxmox.com> Cc: pve-devel@lists.proxmox.com From: Friedrich Weber In-Reply-To: <20230214133508.760282-1-l.wagner@proxmox.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.517 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment NICE_REPLY_A -0.35 Looks like a legit reply (A) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pve-devel] [PATCH manager] ui: ldap: fix `Parameter verification error` X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Feb 2023 08:29:48 -0000 Can confirm this patch fixes the issue, so Tested-by: Friedrich Weber Steps to reproduce: 1) Create LDAP realm with default sync settings 2) Edit LDAP realm, go to sync settings tab, enter values in all text boxes except one (e.g. all except "Group filter") 3) Click OK On current master, this shows "Parameter verification failed. (400) / delete: invalid format - invalid configuration ID 'group_filter,sync-defaults-options'". With this patch, the error does not appear, and the settings are saved properly. On 14/02/2023 14:35, Lukas Wagner wrote: > ...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 > Signed-off-by: Lukas Wagner > --- > Same fix as in my LDAP widget-toolkit patch series: > https://lists.proxmox.com/pipermail/pbs-devel/2023-February/005952.html > > www/manager6/dc/AuthEditLDAP.js | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/www/manager6/dc/AuthEditLDAP.js b/www/manager6/dc/AuthEditLDAP.js > index 96ef77b9..2ce16e58 100644 > --- a/www/manager6/dc/AuthEditLDAP.js > +++ b/www/manager6/dc/AuthEditLDAP.js > @@ -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 > }