Exemplo n.º 1
0
def login():
    form = LoginForm()
    regform = RegisterForm()
    error = None
    
    if form.validate_on_submit() or regform.validate_on_submit():
        if request.form['btn'] == 'Login':
            user = User.query.filter_by(username=form.username.data).first()
            if bcrypt.hashpw(form.password.data.encode('utf8'), user.password.encode('utf8')) == user.password.encode('utf8'): #decrypt password
                session['username'] = form.username.data
                return redirect(url_for('index'))
            else:
                error = "Incorrect username and password"
        else:
            # Check if username exists
            usernames = [u.username for u in User.query.all()]
            if regform.username.data in usernames:
                error = "username already exists!"
            else:
                # Add user to DB
                # 574 22nd Ave San Francisco, CA 94121
                address = str(regform.house_number) + " " + regform.street + " " + regform.city + ", " + regform.state + " " + str(regform.zip_code)
                print (address)
                passwordEncrypt = bcrypt.hashpw(regform.password.data.encode('utf8'), bcrypt.gensalt()) #encrypt password
                regUser = User(
                    regform.fullname.data,
                    regform.email.data,
                    regform.username.data,
                    passwordEncrypt,
                    address)
                db.session.add(regUser)
                db.session.commit() #simulate that the record is written
                # db.session.flush()
                # error = "Registration failed!"
    return render_template('user/login.html', form=form, regform=regform, error=error)
Exemplo n.º 2
0
def login_page():
    form = LoginForm()

    error = ""

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

    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user:
            if bcrypt.hashpw(form.password.data,
                             user.password) == user.password:
                session["username"] = form.username.data
                session["is_author"] = user.is_author
                if "next" in session:
                    next_page = session.get("next")
                    session.pop("next")
                    return redirect(next_page)
                return redirect(url_for("index_page"))
            else:
                error = "Invalid password"
                return render_template("user/login.html",
                                       form=form,
                                       error=error)
        else:
            error = "Invalid username"
            return render_template("user/login.html", form=form, error=error)
    return render_template("user/login.html", form=form)
Exemplo n.º 3
0
def login():
    form = LoginForm()
    error = None

    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, ).first()
        if user:
            if bcrypt.hashpw(form.password.data,
                             user.password) == user.password:
                session['username'] = user.username
                session['is_author'] = user.is_author
                if 'next' in session:
                    next = session.get('next')
                    session.pop('next')
                    return redirect(next)
                else:
                    return redirect(url_for('index'))
            else:
                error = "Incorrect password"
        else:
            error = "User not found"
    return render_template('user/login.html', form=form, error=error)
Exemplo n.º 4
0
def login():
    form = LoginForm()
    error = None

    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,
            ).first()
        if user:
            if bcrypt.hashpw(form.password.data, user.password) == user.password:
                session['username'] = user.username
                session['is_author'] = user.is_author
                if 'next' in session:
                    next = session.get('next')
                    session.pop('next')
                    return redirect(next)
                else:
                    return redirect(url_for('index'))
            else:
                error = "Incorrect password"
        else:
            error = "User not found"
    return render_template('user/login.html', form=form, error=error)
Exemplo n.º 5
0
def login():
	form = LoginForm()
	error = None
	# checking is user has been redirected to login to send back to correct page after logged in
	if request.method == 'GET' and request.args.get('next'):
		session['next'] = request.args.get('next', None)
    	
	# if form is correctly posted: login checks
	if form.validate_on_submit():
		user = User.query.filter_by(username=form.username.data).first()
		if user:
			if bcrypt.hashpw(form.password.data, user.password) == user.password:
				session['username'] = form.username.data.lower()
				session['fullname'] = user.fullname
				session['is_admin'] = user.is_admin
				user.req_lost_pass = False
				db.session.commit()
				flash("Logged in")
				if 'next' in session:
					next = session.get('next')
					session.pop('next')
					return redirect(next)
				else:	
					return redirect(url_for('index'))
			else:
				error = "Incorrect Username and/or Password"

		else:
			error = "Incorrect Username and/or Password"

	return render_template('user/login.html', form=form, error=error)
