aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/plugins/persona
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/plugins/persona')
-rw-r--r--mediagoblin/plugins/persona/__init__.py6
-rw-r--r--mediagoblin/plugins/persona/forms.py6
-rw-r--r--mediagoblin/plugins/persona/migrations/c7d4840a5592_persona_plugin_initial_migration.py35
-rw-r--r--mediagoblin/plugins/persona/views.py4
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()