Update the delete item to use the _id after all... it's the safest way.
authorChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 5 Dec 2011 14:35:42 +0000 (08:35 -0600)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 5 Dec 2011 14:35:42 +0000 (08:35 -0600)
See http://bugs.foocorp.net/issues/695

mediagoblin/decorators.py
mediagoblin/templates/mediagoblin/user_pages/media.html
mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html
mediagoblin/tests/test_submission.py

index 56dddb44b8a876b87e41ec005694394ea73ead90..269b0c2e03f5d573417a4e189787a7bc8cd13ffc 100644 (file)
@@ -58,7 +58,7 @@ def user_may_delete_media(controller):
     """
     def wrapper(request, *args, **kwargs):
         uploader = request.db.MediaEntry.find_one(
-            {'slug': request.matchdict['media']}).get_uploader()
+            {'_id': ObjectId(request.matchdict['media'])}).get_uploader()
         if not (request.user['is_admin'] or
                 request.user._id == uploader._id):
             return exc.HTTPForbidden()
index c78180122de714cfbe4934621f5155830f00f862..5039fb3029d6a8341165933a442a202cb508f11b 100644 (file)
       <p>
         {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete',
                                    user= media.get_uploader().username,
-                                   media= media.slug) %}
+                                   media= media._id) %}
         <a href="{{ delete_url }}">{% trans %}Delete{% endtrans %}</a>
       </p>
     {% endif %}
index e36891d6728e8b4021f4c2ea2c92b9ee40cf1c57..058351a5a90d5f3a85451c2bd60c2b494f1f29b5 100644 (file)
@@ -23,7 +23,7 @@
 
   <form action="{{ request.urlgen('mediagoblin.user_pages.media_confirm_delete',
                                  user=media.get_uploader().username,
-                                 media=media.slug) }}"
+                                 media=media._id) }}"
         method="POST" enctype="multipart/form-data">
     <div class="grid_8 prefix_1 suffix_1 edit_box form_box">
       <h1>
index a3453f2f012d2988981959ed63602106bb36a662..7ea6c4bcd7a9ae0c411dc545480f530248a211c9 100644 (file)
@@ -171,7 +171,7 @@ class TestSubmission:
             request.urlgen('mediagoblin.user_pages.media_confirm_delete',
                            # No work: user=media.uploader().username,
                            user=self.test_user['username'],
-                           media=media.slug),
+                           media=media._id),
             # no value means no confirm
             {})
 
@@ -191,7 +191,7 @@ class TestSubmission:
             request.urlgen('mediagoblin.user_pages.media_confirm_delete',
                            # No work: user=media.uploader().username,
                            user=self.test_user['username'],
-                           media=media.slug),
+                           media=media._id),
             {'confirm': 'y'})
 
         response.follow()