Example #1
0
def login(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = auth.authenticate(username=request.POST.get('username'))
            if user is not None:
                try:
                    Profile.objects.get(user=user)
                except Profile.DoesNotExist:
                    Profile.objects.create(user=user)
                Profile.objects.create(user=user)
            user = auth.authenticate(username=request.POST.get('username'),
                                     password=request.POST.get('password'))

            if user is not None:
                try:
                    Profile.objects.get(user=user)
                except Profile.DoesNotExist:
                    Profile.objects.create(user=user)
                auth.login(request, user)
                messages.success(request, "You have successfully logged in")
                return redirect(reverse('profile'))
            else:
                form.add_error(None,
                               "Your username or password was not recognised")

    else:
        form = UserLoginForm()

    args = {'form': form}
    args.update(csrf(request))
    return render(request, 'login.html', args)
Example #2
0
def login():

    form = UserLoginForm(request.form)

    if request.method == "POST" and form.validate():

        cur = mysql.connection.cursor()

        # Get form data
        email = form.email.data
        pin_candidate = form.pin.data

        result = cur.execute("SELECT * FROM User WHERE email = %s", [email])

        if result > 0:
            data = cur.fetchone()
            pin = data['pin']

            # Successful Login
            if pin_candidate == pin:
                # Store current users email
                session['email'] = email
                print(session['email'])
                return redirect(url_for('index'))
            # Failed pin
            else:
                flash('Pin is incorrect', 'danger')
                return render_template('login.html', form=form)

        # Failed Email
        else:
            flash('No user exists with that email', 'danger')
            return render_template('login.html', form=form)

    return render_template('login.html', form=form)
Example #3
0
def signin():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    signin_form = UserLoginForm()
    alternative = {'label': 'Register', 'endpoint': 'register'}
    if signin_form.validate_on_submit():
        # Check if account exists
        user_details = request.form
        exists = username_and_password_check(user_details['username'],
                                             user_details['password'])
        if not exists:
            # flash('Username or pasword is incorrect')
            return render_template('bootstrap-pages/signin-page.html',
                                   form=signin_form,
                                   alternative=alternative,
                                   title='Sign in')

        _, user_id = info_check('users', 'username', user_details['username'])
        user_id, name, email, username = user_info_get(
            ['id', 'name', 'email', 'username'], user_id)
        if user_id:
            remember = user_details.get('remember') is not None
            user = User(user_id, name, email, username)
            login_user(user, remember=remember)
            return redirect(url_for('home'))

    return render_template(
        # 'signin.html',
        'bootstrap-pages/signin-page.html',
        form=signin_form,
        alternative=alternative,
        title='Sign in')
Example #4
0
def login():
    form = UserLoginForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            # 在测试的过程中发现如果不加csrf token验证一直为false
            username = form.username.data
            password = form.password.data
            md5 = hashlib.md5()
            md5.update(password)
            password = md5.hexdigest()
            user = UserLoginModel.query.filter_by(username=username).first()
            session['username'] = username
            if user:
                db_password = user.password
                if db_password and db_password == password:
                    flash('登录成功')
                    login_user(user)
                    return redirect(url_for('main.main_handler'))
                else:
                    flash('登录凭证有错误')
                    return redirect(url_for('auth.login'))
            else:
                flash('登录凭证有错误')
                return redirect(url_for('auth.login'))
    else:
        return render_template('login/login.html', form=form)
Example #5
0
 def test_login_form_missing_email(self):
     form = UserLoginForm({
         'password': '******',
     })
     self.assertFalse(form.is_valid())
     self.assertRaisesMessage(forms.ValidationError,
                              "Email address is missing", form.full_clean())
Example #6
0
def login():
    """
    Get requests return a log in form
    Post requests authenticate the user, and redirects to the home page.
    :return:
    """
    form = UserLoginForm()
    if request.method == 'POST':
        # When the request is post, we want to send a JSON back
        if not form.validate():
            # If the form isn't properly validated, return a json saying why
            return jsonify(
                {
                    'success': False,
                    'errors': form.errors
                }
            )

        # We get here if form has been validated, login the user
        user = User.query.filter_by(username=form.username.data).first()
        remember = form.remember
        login_user(user, remember=remember)
        next_page = request.args.get('next')
        if not next_page or url_parse(next_page).netloc != '':
            next_page = url_for('home')
        return jsonify(
            {
                'success': True,
                'nextpage': next_page
            }
        )

    return render_template('login-form.html', form=form)
Example #7
0
def homepage_search_results():
    """Show List of search results from recipe search"""
    #Need forms here too
    signup_form = UserSignupForm()
    login_form = UserLoginForm()

    #collect query term from args
    search = request.args.get('q')
    offset_number = request.args.get('offset') or SEARCH_RESULTS

    offset = int(offset_number) + int(SEARCH_RESULTS)

    #set params for API, capture response, set response to JSON
    params = {
        "apiKey": API_KEY,
        "query": search,
        "number": SEARCH_RESULTS,
        "offset": offset
    }
    response = requests.get(API_SEARCH_BASE, params=params)
    res = response.json()['results']

    if g.user:
        #If the user is logged in go to user search results page
        return render_template('user/search_results.html',
                               results=res,
                               offset=offset,
                               search=search)
    #No user search results page
    return render_template('no_user/no_user_search_results.html',
                           results=res,
                           offset=offset,
                           search=search,
                           signup_form=signup_form,
                           login_form=login_form)
Example #8
0
def login():
    form = UserLoginForm()
    if form.validate_on_submit():
        if form.email.data == "*****@*****.**":
            flash("Login successfully!", "success")
            return redirect(url_for("home"))
    return render_template('login.html', form=form, title='Login')
def login():
    if request.method == 'POST':
        form = UserLoginForm(request.form)
        if form.validate():
            user = User.query.filter_by(name=form.name.data).first()
            if user is not None:
                if user.password == form.password.data:
                    session['name'] = form.name.data
                    if session['name'] == "admin":
                        return redirect(url_for('admin'))
                    return redirect(url_for('list'))
            return redirect(url_for('login'))
        else:
            flash('All fields are required.')
    form = UserLoginForm()
    return render_template('login.html', form=form)
Example #10
0
 def test_login_form_missing_password(self):
     form = UserLoginForm({
         'email': '*****@*****.**',
     })
     self.assertFalse(form.is_valid())
     self.assertRaisesMessage(forms.ValidationError, "Password is missing",
                              form.full_clean())
Example #11
0
def login():
    form = UserLoginForm()
    if request.method == 'POST' and form.validate_on_submit():
        error = None
        request_data = {
            'email': form.email.data,
            'password': form.password.data
        }
        collection = db['users']
        user_data = collection.find_one(
            filter={'email': request_data['email']})
        if not user_data:
            error = "존재하지 않는 사용자입니다."
        elif not check_password_hash(user_data['password'],
                                     request_data['password']):
            error = "비밀번호가 올바르지 않습니다."
        if error is None:
            del user_data['_id']
            del user_data['password']

            session.clear()
            for key in user_data:
                session[key] = user_data[key]
            return redirect(url_for('main.index'))
        flash(error)
    return render_template('/login.html', form=form)
Example #12
0
def index(request):
    error = ''
    form = UserLoginForm()
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = authenticate(username=form.cleaned_data['login'],
                                password=form.cleaned_data['password'])
            if user:
                login(request, user)
                try:
                    CompleteTest.objects.get(user=request.user).delete()
                except:
                    pass
                return HttpResponseRedirect('/test/1')
            error += u'Неверные данные'
    return render(request, 'index.html', {'form': form, 'error': error})
 def post(self):
     form = UserLoginForm()
     if form.validate_on_submit():
         u = User()
         returnvalue = u.UserAuthentication(form.username.data,
                                            form.password.data)
         if not returnvalue == 'There Is No Such User With That Username':
             return jsonify(Access_token=returnvalue[0],
                            Refresh_token=returnvalue[1])
         return "<p>There Is No Such User With That Username</p><small class='text-muted'><a href = '/login'>Login</a></small>"
Example #14
0
def signup():
    """Handle user signup.
    Create new user and add to DB. Redirect to home page.
    If form not valid, present form.
    If the there already is a user with that username: flash message
    and re-present form.
    """
    if CURR_USER_KEY in session:
        del session[CURR_USER_KEY]

    signup_form = UserSignupForm()
    login_form = UserLoginForm()

    # Signup form validation
    if signup_form.validate_on_submit():
        try:
            user = User.signup(
                username=signup_form.username.data,
                first_name=signup_form.first_name.data,
                password=signup_form.password.data,
                image_url=signup_form.image_url.data
                or User.image_url.default.arg,
            )
            db.session.commit()

        except IntegrityError as e:
            # Flash errors and reload page
            flash("Username already taken", 'danger signup-form-error')
            return render_template('no_user/no_user_home.html',
                                   signup_form=signup_form,
                                   login_form=login_form)
        # If it worked -> do login and say hello
        do_login(user)
        flash(f"Hello, {user.first_name}!", "success")
        # Go to User Home
        return redirect("/home")
    else:
        #If form not valid
        fields = [field for field in signup_form]
        errors = {}
        #Capture errors in dict
        for field in fields:
            if field.errors:
                errors[field.name] = field.errors

        #Create error message string to display errors on redirect
        error_message = "<i class='far fa-frown-open error-sad-icon'></i><span class='error-sad-title'>Dang it! It didn't work...</span>"

        for name, error in errors.items():
            error_message += f"<p><b>*</b> {name} : {error[0]}</p>"

        flash(f"{error_message}", 'danger signup-form-error')

        return redirect('/')
def user_login():
    """login """
    form = UserLoginForm()
    if form.validate_on_submit():
        #flash('用户名:' + form.username.data)
        #flash('pw: ' + str(form.password.data))
        user = User.query.filter_by(id=form.userid.data).one()
        login_user(user, remember=form.remember.data)
        return redirect(url_for('main'))

    return render_template('/index/login.html', title='登录系统', form=form)
Example #16
0
def login(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = auth.authenticate(email=request.POST.get('email'),
                                     password=request.POST.get('password'))

            if user is not None:
                auth.login(request, user)
                messages.error(request, "You have successfully logged in")
                return redirect(reverse('profile'))
            else:
                form.add_error(None, "Your email or password was not recognised - Please go to the register tab and register if you have not already done so")

    else:
        form = UserLoginForm()

    args = {'form': form}
    args.update(csrf(request))
    return render(request, 'login.html', args)
Example #17
0
def LoginView(request):
    print(request.user.is_authenticated())
    form = UserLoginForm(request.POST or None)
    if form.is_valid():
        username = form.cleaned_data.get("username")
        password = form.cleaned_data.get("password")
        user = authenticate(username=username, password=password)
        login(request, user)
        print(request.user.is_authenticated())
        return redirect("/home/")

    return render(request, "prona/login_form.html", {"form": form})
Example #18
0
def login():
    # chiamata post -> controllo credenziali
    if request.method == 'POST':
        form = UserLoginForm(request.form)
        if form.validate():
            user = login_user(form)
            if user:
                if session['user']['active']:
                    logging(session['user']['user_id'], 'LOGIN')
                    if session['user']['superuser'] == True:
                        return redirect(
                            url_for('admin.index'))  #amministratore

                    return redirect(url_for('main.index'))  #utente comune
                else:
                    session.pop('user', None)
                    return render_template(
                        'login/not_allowed.html')  #utente non valido
            else:
                flash('Invalid credentials!')
                return render_template('login/login.html',
                                       form=form)  #credenziali errate

    # chiamata get -> controllo utente in sessione
    else:
        if 'user' in session:
            if session['user']['active']:
                if session['user']['authenticated'] == True and session[
                        'user']['superuser'] == False:
                    return redirect(url_for('main.index'))  #utente comune
                elif session['user']['authenticated'] == True and session[
                        'user']['superuser'] == True:
                    return redirect(url_for('admin.index'))  #amministratore
            else:
                return render_template(
                    'login/not_allowed.html')  #utente non valido

        return render_template('login/login.html',
                               form=UserLoginForm())  #pagina log in
Example #19
0
def login(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = auth.authenticate(email=request.POST.get('email').lower(),
                                     password=request.POST.get('password'))

            if user is not None:
                auth.login(request, user)
                messages.success(request, "You have successfully logged in.")
                return redirect(reverse('account', kwargs={'user_id':
                                                           user.id}))
            else:
                form.add_error(None,
                               "Your email or password was not recognised.")

    else:
        form = UserLoginForm()

    args = {'form': form}
    args.update(csrf(request))
    return render(request, 'accounts/login.html', args)
Example #20
0
def user_login():
    """ Login page"""
    form = UserLoginForm()

    if form.validate_on_submit():
        user = User.authenticate(username=form.username.data,
                                 password=form.password.data)
        if user:
            login(user)
            return redirect('/books')
        else:
            flash('Username or Password incorect')
    return render_template('users/login.html', form=form)
Example #21
0
def homepage():
    """Homepage view with simple search bar and login/signup forms"""
    if g.user:
        return redirect("/home")

    #Apply forms to homepage view
    signup_form = UserSignupForm()
    login_form = UserLoginForm()

    return render_template('no_user/no_user_home.html',
                           signup_form=signup_form,
                           login_form=login_form,
                           cuisines=CUISINES)
Example #22
0
def login():
    form = UserLoginForm()
    if form.validate_on_submit():
        user = authenticate(form.username.data, form.password.data)

        if user:
            do_login(user)
            flash(f"Welcome back {user.username}", 'success')
            return redirect(f"/users/{user.id}")

        flash('Invalid credentials. Please try again.', 'danger')

    return redirect('/login')
Example #23
0
def display_login_form():
    form = UserLoginForm()

    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        curr_user = User.authenticate_user(username, password)
        if curr_user:
            flask.session['username'] = curr_user.username
            flash(f"Welcome Back, {curr_user.username}!", "primary")
            return redirect(f"/users/{curr_user.username}")
        else:
            flash('User credentials invalid', 'error')
    return render_template('login_form.html', form=form)
Example #24
0
def login_user():
    form = UserLoginForm()
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        user = User.login(username, password)
        if user:
            do_login(user)
            flash(f"Welcome back {user.username}!", "success")
            return redirect(f'/users/{g.user["id"]}/calendar')
        else:
            form.username.errors = ['Invalid username/password']

    return render_template('login.html', form=form)
Example #25
0
def login_user():
    form = UserLoginForm()

    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data

        user = User.authenticate(username, password)
        if user:
            flash('Wlcome back', 'success')
            session['user_id'] = user.id
            return redirect(f'/users/{user.username}')
        else:
            form.username.errors = ['Invalid Username or Password']
    return render_template('login.html', form=form)
Example #26
0
def login():
    form = UserLoginForm()

    if request.method == 'GET':
        return render_template('login.html', form=form)

    if form.validate_on_submit():
        user = User.validate_user(form.username.data, form.password.data)
        if user:
            session['user_id'] = user.id
            session['username'] = user.username
            return redirect(url_for('main'))

    flash('Username or/and password do not match', 'warning')
    return redirect(url_for('login'))
Example #27
0
def user_login(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = authenticate(email=form['email'].value(),
                                password=form['password'].value())
            if user is not None:
                login(request, user)
                return HttpResponseRedirect(reverse('tasks:task_list'))
            else:
                return render(request, 'sign_up_or_login.html', {'form': form})
        else:
            return render(request, 'sign_up_or_login.html', {
                'form': form,
            })
    else:
        user = request.user
        if user.is_anonymous():
            form = UserLoginForm()
            return render(request, 'sign_up_or_login.html', {
                'form': form,
            })
        else:
            return HttpResponseRedirect(reverse('tasks:task_list'))
Example #28
0
def login():
    """Handle user login."""

    form = UserLoginForm()

    if form.validate_on_submit():
        user = Users.authenticate(form.username.data, form.password.data)

        if user:
            do_login(user)
            add_user_to_g()
            return redirect(f"/users/{g.user.id}/home")

        flash("Wrong username or password, please try again.")

    return render_template('users/login.html', form=form)
Example #29
0
def user_login():
    form = UserLoginForm()

    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data

        user = User.authenticate(username, password)
        if user:
            session["username"] = user.username  # Keeps user logged in
            flash(f"Welcome back, {user.username}", "success")
            return redirect('/')
        else:
            form.username.errors = ['Invalid username/password']

    return render_template('users/login.html', form=form)
Example #30
0
def login():
    """This view function handles the login of an existing user"""

    form = UserLoginForm()

    if form.validate_on_submit():
        user = User.authenticate(form.username.data, form.password.data)

        if user:
            login_user(user)
            flash(f"Welcome, {user.username}!", "success")
            return redirect("/")

        flash("Invalid credentials.", 'danger')

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