diff --git a/src/authentic2/manager/role_views.py b/src/authentic2/manager/role_views.py index 595e2b8d7..d7a54c5a6 100644 --- a/src/authentic2/manager/role_views.py +++ b/src/authentic2/manager/role_views.py @@ -520,6 +520,13 @@ class RolesImportView(views.PermissionMixin, views.TitleMixin, views.MediaMixin, template_name = 'authentic2/manager/import_form.html' title = _('Roles Import') + def get_initial(self): + initial = super().get_initial() + search_ou = self.request.GET.get('search-ou') + if search_ou: + initial['ou'] = search_ou + return initial + def post(self, request, *args, **kwargs): if not self.can_add: raise PermissionDenied diff --git a/src/authentic2/manager/templates/authentic2/manager/roles.html b/src/authentic2/manager/templates/authentic2/manager/roles.html index 15a2acdd4..f43a052d7 100644 --- a/src/authentic2/manager/templates/authentic2/manager/roles.html +++ b/src/authentic2/manager/templates/authentic2/manager/roles.html @@ -15,7 +15,7 @@ diff --git a/tests/test_role_manager.py b/tests/test_role_manager.py index b71435de8..6afacc66c 100644 --- a/tests/test_role_manager.py +++ b/tests/test_role_manager.py @@ -161,6 +161,7 @@ def test_manager_role_import(app, admin, ou1, role_ou1, ou2, role_ou2): "slug": "should_not_exist", "name": "should_not_exist", }] + resp = app.get('/manage/roles/') # unselect ou1 resp = resp.click('Import') resp.form['site_json'] = Upload('export.json', json.dumps(export).encode(), 'application/json') resp = resp.form.submit().follow() @@ -188,3 +189,11 @@ def test_manager_role_import_single_ou(app, admin, simple_role): imported_role = Role.objects.get(slug=simple_role.slug) assert imported_role.ou == simple_role.ou + + +def test_manager_role_import_selected_ou(app, admin, ou1, ou2): + response = login(app, admin, 'a2-manager-roles') + response.form.set('search-ou', ou2.pk) + response = response.form.submit() + response = response.click('Import') + assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'OU2'