예제 #1
0
def login_page():
    form = LoginForm()

    error = ""

    if request.method == "GET" and request.args.get("next"):
        session["next"] = request.args.get("next")

    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user:
            if bcrypt.hashpw(form.password.data, user.password) == user.password:
                session["username"] = form.username.data
                session["is_author"] = user.is_author
                if "next" in session:
                    next_page = session.get("next")
                    session.pop("next")
                    return redirect(next_page)
                return redirect(url_for("index_page"))
            else:
                error = "Invalid password"
                return render_template("user/login.html", form=form, error=error)
        else:
            error = "Invalid username"
            return render_template("user/login.html", form=form, error=error)
    return render_template("user/login.html", form=form)
예제 #2
0
def login():
    form = LoginForm()
    error = None

    if request.method == 'GET' and request.args.get('next'):
        session['next'] = request.args.get('next', None)

    if form.validate_on_submit():
        user = User.query.filter_by(
            username=form.username.data,
            ).first()
        if user:
            if bcrypt.hashpw(form.password.data, user.password) == user.password:
                session['username'] = user.username
                session['is_author'] = user.is_author
                if 'next' in session:
                    next = session.get('next')
                    session.pop('next')
                    return redirect(next)
                else:
                    return redirect(url_for('index'))
            else:
                error = "Incorrect password"
        else:
            error = "User not found"
    return render_template('user/login.html', form=form, error=error)
예제 #3
0
def login():
	form = LoginForm()
	error = None
	# checking is user has been redirected to login to send back to correct page after logged in
	if request.method == 'GET' and request.args.get('next'):
		session['next'] = request.args.get('next', None)
    	
	# if form is correctly posted: login checks
	if form.validate_on_submit():
		user = User.query.filter_by(username=form.username.data).first()
		if user:
			if bcrypt.hashpw(form.password.data, user.password) == user.password:
				session['username'] = form.username.data.lower()
				session['fullname'] = user.fullname
				session['is_admin'] = user.is_admin
				user.req_lost_pass = False
				db.session.commit()
				flash("Logged in")
				if 'next' in session:
					next = session.get('next')
					session.pop('next')
					return redirect(next)
				else:	
					return redirect(url_for('index'))
			else:
				error = "Incorrect Username and/or Password"

		else:
			error = "Incorrect Username and/or Password"

	return render_template('user/login.html', form=form, error=error)
예제 #4
0
def login():
    form = LoginForm()
    regform = RegisterForm()
    error = None
    
    if form.validate_on_submit() or regform.validate_on_submit():
        if request.form['btn'] == 'Login':
            user = User.query.filter_by(username=form.username.data).first()
            if bcrypt.hashpw(form.password.data.encode('utf8'), user.password.encode('utf8')) == user.password.encode('utf8'): #decrypt password
                session['username'] = form.username.data
                return redirect(url_for('index'))
            else:
                error = "Incorrect username and password"
        else:
            # Check if username exists
            usernames = [u.username for u in User.query.all()]
            if regform.username.data in usernames:
                error = "username already exists!"
            else:
                # Add user to DB
                # 574 22nd Ave San Francisco, CA 94121
                address = str(regform.house_number) + " " + regform.street + " " + regform.city + ", " + regform.state + " " + str(regform.zip_code)
                print (address)
                passwordEncrypt = bcrypt.hashpw(regform.password.data.encode('utf8'), bcrypt.gensalt()) #encrypt password
                regUser = User(
                    regform.fullname.data,
                    regform.email.data,
                    regform.username.data,
                    passwordEncrypt,
                    address)
                db.session.add(regUser)
                db.session.commit() #simulate that the record is written
                # db.session.flush()
                # error = "Registration failed!"
    return render_template('user/login.html', form=form, regform=regform, error=error)
예제 #5
0
def login_page():
    form = LoginForm()

    error = ""

    if request.method == "GET" and request.args.get("next"):
        session["next"] = request.args.get("next")

    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user:
            if bcrypt.hashpw(form.password.data,
                             user.password) == user.password:
                session["username"] = form.username.data
                session["is_author"] = user.is_author
                if "next" in session:
                    next_page = session.get("next")
                    session.pop("next")
                    return redirect(next_page)
                return redirect(url_for("index_page"))
            else:
                error = "Invalid password"
                return render_template("user/login.html",
                                       form=form,
                                       error=error)
        else:
            error = "Invalid username"
            return render_template("user/login.html", form=form, error=error)
    return render_template("user/login.html", form=form)
예제 #6
0
def login():
    form = LoginForm()
    error = None

    if request.method == 'GET' and request.args.get('next'):
        session['next'] = request.args.get('next', None)

    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data, ).first()
        if user:
            if bcrypt.hashpw(form.password.data,
                             user.password) == user.password:
                session['username'] = user.username
                session['is_author'] = user.is_author
                if 'next' in session:
                    next = session.get('next')
                    session.pop('next')
                    return redirect(next)
                else:
                    return redirect(url_for('index'))
            else:
                error = "Incorrect password"
        else:
            error = "User not found"
    return render_template('user/login.html', form=form, error=error)
