예제 #1
0
def login():
    login_form = LoginForm(request.form)
    #if 'login' in request.form:
    if login_form.validate_on_submit():

        # read form data
        username = request.form['username']
        password = request.form['password']

        # Check user and password
        if (username in users_db.users) and (
                password == users_db.get_user(username).get('password')):
            user = User(username,
                        users_db.get_user(username).get('password'),
                        users_db.get_user(username).get('id'))
            login_user(user)
            return redirect(url_for('base_blueprint.route_default'))

        # Something (user or pass) is not ok
        else:
            return render_template('accounts/login.html',
                                   msg='Wrong user or password',
                                   form=login_form)
    print(current_user)
    if not current_user.is_authenticated:
        return render_template('accounts/login.html', form=login_form)
    return redirect(url_for('home_blueprint.index'))
예제 #2
0
def login():
    login_form = LoginForm(request.form)
    # -------------------------------------------------------------------------#
    # POST Request - Valid
    if login_form.validate_on_submit():
        # Search for user in database
        user = User.query.filter_by(username=login_form.username.data).first()

        # Username invalid
        if not user:
            flash("Invalid username or password.", "info")
            return render_template(
                "accounts/login.html",
                msg="Invalid username or password.",
                form=login_form,
            )
        # Password is invalid
        elif not user.check_password(login_form.password.data):
            flash("Invalid username or password.", "info")
            return render_template(
                "accounts/login.html",
                msg="Invalid username or password.",
                form=login_form,
            )
        # Account is not confirmed
        elif (user and user.check_password(login_form.password.data)
              and not user.confirmed):
            flash("User has not confirmed by email.", "info")
            return render_template(
                "accounts/login.html",
                msg="User has not confirmed by email.",
                form=login_form,
            )
        # Valid login
        elif user and user.check_password(login_form.password.data):
            login_user(user, remember=login_form.remember_me.data)
            next_page = request.args.get("next")
            # only allow relative links
            if not next_page or url_parse(next_page).netloc != "":
                next_page = url_for("home_blueprint.index")
            return redirect(next_page)
        # Unhandled
        else:
            flash("Unknown error.", "error")
            return render_template("accounts/login.html",
                                   msg="Unknown error.",
                                   form=login_form)
    # -------------------------------------------------------------------------#
    # GET Request - Non-Authenticated User
    if not current_user.is_authenticated:
        return render_template("accounts/login.html", form=login_form)
    # -------------------------------------------------------------------------#
    # GET Request - Authenticated User
    else:
        return redirect(url_for("home_blueprint.index"))
예제 #3
0
def login():
    form = LoginForm()
    if request.method == "POST" and form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        user = User.query.filter_by(username=username).first()

        # Check the password
        if user and check_password_hash(user.password, password):
            login_user(user)
            return redirect(url_for("home_blueprint.index"))
        else:
            flash("Invalid username or password.", "danger")

    return render_template("accounts/login.html", form=form)
예제 #4
0
def login():

    form = LoginForm()
    status = ''
    try:
        current_app.logger.debug(form.email.data.lower().replace(' ', ''))
    except:
        pass
    current_app.logger.debug('form not validated')
    email_entered = form.email.data
    password_entered = form.password.data
    current_app.logger.debug(
        f'user entered {email_entered} and {password_entered} form not validated'
    )
    current_app.logger.debug('form not validated')
    if form.validate_on_submit():
        try:
            current_app.logger.debug(form.email.data.lower().replace(' ', ''))
        except:
            pass
        current_app.logger.debug('form validated')
        user = User.query.filter_by(email=form.email.data.lower().replace(
            ' ', ''),
                                    active=1).first()
        if user is not None:
            current_app.logger.debug(f'found user {user}')
            if user.check_password(form.password.data):
                current_app.logger.debug(
                    f'user {user} entered correct password')
                login_user(user)
                next_url = request.args.get('next')
                current_app.logger.debug(f'{user} signed in')
                if next_url is None or not next_url[0] == '/':
                    next_url = url_for('home_blueprint.index')

                return redirect(next_url)
            else:
                status = 'Неверный пароль'
        else:
            status = 'Пользователя с такой почтой нет'

    return render_template('login/login.html', form=form, status=status)