Projet

Général

Profil

0001-user-post-creation-redirect-based-on-next-keyword-28.patch

Paul Marillonnet, 12 décembre 2018 15:00

Télécharger (4,34 ko)

Voir les différences:

Subject: [PATCH] user post-creation redirect based on 'next' keyword (#28931)

 .../templates/authentic2/manager/user_add.html     |  2 +-
 src/authentic2/manager/user_views.py               |  6 +++---
 tests/test_manager.py                              | 14 +++++++-------
 3 files changed, 11 insertions(+), 11 deletions(-)
src/authentic2/manager/templates/authentic2/manager/user_add.html
7 7

  
8 8
{% block hidden_inputs %}
9 9
  {{ block.super }}
10
  {% if next_url %}<input type="hidden" name="next_url" value="{{ next_url }}">{% endif %}
10
  {% if next %}<input type="hidden" name="next" value="{{ next }}">{% endif %}
11 11
{% endblock %}
12 12

  
13 13
{% block breadcrumb %}
src/authentic2/manager/user_views.py
129 129
        return fields
130 130

  
131 131
    def get_success_url(self):
132
        return self.request.POST.get('next_url') or \
132
        return self.request.POST.get('next') or \
133 133
                reverse('a2-manager-user-detail', kwargs={'pk': self.object.pk})
134 134

  
135 135
    def get_context_data(self, **kwargs):
136 136
        context = super(UserAddView, self).get_context_data(**kwargs)
137 137
        context['cancel_url'] = '../..'
138 138
        context['ou'] = self.ou
139
        if hasattr(self.request, 'GET') and 'next_url' in self.request.GET:
140
            context['next_url'] = self.request.GET['next_url']
139
        if hasattr(self.request, 'GET') and 'next' in self.request.GET:
140
            context['next'] = self.request.GET['next']
141 141
        return context
142 142

  
143 143
    def form_valid(self, form):
tests/test_manager.py
741 741
    assert response.request.query_string == 'next=/manage/'
742 742

  
743 743

  
744
def test_manager_create_user_next_url(superuser_or_admin, app, ou1):
744
def test_manager_create_user_next(superuser_or_admin, app, ou1):
745 745
    next_url = u'https://example.nowhere.null/'
746
    url = u'/manage/users/%s/add/?next_url=%s' % (ou1.pk, next_url)
746
    url = u'/manage/users/%s/add/?next=%s' % (ou1.pk, next_url)
747 747
    login(app, superuser_or_admin, '/manage/')
748 748
    response = app.get(url)
749 749
    form = response.form
......
755 755
    assert form.submit().location == next_url
756 756

  
757 757

  
758
def test_manager_create_user_next_url_form_cancelation(superuser_or_admin, app, ou1):
758
def test_manager_create_user_next_form_cancelation(superuser_or_admin, app, ou1):
759 759
    next_url = u'https://example.nowhere.null/'
760
    url = u'/manage/users/%s/add/?next_url=%s' % (ou1.pk, next_url)
760
    url = u'/manage/users/%s/add/?next=%s' % (ou1.pk, next_url)
761 761
    login(app, superuser_or_admin, '/manage/')
762 762
    response = app.get(url)
763 763
    form = response.form
......
769 769
    assert form.submit('cancel').location == next_url
770 770

  
771 771

  
772
def test_manager_create_user_next_url_form_error(superuser_or_admin, app, ou1):
772
def test_manager_create_user_next_form_error(superuser_or_admin, app, ou1):
773 773
    next_url = u'https://example.nowhere.null/'
774
    url = u'/manage/users/%s/add/?next_url=%s' % (ou1.pk, next_url)
774
    url = u'/manage/users/%s/add/?next=%s' % (ou1.pk, next_url)
775 775
    login(app, superuser_or_admin, '/manage/')
776 776
    response = app.get(url)
777 777
    form = response.form
......
779 779
    form.set('last_name', 'Doe')
780 780
    form.set('email', 'jd') # erroneous
781 781
    form.set('password1', 'notvalid') # erroneous
782
    assert '<input type="hidden" name="next_url" value="%s">' % next_url in form.submit().body
782
    assert '<input type="hidden" name="next" value="%s">' % next_url in form.submit().body
783
-