diff options
Diffstat (limited to 'mediagoblin/plugins/persona')
4 files changed, 44 insertions, 7 deletions
diff --git a/mediagoblin/plugins/persona/__init__.py b/mediagoblin/plugins/persona/__init__.py index 700c18e2..8fab726a 100644 --- a/mediagoblin/plugins/persona/__init__.py +++ b/mediagoblin/plugins/persona/__init__.py @@ -19,7 +19,7 @@ import os from sqlalchemy import or_ from mediagoblin.auth.tools import create_basic_user -from mediagoblin.db.models import User +from mediagoblin.db.models import User, LocalUser from mediagoblin.plugins.persona.models import PersonaUserEmails from mediagoblin.tools import pluginapi from mediagoblin.tools.staticdirect import PluginStatic @@ -60,8 +60,8 @@ def create_user(register_form): username = register_form.username.data user = User.query.filter( or_( - User.username == username, - User.email == username, + LocalUser.username == username, + LocalUser.email == username, )).first() if not user: diff --git a/mediagoblin/plugins/persona/forms.py b/mediagoblin/plugins/persona/forms.py index 7d632344..f74d97fa 100644 --- a/mediagoblin/plugins/persona/forms.py +++ b/mediagoblin/plugins/persona/forms.py @@ -20,11 +20,11 @@ from mediagoblin.auth.tools import normalize_user_or_email_field class RegistrationForm(wtforms.Form): - username = wtforms.TextField( + username = wtforms.StringField( _('Username'), [wtforms.validators.InputRequired(), normalize_user_or_email_field(allow_email=False)]) - email = wtforms.TextField( + email = wtforms.StringField( _('Email address'), [wtforms.validators.InputRequired(), normalize_user_or_email_field(allow_user=False)]) @@ -35,7 +35,7 @@ class RegistrationForm(wtforms.Form): class EditForm(wtforms.Form): - email = wtforms.TextField( + email = wtforms.StringField( _('Email address'), [wtforms.validators.InputRequired(), normalize_user_or_email_field(allow_user=False)]) diff --git a/mediagoblin/plugins/persona/migrations/c7d4840a5592_persona_plugin_initial_migration.py b/mediagoblin/plugins/persona/migrations/c7d4840a5592_persona_plugin_initial_migration.py new file mode 100644 index 00000000..0c40893a --- /dev/null +++ b/mediagoblin/plugins/persona/migrations/c7d4840a5592_persona_plugin_initial_migration.py @@ -0,0 +1,35 @@ +"""Persona plugin initial migration + +Revision ID: c7d4840a5592 +Revises: 52bf0ccbedc1 +Create Date: 2016-03-12 23:30:33.624390 + +""" + +# revision identifiers, used by Alembic. +revision = 'c7d4840a5592' +down_revision = '52bf0ccbedc1' +branch_labels = ('persona_plugin',) +depends_on = None + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + if op.get_bind().engine.has_table('persona__user_emails'): + # Skip; this has already been instantiated + # (probably via sqlalchemy-migrate) + return + + op.create_table( + 'persona__user_emails', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('persona_email', sa.Unicode(), nullable=False), + sa.Column('user_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['user_id'], ['core__users.id'], ), + sa.PrimaryKeyConstraint('id')) + + +def downgrade(): + op.drop_table('persona__user_emails') diff --git a/mediagoblin/plugins/persona/views.py b/mediagoblin/plugins/persona/views.py index 1bba3b8c..41d38353 100644 --- a/mediagoblin/plugins/persona/views.py +++ b/mediagoblin/plugins/persona/views.py @@ -17,6 +17,8 @@ import json import logging import requests +import six + from werkzeug.exceptions import BadRequest from mediagoblin import messages, mg_globals @@ -63,7 +65,7 @@ def login(request): user = query.user if query else None if user: - request.session['user_id'] = unicode(user.id) + request.session['user_id'] = six.text_type(user.id) request.session['persona_login_email'] = email request.session.save() |