示例#1
0
def login_action(request):
    context = {}

    # Just display the registration form if this is a GET request.
    if request.method == 'GET':
        context['form'] = LoginForm()
        return render(request, 'project/login.html', context)

    # Creates a bound form from the request POST parameters and makes the 
    # form available in the request context dictionary.
    form = LoginForm(request.POST)
    context['form'] = form

    # Validates the form.
    if not form.is_valid():
        return render(request, 'project/login.html', context)

    new_user = authenticate(username=form.cleaned_data['username'],
                            password=form.cleaned_data['password'])

    login(request, new_user)
    if form.cleaned_data['username'] == "SEadmin":
        return redirect(reverse('admin'))
    else:
        return redirect(reverse('home'))
示例#2
0
def test_login_form_is_invalid_if_fields_are_invalid():
    assert LoginForm(data={
        'phone_number': '',
        'password': ''
    }).is_valid() is False
    assert LoginForm(data={
        'phone_number': '',
        'password': '******'
    }).is_valid() is False
    assert LoginForm(data={
        'phone_number': '5551234567',
        'password': ''
    }).is_valid() is False
示例#3
0
def test_login_form_is_invalid_if_fields_are_invalid():
    assert LoginForm(data={
        "phone_number": "",
        "password": ""
    }).is_valid() is False
    assert LoginForm(data={
        "phone_number": "",
        "password": "******"
    }).is_valid() is False
    assert LoginForm(data={
        "phone_number": "5551234567",
        "password": ""
    }).is_valid() is False
示例#4
0
def login():
	form = LoginForm()
	if form.validate_on_submit():
		user = UserModel.find_by_eid(form.eid.data)
		if user is not None and user.check_password(form.password.data):
			return render_template('base.html')
	return render_template('login.html', form = form)
def index():
  user = current_user
  form = LoginForm()
  rform = RegisterForm()
  if current_user.is_authenticated():
    return redirect(url_for('user_home', username=user.name, userid=user.id))
  return render_template('index.html', form=form, rform=rform)
示例#6
0
def link():
    form = LoginForm()

    if not session.get("oauth"):
        return redirect(url_for("static.login", next=get_next_url(request.path)))

    if not form.is_submitted():
        form.key.data, form.key.errors = OAuthService.get_potential_name(
            session["oauth"]
        )
        form.password.data = ""

    if form.validate_on_submit() or current_user.is_authenticated:
        if current_user.is_authenticated:
            user, is_authed = current_user, current_user.is_authenticated
        else:
            user, is_authed = form.get_or_create_account()
        if user and is_authed:
            if user["hash"] is not None:
                form.key.errors.append(
                    "Given account is already linked to an OpenID, please use a different account"
                )
                return render_template("oauth_link.tpl", form=form)
            OAuthService.link(user.get_id(), session["oauth"]["sub"])
            del session["oauth"]
            flash("Successfully linked accounts!")
            form.login(user)

    return render_template("oauth_link.tpl", form=form)
