From bc81cbf83eb23c103b44a5e942eccdb1054e92d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sat, 17 Nov 2018 16:16:02 +0100 Subject: [PATCH] manager: redirect users/add to user creation in default OU (#28106) --- src/authentic2/manager/urls.py | 2 ++ src/authentic2/manager/user_views.py | 5 +++++ tests/test_manager.py | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/src/authentic2/manager/urls.py b/src/authentic2/manager/urls.py index af4caca4..1893f471 100644 --- a/src/authentic2/manager/urls.py +++ b/src/authentic2/manager/urls.py @@ -21,6 +21,8 @@ urlpatterns = required( url(r'^users/$', user_views.users, name='a2-manager-users'), url(r'^users/export/(?Pcsv|json|html|ods)/$', user_views.users_export, name='a2-manager-users-export'), + url(r'^users/add/$', user_views.user_add_default_ou, + name='a2-manager-user-add-default-ou'), url(r'^users/(?P\d+)/add/$', user_views.user_add, name='a2-manager-user-add'), url(r'^users/(?P\d+)/$', user_views.user_detail, diff --git a/src/authentic2/manager/user_views.py b/src/authentic2/manager/user_views.py index 9e07edd9..8ab90829 100644 --- a/src/authentic2/manager/user_views.py +++ b/src/authentic2/manager/user_views.py @@ -146,6 +146,11 @@ class UserAddView(BaseAddView): 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}) + + class UserDetailView(OtherActionsMixin, BaseDetailView): model = get_user_model() fields = ['username', 'ou', 'first_name', 'last_name', 'email'] diff --git a/tests/test_manager.py b/tests/test_manager.py index f9ef9471..0da3489c 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -283,6 +283,11 @@ def test_manager_create_user(superuser_or_admin, app, settings): response = form.submit() assert 'Email already used' in response + # check redirect to default ou + url1 = reverse('a2-manager-user-add-default-ou') + url2 = reverse('a2-manager-user-add', kwargs={'ou_pk': get_default_ou().pk}) + resp = app.get(url1) + assert urlparse(resp['Location']).path == url2 def test_app_setting_login_url(app, settings): settings.A2_MANAGER_LOGIN_URL = '/other_login/' -- 2.19.1