diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index c5b046d2..8829995a 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -109,7 +109,7 @@ def send_verification_email(user, request): 'verification_url': EMAIL_VERIFICATION_TEMPLATE.format( host=request.host, uri=request.urlgen('mediagoblin.auth.verify_email'), - userid=unicode(user._id), + userid=unicode(user.id), verification_key=user.verification_key)}) # TODO: There is no error handling in place @@ -144,7 +144,7 @@ def send_fp_verification_email(user, request): 'verification_url': EMAIL_FP_VERIFICATION_TEMPLATE.format( host=request.host, uri=request.urlgen('mediagoblin.auth.verify_forgot_password'), - userid=unicode(user._id), + userid=unicode(user.id), fp_verification_key=user.fp_verification_key)}) # TODO: There is no error handling in place diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 5b77c122..31f50fa6 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -90,7 +90,7 @@ def register(request): user.save(validate=True) # log the user in - request.session['user_id'] = unicode(user._id) + request.session['user_id'] = unicode(user.id) request.session.save() # send verification email @@ -125,7 +125,7 @@ def login(request): if user and user.check_login(request.form['password']): # set up login in session - request.session['user_id'] = unicode(user._id) + request.session['user_id'] = unicode(user.id) request.session.save() if request.form.get('next'): @@ -167,7 +167,7 @@ def verify_email(request): return render_404(request) user = request.db.User.find_one( - {'_id': ObjectId(unicode(request.GET['userid']))}) + {'id': ObjectId(unicode(request.GET['userid']))}) if user and user.verification_key == unicode(request.GET['token']): user.status = u'active' @@ -308,7 +308,7 @@ def verify_forgot_password(request): # check if it's a valid Id try: user = request.db.User.find_one( - {'_id': ObjectId(unicode(formdata_userid))}) + {'id': ObjectId(unicode(formdata_userid))}) except InvalidId: return render_404(request) diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index 3f395e90..9829bb6e 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -99,14 +99,14 @@ class MediaEntryMixin(object): @property def slug_or_id(self): - return (self.slug or self._id) + return (self.slug or self.id) def url_for_self(self, urlgen, **extra_args): """ Generate an appropriate url for ourselves - Use a slug if we have one, else use our '_id'. + Use a slug if we have one, else use our 'id'. """ uploader = self.get_uploader @@ -208,13 +208,13 @@ class CollectionMixin(object): @property def slug_or_id(self): - return (self.slug or self._id) + return (self.slug or self.id) def url_for_self(self, urlgen, **extra_args): """ Generate an appropriate url for ourselves - Use a slug if we have one, else use our '_id'. + Use a slug if we have one, else use our 'id'. """ creator = self.get_creator diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index ca0c8166..8aa9cc3a 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -42,28 +42,15 @@ class GMGQuery(Query): Session = scoped_session(sessionmaker(query_cls=GMGQuery)) -def _fix_query_dict(query_dict): - if '_id' in query_dict: - query_dict['id'] = query_dict.pop('_id') - - class GMGTableBase(object): query = Session.query_property() @classmethod - def find(cls, query_dict=None): - if query_dict is None: - query_dict = {} - - _fix_query_dict(query_dict) + def find(cls, query_dict): return cls.query.filter_by(**query_dict) @classmethod - def find_one(cls, query_dict=None): - if query_dict is None: - query_dict = {} - - _fix_query_dict(query_dict) + def find_one(cls, query_dict): return cls.query.filter_by(**query_dict).first() @classmethod diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index b48c1fbe..8315d05c 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -83,8 +83,6 @@ class User(Base, UserMixin): ## TODO # plugin data would be in a separate model - _id = SimpleFieldAlias("id") - def __repr__(self): return '<{0} #{1} {2} {3} "{4}">'.format( self.__class__.__name__, @@ -161,8 +159,6 @@ class MediaEntry(Base, MediaEntryMixin): # media_data # fail_error - _id = SimpleFieldAlias("id") - def get_comments(self, ascending=False): order_col = MediaComment.created if not ascending: @@ -359,8 +355,6 @@ class MediaComment(Base, MediaCommentMixin): get_author = relationship(User) - _id = SimpleFieldAlias("id") - class Collection(Base, CollectionMixin): __tablename__ = "core__collections" @@ -383,8 +377,6 @@ class Collection(Base, CollectionMixin): return CollectionItem.query.filter_by( collection=self.id).order_by(order_col) - _id = SimpleFieldAlias("id") - class CollectionItem(Base, CollectionItemMixin): __tablename__ = "core__collection_items" @@ -400,8 +392,6 @@ class CollectionItem(Base, CollectionItemMixin): get_media_entry = relationship(MediaEntry) - _id = SimpleFieldAlias("id") - __table_args__ = ( UniqueConstraint('collection', 'media_entry'), {}) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 90b36771..2955c927 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -75,9 +75,9 @@ def user_may_delete_media(controller): @wraps(controller) def wrapper(request, *args, **kwargs): uploader_id = request.db.MediaEntry.find_one( - {'_id': ObjectId(request.matchdict['media'])}).uploader + {'id': ObjectId(request.matchdict['media'])}).uploader if not (request.user.is_admin or - request.user._id == uploader_id): + request.user.id == uploader_id): return exc.HTTPForbidden() return controller(request, *args, **kwargs) @@ -94,7 +94,7 @@ def user_may_alter_collection(controller): creator_id = request.db.User.find_one( {'username': request.matchdict['user']}).id if not (request.user.is_admin or - request.user._id == creator_id): + request.user.id == creator_id): return exc.HTTPForbidden() return controller(request, *args, **kwargs) @@ -134,15 +134,15 @@ def get_user_media_entry(controller): media = request.db.MediaEntry.find_one( {'slug': request.matchdict['media'], 'state': u'processed', - 'uploader': user._id}) + 'uploader': user.id}) # no media via slug? Grab it via ObjectId if not media: try: media = request.db.MediaEntry.find_one( - {'_id': ObjectId(request.matchdict['media']), + {'id': ObjectId(request.matchdict['media']), 'state': u'processed', - 'uploader': user._id}) + 'uploader': user.id}) except InvalidId: return render_404(request) @@ -169,7 +169,7 @@ def get_user_collection(controller): collection = request.db.Collection.find_one( {'slug': request.matchdict['collection'], - 'creator': user._id}) + 'creator': user.id}) # Still no collection? Okay, 404. if not collection: @@ -194,10 +194,10 @@ def get_user_collection_item(controller): collection = request.db.Collection.find_one( {'slug': request.matchdict['collection'], - 'creator': user._id}) + 'creator': user.id}) collection_item = request.db.CollectionItem.find_one( - {'_id': request.matchdict['collection_item'] }) + {'id': request.matchdict['collection_item'] }) # Still no collection item? Okay, 404. if not collection_item: @@ -216,7 +216,7 @@ def get_media_entry_by_id(controller): def wrapper(request, *args, **kwargs): try: media = request.db.MediaEntry.find_one( - {'_id': ObjectId(request.matchdict['media']), + {'id': ObjectId(request.matchdict['media']), 'state': u'processed'}) except InvalidId: return render_404(request) diff --git a/mediagoblin/edit/lib.py b/mediagoblin/edit/lib.py index b4715134..aab537a0 100644 --- a/mediagoblin/edit/lib.py +++ b/mediagoblin/edit/lib.py @@ -17,7 +17,7 @@ def may_edit_media(request, media): """Check, if the request's user may edit the media details""" - if media.uploader == request.user._id: + if media.uploader == request.user.id: return True if request.user.is_admin: return True diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 111f9ae8..6d938f7c 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -79,7 +79,7 @@ def edit_media(request, media): location=media.url_for_self(request.urlgen)) if request.user.is_admin \ - and media.uploader != request.user._id \ + and media.uploader != request.user.id \ and request.method != 'POST': messages.add_message( request, messages.WARNING, @@ -130,7 +130,7 @@ def edit_attachments(request, media): attachment_public_filepath \ = mg_globals.public_store.get_unique_filepath( - ['media_entries', unicode(media._id), 'attachment', + ['media_entries', unicode(media.id), 'attachment', public_filename]) attachment_public_file = mg_globals.public_store.get_file( @@ -278,7 +278,7 @@ def edit_collection(request, collection): # Make sure there isn't already a Collection with this title existing_collection = request.db.Collection.find_one({ - 'creator': request.user._id, + 'creator': request.user.id, 'title':request.form['title']}) if existing_collection and existing_collection.id != collection.id: @@ -301,7 +301,7 @@ def edit_collection(request, collection): collection=collection.slug) if request.user.is_admin \ - and collection.creator != request.user._id \ + and collection.creator != request.user.id \ and request.method != 'POST': messages.add_message( request, messages.WARNING, diff --git a/mediagoblin/plugins/api/views.py b/mediagoblin/plugins/api/views.py index a1b1bcac..7f93108e 100644 --- a/mediagoblin/plugins/api/views.py +++ b/mediagoblin/plugins/api/views.py @@ -108,7 +108,7 @@ def post_entry(request): process_media = registry.tasks[ProcessMedia.name] try: process_media.apply_async( - [unicode(entry._id)], {}, + [unicode(entry.id)], {}, task_id=task_id) except BaseException as e: # The purpose of this section is because when running in "lazy" @@ -119,7 +119,7 @@ def post_entry(request): # # ... not completely the diaper pattern because the # exception is re-raised :) - mark_entry_failed(entry._id, e) + mark_entry_failed(entry.id, e) # re-raise the exception raise diff --git a/mediagoblin/processing/__init__.py b/mediagoblin/processing/__init__.py index 6b2d50e2..e2bc1a13 100644 --- a/mediagoblin/processing/__init__.py +++ b/mediagoblin/processing/__init__.py @@ -38,7 +38,7 @@ class ProgressCallback(object): def create_pub_filepath(entry, filename): return mgg.public_store.get_unique_filepath( ['media_entries', - unicode(entry._id), + unicode(entry.id), filename]) @@ -93,7 +93,7 @@ def mark_entry_failed(entry_id, exc): # Looks like yes, so record information about that failure and any # metadata the user might have supplied. atomic_update(mgg.database.MediaEntry, - {'_id': entry_id}, + {'id': entry_id}, {u'state': u'failed', u'fail_error': unicode(exc.exception_path), u'fail_metadata': exc.metadata}) @@ -104,7 +104,7 @@ def mark_entry_failed(entry_id, exc): # metadata (in fact overwrite it if somehow it had previous info # here) atomic_update(mgg.database.MediaEntry, - {'_id': entry_id}, + {'id': entry_id}, {u'state': u'failed', u'fail_error': None, u'fail_metadata': {}}) diff --git a/mediagoblin/processing/task.py b/mediagoblin/processing/task.py index a8bc0f2f..06a26bb7 100644 --- a/mediagoblin/processing/task.py +++ b/mediagoblin/processing/task.py @@ -42,7 +42,7 @@ class ProcessMedia(Task): (for now just process_image...) """ entry = mgg.database.MediaEntry.one( - {'_id': ObjectId(media_id)}) + {'id': ObjectId(media_id)}) # Try to process, and handle expected errors. try: @@ -61,7 +61,7 @@ class ProcessMedia(Task): json_processing_callback(entry) except BaseProcessingFail as exc: - mark_entry_failed(entry._id, exc) + mark_entry_failed(entry.id, exc) json_processing_callback(entry) return @@ -72,7 +72,7 @@ class ProcessMedia(Task): entry.title, exc)) - mark_entry_failed(entry._id, exc) + mark_entry_failed(entry.id, exc) json_processing_callback(entry) except Exception as exc: @@ -80,7 +80,7 @@ class ProcessMedia(Task): + ' processing {0}'.format( entry)) - mark_entry_failed(entry._id, exc) + mark_entry_failed(entry.id, exc) json_processing_callback(entry) raise diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 02026f45..3628fa0d 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -76,7 +76,7 @@ def submit_start(request): entry.license = unicode(request.form.get('license', "")) or None - entry.uploader = request.user._id + entry.uploader = request.user.id # Process the user's folksonomy "tags" entry.tags = convert_to_tag_list_of_dicts( @@ -121,7 +121,7 @@ def submit_start(request): process_media = registry.tasks[ProcessMedia.name] try: process_media.apply_async( - [unicode(entry._id)], {}, + [unicode(entry.id)], {}, task_id=task_id) except BaseException as exc: # The purpose of this section is because when running in "lazy" @@ -132,7 +132,7 @@ def submit_start(request): # # ... not completely the diaper pattern because the # exception is re-raised :) - mark_entry_failed(entry._id, exc) + mark_entry_failed(entry.id, exc) # re-raise the exception raise @@ -198,12 +198,12 @@ def add_collection(request, media=None): collection.title = unicode(request.form['title']) collection.description = unicode(request.form.get('description')) - collection.creator = request.user._id + collection.creator = request.user.id collection.generate_slug() # Make sure this user isn't duplicating an existing collection existing_collection = request.db.Collection.find_one({ - 'creator': request.user._id, + 'creator': request.user.id, 'title':collection.title}) if existing_collection: diff --git a/mediagoblin/templates/mediagoblin/admin/panel.html b/mediagoblin/templates/mediagoblin/admin/panel.html index d3c6c958..6bcb5c24 100644 --- a/mediagoblin/templates/mediagoblin/admin/panel.html +++ b/mediagoblin/templates/mediagoblin/admin/panel.html @@ -42,7 +42,7 @@ {% for media_entry in processing_entries %}