Exemplo n.º 6
0
def login_page():
    form = LoginForm()

    error = ""

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

    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user:
            if bcrypt.hashpw(form.password.data, user.password) == user.password:
                session["username"] = form.username.data
                session["is_author"] = user.is_author
                if "next" in session:
                    next_page = session.get("next")
                    session.pop("next")
                    return redirect(next_page)
                return redirect(url_for("index_page"))
            else:
                error = "Invalid password"
                return render_template("user/login.html", form=form, error=error)
        else:
            error = "Invalid username"
            return render_template("user/login.html", form=form, error=error)
    return render_template("user/login.html", form=form)
Exemplo n.º 7
0
def login(request):
    print(request.method)
    if request.method == "GET":
        try:
            user = request.session.get("user", None)
            print(user)
        except AttributeError:
            return render(request, "login.html")
        else:
            if user:
                return render(request, "home.html")
        return render(request, "login.html")

    if request.method == "POST":
        request.encoding = "utf-8"
        login_info = request.POST
        f = LoginForm(login_info)
        if f.is_valid():
            name = f.cleaned_data["username"]
            pwd = f.cleaned_data["userpass"]
            remember = f.cleaned_data["remember"]
            res_set = User.objects.filter(name=name)
            if len(res_set) == 0:
                return render(request, "login.html", {"error_msg": "用户名或者密码错误,请重新输入!"})
            user = res_set[0]
            if str(user.password) == pwd:
                request.session[SESSION_USER_NAME] = user.name
                if remember:
                    pass
                # TODO 需要添加记住我功能
                return redirect(init_home)
            elif str(user.password) != pwd:
                return render(request, "login.html", {"error_msg": "用户名或者密码错误,请重新输入!"})
        return render(request, "login.html", {"obj": f.errors})
Exemplo n.º 8
0
    def test_login_username_false(self):
        """
        Check if username is already exists. Do not valid the form.
        """
        form = LoginForm(data={
            "username": "******",
            "password": "******"
        })

        self.assertFalse(form.is_valid())
Exemplo n.º 9
0
    def test_login_form_is_valid(self):
        """
        Check if login form has good value. Valid the form.
        """
        form = LoginForm(data={
            "username": "******",
            "password": "******"
        })

        self.assertTrue(form.is_valid())
def login():
    form = LoginForm()
    regform = RegisterForm()
    error = None

    if form.validate_on_submit() or regform.validate_on_submit():
        if request.form['btn'] == 'Login':
            user = User.query.filter_by(username=form.username.data).first()
            if len(user.password) < 20:
                session['username'] = form.username.data
                return redirect(url_for('index'))
            elif bcrypt.hashpw(
                    form.password.data.encode('utf8'),
                    user.password.encode('utf8')) == user.password.encode(
                        'utf8'):  #decrypt password
                session['username'] = form.username.data
                return redirect(url_for('index'))
            else:
                error = "Incorrect username and password"
        else:
            # Check if username exists
            usernames = [u.username for u in User.query.all()]
            if regform.username.data in usernames:
                error = "username already exists!"
            else:
                # Add user to DB
                address = ""
                address = str(
                    regform.house_number.data
                ) + " " + regform.street.data + ", " + regform.city.data + ", " + regform.state.data + " " + str(
                    regform.zip_code.data)
                try:
                    geolocator = GoogleV3()
                    user_location = geolocator.geocode(address)
                    print(user_location.latitude, user_location.longitude)
                    print("Valid Address")
                except:
                    error = "Invalid Address or does not exist, please enter a valid address and Register again"
                    return render_template('user/login.html',
                                           form=form,
                                           regform=regform,
                                           error=error)
                passwordEncrypt = bcrypt.hashpw(
                    regform.password.data.encode('utf8'),
                    bcrypt.gensalt())  #encrypt password
                regUser = User(regform.fullname.data, regform.email.data,
                               regform.username.data, passwordEncrypt, address)
                db.session.add(regUser)
                db.session.commit()  #simulate that the record is written
                # db.session.flush()
                # error = "Registration failed!"
    return render_template('user/login.html',
                           form=form,
                           regform=regform,
                           error=error)
