[pmg-devel] [PATCH pmg-gui 1/1] fix #2632: use alternative api call for user black/whitelist

Dominik Csapak d.csapak at proxmox.com
Wed Mar 11 11:52:32 CET 2020


On 3/11/20 11:46 AM, Thomas Lamprecht wrote:
> On 3/9/20 12:18 PM, Dominik Csapak wrote:
>> which expects the entry as parameter instead of part of the path
>> this allows all special characters to be included in the entry
>>
>> in the url, some characters were problematic (e.g. '/') and not properly
>> handled by the api in the backend
>>
>> we use Ext.apply (which copies the entries) here instead of setting
>> the value in 'params', since we get a reference to the proxy parameters
>> and do not want to change those, else we would overwrite them for all
>> subsequent api calls, like the reload of the list
>>
>> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
>> ---
>>   js/UserBlackWhiteList.js | 10 +++++-----
>>   1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/js/UserBlackWhiteList.js b/js/UserBlackWhiteList.js
>> index c103d54..23c4fa4 100644
>> --- a/js/UserBlackWhiteList.js
>> +++ b/js/UserBlackWhiteList.js
>> @@ -73,11 +73,11 @@ Ext.define('PMG.UserBlackWhiteList', {
>>   
>>   	    var url = '/quarantine/' + me.listname + '/';
>>   
>> -	    url += records.map(function(rec) {
>> -		return encodeURIComponent(rec.getId());
>> -	    }).join(',');
>> -
>> -	    var params = me.getStore().getProxy().getExtraParams() || {};
>> +	    let params = Ext.apply({
>> +		    address: records.map((rec) => rec.getId()).join(',')
>> +		},
>> +		me.getStore().getProxy().getExtraParams()
>> +	    );
>>   
> 
> Hmm, OK but as expressed it was slightly confusing to me.. if (theoretically) extraParams
> has an "address" member we would also override ours here (apply vs. applyIf)
> 
> maybe we could go for
> 
> let params = me.getStore().getProxy().getExtraParams() || {};
> params.address = records.map((rec) => rec.getId()).join(',');

that is exactly what does not work because
params is now a reference to the Extraparams of the proxy (which
we do not want to modify)

> 
> or
> 
> let params = {
>      address: records.map((rec) => rec.getId()).join(','),
> };
> Ext.applyIf(params, me.getStore().getProxy().getExtraParams());

yeah this is better

> 
> 
> Either way, IMO the distiction between the extra parameters and the assembly of
> the always explicit "address" parameter helps me to read and understand the code
> slightly faster, independent of which way it's expressed.
> 
> Rather a nit though, code sematic looks OK as is.
> 
>>   	    Proxmox.Utils.API2Request({
>>   		url: url + '?' + Ext.Object.toQueryString(params),
>>
> 




More information about the pmg-devel mailing list