Ejemplo n.º 1
0
def login():

    # login form class from forms.py
    form = LoginForm()

    # if no validation errors search for user
    if request.method == 'POST':
        if form.validate_on_submit():
            user = User.objects.filter(
                username=form.username.data.lower().strip()).first()
            # if user exist check password
            if user:
                if bcrypt.hashpw(form.password.data,
                                 user.password) == user.password:
                    session[
                        'username'] = form.username.data  # set the session variables
                    return redirect(url_for('general_app.index'))
                else:
                    return render_template(
                        'user/login.html',
                        error='Incorrect username or password')
            # user does not exist
            else:
                return render_template('user/login.html',
                                       error='Not a valid username. Register?')

    return render_template('user/login.html', form=form)
Ejemplo n.º 2
0
def login():
    form = LoginForm()
    error = None
    if request.method == 'GET' and request.args.get('next'):
        session['next'] = request.args.get('next')
    if form.validate_on_submit():
        user = User.objects.filter(username=form.username.data).first()
        if user:
            if bcrypt.hashpw(form.password.data.encode('utf-8'),
                             user.password.encode(
                                 'utf-8')) == user.password.encode('utf-8'):
                session['username'] = form.username.data
                if 'next' in session:
                    next = session.get('next')
                    session.pop('next')
                    return redirect(next)
                else:
                    message = 'Login efetuado com sucesso.'
                    return redirect(
                        url_for('user_app.profile', username=user.username))
            else:
                user = None
        if not user:
            error = 'Senha ou nome de usuário incorreto'
    return render_template('user/login.html', form=form, error=error)
Ejemplo n.º 3
0
def login():
    if 'id' in session.keys():
        flash("Already logged in!")
        return redirect(url_for('home_app.index'))

    form = LoginForm()

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

    # this variable will be stored with a database query result row
    valid_user_entry = form.validate_on_submit()
    if (valid_user_entry):
        #Add check for 2FA
        if (valid_user_entry.user_status == 'TEMP'):
            session['email'] = valid_user_entry.email
            return redirect(url_for('user_app.verify_birthday'))
        elif (valid_user_entry.otp_type == 'EMAIL'):
            #Email is unique so use this to query the user in 2FA w/o logging user in
            session['email'] = valid_user_entry.email
            return redirect(url_for('user_app.two_factor_verification'))
            #Redirect to the 2FA page

        session['id'] = valid_user_entry.id
        session['lname'] = valid_user_entry.lname
        session['user_type'] = valid_user_entry.user_type
        return redirect(
            url_for('user_app.successful_login',
                    user_type=valid_user_entry.user_type))

    return render_template('user/login.html', form=form)
Ejemplo n.º 4
0
def login():
    form = LoginForm()
    error = None
    
    if request.method == 'GET' and request.args.get('next'):
        session['next'] = request.args.get('next')
        
    if form.validate_on_submit():
        user = User.objects.filter(
            username=form.username.data
            ).first()
        if user:
            if bcrypt.hashpw(form.password.data, user.password) == user.password:
                session['username'] = form.username.data
                if 'next' in session:
                    next = session.get('next')
                    session.pop('next')
                    return redirect(next)
                else:
                    return redirect(url_for('home_app.home'))
            else:
                user = None
        if not user:
            error = 'Incorrect credentials'
    return render_template('user/login.html', form=form, error=error)
Ejemplo n.º 5
0
def login():
    form = LoginForm()

    if form.validate_on_submit():
        user = User.query.filter(
            func.lower(User.username) == form.username.data).first()
        if user:
            if not user.is_approved:
                flash('Account is not approved yet!', 'error')
                flash(
                    'Please contact the admin to be be approve your account to login!',
                    'error')
                flash('Admin info is found in the Contact tab!', 'error')
                return render_template('user/login.html', form=form)
            if bcrypt.hashpw(form.password.data,
                             user.password) == user.password:
                login_user(user)
                session['username'] = user.username
                session['id'] = user.id
                session['is_admin'] = user.is_admin
                session['is_approved'] = user.is_approved
                session['is_contributor'] = user.is_contributor

                return redirect(request.args.get('next') or url_for('index'))
            else:
                error = 'Incorrect username or password'
                flash(error, 'error')
        else:
            error = 'Incorrect username or password'
            flash(error, 'error')
    return render_template('user/login.html', form=form)