示例#7
0
def login():
    if current_user.is_authenticated:
        initUser()
        return redirect(url_for('home'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()

        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            if str(user.parent_org) != 'None':
                emp = empList.query.filter_by(empname=user.username).first()
                if not emp:
                    flash(
                        "Login Unsuccessful, Your Organization request has not been approved yet.",
                        "warning")
                    return render_template('login.html',
                                           title='Login',
                                           form=form)
            login_user(user, remember=form.remember.data)
            next_page = request.args.get(
                'next'
            )  #args is a dictionary we use get method so that if the next prameter dost not exits it gives none so dont use square brackets with the key
            initUser()
            flash("Login Successful", "success")
            return redirect(next_page) if next_page else redirect(
                url_for('home')
            )  # this is done so that if login page is directed from a restricted page then after login it redirects to that page instead of home page
        else:
            flash("Login Unsuccessful, Please check your email and password",
                  "danger")
    return render_template('login.html', title='Login', form=form)
示例#8
0
def login_view(request):
    html = 'generic_form.html'
    if request.method == 'POST':
        form = LoginForm(request.POST)

        if form.is_valid():
            data = form.cleaned_data
            user = authenticate(username=data['username'],
                                password=data['password'])
            if user is not None:
                login(request, user)
                return HttpResponseRedirect(reverse('home'))
    else:
        form = LoginForm()

    return render(request, html, {'form': form})
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and user.check_password(form.password.data):
            login_user(user)
            token = jwt.encode(
                {
                    'user':
                    user.username,
                    'exp':
                    datetime.datetime.utcnow() +
                    datetime.timedelta(seconds=180)
                }, app.config['SECRET_KEY'])
            #return jsonify({'token':token.decode('utf-8')})
            next_page = request.args.get('next')
            if not next_page or url_parse(next_page).netloc != '':
                next_page = url_for('profile', username=user.username)
            return redirect(next_page)
        elif not user.check_password(form.password.data):
            flash('Incorrect Password. Please try again with valid password')
    elif form.errors:
        flash('Login Failed.Please try again')
        return redirect(url_for('login'))

    return render_template('login.html', form=form, title='Sign In')
示例#10
0
def login():
    # save the next parameter in the session
    session["next"] = get_next_url()
    form = LoginForm()
    if form.validate_on_submit():
        user, is_authed = form.get_or_create_account()
        if user and is_authed:
            form.login(user)
    return render_template("login.tpl", form=form)
示例#11
0
def test_login_form_is_valid_if_auth_succeeded():
    fake_user = {'fake': 'user'}
    with patch('project.forms.authenticate', return_value=fake_user):
        form = LoginForm(data={
            'phone_number': '5551234567',
            'password': '******'
        })
        assert form.is_valid() is True
        assert form.authenticated_user is fake_user
示例#12
0
def test_login_form_is_valid_if_auth_succeeded():
    fake_user = {"fake": "user"}
    with patch("project.forms.authenticate", return_value=fake_user):
        form = LoginForm(data={
            "phone_number": "5551234567",
            "password": "******"
        })
        assert form.is_valid() is True
        assert form.authenticated_user is fake_user
示例#13
0
def login():

    # if user is already logged in, send them to the homepage
    if current_user.is_authenticated:
        return redirect(url_for('home'))

    # create login form object
    form = LoginForm()

    # if login form has been validly submitted
    if form.validate_on_submit():

        db = get_db()
        # set up db cursor
        mycursor = db.cursor()

        # query the Users mySQL table for the userID, email address and password
        query = """SELECT userID, userEmail, userPW from Users WHERE userEmail=%s"""
        mycursor.execute(query, (form.email.data, ))
        user = mycursor.fetchone()
        mycursor.close()

        # if the user exists, store the info provided by the query in separate variables
        if user:
            userID = user[0]
            email = user[1]
            password = user[2]

            # then verify that the entered password matches the password stored in the db
            if user and bcrypt.check_password_hash(password,
                                                   form.password.data):

                # if so, create the a user object (this is necessary for Flask-Login)
                user = User(userID, email, password)

                # call Flask-Login login_user function to create the session for the user
                login_user(user, remember=form.remember.data)

                # if there is a next parameter in the url, grab it to forward the user to the appropriate name.
                next_page = request.args.get('next')

                # now that the user has logged in, send her to either the next page or the account page
                return redirect(next_page) if next_page else redirect(
                    url_for('requests'))

            # if email address is found but password doesn't match, display error message
            else:
                flash('Incorrect password.', 'danger')

        # if email address is not found, display error message
        else:
            flash('Email address not found. Have you registered?', 'danger')

    return render_template('login.html', title='Login', form=form)
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user.check_password(form.password.data) and user is not None:
            login_user(user)
            flash('Başarıyla giriş yaptınız!')
            next = request.args.get('next')
            if next == None or not next[0] == '/':
                next = url_for('welcome')
            return redirect(next)
    return render_template('login.html', form=form)
示例#15
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email = form.email.data).first()
        if user and user.checkPassword(form.password.data) and user is not None:
            login_user(user)
            flash("Logged in successfully!")
            next = request.args.get('next')
            if next == None or not next[0]=='/':
                next = url_for('index')
            return redirect(next)
    return render_template('login.html', form = form)
示例#16
0
def loginPage():
    form = LoginForm()
    if form.validate_on_submit():
        student = Student.query.filter_by(rollno=form.rollno.data).first()
        if student is not None and student.check_password(form.password.data):
            flash('Logged in successfully.')
            login_user(student)
            return redirect(url_for('admin.dashboard', rollno=student.rollno))
        else:
            flash('User is not registered.')
            return render_template('login.html', form=form)
    return render_template('login.html', form=form)
示例#17
0
文件: app.py 项目: Ana9-tech/Project
def login():

    form = LoginForm()
    if request.method == 'POST':
        user = User.query.filter_by(email=form.email.data).first()
        if user is None or not user.check_password(form.password.data):
            flash('Invaid email or password')
            return redirect(url_for('login'))
        login_user(user)
        return redirect(url_for('index'))

    return render_template('login.html', form=form)
示例#18
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user.check_password(form.password.data) and user is not None:
            login_user(user)
            flash('Login Successful')
            next = request.args.get('next')
            if next == None or not next[0] == '/':
                next = url_for('login')
            return redirect(next)
    return render_template('login.html', form=form)
示例#19
0
def login():
    form = LoginForm()
    if current_user.is_authenticated:
        return redirect(url_for("home"))
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password, form.password.data):
            login_user(user, remember=form.remember.data)
            next_page = request.args.get("next")
            return redirect(next_page) if next_page else redirect(url_for("home"))
        else:
            flash("Login Unsuccesful. Please check email and Password", "danger")
    return render_template("login.html", form=form)