Exemplo n.º 11
0
def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            user = User.objects.get(username=username)
            res = HttpResponseRedirect(reverse('goods:index'))
            request.session['user_id'] = user.id
            request.session.set_expiry(86400)
            return res
        errors = form.errors
        return render(request, 'login.html', {'errors': errors})
Exemplo n.º 12
0
def login(request):
    if request.method == 'GET':
        return render(request,'login.html')
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            # 密码相同
            username = form.cleaned_data['username']
            user = User.objects.filter(username=username).first()
            request.session['user_id'] = user.id
            return HttpResponseRedirect(reverse('goods:index'))
        else:
            errors = form.errors
            return render(request,'login.html',{'errors':errors})
Exemplo n.º 13
0
def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')

    if request.method == 'POST':
        # 使用表单校验post传递的参数
        form = LoginForm(request.POST)
        if form.is_valid():
            # 如果成功
            user = auth.authenticate(username=form.cleaned_data.get('username'),
                                     password=form.cleaned_data.get('password'))
            auth.login(request, user)
            return render(request, 'index.html')
        errors = form.errors
        return render(request, 'login.html', {'errors': errors})
Exemplo n.º 14
0
def login():
    """ Handle login process """
    form = LoginForm()
    error = None

    # if got next url data from @login_required decorator
    if request.method == 'GET' and request.args.get('next'):
        # store as session
        session['next'] = request.args.get('next', None)

    # if form submitted
    if form.validate_on_submit():
        # database lookup - SELECT
        user = User.query.filter_by(
            # check for users with username entered
            username=form.username.data
        ).first() # returns first user

        # if user record found with username
        if user:
            # using werkzeug.security
            if check_password_hash(user.password, form.password.data):
                # flask_login
                login_user(user, remember=True)
                # create flask login session
                session['username'] = form.username.data
                # store is_admin flag in session
                if user.is_admin:
                    session['is_admin'] = user.is_admin
                # if have 'next' url in session -> navigate to next after login
                if 'next' in session:
                    next = session.get('next')
                    session.pop('next')
                    return redirect(next)
                else:
                    # go straight to index
                    return redirect(url_for('social'))
            else:
                error = "Incorrect username and password"
        else:
            error = "Incorrect username and password"
    return render_template('user/login.html', form=form, error=error)
Exemplo n.º 15
0
def login():
    form = LoginForm()
    error = None

    if session.get('username'):
        #login_user(session.get('username'), True)

        username = session.get('username')
        #user = User.query.filter_by(username=username)
        #login_user(username, True)
        flash('You are already logged in as %s' % username)
        return redirect(url_for('index'))

    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).first()

        if user:

            if bcrypt.hashpw(form.password.data,
                             user.password) == user.password:
                session['username'] = form.username.data
                session['is_author'] = user.is_author

                if 'next' in session:

                    next = session.get('next')
                    session.pop('next')

                    return redirect(next)

                else:

                    return redirect(url_for('index'))
            else:
                error = 'Incorrect Password'
        else:
            error = "Incorrect Username"

    return render_template('user/login.html', form=form, error=error)
Exemplo n.º 16
0
def login():
    form = LoginForm()
    error = ""

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

    if form.validate_on_submit():
        author = Author.query.filter_by(username=form.username.data,
                                        password=form.password.data).limit(1)
        if author.count():
            session['username'] = form.username.data
            if 'next' in session:
                next = session.get('next')
                session.pop('next')
                return redirect(next)
            else:
                return redirect(url_for('login_success'))

    return render_template('user/login.html', form=form, error=error)
