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
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)
def create(self) -> 'User': return User.from_db(db.create_user(self))
def create(self): return User.from_db(db.create_user(self))