def create_unauthenticated_user(self, db, signup_form): # SEND AN EMAIL CONFIRMATION self.send_confirmation_email(signup_form.email_addr.data) # CREATES A USER AND PUSHES IT INTO DB new_user = User() new_user.id = len(db.child("users").get().val()) new_user.email = signup_form.email_addr.data new_user.first_name = signup_form.first_name.data new_user.last_name = signup_form.last_name.data new_user.password = new_user.encrypt( signup_form.password.data) # encrypt the password new_user.authenticated = False reset_date = datetime.datetime.now() + datetime.timedelta(6 * 365 / 12) new_user.password_reset = reset_date.isoformat() new_user.credits = 0 new_user.num_lockouts = 0 last_lockout = datetime.datetime.now() new_user.last_lockout = last_lockout.isoformat() new_user.viewable_ta = "" new_user.remaining_views = 3 db.child("users").child(new_user.id).set(json.loads(new_user.toJSON())) db.child("users").child(new_user.id).child('viewable_ta').push({ 'name': "placeholder", 'rated': False })
def load_user(user_id): user_data = db.child("users").child(user_id).get() if user_data.val() is None: return None user = User() user.id = user_data.val()["id"] user.email = user_data.val()["email"] return user
def login(): login_form = LoginForm(request.form) if request.method == 'POST' and login_form.validate(): user = User() user.email = login_form.email.data user.password = login_form.password.data login_result = login_form.login(user) if login_result >= 0: user.id = login_result login_user(user) return redirect(url_for('router.search')) if login_result == -1: flash("Incorrect email or password") if login_result == -3: return redirect(url_for('router.reset_password')) return render_template('index.html', login_form=LoginForm(), signup_form=SignUpForm())