0001-WIP-manager-keep-querystring-while-performing-user-a.patch
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 |
- |