Modified basic_auth plugin to work with modified auth plugin hooks. Added context variables. Removed basic_auth/tools which was previously renamed to basic_auth/lib.

This commit is contained in:
Rodney Ewing 2013-05-20 08:45:04 -07:00
parent c3e3882e39
commit c94316bff4
2 changed files with 27 additions and 32 deletions

View File

@ -19,7 +19,6 @@ import uuid
import forms as auth_forms import forms as auth_forms
import lib as auth_lib import lib as auth_lib
from mediagoblin.db.models import User from mediagoblin.db.models import User
from mediagoblin.tools.translate import pass_to_ugettext as _
from mediagoblin.tools import pluginapi from mediagoblin.tools import pluginapi
from sqlalchemy import or_ from sqlalchemy import or_
@ -35,8 +34,8 @@ def check_login(user, password):
return None return None
def get_user(login_form): def get_user(form):
username = login_form.data['username'] username = form.data['username']
user = User.query.filter( user = User.query.filter(
or_( or_(
User.username == username, User.username == username,
@ -46,6 +45,8 @@ def get_user(login_form):
def create_user(registration_form): def create_user(registration_form):
user = get_user(registration_form)
if not user:
user = User() user = User()
user.username = registration_form.data['username'] user.username = registration_form.data['username']
user.email = registration_form.data['email'] user.email = registration_form.data['email']
@ -56,26 +57,6 @@ def create_user(registration_form):
return user return user
def extra_validation(register_form, *args):
users_with_username = User.query.filter_by(
username=register_form.data['username']).count()
users_with_email = User.query.filter_by(
email=register_form.data['email']).count()
extra_validation_passes = True
if users_with_username:
register_form.username.errors.append(
_(u'Sorry, a user with that name already exists.'))
extra_validation_passes = False
if users_with_email:
register_form.email.errors.append(
_(u'Sorry, a user with that email address already exists.'))
extra_validation_passes = False
return extra_validation_passes
def get_login_form(request): def get_login_form(request):
return auth_forms.LoginForm(request.form) return auth_forms.LoginForm(request.form)
@ -92,15 +73,29 @@ def auth():
return True return True
def append_to_global_context(context):
context['pass_auth'] = True
return context
def add_to_form_context(context):
context['pass_auth_link'] = True
return context
hooks = { hooks = {
'setup': setup_plugin, 'setup': setup_plugin,
'authentication': auth, 'authentication': auth,
'auth_check_login': check_login, 'auth_check_login': check_login,
'auth_get_user': get_user, 'auth_get_user': get_user,
'auth_create_user': create_user, 'auth_create_user': create_user,
'auth_extra_validation': extra_validation,
'auth_get_login_form': get_login_form, 'auth_get_login_form': get_login_form,
'auth_get_registration_form': get_registration_form, 'auth_get_registration_form': get_registration_form,
'auth_gen_password_hash': gen_password_hash, 'auth_gen_password_hash': gen_password_hash,
'auth_fake_login_attempt': auth_lib.fake_login_attempt, 'auth_fake_login_attempt': auth_lib.fake_login_attempt,
'template_global_context': append_to_global_context,
('mediagoblin.plugins.openid.register',
'mediagoblin/auth/register.html'): add_to_form_context,
('mediagoblin.plugins.openid.login',
'mediagoblin/auth/login.html'): add_to_form_context,
} }

View File

@ -26,7 +26,7 @@ class RegistrationForm(wtforms.Form):
normalize_user_or_email_field(allow_email=False)]) normalize_user_or_email_field(allow_email=False)])
password = wtforms.PasswordField( password = wtforms.PasswordField(
_('Password'), _('Password'),
[wtforms.validators.Required(), [wtforms.validators.Optional(),
wtforms.validators.Length(min=5, max=1024)]) wtforms.validators.Length(min=5, max=1024)])
email = wtforms.TextField( email = wtforms.TextField(
_('Email address'), _('Email address'),