Ejemplo n.º 1
0
def user_create():

    user_fields = user_schema.load(request.json)

    user_with_same_email = User.query.filter_by(email=user_fields["email"]).first()
    user_with_same_username = User.query.filter_by(username=user_fields["username"]).first()

    if user_with_same_email:
         return abort(400, description="Username already registered")

    if user_with_same_username:
         return abort(400, description="Email already registered")

    user = User()
    user.username = user_fields["username"]
    user.first_name = user_fields["first_name"]
    user.last_name = user_fields["last_name"]
    user.created_at = user_fields["created_at"]
    user.dob = user_fields["dob"]
    user.email = user_fields["email"]
    user.mobile = user_fields["mobile"]
    user.city = user_fields["city"]
    user.country = user_fields["country"]
    user.password = bcrypt.generate_password_hash(user_fields["password"]).decode("utf-8")

    db.session.add(user)
    db.session.commit()

    return jsonify(user_schema.dump(user))
Ejemplo n.º 2
0
def user_register():
    user_fields = user_schema.load(request.json)

    user = User.query.filter_by(email=user_fields["email"]).first()

    if user:
        return abort(400, description="Email already registered to an account")

    try:
        last_record = db.session.query(User).order_by(User.id.desc()).first()
    except:
        last_record = 0

    user = User()
    user.id = last_record.id + 1
    user.displayname = user_fields["displayname"]
    user.username = user_fields["username"]
    user.email = user_fields["email"]
    user.password = bcrypt.generate_password_hash(
        user_fields["password"]).decode("utf-8")

    db.session.add(user)
    db.session.commit()

    return jsonify(user_schema.dump(user))
Ejemplo n.º 3
0
def auth_login():
    user_fields = user_schema.load(request.json)
    user = User.query.filter_by(email=user_fields["email"]).first()
    if not user or not bcrypt.check_password_hash(user.password, user_fields["password"]):
        return abort(401, description="Incorrect username and password")

    expiry = timedelta(days=1)                                                                         # set the access cookies in the browser that sent the request
    access_token = create_access_token(identity=str(user.id), expires_delta=expiry)                    # set_access_cookies(resp, access_token)

    return jsonify({ "token": access_token })                                                  
Ejemplo n.º 4
0
def user_login():
    user_fields = user_schema.load(request.json)                                              # Getting the fields from the User Schema
    user = User.query.filter_by(email=user_fields["email"]).first()                        # Query the user table with the email and return the first user

    if not user or not bcrypt.check_password_hash(user.password, user_fields["password"]): # If there is no user or the password is wrong
        return abort(401, description="Incorrect username or password")                             # Return the error "Incorrect username or password"

    expiry = timedelta(days=1)                                                                      # Time for the token to expire
    access_token = create_access_token(identity=str(user.id), expires_delta=expiry)              # The access token, with the user id and the expiration date

    return jsonify({ "token": access_token })                                                       # Return the token
Ejemplo n.º 5
0
def update_user():
    user_id = get_jwt_identity()
    user = User.query.filter_by(id=user_id)

    if not user:
        return abort(401, description="Invalid user")

    update_fields = user_schema.load(request.json, partial=True)
    user.update(update_fields)
    db.session.commit()
    return jsonify(user_schema.dump(user[0]))
Ejemplo n.º 6
0
def users_login():
    user_fields = user_schema.load(request.json)

    user = User.query.filter_by(email=user_fields["email"]).first()

    if not user or not user.check_password(user_fields["password"]):
        return abort(401, description="Incorrect email and password")

    expiry = timedelta(days=1)
    access_token = create_access_token(identity=str(user.user_id),
                                       expires_delta=expiry)

    return jsonify({"token": access_token})
Ejemplo n.º 7
0
def auth_login():
    user_fields = user_schema.load(request.json)

    user = User.query.filter_by(username=user_fields["username"]).first()
    # don't login if the user doesn't exist
    if not user:
        return abort(401, description="Incorrect username")
    if not bcrypt.check_password_hash(user.password, user_fields["password"]):
        return abort(401, description="Incorrect password")

    expiry = timedelta(days=1)
    access_token = create_access_token(identity=str(user.id),
                                       expires_delta=expiry)
    return jsonify({"token": access_token})
