/
login.py
48 lines (33 loc) · 1.22 KB
/
login.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"""
The login view.
"""
from flask.views import MethodView
from flask import redirect, url_for, request, session, render_template
from flask_login import current_user, login_user
from freelan_server.database import User
from freelan_server.forms.login import LoginForm
class LoginView(MethodView):
"""
The login view.
"""
def __init__(self, app):
"""
Initialize the view.
app is the application.
"""
super(LoginView, self).__init__()
self.app = app
def get(self):
form = LoginForm()
if not self.app.config['RECAPTCHA_PRIVATE_KEY']:
delattr(form, 'recaptcha')
if form.validate_on_submit():
user = User.query.filter_by(username=form.username.data).first()
if user and user.check_password(form.password.data):
session.regenerate()
login_user(user, remember=form.remember_me.data)
return redirect(url_for('root'))
else:
form.password.errors.append('The username or password is incorrect.')
return render_template('pages/login.html', form=form, register_enabled=self.app.config['REGISTER_ENABLED'])
post = get