aboutsummaryrefslogtreecommitdiff
path: root/server/szurubooru/api
diff options
context:
space:
mode:
authorReAnzu2018-02-23 22:05:58 -0600
committerrr-2018-03-07 21:30:24 +0100
commit4b3529272ea238cb35f8f6f12c299e24ce0a88f9 (patch)
tree24a6d8aa062211e326f38d60afea1156fe3becc3 /server/szurubooru/api
parenta1fbeb91a0984f5daf477a8813dc03979d4ae136 (diff)
server/users: let administrators add new users
* Added functionality for administrators to directly add users to the application * Added permission users:create:any to handle level that users are allowed to create other users * Moved old permission users:create to users:create:self
Diffstat (limited to 'server/szurubooru/api')
-rw-r--r--server/szurubooru/api/user_api.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/server/szurubooru/api/user_api.py b/server/szurubooru/api/user_api.py
index e456f22..5e14fab 100644
--- a/server/szurubooru/api/user_api.py
+++ b/server/szurubooru/api/user_api.py
@@ -26,7 +26,11 @@ def get_users(
@rest.routes.post('/users/?')
def create_user(
ctx: rest.Context, _params: Dict[str, str] = {}) -> rest.Response:
- auth.verify_privilege(ctx.user, 'users:create')
+ if ctx.user.user_id is None:
+ auth.verify_privilege(ctx.user, 'users:create:self')
+ else:
+ auth.verify_privilege(ctx.user, 'users:create:any')
+
name = ctx.get_param_as_string('name')
password = ctx.get_param_as_string('password')
email = ctx.get_param_as_string('email', default='')
@@ -40,6 +44,7 @@ def create_user(
ctx.get_file('avatar', default=b''))
ctx.session.add(user)
ctx.session.commit()
+
return _serialize(ctx, user, force_show_email=True)

© 2015 - 2026 Jakob L. Kreuze