示例#20
0
 def post(self, request):
     form = LoginForm(request.POST)
     if form.is_valid():
         username = form.cleaned_data['login']
         password = form.cleaned_data['password']
         user = authenticate(username=username, password=password)
         if user:
             login(request, user)
             return redirect('/')
         else:
             return render(request, 'login.html', {'form': form})
     else:
         return render(request, 'login.html', {'form': form})
示例#21
0
def index():
    if not current_user.is_authenticated:
        loginform = LoginForm(request.form)
        signupform = RegisterForm(request.form)
        codeform = CodeForm(request.form)
        return render_template('index.html',
                               loginform=loginform,
                               signupform=signupform,
                               codeform=codeform)
    elif current_user.user_type == "conference":
        return redirect(url_for('private_route'))
    else:
        return redirect(url_for('committee'))
示例#22
0
def test_login_form_is_invalid_if_auth_failed():
    with patch('project.forms.authenticate', return_value=None) as auth:
        form = LoginForm(data={
            'phone_number': '5551234567',
            'password': '******'
        })
        assert form.is_valid() is False
        auth.assert_called_once_with(phone_number='5551234567',
                                     password='******')
        assert form.errors == {
            '__all__': ['Invalid phone number or password.']
        }
        assert form.authenticated_user is None
def login():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password, form.password.data):
            login_user(user, remember=form.remember.data)
            next_page = request.args.get('next')
            return redirect(next_page) if next_page else redirect(url_for('home'))
        else:
            flash('Login Unsuccessful. Please check email and password', 'danger')
    return render_template('login.html', title='Login', form=form)
示例#24
0
def test_login_form_is_invalid_if_auth_failed():
    with patch("project.forms.authenticate", return_value=None) as auth:
        form = LoginForm(data={
            "phone_number": "5551234567",
            "password": "******"
        })
        assert form.is_valid() is False
        auth.assert_called_once_with(phone_number="5551234567",
                                     password="******")
        assert form.errors == {
            "__all__": ["Invalid phone number or password."]
        }
        assert form.authenticated_user is None
示例#25
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        print(user)
        if user.check_password(form.password.data) and user is not None:
            login_user(user)
            flash('Logged Successfully', 'success')
            next = request.args.get('next')
            if not is_safe_url(next):
                return abort(400)
        return redirect(next or url_for('index'))
    return render_template('login.html', form=form)
示例#26
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user, remember=form.remember.data)
            return redirect(url_for('index'))
        else:
            flash('Login unsuccessful. Please check email and password',
                  'danger')
    return render_template('login.html', pageTitle='Sign In', form=form)
示例#27
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            #can take two arguments, second is for remember
            login_user(user, remember=form.remember.data)
            return redirect(url_for('index'))
        else:
            flash('Login unsuccessful!', 'danger')
    return render_template('login.html', title='Login', form=form)
示例#28
0
def login():
    form = LoginForm()
    if current_user.is_authenticated:
        return redirect(url_for('user_show'))
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password, form.password.data):
            login_user(user)
            flash("Welcome Back, {}!".format(user.email), 'success')
            return redirect(url_for('user_show'))
        else:
            flash('Login Unsuccessful. Please check your email and password', 'danger')
            render_template('/users/login.html', form=form)
    return render_template('users/login.html', form=form)
示例#29
0
def login():

    if current_user.is_authenticated:
        return redirect(url_for('welcome'))

    form = LoginForm()

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

        if user is None or not user.check_password(
                form.password.data) or user.lockout:

            if user is not None:

                user.fail_count = user.fail_count + 1
                db.session.commit()

                if user.fail_count > 5:
                    user.lockout = True
                    db.session.commit()

                    app.logger.info("User[{}]'s account is locked")
                    flash(
                        "Your account has been locked due to excessive failed login attempts,"
                        "please reset your password to log back in")
                    return redirect(url_for('reset_password_request'))

            flash(
                "Apologies but that is an Invalid username/password combination"
            )
            app.logger.info("Login Attempt Failed")
            return redirect(url_for('login'))

        flash('Login Requested for user {}, remember_me={}'.format(
            form.username.data, form.rmbr_user.data))
        login_user(user, remember=form.rmbr_user.data)
        session['username'] = user.username

        ret_page = request.args.get('next')

        if not ret_page:
            ret_page = url_for('welcome')

        app.logger.info("Logging in user[{}]".format(form.username.data))
        return redirect(ret_page)

    return render_template("login.html", title="Log In", form=form)
示例#30
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user is None or not user.check_password(form.password.data):
            flash('Invalid username or password')
            return redirect(url_for('login'))
        next_page = request.args.get('next')
        if not next_page or url_parse(next_page).netloc != "":
            next_page = url_for('index')
        login_user(user, remember=form.remember_me.data)
        return redirect(next_page)
    return render_template('login.html', title="Sign In", form=form)