Projet

Général

Profil

0001-views-allow-passing-arbitrary-GET-params-to-mellon.patch

Valentin Deniaud, 23 avril 2019 11:41

Télécharger (1,56 ko)

Voir les différences:

Subject: [PATCH 1/4] views: allow passing arbitrary GET params to mellon

 chrono/views.py | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
chrono/views.py
19 19
from django.contrib.auth import views as auth_views
20 20
from django.http import HttpResponseRedirect
21 21
from django.shortcuts import resolve_url
22
from django.utils.six.moves.urllib.parse import quote
22
from django.utils.six.moves.urllib.parse import quote, urlparse, urlunparse
23 23

  
24 24
if 'mellon' in settings.INSTALLED_APPS:
25 25
    from mellon.utils import get_idps
......
29 29

  
30 30
def login(request, *args, **kwargs):
31 31
    if any(get_idps()):
32
        if not 'next' in request.GET:
33
            return HttpResponseRedirect(resolve_url('mellon_login'))
34
        return HttpResponseRedirect(resolve_url('mellon_login') + '?next='
35
                                    + quote(request.GET.get('next')))
32
        mellon_url = resolve_url('mellon_login')
33
        mellon_url_parts = urlparse(mellon_url)
34
        mellon_url_parts = mellon_url_parts._replace(
35
            query=request.GET.urlencode(safe='/'))
36
        return HttpResponseRedirect(urlunparse(mellon_url_parts))
36 37
    return auth_views.login(request, *args, **kwargs)
37 38

  
38 39
def logout(request, next_page=None):
39
-