def test_calculate_age(self): age1 = calculate_age("1984-06-21") age2 = calculate_age("2010-11-10") age3 = calculate_age(datetime.strftime(date.today(), '%Y-%m-%d')) self.assertGreaterEqual(age1, 34) self.assertLess(age2, 18) self.assertEqual(age3, 0)
def user_auth(): form = request.form.to_dict() user_in_db = users_collection.find_one({ "$or": [{ "user_name": form['username'] }, { "email": form['username'] }] }) # Check for user in database if user_in_db: # If passwords match (hashed / real password) if check_password_hash(user_in_db['password'], form['user_password']): # Log user in (add to session) session['username'] = user_in_db['user_name'] session['is_admin'] = user_in_db.get('is_admin') birthday = user_in_db['birthday'] age = calculate_age(birthday) if age >= 18: session['is_adult'] = True else: session['is_adult'] = False flash("You have been successfully signed in!") if session.get('next') is not None: return redirect(session['next']) return redirect(url_for('profile', user=user_in_db['user_name'])) else: flash("Wrong password / username!") return redirect(url_for('login')) else: flash("You must be registered!") return redirect(url_for('register'))
def check_registration(): form = request.form.to_dict() # Check if the password and password1 actualy match if form['user_password'] == form['user_password1']: # If so try to find the user in db user = users_collection.find_one({"user_name": form['username']}) email = users_collection.find_one({"email": form['email']}) if user: flash(form['username'].title() + " already exists! Is this you? Please sign in instead. " + "Else, please choose a different username.") return redirect(url_for('register')) elif email: flash("We already have a registered user with " + form['email'] + "! Did you forget your username?" + " Sign in with email instead.") return redirect(url_for('login')) # If user does not exist register new user else: # Hash password hash_pass = generate_password_hash(form['user_password']) # Create new user with hashed password users_collection.insert_one({ 'user_name': form['username'], 'email': form['email'], 'password': hash_pass, 'birthday': form['birthday'] }) # Check if user is actualy saved user_in_db = users_collection.find_one( {"user_name": form['username']}) if user_in_db: # Log user in (add to session) session['username'] = user_in_db['user_name'] session['is_admin'] = user_in_db.get('is_admin') birthday = user_in_db['birthday'] age = calculate_age(birthday) if age >= 18: session['is_adult'] = True else: session['is_adult'] = False flash("You have been successfully signed in!") # If user came from elsewhere in the app if session.get('next') is not None: return redirect(session['next']) return redirect( url_for('profile', user=user_in_db['user_name'])) else: flash("There was a problem saving your profile") return redirect(url_for('register')) else: flash("Passwords don't match!") return redirect(url_for('register'))
def view_plans(): """ Redirects the user to the Facebook login page to authorize the app: - response_type=code - Scope requests is to access user posts :return: Redirects to the Facebook login page """ if request.form['date'] != '': session['age'] = calculate_age(request.form['date']) session['income'] = request.form['income'] print(session['income']) session['zipcode'] = request.form['zipcode'] base_rate = calculate_rate(session['zipcode'], session['age']) session['base_rate'] = base_rate if request.form['twitter'] != '' : session['analyse_twitter'] = True session['twitter_handle'] = request.form['twitter'] else: session['analyse_twitter'] = False if 'with_fb' in request.form: session['analyse_fb'] = True else: session['analyse_fb'] = False if 'with_fb' in request.form: print("Logging in with FB") return flask.redirect("https://www.facebook.com/dialog/oauth?client_id=%s&redirect_uri=%s&scope=user_posts" % (FACEBOOK_APP_ID, REDIRECT_URI)) elif 'without_fb' in request.form: print("Logging in without FB") user_authorized = True if "user_token" in TOKENS else False return flask.render_template("insurance_plans.html", \ rate = session['base_rate'], age = session['age'])