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")
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()
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)