Ejemplo n.º 1
0
def forgot_process():
    """Sends email to reset password after submit"""

    email = request.form['email']
    user_in_db = db.session.query(User).filter(User.email==email).first()

    if not user_in_db:
        flash("User not registered")
        return redirect("/register")

    if not user_in_db.is_activated:
        flash("You need to activate your account first")
        return redirect("/login")

    reset_pass_number = randint(10**8, 10**12)
    number_in_db = db.session.query(Activation).filter(Activation.activation_number==reset_pass_number).first()
    while number_in_db:
        reset_pass_number = randint(10**8, 10**12)

    new_activation = Activation(activation_number=reset_pass_number, user_id=user_in_db.user_id)
    db.session.add(new_activation)
    db.session.commit()
    send_email(email, reset_pass_number, 'forgot_pass')
    flash("Please check your email to reset your password")
    return redirect("/login")
Ejemplo n.º 2
0
def load_activations():
    """Records of activation numbers by users"""
    for i in range(1,1001): #load_users() loads 10 users
        activation_number = randint(10**8, 10**12)
        user_id = i

        activation = Activation(activation_number=activation_number, user_id=user_id)
        db.session.add(activation)
    db.session.commit()
Ejemplo n.º 3
0
def register_process():
    """Adding registered user to database."""

    # Get form variables
    name = request.form["name"].title()
    lastname = request.form["lastname"].title()
    country = request.form["sel-country"].title()
    city = request.form["city"].title() #calculate city_id
    email = request.form["email"] #Unique
    password = argon2.hash(request.form["password"]) #hashed password
    picture = "http://i.imgur.com/Jckb780t.jpeg" #default

    #already registered?
    user_in_db = db.session.query(User).filter(User.email==email).first()
    if user_in_db:
        flash("%s, already exists." % email)
        return redirect("/register")
    else:
        #not registered yet, city info already exists? If not, add
        country_code = search_country_code(country)
        city_in_db = db.session.query(City).filter(City.name==city).first()

        if not city_in_db:
            new_city = City(name=city, country_code=country_code)
            db.session.add(new_city)
            db.session.commit()

        city_id = db.session.query(City).filter(City.name==city).first().city_id

        new_user = User(name=name, lastname=lastname, city_id=city_id, email=email, password=password, picture=picture) #is_activaded false

        db.session.add(new_user)
        db.session.commit()

        # flash("%s %s, your registration was completed. Please, check your email to activate your account" % (name, lastname))

        activation_number = randint(10**8, 10**12)
        new_activation = Activation(activation_number=activation_number, user_id=new_user.user_id)
        db.session.add(new_activation)
        db.session.commit()
        send_email(email, activation_number, 'activation')
        #return redirect("/login")
        return redirect("/activation_confirmation/%s" % new_user.user_id)