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))
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))
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 })
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
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]))
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})
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})
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})
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))
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
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})
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
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))
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"))
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))
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))
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))
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
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))