diff --git a/ckan/controllers/user.py b/ckan/controllers/user.py index 110c27841be..f70eab11b2c 100644 --- a/ckan/controllers/user.py +++ b/ckan/controllers/user.py @@ -180,7 +180,7 @@ def new(self, data=None, errors=None, error_summary=None): if context['save'] and not data: return self._save_new(context) - if c.user and not data: + if c.user and not data and not authz.is_sysadmin(c.user): # #1799 Don't offer the registration form if already logged in return render('user/logout_first.html') diff --git a/ckan/tests/controllers/test_user.py b/ckan/tests/controllers/test_user.py index 5929dc528d6..624a23451d1 100644 --- a/ckan/tests/controllers/test_user.py +++ b/ckan/tests/controllers/test_user.py @@ -224,6 +224,16 @@ def test_user_edit_not_logged_in(self): status=403 ) + def test_create_user_as_sysadmin(self): + sysadmin = factories.Sysadmin() + app = self._get_test_app() + env = {'REMOTE_USER': sysadmin['name'].encode('ascii')} + response = app.get( + url=url_for(controller='user', action='register'), + extra_environ=env, + ) + assert "user-register-form" in response.forms + def test_edit_user(self): user = factories.User(password='pass') app = self._get_test_app()