Squashed commit of the following:
commit 945316a8c220b12adb687c896bcc5e86f99f46a4
Author: Chad Parry <github@chad.parry.org>
Date: Thu Jul 21 01:11:13 2011 -0600
Add a test for the sunny-day scenario where a rule changes a data file's MIME type.
commit 4ee1ee000c8f4d8ebaae66f637bc71080486fd73
Author: Chad Parry <github@chad.parry.org>
Date: Thu Jul 21 00:49:47 2011 -0600
Ensure that a third-party cannot swap out a legitimate photo with an unsafe file type.
commit 7dd0105bfc59c150e5640e693778f51bbaa44eab
Author: Chad Parry <github@chad.parry.org>
Date: Thu Jul 21 00:48:19 2011 -0600
Update the MIME type and other meta-data when a new data file is provided.
commit 5a8844c7947b21cf658f22cc61f20ffa9e8f07f2
Author: Chad Parry <github@chad.parry.org>
Date: Thu Jul 21 00:30:01 2011 -0600
Remove a unit test that no longer applies. Replacement data files are allowed to have different MIME types.
commit 0de9c6283ce4f5773cad8e92b6785d6a1f7b5e46
Author: Chad Parry <github@chad.parry.org>
Date: Thu Jul 21 00:27:45 2011 -0600
If one rule fails, then abort processing, rather than trying to proceed to subsequent rules.
commit 41d379c2b777ae7b3a11f528971228e234f8976f
Author: Chad Parry <github@chad.parry.org>
Date: Thu Jul 21 00:10:10 2011 -0600
Replace an overly-complicated regular expression with a simple in_array, at Bharat's suggestion.
commit 1b3f7111d4c2607baaa2da0aab3b501f2d9a1426
Merge: 8f7904a 403f64b
Author: Chad Parry <github@chad.parry.org>
Date: Wed Jul 20 21:02:56 2011 -0600
Merge branch 'master' into rawphoto
commit 8f7904ab62c71a7e4ee68762f936030b4dcb4ea1
Merge: e950573 771de0a
Author: Chad Parry <github@chad.parry.org>
Date: Sat Jun 25 14:12:39 2011 -0600
Merge branches 'master' and 'rawphoto' into rawphoto
commit e95057337996351e49915d9f85d007d50103a4be
Author: Chad Parry <github@chad.parry.org>
Date: Wed Jun 15 20:24:18 2011 -0600
Merge branches 'rawphoto-squash' and 'rawphoto' into rawphoto
random::hash()
random::string()
random::percent()
random::int()
So that we don't have lots of different ways to get random values all
over the code. Follow-on to #1527.
Refactor the rotate code in Quick_Controller to replace the data file,
and then have gallery_event::item_updated_data_file() pick up after
the change is saved, rebuild the image and handle album covers. This
is much more portable than before and it will allow any mechanism (eg:
REST) to replace the source image.
not capturing all cases for setting and resetting $original, which
leads to some weird and hard to reproduce behavior.
Instead, if we need the original just reload it from the database.
This may result in a somewhat excessive load in places, but we'll have
to fix that in a later optimization pass.
Old API: $obj->original("field_name")
New API: $obj->original()->field_name
This allows us to revert the varous xxx_updated events back to passing
an original ORM as well as the the updated one. This makes for a
cleaner event API.
Old API: comment_updated($comment) { $comment->original("field_name") }
Old API: comment_updated($old, $new) { $old->field_name }
1) The item_updated event no longer takes the old and new items.
Instead we overload ORM to track the original data and make
that available via the item. This will allow us to move event
publishing down into the API methods which in turn will give us
more stability since we won't require each controller to remember
to do it.
2) ORM class now tracks the original values. It doesn't track
the original relationships (no need for that, yet)
3) Added new events:
item_deleted
group_deleted
user_deleted