Ejemplo n.º 6
0
def login():
    form = LoginForm()
    error = None
    if request.method == 'GET' and request.args.get('next'):
        session['next'] = request.args.get('next')
    if form.validate_on_submit():
        user = User.objects.filter(username=form.username.data).first()
        if user:
            pw_in = form.password.data
            pw_check = maxx_encode(pw_in)
            if user.password == pw_check:
                #            if bcrypt.hashpw(form.password.data, user.password) == user.password:
                session['username'] = form.username.data
                if 'next' in session:
                    next = session.get('next')
                    session.pop('next')
                    return redirect(next)
                else:
                    return redirect(url_for('home_app.home'))


#                    return "<h3 style='color:#CB4154'>Successful login</h3><h4 >Waiting to implement 'home_app.home'</h4>"
            else:
                user = None
        if not user:
            error = 'Incorrect credentials'
    return render_template('user/login.html', form=form, error=error)
Ejemplo n.º 7
0
def login():
    """The login function allow the user entry into the application
       depending on whether their password is correct or not.
    """

    form = LoginForm()
    error = None

    _set_next_variable_to_session_if_found()

    if form.validate_on_submit():

        user = User.objects.filter(email=form.email.data).first()

        if not user:
            error = errors.INCORRECT_CREDENTIALS
        else:
            if not _is_email_address_confirmed(user):
                error = errors.EMAIL_VERIFICATION
            elif Password.check_password(form.password.data, user.password):

                Session.add(session_name="username",
                            session_value=user.username.lower())
                return redirect(url_for("home_app.home"))
            else:
                error = errors.INCORRECT_CREDENTIALS
    return render_template("users/login/login.html", error=error, form=form)
Ejemplo n.º 8
0
def login():
    form = LoginForm()
    error = None
    
    if request.method == 'GET' and request.args.get('next'):
        session['next'] = request.args.get('next')
        
    if form.validate_on_submit():
        user = User.objects.filter(
            username=form.username.data
            ).first()
        if user:
            if bcrypt.hashpw(form.password.data, user.password) == user.password:
                session['username'] = form.username.data
                if 'next' in session:
                    next = session.get('next')
                    session.pop('next')
                    return redirect(next)
                else:
                    return 'User logged in'
            else:
                user = None
        if not user:
            error = 'Incorrect credentials'
    return render_template('user/login.html', form=form, error=error)
Ejemplo n.º 9
0
def login():
    invalid_msg = "Invalid Username or Password"
    success_msg = "Successfully logged in."

    form = LoginForm()
    if form.validate_on_submit():
        # Authentication check happens in form validators; if validation succeeded, log user in
        return success_msg
    return render_template('user/login.html', form=form)
Ejemplo n.º 10
0
def get_posts():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user is not None and user.verify_password(form.password.data):
            login_user(user, form.remember_me.data)
            return redirect(request.args.get('next') or url_for('main.index'))
        flash('请输入正确的账号和密码')
    return render_template('users/login.html', form=form)
Ejemplo n.º 11
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user is not None and user.verify_password(form.password.data):
            login_user(user, form.remember_me.data)
            return redirect(request.args.get('next') or url_for('index'))
        else:
            flash("Invalid email or password!")
    return render_template('user/login.html', form=form)
Ejemplo n.º 12
0
def login():
    form = LoginForm(request.form)
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               request.form['password']):
            login_user(user)
            flash('Welcome ' + user.email, 'success')
            return redirect(url_for('main.home'))
        else:
            flash('Invalid email and/or password.', 'danger')
            return render_template('user/login.html', form=form)
    return render_template('user/login.html', form=form)
