예제 #1
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)
예제 #2
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)
예제 #3
0
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')
예제 #4
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'))
예제 #5
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
예제 #6
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
예제 #7
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)
예제 #8
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)
예제 #9
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)
예제 #10
0
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)
예제 #11
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)
예제 #12
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
예제 #13
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
예제 #14
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
예제 #15
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
예제 #16
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)
예제 #17
0
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)
예제 #18
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})
예제 #19
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)
예제 #20
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)
예제 #21
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)
예제 #22
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)
예제 #23
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)
예제 #24
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)
예제 #25
0
파일: views.py 프로젝트: Meli009/project
def login():
    error = None
    form = LoginForm(request.form)
    if request.method == 'POST':
        if form.validate_on_submit():
            user = User.query.filter_by(name=request.form['name']).first()
            if user is not None and user.password == request.form['password']:
                session['logged_in'] = True
                session['user_id'] = user.id
                session['role'] = user.role
                flash('Welcome!')
                return redirect(url_for('tasks'))
            else:
                error = 'Invalid username or password.'
    return render_template('login.html', form=form, error=error)
예제 #26
0
def login():
    if session.get("admin") is True:
        # already authenticated
        return redirect("/admin")

    form = LoginForm()
    if form.validate_on_submit():
        admin = get_setting("admin").get(form.key.data, None)
        if admin and admin == form.password.data:
            # Allow for a persistent login
            session.permanent = True
            session["admin"] = True
            return redirect("/admin")
        flash("There was a problem authenticating you.", "error")
    return render_template("admin_login.tpl", form=form)
예제 #27
0
def login():
  form = LoginForm()
  if form.validate_on_submit():

  #if request.method == "POST":
    name = form.username.data
    password = form.password.data
    user = db.session.query(User).filter_by(name=name, password=password).first()
    if user:
      login_user(user)
      return redirect(url_for('user_home', username=user.name, userid=user.id))
    else:
      flash("Username or password was incorrect.")
      return redirect(url_for('login'))
  return render_template('login.html', form=form)
예제 #28
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data.lower()).first()
        if user is not None:
            if user.check_password(form.password.data):
                login_user(user)
                next = request.args.get('next')
                if next == None or not next[0] == '/':
                    next = url_for('main.home')
                return redirect(next)
        flash(
            'The email or password you entered do not match our records.  Please try again.'
        )
    return render_template('login.html', form=form)
def login():
    form = LoginForm(request.form)
    if request.method == 'POST':
        if form.validate_on_submit():
            email = form.email.data
            password = form.password.data
            user = User.query.filter_by(email=email).first()
            if user is None or not user.check_password(password):
                return Response("<p>Incorrect email or password</p>")
            login_user(user, remember=True)
            return redirect(url_for('browse'))
        else:
            return Response("<p>invalid form</p>")
    else:
        return render_template('login.html', form=form)
예제 #30
0
파일: views.py 프로젝트: semis2008/Qsystem
def login(request):
    #try:
    #    if request.session["id"]:
    #        return HttpResponseRedirect("/personal_homepage")
    #except KeyError:
    #    return HttpResponseRedirect("/noperm.html")

    template_var = {}
    if "username" in request.COOKIES and "password" in request.COOKIES:
        username = request.COOKIES["username"]
        password = request.COOKIES["password"]
        _userset = models.user.objects.filter(username__exact=username, password__exact=password)
        if _userset.count() >= 1:
            _user = _userset[0]
            request.session['username'] = _user.username
            request.session['realname'] = _user.realname
            return HttpResponseRedirect("/personal_homepage")
    form = LoginForm()
    if request.method == 'POST':
        form = LoginForm(request.POST.copy())
        if form.is_valid():
            username = form.cleaned_data["username"]
            password = hashlib.md5(form.cleaned_data["password"]).hexdigest()
            isautologin = form.cleaned_data["isautologin"]
            _userset = models.user.objects.filter(username__exact=username, password__exact=password)
            if _userset.count() >= 1:
                _user = _userset[0]
                if _user.isactived:
                    request.session['username'] = _user.username
                    request.session['realname'] = _user.realname
                    request.session['id'] = _user.id
                    #Django 认证系统的登录
                    try:
                        user = auth.authenticate(username=username, password=form.cleaned_data["password"])
                        auth.login(request, user)
                    except:
                        template_var["error"] = _(u'您输入的帐号或密码有误,请重新输入')
                    response = HttpResponseRedirect("/personal_homepage")
                    if isautologin:
                        response.set_cookie("username", username, 3600)
                        response.set_cookie("password", password, 3600)   
                    return response
                else:
                    template_var["error"] = _(u'您输入的帐号未激活,请联系管理员')
            else:
                template_var["error"] = _(u'您输入的帐号或密码有误,请重新输入')
    template_var["form"] = form
    return render_to_response("login.html", template_var, context_instance=RequestContext(request))
예제 #31
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('lessons'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and user.password == form.password.data:
            login_user(user, remember=form.remember.data)
            next_page = request.args.get('next')
            flash("You have been logged in succesfully", 'success')
            return redirect(next_page) if next_page else redirect(
                url_for('lessons'))
        else:
            flash("Login Unsuccesful.Please check your email and password!",
                  'danger')
    return render_template('login.html', title='Login', form=form)
예제 #32
0
def user_login(request):
	form = LoginForm(request.POST or None)
	if form.is_valid():
		login(request, form.user_cache)
		return redirect(home)
	return render_to_response('user/login.html', {'form':form}, context_instance=RequestContext(request))