From 7c405ae52298c814239af51e85498e39951bd87d Mon Sep 17 00:00:00 2001 From: Paul Marillonnet Date: Wed, 12 Dec 2018 16:35:40 +0100 Subject: [PATCH] manager: keep querystring while performing default ou user creation (#28897) --- src/authentic2/manager/user_views.py | 4 +++- tests/test_manager.py | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/authentic2/manager/user_views.py b/src/authentic2/manager/user_views.py index 65f13977..c277ec9f 100644 --- a/src/authentic2/manager/user_views.py +++ b/src/authentic2/manager/user_views.py @@ -132,6 +132,7 @@ class UserAddView(BaseAddView): return self.request.POST.get('next') or \ reverse('a2-manager-user-detail', kwargs={'pk': self.object.pk}) + def get_context_data(self, **kwargs): context = super(UserAddView, self).get_context_data(**kwargs) context['cancel_url'] = '../..' @@ -151,7 +152,8 @@ user_add = UserAddView.as_view() def user_add_default_ou(request): ou = get_default_ou() - return redirect(request, 'a2-manager-user-add', kwargs={'ou_pk': ou.id}) + return redirect(request, 'a2-manager-user-add', kwargs={'ou_pk': ou.id}, + keep_params=True) class UserDetailView(OtherActionsMixin, BaseDetailView): diff --git a/tests/test_manager.py b/tests/test_manager.py index 27c29ad9..2bab11c2 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -780,3 +780,12 @@ def test_manager_create_user_next_form_error(superuser_or_admin, app, ou1): form.set('email', 'jd') # erroneous form.set('password1', 'notvalid') # erroneous assert '' % next_url in form.submit().body + + +def test_manager_add_user_querystring(superuser_or_admin, app, ou1): + querystring = u'stay_here=true' + url = u'/manage/users/add/?%s' % querystring + login(app, superuser_or_admin, '/manage/') + response = app.get(url) + + assert querystring in response.location -- 2.20.0