Ejemplo n.º 13
0
def login():
    form = LoginForm()
    error = None
    if form.validate_on_submit():
        user = User.getByName(form.username.data)
        if user.email_confirmation:
            if user and bcrypt.hashpw(form.password.data, user.password) == user.password:
                session['username'] = user.username
                return redirect(url_for('.profile', username=user.username))
            error = "Incorrect Credentials"
        else:
            error = "Check you email to complete your registration"
    return render_template("user/login.html", form=form, error=error)
Ejemplo n.º 14
0
def login():
    form = LoginForm()
    error = None
    ##check if user already logged in###
    if session.get('email') or session.get('username'):
        return redirect(url_for('user_app.home'))
    ####get next####
    if request.method == 'GET' and request.args.get('next'):
        session['next'] = request.args.get('next')
    #login
    if form.validate_on_submit():
        user = User.objects.filter(email=form.email.data).first()
        #only local user
        #this is to prevent user login without password
        if user and user.provider == 'local':
            #check if email has been confirmed
            if user.email_confirmed is False:
                error = "คุณยังไม่ได้ยืนยันอีเมล์ เช็คที่กล่องอีเมล์ของคุณดูสิ ลองดูในกล่อง spam ถ้าหาไม่เจอนะ"

            else:
                #if everything checked out
                if check_password_hash(user.password, form.password.data):
                    #put user type in session
                    session['who'] = 'user'
                    session['username'] = user.username
                    session['email'] = user.email

                    #go to home after login with username in session
                    #check if there is temp_storecode
                    if session.get('temp_storecode'):
                        storecode = session.get('temp_storecode')
                        session.pop('temp_storecode')
                        return redirect(
                            url_for('store_app.store_front',
                                    storecode=storecode))
                    #redirect to next if any
                    elif 'next' in session:
                        next = session.get('next')
                        session.pop('next')
                        return redirect(next)
                    else:
                        return redirect(url_for('user_app.home'))
                else:
                    user = None
        #if no user or useris not local
        else:
            error = 'Wrong username or password'

    return render_template('user/login.html', form=form, error=error)
Ejemplo n.º 15
0
def login():
    form = LoginForm()
    error = None

    if form.validate_on_submit():
        user = User.objects.filter(username=form.username.data).first()
        if user:
            if bcrypt.hashpw(form.password.data,
                             user.password) == user.password:
                session['username'] = form.username.data

            else:
                user = None
        if not user:
            error = 'Incorrect credentials'
    return render_template('user/login.html', form=form, error=error)
Ejemplo n.º 16
0
def login():
    form = LoginForm()
    error = None
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user:
            password_check = bcrypt.checkpw(form.password.data.encode('utf8'),
                                            user.password)
            if password_check:
                session['username'] = form.username.data
                return 'User Logged In'
            else:
                user = None  #if password fails overwrite previous user
        if not user:  # this structure necessary to avoid username guessing
            error = 'Invalid credentials'
    return render_template('user/login.html', form=form, error=error)
Ejemplo n.º 17
0
def login():
    """Login view."""
    form = LoginForm()
    if form.validate_on_submit():
        try:
            log_user = models.User.get(models.User.username == form.username.data)
        except models.DoesNotExist:
            flash("Your username or password doesn't match!", "error")
        else:
            if check_password_hash(log_user.password, form.password.data):
                login_user(log_user)
                flash("You've been logged in!", "success")
                return redirect(url_for('index'))
            else:
                flash("Your username or password doesn't match!", "error")
    return render_template('user/login.html', form=form)
Ejemplo n.º 18
0
def login():
    # Login form in login view
    login_form = LoginForm()
    if not flask_login.current_user.is_authenticated():

        if login_form.validate_on_submit():
            username = login_form.username.data
            try:
                current_user = models.User.get(
                    models.User.username == username)
            except models.DoesNotExist:
                flash("Your username  or password doesn't match!", "error")
                return redirect(url_for('login'))

            # TODO: Check this logic in the next try catch statement maybe no need it.
            if current_user.active:
                try:
                    log_user = models.User.get(
                        models.User.username == username)
                except models.DoesNotExist:
                    flash("Your username  or password doesn't match!", "error")
                else:
                    if check_password_hash(log_user.password,
                                           login_form.password.data):
                        login_user(log_user)
                        flash("You've been logged in!", "success")
                        _next = request.args.get('next')
                        if _next:
                            return redirect(_next)
                        else:
                            return redirect(url_for('dashboard'))
                    else:
                        flash("Your username  or password doesn't match!",
                              "error")
            else:
                flash("You account is not active yet, please check you email.",
                      "no-active")
        return render_template('user/login.html',
                               section="user",
                               title="Login",
                               log_form=login_form,
                               register_form=RegisterForm(),
                               forgot_form=ForgotCredentialReset(),
                               resend_from=ResendActivationEmailForm())
    # TODO: Find why this has been printing twice!
    flash("You are logged in already.", "success")
    return redirect(url_for('dashboard'))
