mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-13 13:03:01 +00:00
raise 400 when failing to create users
This commit is contained in:
@@ -88,8 +88,10 @@ class UserAPIHandler(BaseUserHandler):
|
|||||||
try:
|
try:
|
||||||
self.authenticator.add_user(user)
|
self.authenticator.add_user(user)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
self.log.error("Failed to create user: %s" % name, exc_info=True)
|
||||||
self.db.delete(user)
|
self.db.delete(user)
|
||||||
self.db.commit()
|
self.db.commit()
|
||||||
|
raise web.HTTPError(400, "Failed to create user: %s" % name)
|
||||||
|
|
||||||
self.write(json.dumps(self.user_model(user)))
|
self.write(json.dumps(self.user_model(user)))
|
||||||
self.set_status(201)
|
self.set_status(201)
|
||||||
|
@@ -48,7 +48,7 @@ class MockSpawner(LocalProcessSpawner):
|
|||||||
class MockPAMAuthenticator(PAMAuthenticator):
|
class MockPAMAuthenticator(PAMAuthenticator):
|
||||||
def system_user_exists(self, user):
|
def system_user_exists(self, user):
|
||||||
# skip the add-system-user bit
|
# skip the add-system-user bit
|
||||||
return True
|
return not user.name.startswith('dne')
|
||||||
|
|
||||||
def authenticate(self, *args, **kwargs):
|
def authenticate(self, *args, **kwargs):
|
||||||
with mock.patch('simplepam.authenticate', mock_authenticate):
|
with mock.patch('simplepam.authenticate', mock_authenticate):
|
||||||
|
@@ -102,6 +102,14 @@ def test_add_user(app):
|
|||||||
assert user.name == name
|
assert user.name == name
|
||||||
assert not user.admin
|
assert not user.admin
|
||||||
|
|
||||||
|
def test_add_user_bad(app):
|
||||||
|
db = app.db
|
||||||
|
name = 'dne_newuser'
|
||||||
|
r = api_request(app, 'users', name, method='post')
|
||||||
|
assert r.status_code == 400
|
||||||
|
user = find_user(db, name)
|
||||||
|
assert user is None
|
||||||
|
|
||||||
def test_add_admin(app):
|
def test_add_admin(app):
|
||||||
db = app.db
|
db = app.db
|
||||||
name = 'newadmin'
|
name = 'newadmin'
|
||||||
|
Reference in New Issue
Block a user