Ejemplo n.º 8
0
def auth_login():
    user_fields = user_schema.load(flask.request.json)
    user = User.query.filter_by(email=user_fields["email"]).first()

    if not user or not bcrypt.check_password_hash(user.password,
                                                  user_fields["password"]):
        return flask.abort(401, "incorrect username or password")

    expiry = datetime.timedelta(days=1)
    access_token = flask_jwt_extended.create_access_token(identity=str(
        user.id),
                                                          expires_delta=expiry)

    return flask.jsonify({"token": access_token})
Ejemplo n.º 9
0
def auth_register():
    user_fields = user_schema.load(request.json)
    user = User.query.filter_by(email=user_fields["email"]).first()
    if user:
        return abort(400, description="Email already registered")
    
    user = User()
    user.email = user_fields["email"]
    user.password = bcrypt.generate_password_hash(user_fields["password"]).decode("utf-8")              # utf-8 online tool that is an encoder/decoder

    db.session.add(user)
    db.session.commit()

    return jsonify(user_schema.dump(user))
Ejemplo n.º 10
0
def auth_login():
    user_fields = user_schema.load(request.json)

    user = User.query.filter_by(email=user_fields["email"]).first()

    if not user or not bcrypt.check_password_hash(user.password,
                                                  user_fields["password"]):
        return abort(401, description="Invalid login details.")

    expiry = timedelta(days=1)
    access_token = create_access_token(identity=str(user.id),
                                       expires_delta=expiry)

    return jsonify({"token": access_token})
def auth_login():
    user_fields = user_schema.load(
        request.json)  # Getting the fields for the user in json format

    user = User.query.filter_by(email=user_fields["email"]).first(
    )  # Check if the user is registered with the app at all

    expiry = timedelta(days=1)  # The jwt will expire in 1 day
    access_token = create_access_token(
        identity=str(user.id), expires_delta=expiry)  # Creating the JWT
    if not user or not bcrypt.check_password_hash(
            user.password, user_fields["password"]
    ):  # If the user is not registered, or the password is incorrect then raise this error.
        return abort(401, description="Incorrect username and password")

    return jsonify({"token": access_token})  # Return the JWT
Ejemplo n.º 12
0
def user_login():
    user_fields = user_schema.load(request.json)

    try:
        user = User.query.filter_by(email=user_fields["email"]).first()
    except:
        user = User.query.filter_by(username=user_fields["username"]).first()

    if not user or not bcrypt.check_password_hash(user.password,
                                                  user_fields["password"]):
        return abort(401, description="Inccorrect email/username or password")

    access_token = create_access_token(identity=str(user.id),
                                       expires_delta=timedelta(days=1))

    return jsonify({"token": access_token})
Ejemplo n.º 13
0
def user_register():
    user_fields = user_schema.load(request.json)                             # Getting the fields from the User Schema
    user = User.query.filter_by(email=user_fields["email"]).first()       # Query the user table with the email and return the first user
    
    if user:                                                                 # If a user is returned 
        return abort(400, description="Email already in use")                # Return the error "Email already in use"

    user = User()                                                            # Re-init user as a new instance of the User model

    user.email = user_fields["email"]                                        # Add email to the user
    user.password = bcrypt.generate_password_hash(user_fields["password"]).decode("utf-8") # Hash the password and add it to the user

    db.session.add(user)                                                     # Add the user to the db session
    db.session.commit()                                                      # Commit the session

    return jsonify(user_schema.dump(user))                                # Return the user that was just created
Ejemplo n.º 14
0
def auth_register():
    user_fields = user_schema.load(request.json)

    user = User.query.filter_by(email=user_fields["email"]).first()

    if user:
         return abort(400, description="Email already registered")

    user = User()
    user.email = user_fields["email"]
    user.password = user_fields["password"]

    db.session.add(user)
    db.session.commit()

    return jsonify(user_schema.dump(user))
Ejemplo n.º 15
0
def update_user():
    username = current_user.get_id()
    user = User.query.filter_by(username=username)

    form = UpdateUserForm(obj=user.first())
    if form.validate_on_submit():
        existing_user = User.query.filter_by(email=form.email.data).first()
        if form.email.data != user.first().email and existing_user:
            return abort(401, description="Email already registered")
        else:
            data = {
                "first_name": form.first_name.data,
                "last_name": form.last_name.data,
                "dob": form.dob.data,
                "mobile": form.mobile.data,
                "city": form.city.data,
                "country": form.country.data
            }
            fields = user_schema.load(data, partial=True)
            user.update(fields)
            db.session.commit()
            flash("Account updated!")
            return redirect(url_for("web_users.get_user"))
    return render_template("user_update.html", form=form, user=user)


