Add ability to update superusers via the UI

Fixes #634
This commit is contained in:
Joseph Schorr 2015-10-16 15:38:06 -04:00
parent a37b9394d9
commit d464af4cce
3 changed files with 49 additions and 1 deletions

View file

@ -9,7 +9,7 @@ from flask import request
import features
from app import app, avatar, superusers, authentication
from app import app, avatar, superusers, authentication, config_provider
from endpoints.api import (ApiResource, nickname, resource, validate_json_request,
internal_only, require_scope, show_if, parse_args,
query_param, abort, require_fresh_login, path_param, verify_not_prod)
@ -397,6 +397,18 @@ class SuperUserManagement(ApiResource):
user.enabled = bool(user_data['enabled'])
user.save()
if 'superuser' in user_data:
config_object = config_provider.get_config()
superusers_set = set(config_object['SUPER_USERS'])
if user_data['superuser']:
superusers_set.add(username)
elif username in superusers_set:
superusers_set.remove(username)
config_object['SUPER_USERS'] = list(superusers_set)
config_provider.save_config(config_object)
return user_view(user, password=user_data.get('password'))
abort(403)