Logins seem to work.
This commit is contained in:
parent
4ad5af85e2
commit
a37767172b
@ -35,3 +35,13 @@ class RegistrationForm(wtforms.Form):
|
||||
'Email address',
|
||||
[wtforms.validators.Required(),
|
||||
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):
|
||||
"""
|
||||
Mediagoblin login view.
|
||||
|
||||
If you provide the POST with 'next', it'll redirect to that view.
|
||||
"""
|
||||
login_form = auth_forms.LoginForm(request.POST)
|
||||
|
||||
login_failed = False
|
||||
|
||||
if request.method == 'POST' and login_form.validate():
|
||||
#try:
|
||||
user = request.db.User.find_one(
|
||||
@ -79,15 +86,19 @@ def login(request):
|
||||
if user.check_login(request.POST['password']):
|
||||
# set up login in session
|
||||
request.session['user_id'] = unicode(user['_id'])
|
||||
request.session.save()
|
||||
|
||||
import pdb
|
||||
pdb.set_trace()
|
||||
|
||||
if request.POST.has_key('next'):
|
||||
return exc.HTTPFound(location=request.POST['next'])
|
||||
else:
|
||||
return exc.HTTPFound(
|
||||
location=request.urlgen("index"))
|
||||
|
||||
else:
|
||||
# Prevent detecting who's on this system by testing login
|
||||
# attempt timings
|
||||
auth_lib.fake_login_attempt()
|
||||
login_failed = True
|
||||
|
||||
# render
|
||||
template = request.template_env.get_template(
|
||||
@ -95,7 +106,9 @@ def login(request):
|
||||
return Response(
|
||||
template.render(
|
||||
{'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):
|
||||
|
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