Fix problem with migration - OAuth
authorJessica Tallon <xray7224@googlemail.com>
Mon, 22 Jul 2013 16:17:01 +0000 (17:17 +0100)
committerJessica Tallon <xray7224@googlemail.com>
Mon, 22 Jul 2013 16:17:01 +0000 (17:17 +0100)
mediagoblin/db/migrations.py
mediagoblin/federation/forms.py
mediagoblin/federation/oauth.py

index 015dbff01b2bb215a4dbfaa49c98e03e7bd01da8..374ab4c8f6b6bbba969d2b8ccf399cdb62931207 100644 (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
     """
index 39d6fc279b804ace6660947f39178281e5dfb0e7..94c7cb52da7e0379b565a3cd02e6f97f16f4979b 100644 (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 """
index 764b8535ced5dabb7cfb410d8b007d587fdec1c8..8229c47d885c99b7cd23e4d2ddbd39be66ba21b9 100644 (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