Example #1
0
def new_user():
    if request.method == 'POST':
        if request.form["name"]:
            username = request.form["name"]
        if request.form["password"]:
            password = request.form["password"]
        if request.form["email"]:
            email = request.form["email"]
        if username is None or password is None or email is None:
            print "missing arguments"
            abort(400)
        #check if it is existing user
        if session.query(User).filter_by(
                username=username).first() is not None:
            print "existing user"
        else:
            # add the user info to database
            user = User(username=username)
            user.hash_password(password)
            user.email = email
            session.add(user)
            session.commit()
            return redirect(url_for('get_auth_token'))
    else:
        return render_template('newusers.html')
Example #2
0
def add_user():
    user = User()
    user.name = session['name']
    user.email = session['email']
    user.url = session['img']
    user.provider = session['provider']
    sess.add(user)
    sess.commit()
Example #3
0
def createUser(request):
    username = request.get('username')
    password = request.get('password')
    email = request.get('email')
    if username == '' or password == '' or email == '':
        return "You must provide all fields", 400
    if session.query(User).filter_by(name=username).first() is not None:
        return "Username used", 400
    if session.query(User).filter_by(email=email).first() is not None:
        return "Email used", 400
    user = User(name=username)
    user.hash_password(password)
    user.email = email
    user.picture = "https://picsum.photos/500?random"
    session.add(user)
    session.commit()
    return jsonify({'username': user.name}), 201
Example #4
0
def callback():
    """
    Google authentication Callback
    """
    # Redirects if not logged in
    if current_user is not None and current_user.is_authenticated:
        return redirect(url_for('index'))
    # checks for authntication error
    if 'error' in request.args:
        if request.args.get('error') == 'access_denied':
            return 'You denied access.'
        return 'Error encountered.'
    if 'code' not in request.args and 'state' not in request.args:
        return redirect(url_for('login'))
    else:
        google = get_google_auth(state=session['oauth_state'])
        try:
            # Fetch tonken
            token = google.fetch_token(
                Auth.TOKEN_URI,
                client_secret=Auth.CLIENT_SECRET,
                authorization_response=request.url)
        except HTTPError:
            return 'HTTPError occurred.'
        google = get_google_auth(token=token)
        # get user info if availabale
        resp = google.get(Auth.USER_INFO)
        if resp.status_code == 200:
            user_data = resp.json()
            email = user_data['email']
            user = dbsession.query(User).filter_by(email=email).first()
            # sets details if not avialbale
            if user is None:
                user = User()
                user.email = email
            user.name = user_data['name']
            print(token)
            user.tokens = json.dumps(token)
            # Adds user to databse
            dbsession.add(User(email=user.email, token=user.token, name=user.name))  # noqa
            dbsession.commit()
            login_user(user)
            # redirects to homepage
            return redirect(url_for('index'))
        return 'Could not fetch your information.'
def register():
    if request.method == 'GET':
        return render_template('register.html')
    username = request.form['username']
    password = request.form['password']
    email = request.form['email']
    if username and password and email:
        user = User()
        user.email = request.form['email']
        user.password = request.form['password']
        user.username = request.form['username']
        db.session.add(user)
        db.session.commit()
        flash('User successfully registered')
        return redirect(url_for('login'))
    else:
        flash('Please fill all the fields to register')
        return redirect(url_for('register'))
Example #6
0
def callback():
    # Redirect user to home page if already logged in.
    if current_user is not None and current_user.is_authenticated:
        return redirect(url_for('restaurants'))
    if 'error' in request.args:
        if request.args.get('error') == 'access_denied':
            flash('You denied access.')
            return
        flash('Error encountered')
        return
    if 'code' not in request.args and 'state' not in request.args:
        return redirect(url_for('login'))
    else:
        # Execution reaches here when user has
        # successfully authenticated our app.
        print 'my still session', session
        google = get_google_auth(state=session['oauth_state'])
        try:
            token = google.fetch_token(Auth.TOKEN_URI,
                                       client_secret=Auth.CLIENT_SECRET,
                                       authorization_response=request.url)
        except HTTPError:
            return 'HTTPError occurred.'
        google = get_google_auth(token=token)
        resp = google.get(Auth.USER_INFO)
        if resp.status_code == 200:
            user_data = resp.json()
            email = user_data['email']
            print 'my email', email
            user = db_session.query(User).filter_by(email=email).first()
            # print 'my google user', user.fetchall()
            if user is None:
                user = User()
                user.email = email
            user.username = user_data['name']
            print(token)
            user.tokens = json.dumps(token)
            user.avatar = user_data['picture']
            db_session.add(user)
            db_session.commit()
            login_user(user)
            return redirect(url_for('all_restaurants'))
        return 'Could not fetch your information.'
def callback():
    if current_user is not None and current_user.is_authenticated:
        return redirect(url_for('index'))
    if 'error' in request.args:
        if request.args.get('error') == 'access_denied':
            return 'You denied access.'
        return 'Error encountered.'
    if 'code' not in request.args and 'state' not in request.args:
        return redirect(url_for('login'))
    else:
        google = get_google_auth(state=session['oauth_state'])
        try:
            token = google.fetch_token(Auth.TOKEN_URI,
                                       client_secret=Auth.CLIENT_SECRET,
                                       authorization_response=request.url)
        except Exception:
            return 'HTTPError occurred.'
        google = get_google_auth(token=token)
        resp = google.get(Auth.USER_INFO)
        print(resp)
        if resp.status_code == 200:
            user_data = resp.json()
            email = user_data['email']
            user = User.query.filter_by(email=email).first()
            print(user)
            if user is None:
                user = User()
                user.email = email
            user.username = user_data['email']
            print(token)
            user.social_auth_token = json.dumps(token)
            db.session.add(user)
            db.session.commit()
            login_user(user)
            return redirect(url_for('index'))
        return 'Could not fetch your information.'