def create(): """ Returns: """ data = request.form if request.form else json.loads(request.data, encoding='utf-8') for f in ('email', 'role', 'active', 'newPassword', 'confirmPassword'): if f in data and data[f] != '': continue else: return bad_request(errormsg=_("Missing field: '{0}'".format(f))) try: new_data = validate_user(data) if 'roles' in new_data: new_data['roles'] = [Role.query.get(new_data['roles'])] except Exception as e: return bad_request(errormsg=_(str(e))) try: usr = User(email=new_data['email'], roles=new_data['roles'], active=new_data['active'], password=new_data['password']) db.session.add(usr) db.session.commit() # Add default server group for new user. server_group = ServerGroup(user_id=usr.id, name="Servers") db.session.add(server_group) db.session.commit() except Exception as e: return internal_server_error(errormsg=str(e)) res = { 'id': usr.id, 'email': usr.email, 'active': usr.active, 'role': usr.roles[0].id } return ajax_response(response=res, status=200)