Exemplo n.º 17
0
def login():
    form = LoginForm()
    state = ''.join(
        random.choice(string.ascii_uppercase + string.digits)
        for x in range(32))
    session['state'] = state
    if request.method == "GET" and request.args.get("next"):
        session['next'] = request.args.get('next')
    if form.validate_on_submit():
        user = User.objects.filter(email=form.email.data).first()
        session['username'] = user.username
        session['email'] = user.email
        session['userIntId'] = user.userIntId
        if 'next' in session:
            next = session.get('next')
            session.pop('next')
            return redirect(next)
        else:
            return redirect(url_for('shopping_app.homepage'))
    return render_template("user/login.html", form=form, STATE=state)
Exemplo n.º 18
0
    def post(self, request):
        login_form = LoginForm(request.POST)

        if login_form.is_valid():
            username = request.POST.get('username', '')
            password = request.POST.get('password', '')
            user = authenticate(username=username, password=password)

            if user:
                if user.is_active:
                    login(request, user)
                    return HttpResponseRedirect(reverse('report:report_list'))
                else:
                    return render(request, 'user/login.html',
                                  {'msg': '该用户未激活'})
            else:
                return render(request, 'user/login.html', {'msg': '用户名活着密码错误'})
        else:
            return render(request, 'user/login.html',
                          {'login_form': login_form})
Exemplo n.º 19
0
def login():
	form = LoginForm()
	error = None
	os.chdir('..')
	os.chdir('..')
	os.chdir('./identikey')
	os.chdir('./user')
        
	if request.method == 'GET' and request.args.get('next'):
		session['next'] = request.args.get('next', None)
		
	if form.validate_on_submit():
		for line in open(os.getcwd() + '/user.txt'):
			if 'Username: '******'Username: '******'Password: '******'Password: '******'login.html', form=form, error=error)
Exemplo n.º 20
0
def login():
    if request.method == "GET":
        form = LoginForm()
        return render_template('user/login.html', form=form)

    else:
        form = LoginForm(formdata=request.form)
        # 验证是否符合表单校验
        if form.validate():
            password = form.password.data
            # 查找该用户
            user = User.query.filter_by(username=form.username.data).first()
            if check_password_hash(user.password, password) is False:
                flash("用户名或密码错误")
                return render_template('user/login.html', form=form)
            else:
                flash("登录成功")
                session['user'] = user.to_dict()
                return redirect(url_for("index"))
        else:
            # print(form.errors)
            return render_template('user/login.html', form=form)
Exemplo n.º 21
0
def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')

    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            user = User.objects.get(username=username)
            # 校验密码是否一致
            if not check_password(password, user.password):
                pwd_error = '密码错误'
                return render(request, 'login.html', {'pwd_error': pwd_error})

            res = HttpResponseRedirect(reverse('goods:index'))
            # session中纯属user_id
            request.session['user_id'] = user.id
            request.session.set_expiry(86400)
            return res

        errors = form.errors
        return render(request, 'login.html', {'errors': errors})
Exemplo n.º 22
0
def blog_detail(request, blog_id):
    blog = Blog.objects.filter(id=blog_id).first()
    # blog = Blog.objects.get(id=blog_id)
    # blog = get_object_or_404(Blog, id=blog_id)
    blog_content_type = ContentType.objects.get_for_model(blog)
    read_cookie_key = read_statistics_once_read(request, blog)

    content = {}
    content['blog'] = blog
    content['previous_blog'] = Blog.objects.filter(
        created_time__gt=blog.created_time).last()
    content['next_blog'] = Blog.objects.filter(
        created_time__lt=blog.created_time).first()
    content['read_num'] = blog.get_read_num()
    content['login_form'] = LoginForm()
    response = render(request, 'blog/blog_detail.html', content)
    response.set_cookie(read_cookie_key, 'true')  #阅读cookies标记
    return response
Exemplo n.º 23
0
def logout():
  #Delete the sessions for username when the user logout
  session.pop('username', None)
  regform = RegisterForm()
  form = LoginForm()
  return render_template('user/login.html', form=form, regform=regform)