def login():
    form = LoginForm()
    regform = RegisterForm()
    error = None

    if form.validate_on_submit() or regform.validate_on_submit():
        if request.form['btn'] == 'Login':
            user = User.query.filter_by(username=form.username.data).first()
            if len(user.password) < 20:
                session['username'] = form.username.data
                return redirect(url_for('index'))
            elif bcrypt.hashpw(
                    form.password.data.encode('utf8'),
                    user.password.encode('utf8')) == user.password.encode(
                        'utf8'):  #decrypt password
                session['username'] = form.username.data
                return redirect(url_for('index'))
            else:
                error = "Incorrect username and password"
        else:
            # Check if username exists
            usernames = [u.username for u in User.query.all()]
            if regform.username.data in usernames:
                error = "username already exists!"
            else:
                # Add user to DB
                address = ""
                address = str(
                    regform.house_number.data
                ) + " " + regform.street.data + ", " + regform.city.data + ", " + regform.state.data + " " + str(
                    regform.zip_code.data)
                try:
                    geolocator = GoogleV3()
                    user_location = geolocator.geocode(address)
                    print(user_location.latitude, user_location.longitude)
                    print("Valid Address")
                except:
                    error = "Invalid Address or does not exist, please enter a valid address and Register again"
                    return render_template('user/login.html',
                                           form=form,
                                           regform=regform,
                                           error=error)
                passwordEncrypt = bcrypt.hashpw(
                    regform.password.data.encode('utf8'),
                    bcrypt.gensalt())  #encrypt password
                regUser = User(regform.fullname.data, regform.email.data,
                               regform.username.data, passwordEncrypt, address)
                db.session.add(regUser)
                db.session.commit()  #simulate that the record is written
                # db.session.flush()
                # error = "Registration failed!"
    return render_template('user/login.html',
                           form=form,
                           regform=regform,
                           error=error)
예제 #8
0
def login():
    form = LoginForm()
    error = None

    if session.get('username'):
        #login_user(session.get('username'), True)

        username = session.get('username')
        #user = User.query.filter_by(username=username)
        #login_user(username, True)
        flash('You are already logged in as %s' % username)
        return redirect(url_for('index'))

    if request.method == 'GET' and request.args.get('next'):
        session['next'] = request.args.get('next', None)

    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()

        if user:

            if bcrypt.hashpw(form.password.data,
                             user.password) == user.password:
                session['username'] = form.username.data
                session['is_author'] = user.is_author

                if 'next' in session:

                    next = session.get('next')
                    session.pop('next')

                    return redirect(next)

                else:

                    return redirect(url_for('index'))
            else:
                error = 'Incorrect Password'
        else:
            error = "Incorrect Username"

    return render_template('user/login.html', form=form, error=error)
예제 #9
0
def login():
    """ Handle login process """
    form = LoginForm()
    error = None

    # if got next url data from @login_required decorator
    if request.method == 'GET' and request.args.get('next'):
        # store as session
        session['next'] = request.args.get('next', None)

    # if form submitted
    if form.validate_on_submit():
        # database lookup - SELECT
        user = User.query.filter_by(
            # check for users with username entered
            username=form.username.data
        ).first() # returns first user

        # if user record found with username
        if user:
            # using werkzeug.security
            if check_password_hash(user.password, form.password.data):
                # flask_login
                login_user(user, remember=True)
                # create flask login session
                session['username'] = form.username.data
                # store is_admin flag in session
                if user.is_admin:
                    session['is_admin'] = user.is_admin
                # if have 'next' url in session -> navigate to next after login
                if 'next' in session:
                    next = session.get('next')
                    session.pop('next')
                    return redirect(next)
                else:
                    # go straight to index
                    return redirect(url_for('social'))
            else:
                error = "Incorrect username and password"
        else:
            error = "Incorrect username and password"
    return render_template('user/login.html', form=form, error=error)
예제 #10
0
def login():
    form = LoginForm()
    state = ''.join(
        random.choice(string.ascii_uppercase + string.digits)
        for x in range(32))
    session['state'] = state
    if request.method == "GET" and request.args.get("next"):
        session['next'] = request.args.get('next')
    if form.validate_on_submit():
        user = User.objects.filter(email=form.email.data).first()
        session['username'] = user.username
        session['email'] = user.email
        session['userIntId'] = user.userIntId
        if 'next' in session:
            next = session.get('next')
            session.pop('next')
            return redirect(next)
        else:
            return redirect(url_for('shopping_app.homepage'))
    return render_template("user/login.html", form=form, STATE=state)
예제 #11
0
def login():
    form = LoginForm()
    error = ""

    if request.method == 'GET' and request.args.get('next'):
        session['next'] = request.args.get('next', None)

    if form.validate_on_submit():
        author = Author.query.filter_by(username=form.username.data,
                                        password=form.password.data).limit(1)
        if author.count():
            session['username'] = form.username.data
            if 'next' in session:
                next = session.get('next')
                session.pop('next')
                return redirect(next)
            else:
                return redirect(url_for('login_success'))

    return render_template('user/login.html', form=form, error=error)
예제 #12
0
파일: views.py 프로젝트: Javamsi/Identikey
def login():
	form = LoginForm()
	error = None
	os.chdir('..')
	os.chdir('..')
	os.chdir('./identikey')
	os.chdir('./user')
        
	if request.method == 'GET' and request.args.get('next'):
		session['next'] = request.args.get('next', None)
		
	if form.validate_on_submit():
		for line in open(os.getcwd() + '/user.txt'):
			if 'Username: '******'Username: '******'Password: '******'Password: '******'login.html', form=form, error=error)