Ejemplo n.º 19
0
def login():
    form = LoginForm()
    error = None
    # Require a method that if the login page is accwssed from anoher page
    # say the profile, then a re-direct back to the page of origin will be necessary
    # this is handled by the 'next' method

    # first check that the method accesing the login page was a GET and that
    # the GET request contains a next
    if request.method == 'GET' and request.args.get('next'):
        # store that next in a session so that it can redirect back
        session['next'] = request.args.get('next')

    if form.validate_on_submit():  # Valid entry in the form
        #  Examine database to see if the user exists
        #  Find the first occurance because only unique usernames should be
        #  present
        user = User.objects.filter(username=form.username.data).first()
        #  If found
        if user:
            #  Check password is correct by comparing the hashed passwords
            if bcrypt.hashpw(form.password.data,
                             user.password) == user.password:
                #  if a next session exists. A next session is created when
                # the login is accessed from another page
                if 'next' in session:
                    # get that session url and store as next
                    next = session.get('next')
                    # delete the session[next] so that further redirects will not happen
                    session.pop('next')
                    # rediect back to the page of origin
                    return redirect(next)
                else:
                    #  if there was no next
                    #  set the session to the username and return to user logged in/user
                    session['username'] = form.username.data
                    return 'User logged in'
            else:
                user = None
        #  Use 'if not user' here rather than else bc the user may be correct but the password not
        #  so with the user set to None the if statemment is correct
        if not user:
            error = 'Incorrect username / password'

    return render_template('user/login.html', form=form, error=error)
Ejemplo n.º 20
0
def login():
    form = LoginForm()
    error = None
    
    if form.validate_on_submit():
        user = User.query.filter_by(
            username = form.username.data
            ).first()
        if user:
            if user.password == form.password.data:
                session['username'] = form.username.data
                session['is_admin'] = user.is_admin
                flash("Hello %s -- login successful!" % form.username.data)
                if user.is_admin:
                    return redirect(url_for('admin'))
                else:
                    return redirect(url_for('member'))
            else:
                error = "Incorrect username or password"
        else:
            error = "Incorrect username or password"
    return render_template("user/login.html", form = form, error = error)
Ejemplo n.º 21
0
def login():
    """ This is a login route. It validates the login form and checks the user
    if it exists or not and also checks for the correct username and password"""
    error = ""
    # Initialzing the login form
    form = LoginForm()
    # Checking if redirect url is present after login
    if request.args.get('next'):
        session['next'] = request.args.get('next')
    if form.validate_on_submit():
        if Signup.query.filter_by(username=form.username.data).first():
            user = Signup.query.filter_by(username=form.username.data).first()
            # Matching the password and logging user
            if check_password_hash(user.password, form.password.data):
                if 'next' in session and session['next'] != None and session[
                        'next'] != '/logout':
                    next = session['next']
                    if form.remember.data:
                        login_user(user, remember=True)
                        return redirect(next)
                    else:
                        login_user(user, remember=False)
                        return redirect(next)
                else:
                    if form.remember.data:
                        login_user(user, remember=True)
                        return redirect(
                            url_for('timeline', username=user.username))
                    else:
                        login_user(user, remember=False)
                        return redirect(
                            url_for('timeline', username=user.username))
            else:
                error = 'Wrong username or password'

        else:
            error = 'Wrong username or password'

    return render_template('user/login.html', form=form, error=error)