# @web_users.route("/account/delete", methods=["POST"])
# @login_required
# def delete_user():
#     form = DeleteButton()
#     if form.submit.data:
#         username = current_user.get_id()
#         user = User.query.filter_by(username=username)

#         profiles = Profile.query.filter_by(user_id=user.user_id)
#         for profile in profiles:
#             while len(profile.unrecommend) > 0:
#                 for item in profile.unrecommend:
#                     profile.unrecommend.remove(item)
#                 db.session.commit()

#         db.session.delete(user)
#         db.session.commit()
#         logout_user()
#         flash("Account deleted")
#         return redirect(url_for("web_users.web_users_login"))
#     return redirect(url_for("web_users.get_user"))
Ejemplo n.º 16
0
def auth_register():
    user_fields = user_schema.load(request.json)

    #avoid to create a user that already exists
    user = User.query.filter_by(username=user_fields["username"]).first()

    if user:
        return abort(400, description="user already exists")

    user = User()
    user.username = user_fields["username"]
    user.password = bcrypt.generate_password_hash(
        user_fields["password"]).decode("utf-8")

    db.session.add(user)
    db.session.commit()

    return jsonify(user_schema.dump(user))
Ejemplo n.º 17
0
def auth_register():
    response = flask.request.json
    user_fields = user_schema.load(response)

    user = User.query.filter_by(email=user_fields["email"]).first()

    if user:
        return flask.abort(400, description="email already exists")

    user = User()
    user.email = user_fields["email"]
    user.password = bcrypt.generate_password_hash(
        user_fields["password"]).decode("utf-8")

    db.session.add(user)
    db.session.commit()

    return flask.jsonify(user_schema.dump(user))
Ejemplo n.º 18
0
def user_register():
    user_fields = user_schema.load(request.json)
    user = User.query.filter_by(email=user_fields["email"]).first()

    if user:
        return abort(400, description="Email already in use")

    user = User()

    user.email = user_fields["email"]
    user.password = bcrypt.generate_password_hash(
                    user_fields["password"]).decode("utf-8")
    user.isAdmin = user_fields["isAdmin"]

    db.session.add(user)
    db.session.commit()

    return jsonify(user_schema.dump(user))
Ejemplo n.º 19
0
def update_user():
    user_id = current_user.get_id()
    user = User.query.filter_by(user_id=user_id)

    form = UpdateUserForm(obj=user.first())
    if form.validate_on_submit():
        existing_user = User.query.filter_by(email=form.email.data).first()
        if form.email.data != user.first().email and existing_user:
            return abort(401, description="Email already registered")
        else:
            data = {
                "email": form.email.data,
                "subscription_status": form.subscription_status.data
            }
            fields = user_schema.load(data, partial=True)
            user.update(fields)
            db.session.commit()
            flash("Account updated!")
            return redirect(url_for("web_users.get_user"))
    return render_template("user_update.html", form=form, user=user)
def auth_register():
    user_fields = user_schema.load(
        request.json)  # Getting the fields form the user schema in json format
    user = User.query.filter_by(email=user_fields["email"]).first(
    )  # Checking if the email sent through has already been registered

    if user:
        return abort(400, description="Email already registered"
                     )  # If the email is already in use then return this error

    user = User()  # Create a new user object
    user.email = user_fields["email"]  # Assign the email to the user

    user.password = bcrypt.generate_password_hash(
        user_fields["password"]).decode(
            "utf-8")  # Assign the password to the user

    db.session.add(user)  # Add the commited user to the session
    db.session.commit()  # Commit the session to the database

    return jsonify(user_schema.dump(user))  # Return the user in JSON format
Ejemplo n.º 21
0
def auth_register():
    # New user registration

    user_fields = user_schema.load(request.json)

    user = User.query.filter_by(email=user_fields["email"]).first()

    if user:
        return abort(400, description="Email already registered")

    user = User()
    user.email = user_fields["email"]
    user.name = user_fields["name"]
    user.password = bcrypt.generate_password_hash(
        user_fields["password"]).decode("utf-8")
    user.created_at = datetime.now()

    db.session.add(user)
    db.session.commit()

    return jsonify(user_schema.dump(user))