def create(): """Create a user role. --- post: summary: Create a user account description: > Create a user role by supplying the required account details. requestBody: content: application/json: schema: $ref: '#/components/schemas/RoleCreate' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Role' tags: - Role """ require(settings.PASSWORD_LOGIN) require(not request.authz.in_maintenance) data = parse_request("RoleCreate") try: email = Role.SIGNATURE.loads(data.get("code"), max_age=Role.SIGNATURE_MAX_AGE) except BadSignature: return jsonify({ "status": "error", "message": gettext("Invalid code") }, status=400) role = Role.by_email(email) if role is not None: return jsonify( { "status": "error", "message": gettext("Email is already registered") }, status=409, ) role = create_user(email, data.get("name"), data.get("password")) # Let the serializer return more info about this user request.authz = Authz.from_role(role) tag_request(role_id=role.id) return RoleSerializer.jsonify(role, status=201)
def createuser(email, password=None, name=None, admin=False): # noqa """Create a user and show their API key.""" role = create_user(email, name, password, is_admin=admin) print("User created. ID: %s, API Key: %s" % (role.id, role.api_key))