Exemple #1
0
def create_user():

    if request.json and 'name' in request.json:
        name = request.json["name"]
        login = request.json["login"]
        password = request.json["password"]
        provider = request.json.get("provider", "basic")
        role = request.json.get("role", "user")
        text = request.json.get("text", "")
        email_verified = request.json.get("email_verified", False)
    else:
        return jsonify(
            status="error",
            message=
            "Must supply user 'name', 'login' and 'password' as parameters"
        ), 400

    try:
        user = db.create_user(name, login, password, provider, role, text,
                              email_verified)
    except Exception as e:
        return jsonify(status="error", message=str(e)), 500

    if user:
        return jsonify(status="ok", id=user['id'], user=user), 201, {
            'Location': absolute_url('/user/' + user['id'])
        }
    else:
        return jsonify(status="error",
                       message="User with login '%s' already exists" %
                       login), 409
Exemple #2
0
def signup():

    if request.json and 'name' in request.json:
        name = request.json["name"]
        email = request.json["email"]
        domain = email.split('@')[1]
        password = request.json["password"]
        provider = request.json.get("provider", "basic")
        text = request.json.get("text", "")
        try:
            user = db.create_user(name, email, password, provider, text, email_verified=False)
        except Exception as e:
            return jsonify(status="error", message=str(e)), 500
    else:
        return jsonify(status="error", message="Must supply user 'name', 'email' and 'password' as parameters"), 400

    if not user:
        return jsonify(status="error", message="User with email '%s' already exists" % email), 409

    if app.config['EMAIL_VERIFICATION']:
        send_confirmation(name, email)
        if not db.is_email_verified(email):
            return jsonify(status="error", message="email address '%s' has not been verified" % email), 401

    if app.config['AUTH_REQUIRED'] and not ('*' in app.config['ALLOWED_EMAIL_DOMAINS']
            or domain in app.config['ALLOWED_EMAIL_DOMAINS']):
        return jsonify(status="error", message="Login for user domain '%s' not allowed" % domain), 403

    if app.config['CUSTOMER_VIEWS']:
        try:
            customer = customer_match(email, groups=[domain])
        except NoCustomerMatch:
            return jsonify(status="error", message="No customer lookup defined for user domain '%s'" % domain), 403
    else:
        customer = None

    token = create_token(user['id'], user['name'], email, provider=provider, customer=customer, role=role(email))
    return jsonify(token=token)
Exemple #3
0
 def create(self) -> 'User':
     return User.from_db(db.create_user(self))
Exemple #4
0
 def create(self):
     return User.from_db(db.create_user(self))