Fix problem with migration - OAuth

This commit is contained in:
Jessica Tallon 2013-07-22 17:17:01 +01:00
parent 617bff1830
commit 8e3bf97821
3 changed files with 9 additions and 10 deletions

View File

@ -25,6 +25,8 @@ from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql import and_
from migrate.changeset.constraint import UniqueConstraint
from mediagoblin.db.extratypes import JSONEncoded
from mediagoblin.db.migration_tools import RegisterMigration, inspect_table
from mediagoblin.db.models import MediaEntry, Collection, User, MediaComment
@ -382,7 +384,7 @@ def pw_hash_nullable(db):
# oauth1 migrations
class Client_v0(Base):
class Client_v0(declarative_base()):
"""
Model representing a client - Used for API Auth
"""
@ -407,7 +409,7 @@ class Client_v0(Base):
else:
return "<Client {0}>".format(self.id)
class RequestToken_v0(Base):
class RequestToken_v0(declarative_base()):
"""
Model for representing the request tokens
"""
@ -415,7 +417,7 @@ class RequestToken_v0(Base):
token = Column(Unicode, primary_key=True)
secret = Column(Unicode, nullable=False)
client = Column(Unicode, ForeignKey(Client.id))
client = Column(Unicode, ForeignKey(Client_v0.id))
user = Column(Integer, ForeignKey(User.id), nullable=True)
used = Column(Boolean, default=False)
authenticated = Column(Boolean, default=False)
@ -424,7 +426,7 @@ class RequestToken_v0(Base):
created = Column(DateTime, nullable=False, default=datetime.datetime.now)
updated = Column(DateTime, nullable=False, default=datetime.datetime.now)
class AccessToken_v0(Base):
class AccessToken_v0(declarative_base()):
"""
Model for representing the access tokens
"""
@ -433,12 +435,12 @@ class AccessToken_v0(Base):
token = Column(Unicode, nullable=False, primary_key=True)
secret = Column(Unicode, nullable=False)
user = Column(Integer, ForeignKey(User.id))
request_token = Column(Unicode, ForeignKey(RequestToken.token))
request_token = Column(Unicode, ForeignKey(RequestToken_v0.token))
created = Column(DateTime, nullable=False, default=datetime.datetime.now)
updated = Column(DateTime, nullable=False, default=datetime.datetime.now)
class NonceTimestamp_v0(Base):
class NonceTimestamp_v0(declarative_base()):
"""
A place the timestamp and nonce can be stored - this is for OAuth1
"""

View File

@ -1,5 +1,4 @@
import wtforms
from mediagoblin.tools.translate import lazy_pass_to_ugettext as _
class AuthorizeForm(wtforms.Form):
""" Form used to authorize the request token """

View File

@ -15,8 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from oauthlib.common import Request
from oauthlib.oauth1 import (AuthorizationEndpoint, RequestValidator,
RequestTokenEndpoint, AccessTokenEndpoint)
from oauthlib.oauth1 import RequestValidator
from mediagoblin.db.models import NonceTimestamp, Client, RequestToken, AccessToken
@ -110,7 +109,6 @@ class GMGRequestValidator(RequestValidator):
return client.secret
def get_access_token_secret(self, client_key, token, request):
client = Client.query.filter_by(id=client_key).first()
access_token = AccessToken.query.filter_by(token=token).first()
return access_token.secret