Projet

Général

Profil

0001-WIP-manager-keep-querystring-while-performing-user-a.patch

Paul Marillonnet, 12 décembre 2018 12:03

Télécharger (2,46 ko)

Voir les différences:

Subject: [PATCH] WIP manager: keep querystring while performing user add
 (#28897)

 src/authentic2/manager/user_views.py |  5 ++++-
 tests/test_manager.py                | 15 +++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)
src/authentic2/manager/user_views.py
23 23
from authentic2.a2_rbac.utils import get_default_ou
24 24
from authentic2 import hooks
25 25
from django_rbac.utils import get_role_model, get_role_parenting_model, get_ou_model
26
from urlparse import urlparse
26 27

  
27 28

  
28 29
from .views import BaseTableView, BaseAddView, \
......
129 130
        return fields
130 131

  
131 132
    def get_success_url(self):
133
        querystring = urlparse(self.request.get_full_path()).query
134
        reversed_url = reverse('a2-manager-user-detail', kwargs={'pk': self.object.pk})
132 135
        return self.request.POST.get('next_url') or \
133
                reverse('a2-manager-user-detail', kwargs={'pk': self.object.pk})
136
            '{}?{}'.format(reversed_url, querystring)
134 137

  
135 138
    def get_context_data(self, **kwargs):
136 139
        context = super(UserAddView, self).get_context_data(**kwargs)
tests/test_manager.py
780 780
    form.set('email', 'jd') # erroneous
781 781
    form.set('password1', 'notvalid') # erroneous
782 782
    assert '<input type="hidden" name="next_url" value="%s">' % next_url in form.submit().body
783

  
784

  
785
def test_manager_add_user_querystring(superuser_or_admin, app, ou1):
786
    querystring = u'stay_here=true'
787
    url = u'/manage/users/%s/add/?%s' % (ou1.pk, querystring)
788
    login(app, superuser_or_admin, '/manage/')
789
    response = app.get(url)
790
    form = response.form
791
    form.set('first_name', 'John')
792
    form.set('last_name', 'Doe')
793
    form.set('email', 'john.doe@gmail.com')
794
    form.set('password1', 'ABcd1234')
795
    form.set('password2', 'ABcd1234')
796

  
797
    assert querystring in form.submit().location
783
-