Projet

Général

Profil

0001-utils-ignore-URL-parameters-with-a-None-value-29242.patch

Benjamin Dauvergne, 07 janvier 2019 12:47

Télécharger (1,81 ko)

Voir les différences:

Subject: [PATCH 1/2] utils: ignore URL parameters with a None value (#29242)

 src/authentic2/utils.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
src/authentic2/utils.py
264 264
       If you pass a request you can ask to keep params from it, exclude some
265 265
       of them or include only a subset of them.
266 266
       You can set parameters or append to existing one.
267
       If a parameter value is None, it clears the parameter from the URL, if
268
       the parameter was appended, it's just ignored.
267 269
    '''
268 270
    if resolve:
269 271
        url = resolve_url(to, *args, **kwargs)
......
284 286
            url_params.setlist(key, request.GET.getlist(key))
285 287
    if params:
286 288
        for key, value in params.iteritems():
287
            if isinstance(value, (tuple, list)):
289
            if value is None:
290
                url_params.pop(key, None)
291
            elif isinstance(value, (tuple, list)):
288 292
                url_params.setlist(key, value)
289 293
            else:
290 294
                url_params[key] = value
291 295
    if append:
292 296
        for key, value in append.iteritems():
293
            if isinstance(value, (tuple, list)):
297
            if value is None:
298
                continue
299
            elif isinstance(value, (tuple, list)):
294 300
                url_params.extend({key: value})
295 301
            else:
296 302
                url_params.appendlist(key, value)
297
-