Ejemplo n.º 22
0
def login():
    form = LoginForm()
    error = None

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

    if form.validate_on_submit():
        user = User.objects.filter(
            username=form.username.data).first()
        if user:
            if bcrypt.hashpw(form.password.data, user.password) == user.password:
                session["username"] = form.username.data
                if "next" in session:
                    next = session.get("next")
                    session.pop("next")
                    return redirect(next)
                return redirect(url_for("home_app.home"))
            else:
                user = None
        if not user:
            error = "Incorrect credentials"
    return render_template("user/login.html", form=form, error=error)
Ejemplo n.º 23
0
def login():
    form = LoginForm()
    error = None

    # Keeps track of requested url if redirected to login from another page
    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,
            password=form.password.data
            ).first()

        if user: # if user is found
            session['username'] = form.username.data
            session['userID'] = user.id

            # if they were redirect to login then send to original requested url
            if 'next' in session:
                next = session.get('next')
                session.pop('next')
                return redirect(next)
            else: # otherwise send to login_success page
                app.logger.info('%s: Successful login for: %s', datetime.datetime.utcnow(), form.username.data)

                show_records = app.config['DEFAULT_ENTRIES_PER_PAGE']
                records_per_page = app.config['DEFAULT_ENTRIES_PER_PAGE']
                feed = getFeedData(session['userID'])
                return render_template('gardenDiary/dashboard.html', feed=feed, show_records=show_records, records_per_page=records_per_page)

        else: # bad username or password
            error = "Incorrect username and/or password"
            app.logger.warning('%s: Incorrect username and/or password: username:%s ', datetime.datetime.utcnow(), form.username.data)

    return render_template('user/login.html', form=form, error=error)
Ejemplo n.º 24
0
def login():
    login_form = LoginForm()
    if get_current_user().is_anonymous():
        if login_form.validate_on_submit():
            username = login_form.username.data
            try:
                current_user = models.User.get(models.User.username == username)
            except models.DoesNotExist:
                flash("Your username or password is wrong!", "error")
                return redirect(url_for('login'))
            else:
                if check_password_hash(current_user.password, login_form.password.data):
                    login_user(current_user)
                    flash("You have logged in!", "success")
                    return redirect(url_for('dashboard'))
                else:
                    flash("Your username or password is wrong!", "error")
                    return redirect(url_for('login'))
        return render_template('login.html',
                               login_form=login_form,
                               title="Login")
    else:
        flash("You are logged in already.", "success")
        return redirect(url_for('dashboard'))
Ejemplo n.º 25
0
def login():
    if request.method == "POST":
        flag = 1
    else:
        flag = 0
    print(session)
    if current_user.is_authenticated:
        print("Da log in roi ")
        return redirect(url_for("home_app.home"))
    else:
        form = home_form()
        login_form = LoginForm()
        error = None

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

        if login_form.validate_on_submit():
            user = User.objects.filter(
                username=login_form.username.data).first()
            if user:
                if user.email_confirmed == False:
                    flash(" Vui lòng kích hoạt tài khoản qua email !")
                    flag = 0
                    return render_template("user/login.html",
                                           form=form,
                                           error=error,
                                           login_form=login_form,
                                           flag=flag)
                if bcrypt.hashpw(
                        login_form.password.data.encode("utf-8"),
                        user.password.encode("utf-8")) == user.password.encode(
                            "utf-8"):
                    login_user(user,
                               remember=True,
                               duration=timedelta(days=60))
                    flash("Login successfully !")
                    #session['username'] = login_form.username.data
                    """
	                if 'next' in session:
	                    next = session.get('next')
	                    session.pop('next')
	                    
	                    if not is_safe_url(next):
	                        return abort(400)
	                    
	                    return redirect(next)
	                else:
	                """
                    return redirect(url_for("home_app.valuation"))
                else:
                    print("Khong dung mat khau")
                    user = None
            if not user:
                error = 'Incorrect credentials !'
        else:
            #error = ""
            for i, val in login_form.errors.items():
                print(i, " || ", val)
        return render_template("user/login.html",
                               form=form,
                               error=error,
                               login_form=login_form,
                               flag=flag)