Logins seem to work.
This commit is contained in:
parent
4ad5af85e2
commit
a37767172b
@ -35,3 +35,13 @@ class RegistrationForm(wtforms.Form):
|
|||||||
'Email address',
|
'Email address',
|
||||||
[wtforms.validators.Required(),
|
[wtforms.validators.Required(),
|
||||||
wtforms.validators.Email()])
|
wtforms.validators.Email()])
|
||||||
|
|
||||||
|
|
||||||
|
class LoginForm(wtforms.Form):
|
||||||
|
username = wtforms.TextField(
|
||||||
|
'Username',
|
||||||
|
[wtforms.validators.Required(),
|
||||||
|
wtforms.validators.Regexp(r'^\w+$')])
|
||||||
|
password = wtforms.PasswordField(
|
||||||
|
'Password',
|
||||||
|
[wtforms.validators.Required()])
|
||||||
|
@ -69,8 +69,15 @@ def register_success(request):
|
|||||||
|
|
||||||
|
|
||||||
def login(request):
|
def login(request):
|
||||||
|
"""
|
||||||
|
Mediagoblin login view.
|
||||||
|
|
||||||
|
If you provide the POST with 'next', it'll redirect to that view.
|
||||||
|
"""
|
||||||
login_form = auth_forms.LoginForm(request.POST)
|
login_form = auth_forms.LoginForm(request.POST)
|
||||||
|
|
||||||
|
login_failed = False
|
||||||
|
|
||||||
if request.method == 'POST' and login_form.validate():
|
if request.method == 'POST' and login_form.validate():
|
||||||
#try:
|
#try:
|
||||||
user = request.db.User.find_one(
|
user = request.db.User.find_one(
|
||||||
@ -79,15 +86,19 @@ def login(request):
|
|||||||
if user.check_login(request.POST['password']):
|
if user.check_login(request.POST['password']):
|
||||||
# set up login in session
|
# set up login in session
|
||||||
request.session['user_id'] = unicode(user['_id'])
|
request.session['user_id'] = unicode(user['_id'])
|
||||||
|
request.session.save()
|
||||||
|
|
||||||
import pdb
|
if request.POST.has_key('next'):
|
||||||
pdb.set_trace()
|
return exc.HTTPFound(location=request.POST['next'])
|
||||||
|
else:
|
||||||
|
return exc.HTTPFound(
|
||||||
|
location=request.urlgen("index"))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# Prevent detecting who's on this system by testing login
|
# Prevent detecting who's on this system by testing login
|
||||||
# attempt timings
|
# attempt timings
|
||||||
auth_lib.fake_login_attempt()
|
auth_lib.fake_login_attempt()
|
||||||
|
login_failed = True
|
||||||
|
|
||||||
# render
|
# render
|
||||||
template = request.template_env.get_template(
|
template = request.template_env.get_template(
|
||||||
@ -95,7 +106,9 @@ def login(request):
|
|||||||
return Response(
|
return Response(
|
||||||
template.render(
|
template.render(
|
||||||
{'request': request,
|
{'request': request,
|
||||||
'login_form': login_form}))
|
'login_form': login_form,
|
||||||
|
'next': request.GET.get('next') or request.POST.get('next'),
|
||||||
|
'login_failed': login_failed}))
|
||||||
|
|
||||||
|
|
||||||
def logout(request):
|
def logout(request):
|
||||||
|
23
mediagoblin/templates/mediagoblin/auth/login.html
Normal file
23
mediagoblin/templates/mediagoblin/auth/login.html
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{% extends "mediagoblin/base.html" %}
|
||||||
|
|
||||||
|
{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %}
|
||||||
|
|
||||||
|
{% block mediagoblin_content %}
|
||||||
|
<h2>Login:</h2>
|
||||||
|
|
||||||
|
<form action="{{ request.urlgen('mediagoblin.auth.login') }}"
|
||||||
|
method="POST" enctype="multipart/form-data">
|
||||||
|
|
||||||
|
{% if login_failed %}
|
||||||
|
<p><i>Login failed!</i></p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<table>
|
||||||
|
{{ wtforms_util.render_table(login_form) }}
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td><input type="submit" value="submit" /></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
Loading…
x
Reference in New Issue
Block a user