[Jifty-commit] r1500 - in jifty/trunk: lib lib/Jifty lib/Jifty/View/Static

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Fri Jul 7 00:40:44 EDT 2006


Author: jesse
Date: Fri Jul  7 00:37:40 2006
New Revision: 1500

Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/Changelog
   jifty/trunk/MANIFEST
   jifty/trunk/META.yml
   jifty/trunk/Makefile.PL
   jifty/trunk/SIGNATURE
   jifty/trunk/lib/Jifty.pm
   jifty/trunk/lib/Jifty/Dispatcher.pm
   jifty/trunk/lib/Jifty/Handler.pm
   jifty/trunk/lib/Jifty/Request.pm
   jifty/trunk/lib/Jifty/Util.pm
   jifty/trunk/lib/Jifty/View/Static/Handler.pm

Log:
 r13607 at pinglin:  jesse | 2006-07-07 00:31:25 -0400
 * 0.60706 release. SECURITY FIX
 
   * SECURITY UPDATE: Previous versions of Jifty did not
   protect users against a class of remote data access vulnerability. If an
   attacker knew the structure of your local filesystem and you were using
   the "standalone" webserver in production, the attacker could gain read
   only access to local files.
 
   We found this vulnerability on 6 July 2006 during an internal Security
   scan. We've added new tests to ensure that these and other similar
   vulnerabilities don't recur.
 
   We recommend that ALL users of Jifty UPGRADE to 0.60706 IMMEDIATELY.
 


Modified: jifty/trunk/Changelog
==============================================================================
--- jifty/trunk/Changelog	(original)
+++ jifty/trunk/Changelog	Fri Jul  7 00:37:40 2006
@@ -1,3 +1,20 @@
+060706
+  * SECURITY UPDATE: Previous versions of Jifty did not 
+  protect users against a class of remote data access vulnerability. If an
+  attacker knew the structure of your local filesystem and you were using 
+  the "standalone" webserver in production, the attacker could gain read
+  only access to local files. 
+  
+  We found this vulnerability on 6 July 2006 during an internal Security 
+  scan. We've added new tests to ensure that these and other similar
+  vulnerabilities don't recur.
+
+  We recommend that ALL users of Jifty UPGRADE to 0.60706 IMMEDIATELY.
+
+
+060616
+  * The last CPAN release was broken. No real changes.
+
 060615 (15 June 2006)
 
 The following incompatible changes were made to Jifty. For a complete changelog,

Modified: jifty/trunk/MANIFEST
==============================================================================
--- jifty/trunk/MANIFEST	(original)
+++ jifty/trunk/MANIFEST	Fri Jul  7 00:37:40 2006
@@ -10,6 +10,11 @@
 doc/client_side_continuations
 doc/command_naming
 doc/edit-in-place
+doc/examples/CounterDemo/bin/jifty
+doc/examples/CounterDemo/etc/config.yml
+doc/examples/CounterDemo/Makefile.PL
+doc/examples/CounterDemo/share/web/templates/index.html
+doc/examples/CounterDemo/t/00-counter-test.t
 doc/packaging
 doc/plugin-requirements
 doc/plugin-syntax
@@ -34,7 +39,6 @@
 doc/talks/npw.2006/Blog/blib/man1/.exists
 doc/talks/npw.2006/Blog/blib/man3/.exists
 doc/talks/npw.2006/Blog/blib/script/.exists
-doc/talks/npw.2006/Blog/blog
 doc/talks/npw.2006/Blog/etc/config.yml
 doc/talks/npw.2006/Blog/inc/Module/Install.pm
 doc/talks/npw.2006/Blog/inc/Module/Install/Base.pm
@@ -79,6 +83,7 @@
 doc/talks/takahashi.css
 doc/talks/takahashi.js
 doc/talks/yapc.asia.2006.xul
+doc/talks/yapc.na.2006.xul
 etc/config.yml
 inc/Module/AutoInstall.pm
 inc/Module/Install.pm
@@ -119,6 +124,8 @@
 lib/Jifty/LetMe.pm
 lib/Jifty/Logger.pm
 lib/Jifty/Manual/AccessControl.pod
+lib/Jifty/Manual/Actions.pod
+lib/Jifty/Manual/Cookbook.pod
 lib/Jifty/Manual/Glossary.pod
 lib/Jifty/Manual/ObjectModel.pod
 lib/Jifty/Manual/Tutorial.pod
@@ -126,6 +133,7 @@
 lib/Jifty/Mason/Halo.pm
 lib/Jifty/Model/Metadata.pm
 lib/Jifty/Model/Session.pm
+lib/Jifty/Model/SessionCollection.pm
 lib/Jifty/Notification.pm
 lib/Jifty/Object.pm
 lib/Jifty/Plugin.pm
@@ -156,6 +164,7 @@
 lib/Jifty/View/Mason/Handler.pm
 lib/Jifty/View/Static/Handler.pm
 lib/Jifty/Web.pm
+lib/Jifty/Web.pm.orig
 lib/Jifty/Web/Form.pm
 lib/Jifty/Web/Form/Clickable.pm
 lib/Jifty/Web/Form/Element.pm
@@ -183,18 +192,72 @@
 MANIFEST			This list of files
 MANIFEST.SKIP
 META.yml
+plugins/EditInPlace/blib/arch/.exists
+plugins/EditInPlace/blib/arch/auto/Jifty/Plugin/EditInPlace/.exists
+plugins/EditInPlace/blib/bin/.exists
+plugins/EditInPlace/blib/lib/auto/Jifty/Plugin/EditInPlace/.exists
+plugins/EditInPlace/blib/lib/auto/Jifty/Plugin/EditInPlace/web/templates/__jifty/edit_file
+plugins/EditInPlace/blib/lib/Jifty/Plugin/.exists
+plugins/EditInPlace/blib/lib/Jifty/Plugin/EditInPlace.pm
+plugins/EditInPlace/blib/lib/Jifty/Plugin/EditInPlace/Action/FileEditor.pm
+plugins/EditInPlace/blib/lib/Jifty/Plugin/EditInPlace/Dispatcher.pm
+plugins/EditInPlace/blib/man1/.exists
+plugins/EditInPlace/blib/man3/.exists
+plugins/EditInPlace/blib/man3/Jifty::Plugin::EditInPlace::Action::FileEditor.3
+plugins/EditInPlace/blib/script/.exists
+plugins/EditInPlace/inc/Module/AutoInstall.pm
+plugins/EditInPlace/inc/Module/Install.pm
+plugins/EditInPlace/inc/Module/Install/AutoInstall.pm
+plugins/EditInPlace/inc/Module/Install/Base.pm
+plugins/EditInPlace/inc/Module/Install/Can.pm
+plugins/EditInPlace/inc/Module/Install/Fetch.pm
+plugins/EditInPlace/inc/Module/Install/Include.pm
+plugins/EditInPlace/inc/Module/Install/Makefile.pm
+plugins/EditInPlace/inc/Module/Install/Makefile/Version.pm
+plugins/EditInPlace/inc/Module/Install/Metadata.pm
+plugins/EditInPlace/inc/Module/Install/Share.pm
+plugins/EditInPlace/inc/Module/Install/Win32.pm
+plugins/EditInPlace/inc/Module/Install/WriteAll.pm
 plugins/EditInPlace/lib/Jifty/Plugin/EditInPlace.pm
 plugins/EditInPlace/lib/Jifty/Plugin/EditInPlace/Action/FileEditor.pm
 plugins/EditInPlace/lib/Jifty/Plugin/EditInPlace/Dispatcher.pm
 plugins/EditInPlace/Makefile.PL
 plugins/EditInPlace/META.yml
+plugins/EditInPlace/pm_to_blib
+plugins/EditInPlace/share/web/templates/__jifty/create_file_inline
 plugins/EditInPlace/share/web/templates/__jifty/edit_file
+plugins/EditInPlace/share/web/templates/__jifty/edit_file_inline
 plugins/EmailErrors/doc/site_config.yml
 plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors.pm
 plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Dispatcher.pm
 plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Notification/EmailError.pm
 plugins/EmailErrors/Makefile.PL
 plugins/EmailErrors/share/web/templates/.file
+plugins/LetMe/lib/Jifty/Plugin/LetMe.pm
+plugins/LetMe/lib/Jifty/Plugin/LetMe/Dispatcher.pm
+plugins/LetMe/Makefile.PL
+plugins/Login/lib/Jifty/Plugin/Login.pm
+plugins/Login/lib/Jifty/Plugin/Login/Action/ConfirmEmail.pm
+plugins/Login/lib/Jifty/Plugin/Login/Action/Login.pm
+plugins/Login/lib/Jifty/Plugin/Login/Action/Logout.pm
+plugins/Login/lib/Jifty/Plugin/Login/Action/RecoverPassword.pm
+plugins/Login/lib/Jifty/Plugin/Login/Action/ResetLostPassword.pm
+plugins/Login/lib/Jifty/Plugin/Login/Action/SendAccountConfirmation.pm
+plugins/Login/lib/Jifty/Plugin/Login/Action/SendPasswordReminder.pm
+plugins/Login/lib/Jifty/Plugin/Login/Action/Signup.pm
+plugins/Login/lib/Jifty/Plugin/Login/CurrentUser.pm
+plugins/Login/lib/Jifty/Plugin/Login/Dispatcher.pm
+plugins/Login/lib/Jifty/Plugin/Login/Model/User.pm
+plugins/Login/lib/Jifty/Plugin/Login/Notification/ConfirmAddress.pm
+plugins/Login/Makefile.PL
+plugins/Login/MANIFEST
+plugins/Login/share/web/templates/let/confirm_email
+plugins/Login/share/web/templates/login
+plugins/Login/share/web/templates/logout
+plugins/Login/share/web/templates/signup
+plugins/Nothing/lib/Jifty/Plugin/Nothing.pm
+plugins/Nothing/lib/Jifty/Plugin/Nothing/Dispatcher.pm
+plugins/Nothing/Makefile.PL
 README
 share/dtd/xhtml-lat1.ent
 share/dtd/xhtml-special.ent
@@ -204,6 +267,7 @@
 share/po/ja.po
 share/web/static/css/app-base.css
 share/web/static/css/app.css
+share/web/static/css/autocomplete.css
 share/web/static/css/autohandler
 share/web/static/css/base.css
 share/web/static/css/calendar.css
@@ -214,16 +278,25 @@
 share/web/static/css/keybindings.css
 share/web/static/css/main.css
 share/web/static/css/nav.css
+share/web/static/css/notices.css
+share/web/static/css/yui/calendar/calendar.css
 share/web/static/favicon.ico
+share/web/static/images/css/fieldbg-autocomplete.gif
 share/web/static/images/css/fieldbg.gif
 share/web/static/images/pony.jpg
 share/web/static/images/silk/bullet_arrow_down.png
 share/web/static/images/silk/bullet_arrow_up.png
 share/web/static/images/silk/calendar.png
+share/web/static/images/silk/cancel.png
+share/web/static/images/silk/error.png
+share/web/static/images/silk/information.png
+share/web/static/images/silk/pencil.png
+share/web/static/images/silk/pencil_add.png
 share/web/static/js/app.js
 share/web/static/js/app_behaviour.js
 share/web/static/js/behaviour.js
 share/web/static/js/bps_util.js
+share/web/static/js/calendar.js
 share/web/static/js/combobox.js
 share/web/static/js/context_menu.js
 share/web/static/js/cssquery/cssQuery-level2.js
@@ -231,8 +304,10 @@
 share/web/static/js/cssquery/cssQuery-standard.js
 share/web/static/js/cssquery/cssQuery.js
 share/web/static/js/dom-drag.js
+share/web/static/js/formatDate.js
 share/web/static/js/halo.js
 share/web/static/js/jifty.js
+share/web/static/js/jifty_smoothscroll.js
 share/web/static/js/jifty_utils.js
 share/web/static/js/jsan/DOM/Events.js
 share/web/static/js/jsan/JSAN.js
@@ -251,6 +326,11 @@
 share/web/static/js/scriptaculous/scriptaculous.js
 share/web/static/js/scriptaculous/slider.js
 share/web/static/js/scriptaculous/unittest.js
+share/web/static/js/setup_jsan.js
+share/web/static/js/yui/calendar.js
+share/web/static/js/yui/dom.js
+share/web/static/js/yui/event.js
+share/web/static/js/yui/yahoo.js
 share/web/templates/__jifty/admin/_elements/nav
 share/web/templates/__jifty/admin/action/dhandler
 share/web/templates/__jifty/admin/autohandler
@@ -270,6 +350,7 @@
 share/web/templates/__jifty/error/error.css
 share/web/templates/__jifty/error/mason_internal_error
 share/web/templates/__jifty/halo
+share/web/templates/__jifty/js/dhandler
 share/web/templates/__jifty/online_docs/autohandler
 share/web/templates/__jifty/online_docs/content.html
 share/web/templates/__jifty/online_docs/index.html
@@ -278,7 +359,6 @@
 share/web/templates/__jifty/webservices/xml
 share/web/templates/__jifty/webservices/yaml
 share/web/templates/_elements/header
-share/web/templates/_elements/javascript
 share/web/templates/_elements/keybindings
 share/web/templates/_elements/menu
 share/web/templates/_elements/nav
@@ -327,14 +407,18 @@
 t/Mapper/t/01-raw-api.t
 t/Mapper/t/02-api.t
 t/TestApp/bin/jifty
+t/TestApp/etc/config.yml
 t/TestApp/lib/TestApp/Action/DoSomething.pm
 t/TestApp/lib/TestApp/Dispatcher.pm
 t/TestApp/lib/TestApp/Model/User.pm
+t/TestApp/mailbox
+t/TestApp/mason/obj/.__obj_create_marker
 t/TestApp/share/web/static/images/pony.jpg
 t/TestApp/share/web/templates/dispatch/basic
 t/TestApp/share/web/templates/dispatch/basic-show
 t/TestApp/share/web/templates/editform
 t/TestApp/share/web/templates/index.html
+t/TestApp/share/web/templates/somedir/dhandler
 t/TestApp/t/00-model-User.t
 t/TestApp/t/00-prototype.t
 t/TestApp/t/01-config.t
@@ -345,5 +429,7 @@
 t/TestApp/t/05-editactions-Cachable.t
 t/TestApp/t/05-editactions-Record.t
 t/TestApp/t/06-validation.t
+t/TestApp/t/07-sandboxing.t
 t/TestApp/t/config-Cachable
 t/TestApp/t/config-Record
+t/TestApp/testapp

Modified: jifty/trunk/META.yml
==============================================================================
--- jifty/trunk/META.yml	(original)
+++ jifty/trunk/META.yml	Fri Jul  7 00:37:40 2006
@@ -73,4 +73,4 @@
   perl: 5.8.3
   version: 0
 tests: t/*.t t/*/t/*.t
-version: 0.60615
+version: 0.60706

Modified: jifty/trunk/Makefile.PL
==============================================================================
--- jifty/trunk/Makefile.PL	(original)
+++ jifty/trunk/Makefile.PL	Fri Jul  7 00:37:40 2006
@@ -37,7 +37,7 @@
 requires('Locale::Maketext::Extract' => '0.20');
 requires('Locale::Maketext::Lexicon' => '0.60');
 requires('Log::Log4perl');
-requires('LWP::UserAgent');
+requires('LWP::UserAgent'); # Net::HTTP
 requires('MIME::Types');
 requires('Module::CoreList');
 requires('Module::Install::Admin' => '0.50');

Modified: jifty/trunk/SIGNATURE
==============================================================================
--- jifty/trunk/SIGNATURE	(original)
+++ jifty/trunk/SIGNATURE	Fri Jul  7 00:37:40 2006
@@ -14,13 +14,13 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-SHA1 2271c6378627c220004a47808a3bc99a7feba787 AUTHORS
-SHA1 7af89b111ce3775af48b9a305cc30ec32f911bcd Changelog
+SHA1 8a1668319fec7d4608a8766e731e4c11098a362f AUTHORS
+SHA1 b315e71ee20e2af196ac4085919fdbdc398b9b95 Changelog
 SHA1 4babaaac002a6a1c4c6d2590891b71e22ca72cd5 Changes
-SHA1 4256434e8aa9398a95fa21e45ba22f2cf406d631 MANIFEST
+SHA1 e5f3b90b85d6406dfe1bbf5b78b1895d4b7fd0b3 MANIFEST
 SHA1 3ad8481344a1d0ce2dc5726c1db8bea1917402de MANIFEST.SKIP
-SHA1 2cb271660bf8fa2c68e8d8a435b1102e829c990c META.yml
-SHA1 61a0fcca8b8bf4c27b8c777bc5db57b843b11174 Makefile.PL
+SHA1 6707351491656f503a78af75edbcde67fcf872f2 META.yml
+SHA1 a32b3baaae940ff7b99e5b5cd7f9e1bd92befb59 Makefile.PL
 SHA1 e395a2eabaf8faf8266dedc664c1eb52c6c589cf README
 SHA1 aaf8f7a1025fc97077072672f325e2a5f3c03a41 bin/build_par
 SHA1 d7982e7064c5ee2a98ea858ebf57664f50a26c40 bin/jifty
@@ -31,6 +31,11 @@
 SHA1 20e10cd0ef04ed61f2c6975caaf70f6cdfd0f657 doc/client_side_continuations
 SHA1 a78a22aa4be910be14347278720e196137819d55 doc/command_naming
 SHA1 69cafeee7cc90aabb0ae8cf1e9c695794a54c9a6 doc/edit-in-place
+SHA1 fa5b3f272228531a255c7c676d798e3162c68ce0 doc/examples/CounterDemo/Makefile.PL
+SHA1 599ba4fb849edc90f652768852c3aa2d7029a636 doc/examples/CounterDemo/bin/jifty
+SHA1 d1b66f68f17cc67957c534e1e493c5a0f5b22556 doc/examples/CounterDemo/etc/config.yml
+SHA1 61b3c250cbb86dd5f1e5f42e82020e3e3befaff1 doc/examples/CounterDemo/share/web/templates/index.html
+SHA1 514c712a4e0bd5a16b71c35ab9e607a7db865a67 doc/examples/CounterDemo/t/00-counter-test.t
 SHA1 1825dbdbb540ee2d4c9f3fd0e4dbd830e631ed0d doc/packaging
 SHA1 3ec038720e82a1297a3a5db6a0e1b24fe0aa13c2 doc/plugin-requirements
 SHA1 3de2d7f062e78fc8b543f6b93e79852274c6c657 doc/plugin-syntax
@@ -43,9 +48,9 @@
 SHA1 3b5c622e6a9cdaa5b81665dd47291b668e2cddbb doc/talks/halo-overview.png
 SHA1 650f029db7ab0c1fcba16625bbdef274d3c03d7c doc/talks/halo.png
 SHA1 bd3c19e906807a3f5b1aa75931710b22fce672f0 doc/talks/new-entry.png
-SHA1 805d3d3a498e63e69a8092f1b53fa0eacef60ff0 doc/talks/npw.2006.xul
+SHA1 772e1cd5c8cd6758e9c7b13bf0dd0ecfe6a34b1a doc/talks/npw.2006.xul
 SHA1 966b3b5901ad3cd8d80b2eb803d56dcb26fefc1f doc/talks/npw.2006/Blog/META.yml
-SHA1 e13c8e74b8ad2a1c519c37154bc052bab7df7a2f doc/talks/npw.2006/Blog/Makefile.PL
+SHA1 88b93fcf3d12d9c21f27a9e27ae31f82ef48367a doc/talks/npw.2006/Blog/Makefile.PL
 SHA1 bab0077c1352a4c99e9c3d48be04d72be21ec0cf doc/talks/npw.2006/Blog/bin/jifty
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 doc/talks/npw.2006/Blog/blib/arch/.exists
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 doc/talks/npw.2006/Blog/blib/arch/auto/Blog/.exists
@@ -56,7 +61,6 @@
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 doc/talks/npw.2006/Blog/blib/man1/.exists
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 doc/talks/npw.2006/Blog/blib/man3/.exists
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 doc/talks/npw.2006/Blog/blib/script/.exists
-SHA1 5a4b52d08e6cadcf49b9b8a0bef5ffe4b466885c doc/talks/npw.2006/Blog/blog
 SHA1 f429c0ec9bf17fb7f48b6744ade39a82bf59a25d doc/talks/npw.2006/Blog/etc/config.yml
 SHA1 e28cf2d3ba35f6ca3a448acc7bee191b7c390379 doc/talks/npw.2006/Blog/inc/Module/Install.pm
 SHA1 e7c1c86f57b6778f4bdc7fd8c1b950e60ef41bc0 doc/talks/npw.2006/Blog/inc/Module/Install/Base.pm
@@ -66,8 +70,8 @@
 SHA1 0807e79d6dbfda4fcd3db0fc7df2e33e0cba263b doc/talks/npw.2006/Blog/inc/Module/Install/Metadata.pm
 SHA1 4da0a1fce2339cc3f8c296c7716480d2564d9470 doc/talks/npw.2006/Blog/inc/Module/Install/Win32.pm
 SHA1 9a903a1d178954ad864c7dcc98f9fa5c005d1553 doc/talks/npw.2006/Blog/inc/Module/Install/WriteAll.pm
-SHA1 09ee5088e741096ae1351d4f4503f29d9b5dd99b doc/talks/npw.2006/Blog/lib/Blog/Dispatcher.pm
-SHA1 619e160162f0c36d0680ef14004fcd0ac8dadbce doc/talks/npw.2006/Blog/lib/Blog/Model/Entry.pm
+SHA1 cca70e8c4681b8fc795fa41b0e18da303979e016 doc/talks/npw.2006/Blog/lib/Blog/Dispatcher.pm
+SHA1 3740a7ad07b0766d1fe0f1aea0165e91dd1f3e78 doc/talks/npw.2006/Blog/lib/Blog/Model/Entry.pm
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 doc/talks/npw.2006/Blog/pm_to_blib
 SHA1 12b69b2eec0350496a21a6921ecaece2755ca7d0 doc/talks/npw.2006/Blog/share/web/templates/index.html
 SHA1 1d9f68e6693e85646617e037a50ca361dbc9691b doc/talks/npw.2006/Blog/share/web/templates/new_entry
@@ -97,62 +101,67 @@
 SHA1 42eb797f2b0063b01764fd9d1a7aced2836f7388 doc/talks/npw2005.xul
 SHA1 67f41db40d62b81d71cb60c542695e0d7e6d393d doc/talks/pony.jpg
 SHA1 e29c31fecdc7227dc0864eeba7c5ddeb8dd92608 doc/talks/pony.png
-SHA1 a37ed10c5fe178ec1f6846f224d3d98c0d4cba42 doc/talks/takahashi.css
+SHA1 c11707316f85aac566d1e2ad4985352319d2e11d doc/talks/takahashi.css
 SHA1 694ea3fb3d4ddd8a0de192dcdda324f9423da4c9 doc/talks/takahashi.js
 SHA1 109e87541d601c1be1d2042c6ab9d2952a94d36b doc/talks/yapc.asia.2006.xul
+SHA1 4b5680d51102b03ddf72dab0677ec8d97b6d6962 doc/talks/yapc.na.2006.xul
 SHA1 7d6cffbb4f916bfaba69540329cb7d7f67d12f25 etc/config.yml
-SHA1 0bb5ddbe64424d40536acdee2f09e853ab39087d inc/Module/AutoInstall.pm
-SHA1 e28cf2d3ba35f6ca3a448acc7bee191b7c390379 inc/Module/Install.pm
-SHA1 d7013668911c86af441cad115b897fc675a472de inc/Module/Install/AutoInstall.pm
-SHA1 e7c1c86f57b6778f4bdc7fd8c1b950e60ef41bc0 inc/Module/Install/Base.pm
-SHA1 e1829448769445cdaac384a888bf9ccf42e0d89a inc/Module/Install/Can.pm
-SHA1 70aa5e2055e8e38b4eecc5fc8c91762c0e97f551 inc/Module/Install/Fetch.pm
-SHA1 8d88f2cb120f2e64f374136df2e25d0bb6f0595b inc/Module/Install/Include.pm
-SHA1 8ac832baf4f9e8e72d3e8f103cee6e8a94ac80e1 inc/Module/Install/Makefile.pm
-SHA1 0807e79d6dbfda4fcd3db0fc7df2e33e0cba263b inc/Module/Install/Metadata.pm
-SHA1 567fde53d9f24db2ab823d1031dec5e48f55def6 inc/Module/Install/Scripts.pm
-SHA1 f49498cd0f5bcaccd1be89b1fc702eb95ea185e6 inc/Module/Install/Share.pm
-SHA1 4da0a1fce2339cc3f8c296c7716480d2564d9470 inc/Module/Install/Win32.pm
-SHA1 9a903a1d178954ad864c7dcc98f9fa5c005d1553 inc/Module/Install/WriteAll.pm
+SHA1 e974f78178f53c88fb7e3f8d20f7df184d13e1d0 inc/Module/AutoInstall.pm
+SHA1 017bedfcba1e0c72b36301e6ef21b8712b84d175 inc/Module/Install.pm
+SHA1 bcfb15c6a158831c45b5100a7aa94e0f88fced9f inc/Module/Install/AutoInstall.pm
+SHA1 b1a70869c098ba602151631386fc510b5bfd3511 inc/Module/Install/Base.pm
+SHA1 dd7313db23119d49ae78593bfa576554fb5b0fd8 inc/Module/Install/Can.pm
+SHA1 7c3a5153a5574556d895f23e121a41e680da11c1 inc/Module/Install/Fetch.pm
+SHA1 2e9c012e58c778a4a83c5eaea20c3aed306ad0c5 inc/Module/Install/Include.pm
+SHA1 176d68fe7c07b6ab7cfe09093078b8127bbde786 inc/Module/Install/Makefile.pm
+SHA1 8b37b38215d14f922b3d5132ce33d11d21d531ba inc/Module/Install/Metadata.pm
+SHA1 1d8f4739eda5d665bbfe4206bd87274ad104ba77 inc/Module/Install/Scripts.pm
+SHA1 9915504ffb4f14696ecca28af457e03f795ed2ce inc/Module/Install/Share.pm
+SHA1 7eb44b00058c44795038d7fa4c0c77470f20a7f8 inc/Module/Install/Win32.pm
+SHA1 6d05967a5e1680b5f118315aaa6b8a1e143d79d8 inc/Module/Install/WriteAll.pm
 SHA1 c17e8f3cf8ebe1eb4929fd2bd2fd530a9de1abd0 lib/Email/Send/Jifty/Test.pm
-SHA1 a8cb7f279636ba2d1221cb6aa45048f9b39e3067 lib/Jifty.pm
+SHA1 6d8e095ae9eeeda400749a9fa2c677c70dee065a lib/Jifty.pm
 SHA1 97b88e634644b2634bcd5c96d21a9fbb02bc135c lib/Jifty/API.pm
-SHA1 8dcd395e1c3ca13dd744ff9e6fef6520b521fa0e lib/Jifty/Action.pm
+SHA1 6f459bab942544c5e3f718df8f511dba0d4a5613 lib/Jifty/Action.pm
 SHA1 a6d9d87b4fa06cfab36f249a67946b45669dcee7 lib/Jifty/Action/Autocomplete.pm
-SHA1 242d428a86805515c4343d59716aac74a04574d5 lib/Jifty/Action/Record.pm
-SHA1 0d909072f18b64c0e09541142c1df5199792bd7a lib/Jifty/Action/Record/Create.pm
+SHA1 07adae0debb0900f92921f7bc3ef8d62b00182f4 lib/Jifty/Action/Record.pm
+SHA1 f2dce309f70c71cd1f86948548a108dbe7ddd25e lib/Jifty/Action/Record/Create.pm
 SHA1 8417e5141d1e90c08a5359cc147d56590cd8af9b lib/Jifty/Action/Record/Delete.pm
-SHA1 36570d7212b7ae11909e9ca99845b4d66021799b lib/Jifty/Action/Record/Update.pm
+SHA1 6eda031083567c5cfe9d434e1bdc31bb16ba087c lib/Jifty/Action/Record/Update.pm
 SHA1 c99a798acc9c65baf4e750a70487c192980e0c54 lib/Jifty/Action/Redirect.pm
 SHA1 cf349fcfe9ee28216eae2213ab0016ceaffaf2a7 lib/Jifty/Bootstrap.pm
 SHA1 5f5c4895999d303bcfeea8dc86553e8dec13688c lib/Jifty/ClassLoader.pm
 SHA1 8b4824481d003c667434223ba1432e18422431e7 lib/Jifty/Collection.pm
-SHA1 b2b893f18e74736555d17f5fd6badf4cb9906dca lib/Jifty/Config.pm
-SHA1 7d836615ed0412d1d78ac9fa8eea51dac9d62abf lib/Jifty/Continuation.pm
+SHA1 1164429483ccf9d6fb9bf21d87c5d11d942dd115 lib/Jifty/Config.pm
+SHA1 ab34204334253d661611a6bfd14189553e18787b lib/Jifty/Continuation.pm
 SHA1 15970f85b57eab885568a71f164dc627c791287c lib/Jifty/CurrentUser.pm
 SHA1 64fa43baf3d9be3e68af7dd283f0694c98800726 lib/Jifty/DateTime.pm
-SHA1 e9317a56e5fd376fa187c53ca1efd3549f33d65c lib/Jifty/Dispatcher.pm
-SHA1 d3e3550366e3d72f73ff561e36fee76f31c5a592 lib/Jifty/Everything.pm
+SHA1 5ab70b0b6bf13257d7d2cecf9399561d03c9fd9a lib/Jifty/Dispatcher.pm
+SHA1 aa71ff8e4bd2b2652254eb63272c1edf9664f270 lib/Jifty/Everything.pm
 SHA1 f4285964bfa60f300d7f572868af745737396320 lib/Jifty/Handle.pm
-SHA1 2f086acf4c6d3afabe49e4a1c2e0272ed57a252f lib/Jifty/Handler.pm
-SHA1 373ca247bce1e4df98358bfc7fc444437fe31eb0 lib/Jifty/I18N.pm
+SHA1 61af0bde25c3eee4b72198dbc79fee93fb63673a lib/Jifty/Handler.pm
+SHA1 47fd8e670f13cfea2eb215a3b39fd2ab3d63e71f lib/Jifty/I18N.pm
 SHA1 db36e9299112e1796c3044390ffe452751f675b0 lib/Jifty/JSON.pm
-SHA1 e6f4e4c3a1b93692c9d7adca3996c21dac207855 lib/Jifty/LetMe.pm
-SHA1 9aa7f692abdd3d8054fae66e57d0f602f347fff0 lib/Jifty/Logger.pm
+SHA1 c71e1c29ac2ce404cc0cf818234f7c5e45d12c37 lib/Jifty/LetMe.pm
+SHA1 f47496ea9779b3ba77bffccf16f923bb3be52682 lib/Jifty/Logger.pm
 SHA1 c2ef5f9cfac7a0adff5c492bfdd005d42e489173 lib/Jifty/Manual/AccessControl.pod
-SHA1 f9f8e7616fcb97cd96ec905832a1a700ddb93235 lib/Jifty/Manual/Glossary.pod
+SHA1 96b0cd5887e084e73ad3ed21cde9ba853a89180a lib/Jifty/Manual/Actions.pod
+SHA1 b706c85c0d68ea72e9aac27b4970e9271d6d5811 lib/Jifty/Manual/Cookbook.pod
+SHA1 00e16e6193acde5737fd066e0b10563ebb4efaeb lib/Jifty/Manual/Glossary.pod
 SHA1 1204d70c868084ac3114fae277e98a756f83f819 lib/Jifty/Manual/ObjectModel.pod
-SHA1 03fedab81e44268618a45bd6163af796acb09898 lib/Jifty/Manual/Tutorial.pod
+SHA1 3891b4eab1d94d8b218b8441dce22f6c22acfa1c lib/Jifty/Manual/Tutorial.pod
 SHA1 45f95f61826365d39a5eab2cc119967273d17077 lib/Jifty/Manual/Tutorial_ja.pod
-SHA1 f50039a0f9eade6f8701510e596e3fb49576a06d lib/Jifty/Mason/Halo.pm
+SHA1 fd9d89d662030b76e460126f6f2981451ef1b32d lib/Jifty/Mason/Halo.pm
 SHA1 809ace5bafff5ad2461d5495464863ba808dfd19 lib/Jifty/Model/Metadata.pm
 SHA1 36de25464ae4eb07675f453cc590b634c6ff5a37 lib/Jifty/Model/Session.pm
-SHA1 c32efef334d710b29dfbc28a600ef041c20feb55 lib/Jifty/Notification.pm
-SHA1 b20c6a4b7a9f309dbcace7cba6c6e601b1783b32 lib/Jifty/Object.pm
-SHA1 b3d3cb39da21e8ba4c9ec1ecde398101ad55e32a lib/Jifty/Plugin.pm
-SHA1 071134ae96262ac2293a8308c123875061e7149a lib/Jifty/Record.pm
-SHA1 a0abdb1bf637a028a4df591238d3dc46a9abbd98 lib/Jifty/Request.pm
-SHA1 5074765783433d7391ea6dc8ae62a448b9e2fec2 lib/Jifty/Request/Mapper.pm
+SHA1 0efcdf22d66e521cf250c1398caf3aba93ed795d lib/Jifty/Model/SessionCollection.pm
+SHA1 bec34fd3d0ff15d63efd43c2a7ac3a9c3ce4bafd lib/Jifty/Notification.pm
+SHA1 dbde3807a964ad4f792bffc08fac49d8daea8017 lib/Jifty/Object.pm
+SHA1 e4f29a83cacf2be4411d0b838ceef8bc9ea76cbe lib/Jifty/Plugin.pm
+SHA1 146820c9560378371020a368286fe04824162b82 lib/Jifty/Plugin/ClassLoader.pm
+SHA1 704b7095944e8a90456119419ed7c80a0741f29b lib/Jifty/Record.pm
+SHA1 cccc7f4388ddff17d382a243a36eec8f466a0102 lib/Jifty/Request.pm
+SHA1 34aa686aedc18677d8b9560c5ac4bd68aad2f5e2 lib/Jifty/Request/Mapper.pm
 SHA1 05bc90e5a7c6518443783bd8c16dc9da36af78c2 lib/Jifty/Response.pm
 SHA1 25140e3449ae4e87800f31f3cdeceefed5f9419e lib/Jifty/Result.pm
 SHA1 44466e45b0bf67fd0dd63e76f310acbdd27532b2 lib/Jifty/RightsFrom.pm
@@ -164,53 +173,108 @@
 SHA1 6e39a67ed7b1ae8dc90aa7ef8dfef738507194ad lib/Jifty/Script/Model.pm
 SHA1 5f83918df18adf655da5a5119ef136789a61956e lib/Jifty/Script/Plugin.pm
 SHA1 4268d0e323c346773bc8f700c4b61abe9b608507 lib/Jifty/Script/Po.pm
-SHA1 cf62ec426f70ee858b419962bfe09935ea976df3 lib/Jifty/Script/Schema.pm
-SHA1 d0c43aa75f74e910d66e5670d71f4ae535645aac lib/Jifty/Script/Server.pm
+SHA1 f027e301fd3820988f3af3592876e289fd800523 lib/Jifty/Script/Schema.pm
+SHA1 84fb7443024ef5a86463ea3a5ae2c726b4fb62d3 lib/Jifty/Script/Server.pm
 SHA1 3fd6fc85409c817f55c9293c7a5b75fedf0c0e11 lib/Jifty/Server.pm
-SHA1 ea1c411be2edef35b1e06d35160515b9f1167308 lib/Jifty/Test.pm
-SHA1 b0e52be79fde9ab8dbf9d8eade10f44024cd1929 lib/Jifty/Test/WWW/Mechanize.pm
-SHA1 a5a8369a03ba70cc9086a123afeef29a770f90f0 lib/Jifty/TestServer.pm
+SHA1 bc511caf42f189641b819f2338d6641fe748dc25 lib/Jifty/Test.pm
+SHA1 5a86e32934a9b313f3e2c51c6af0f2c67f1a5b2b lib/Jifty/Test/WWW/Mechanize.pm
+SHA1 a56f403521ac4df5ec15079b98da33797a2b047d lib/Jifty/TestServer.pm
 SHA1 7561e9fb302562617853fcc2a9be665a67ffc4d8 lib/Jifty/Upgrade.pm
 SHA1 cd2a8612b1b7204d321b80eea365036c29702fc2 lib/Jifty/Upgrade/Internal.pm
-SHA1 c05d9110549e522e22464777d7b6ac9cecc41d1b lib/Jifty/Util.pm
+SHA1 9ff363c5856b01b542aa11eddf214f12ea6bc28a lib/Jifty/Util.pm
 SHA1 f66bcdc226c855a95fd99b3bef1b6175330ea896 lib/Jifty/View/Mason/Handler.pm
-SHA1 a3b0f7926ce956ddf654d5a3930117cdb773ba1a lib/Jifty/View/Static/Handler.pm
-SHA1 4173fb55c0901bc3d586c53ac9f84618cb8d9f0d lib/Jifty/Web.pm
-SHA1 61507700f1263325efa62b5ccceccfcb9e8a7c2c lib/Jifty/Web/Form.pm
-SHA1 5ee930e18c57960abebed5af1f0221692a9f4c8f lib/Jifty/Web/Form/Clickable.pm
+SHA1 d0aa38f5fd528d499de91da1e8c411f39f922bb2 lib/Jifty/View/Static/Handler.pm
+SHA1 56f7888f5aec559c6e2d0e9bce703c32e255a96c lib/Jifty/Web.pm
+SHA1 a3be81816e815c0279e0d76f7811f51f0051532f lib/Jifty/Web.pm.orig
+SHA1 1efc063a47d726c98d2b4a4e3104dab9765caff4 lib/Jifty/Web/Form.pm
+SHA1 873e38779b90756c6c7d9100ff02c5b0decdc3b8 lib/Jifty/Web/Form/Clickable.pm
 SHA1 f0536868d6915a7d2972a811a5feec14e278c24a lib/Jifty/Web/Form/Element.pm
-SHA1 d37dc732f6aa2284f8f2bfc62820f2a89f376fc4 lib/Jifty/Web/Form/Field.pm
+SHA1 fafb5dec85bea60f79fd086506b7ca713b8f1a6b lib/Jifty/Web/Form/Field.pm
 SHA1 82c6b2694e45c38fa7c9902e41d78bbdfda82c29 lib/Jifty/Web/Form/Field/Button.pm
-SHA1 9617af477044a8e0fcb84a69eae675e40c220d05 lib/Jifty/Web/Form/Field/Checkbox.pm
-SHA1 9066ed3c620aa331451f4ac7045e66a3dee164e1 lib/Jifty/Web/Form/Field/Combobox.pm
+SHA1 c1071263839a663d44d7f922c7c24b5bcc132a82 lib/Jifty/Web/Form/Field/Checkbox.pm
+SHA1 b21ef4e33a628f5d6c54adf5f47f75e69a861644 lib/Jifty/Web/Form/Field/Combobox.pm
 SHA1 cc86a97a80c6c9e22183a099979a712a3900a39a lib/Jifty/Web/Form/Field/Date.pm
 SHA1 e2db0ce71a56f59e8154a8af8187fab198c01fe7 lib/Jifty/Web/Form/Field/Hidden.pm
 SHA1 41b5344b9e5b0dcdc2c944d2cacdc18421aa8a93 lib/Jifty/Web/Form/Field/InlineButton.pm
-SHA1 011cc24f3acadf8aabfcc8ac6b4afb43f4abe589 lib/Jifty/Web/Form/Field/Password.pm
-SHA1 61ee5c16f8fdf8eea81aee4d364ab930dd38a8b0 lib/Jifty/Web/Form/Field/Radio.pm
+SHA1 db78f61b0fe36589d0f3acbf8df470f89cbc6ee9 lib/Jifty/Web/Form/Field/Password.pm
+SHA1 2c67a88128fff13373a9f442cd5bd8318e196f5d lib/Jifty/Web/Form/Field/Radio.pm
 SHA1 5e6d07f48f59a7b2106a8f22ead83263368b26ad lib/Jifty/Web/Form/Field/ResetButton.pm
 SHA1 0f20be40bb8e41ff0025dfd9cb1b4b7e830f8460 lib/Jifty/Web/Form/Field/Select.pm
 SHA1 5586d4fdda6b5b8e6014750d5b912be898b18465 lib/Jifty/Web/Form/Field/Text.pm
 SHA1 bb397fc6092ddb8196342e80a4148d07fcd037b0 lib/Jifty/Web/Form/Field/Textarea.pm
 SHA1 2548412d5bfbd08050d53ab5c58e0d962d4b2448 lib/Jifty/Web/Form/Field/Unrendered.pm
 SHA1 e37541952c969f2e74f942782d483de75e9265f9 lib/Jifty/Web/Form/Field/Upload.pm
-SHA1 2e62a10b182db533ec74bc4b4db1cf96e6da84e0 lib/Jifty/Web/Form/Link.pm
-SHA1 4c095da873895def63ac831e55d4f96c5e6215d2 lib/Jifty/Web/Menu.pm
-SHA1 0facf84687960bd1e865c15a99a95101e7dac5cc lib/Jifty/Web/PageRegion.pm
-SHA1 5738d6b35dfc7db50fc77b24e589d82f7303dc7c lib/Jifty/Web/Session.pm
+SHA1 1f162c264cef4c395b500cf71f6c9eb40f2aca89 lib/Jifty/Web/Form/Link.pm
+SHA1 d38dafcb090e0d7605f0fc86685bff01450bafa6 lib/Jifty/Web/Menu.pm
+SHA1 9056772e89fb963d1835b54d97136bfbf64bc6a2 lib/Jifty/Web/PageRegion.pm
+SHA1 8c7c78fb97daf25e74e60c6de5a5adee1659b7da lib/Jifty/Web/Session.pm
 SHA1 ec239a461310c3eb36cc4d3d2df3c020b1cab3fb lib/Jifty/YAML.pm
-SHA1 e46efb28dc342c9d0a6f56ad92de1a1a13ae0d80 plugins/EditInPlace/META.yml
+SHA1 e956dbfcfbddecfe4b00f06e80d75a16a26acd1b plugins/EditInPlace/META.yml
 SHA1 e8ce16205eccb1b99224ca81d3a3496163a98864 plugins/EditInPlace/Makefile.PL
-SHA1 9608de03284858601e585c2878c6e8fa0d7d4ff9 plugins/EditInPlace/lib/Jifty/Plugin/EditInPlace.pm
-SHA1 eb618bf7e0bc89c49ff12f422a2bc89345060ce3 plugins/EditInPlace/lib/Jifty/Plugin/EditInPlace/Action/FileEditor.pm
-SHA1 5592e3e004892ab22699d10f464db1fa7ee19d74 plugins/EditInPlace/lib/Jifty/Plugin/EditInPlace/Dispatcher.pm
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 plugins/EditInPlace/blib/arch/.exists
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 plugins/EditInPlace/blib/arch/auto/Jifty/Plugin/EditInPlace/.exists
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 plugins/EditInPlace/blib/bin/.exists
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 plugins/EditInPlace/blib/lib/Jifty/Plugin/.exists
+SHA1 9608de03284858601e585c2878c6e8fa0d7d4ff9 plugins/EditInPlace/blib/lib/Jifty/Plugin/EditInPlace.pm
+SHA1 eb618bf7e0bc89c49ff12f422a2bc89345060ce3 plugins/EditInPlace/blib/lib/Jifty/Plugin/EditInPlace/Action/FileEditor.pm
+SHA1 5592e3e004892ab22699d10f464db1fa7ee19d74 plugins/EditInPlace/blib/lib/Jifty/Plugin/EditInPlace/Dispatcher.pm
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 plugins/EditInPlace/blib/lib/auto/Jifty/Plugin/EditInPlace/.exists
+SHA1 dc4e60f93e56496f8010ae81888e84e3352e979f plugins/EditInPlace/blib/lib/auto/Jifty/Plugin/EditInPlace/web/templates/__jifty/edit_file
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 plugins/EditInPlace/blib/man1/.exists
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 plugins/EditInPlace/blib/man3/.exists
+SHA1 cdf4677585c5e062e3eb121d3708cb202f8823b2 plugins/EditInPlace/blib/man3/Jifty::Plugin::EditInPlace::Action::FileEditor.3
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 plugins/EditInPlace/blib/script/.exists
+SHA1 e974f78178f53c88fb7e3f8d20f7df184d13e1d0 plugins/EditInPlace/inc/Module/AutoInstall.pm
+SHA1 017bedfcba1e0c72b36301e6ef21b8712b84d175 plugins/EditInPlace/inc/Module/Install.pm
+SHA1 bcfb15c6a158831c45b5100a7aa94e0f88fced9f plugins/EditInPlace/inc/Module/Install/AutoInstall.pm
+SHA1 b1a70869c098ba602151631386fc510b5bfd3511 plugins/EditInPlace/inc/Module/Install/Base.pm
+SHA1 dd7313db23119d49ae78593bfa576554fb5b0fd8 plugins/EditInPlace/inc/Module/Install/Can.pm
+SHA1 7c3a5153a5574556d895f23e121a41e680da11c1 plugins/EditInPlace/inc/Module/Install/Fetch.pm
+SHA1 2e9c012e58c778a4a83c5eaea20c3aed306ad0c5 plugins/EditInPlace/inc/Module/Install/Include.pm
+SHA1 176d68fe7c07b6ab7cfe09093078b8127bbde786 plugins/EditInPlace/inc/Module/Install/Makefile.pm
+SHA1 cfa6054590957945a21c361815e35b6f817c317d plugins/EditInPlace/inc/Module/Install/Makefile/Version.pm
+SHA1 8b37b38215d14f922b3d5132ce33d11d21d531ba plugins/EditInPlace/inc/Module/Install/Metadata.pm
+SHA1 9915504ffb4f14696ecca28af457e03f795ed2ce plugins/EditInPlace/inc/Module/Install/Share.pm
+SHA1 7eb44b00058c44795038d7fa4c0c77470f20a7f8 plugins/EditInPlace/inc/Module/Install/Win32.pm
+SHA1 6d05967a5e1680b5f118315aaa6b8a1e143d79d8 plugins/EditInPlace/inc/Module/Install/WriteAll.pm
+SHA1 312dfe93d52daa4c72257cf2299aee35f61b0a16 plugins/EditInPlace/lib/Jifty/Plugin/EditInPlace.pm
+SHA1 187cd200affbf8861a91d008273eb9de664a9d60 plugins/EditInPlace/lib/Jifty/Plugin/EditInPlace/Action/FileEditor.pm
+SHA1 69ff778cc486bfd14a97f7690a7706633dbc2e6b plugins/EditInPlace/lib/Jifty/Plugin/EditInPlace/Dispatcher.pm
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 plugins/EditInPlace/pm_to_blib
+SHA1 6f363a3b2826ee1fb01921fefebaf99b111a1c31 plugins/EditInPlace/share/web/templates/__jifty/create_file_inline
 SHA1 dc4e60f93e56496f8010ae81888e84e3352e979f plugins/EditInPlace/share/web/templates/__jifty/edit_file
+SHA1 fea2934c144a7983dc7fb4d2a2826b0f7f6bbc1f plugins/EditInPlace/share/web/templates/__jifty/edit_file_inline
 SHA1 69352f6e1ee12026575162e559aa0ee154be3366 plugins/EmailErrors/Makefile.PL
 SHA1 ff2699ef47b63f7a185f53ffc96bcdc9d05799ec plugins/EmailErrors/doc/site_config.yml
 SHA1 a41d80d1e2c02de64581f13da37ed601e0baabee plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors.pm
 SHA1 e84437393b86a21e865df9ea0d0711a75ef4928e plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Dispatcher.pm
 SHA1 8c68724ec99061a92f22b3afe8dd32844f956d5d plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Notification/EmailError.pm
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 plugins/EmailErrors/share/web/templates/.file
+SHA1 6d36892393c5848ca54991272c03460b330734d2 plugins/LetMe/Makefile.PL
+SHA1 88f5ed45b2c506fcab80f178cf4cedd23a62f365 plugins/LetMe/lib/Jifty/Plugin/LetMe.pm
+SHA1 aae4870db361c1076fd151ddd0cf2fd3f02f4813 plugins/LetMe/lib/Jifty/Plugin/LetMe/Dispatcher.pm
+SHA1 18e4aba79a59532521f8520279fa1a8917c32712 plugins/Login/MANIFEST
+SHA1 99d528ccef042ad8ebf2975bf65e3198c85f9a7b plugins/Login/Makefile.PL
+SHA1 ad21c4044727a0ae570eaace6f51140de78ec910 plugins/Login/lib/Jifty/Plugin/Login.pm
+SHA1 52a2ddc6b4ea6ba0791d8a66690ca2eddd447c6b plugins/Login/lib/Jifty/Plugin/Login/Action/ConfirmEmail.pm
+SHA1 b659d37396fe16dd28d72cdf930f1c7569da295a plugins/Login/lib/Jifty/Plugin/Login/Action/Login.pm
+SHA1 4f97a6640ce0daaae9bbf79d37f7fe9d366ef85b plugins/Login/lib/Jifty/Plugin/Login/Action/Logout.pm
+SHA1 b4bd0a12cc900662def2f239cf373bcf237d4698 plugins/Login/lib/Jifty/Plugin/Login/Action/RecoverPassword.pm
+SHA1 77d8d2e0002c6ec0a7892de8466d879551eb3e95 plugins/Login/lib/Jifty/Plugin/Login/Action/ResetLostPassword.pm
+SHA1 8b86c663e81e56898098a70fb2f19c22df2b4331 plugins/Login/lib/Jifty/Plugin/Login/Action/SendAccountConfirmation.pm
+SHA1 c59230ba86f09793aa696c71e1c54452cb3e0805 plugins/Login/lib/Jifty/Plugin/Login/Action/SendPasswordReminder.pm
+SHA1 4dce159f0a69c5fe972ee3e6a31c1809bbf844e0 plugins/Login/lib/Jifty/Plugin/Login/Action/Signup.pm
+SHA1 81875f6ab2d807bfe4671af084b4f238d383464c plugins/Login/lib/Jifty/Plugin/Login/CurrentUser.pm
+SHA1 6ed1349bb1d9f833bfd5c02b8aee94cc2f93da5f plugins/Login/lib/Jifty/Plugin/Login/Dispatcher.pm
+SHA1 9b6923b6718443dded533bffc0b03c55453322ee plugins/Login/lib/Jifty/Plugin/Login/Model/User.pm
+SHA1 bff7b7aac5d7ee0e35277ed1366714c1800a43ca plugins/Login/lib/Jifty/Plugin/Login/Notification/ConfirmAddress.pm
+SHA1 cf9c995f10d81a5b124f278756808ad3418818e5 plugins/Login/share/web/templates/let/confirm_email
+SHA1 df53aef4fd346d763025380e4ac05d441c1d7501 plugins/Login/share/web/templates/login
+SHA1 e38eaf6f5d52cf5050df5803cf13623b14ecd96d plugins/Login/share/web/templates/logout
+SHA1 037b9f1f1f8e1fbd8523a545e139477662010474 plugins/Login/share/web/templates/signup
+SHA1 6a8008c78f6f0985542b8c42ef3327508b798897 plugins/Nothing/Makefile.PL
+SHA1 514f77cd3c01a1fea159187fde9fa8ab78b0b75c plugins/Nothing/lib/Jifty/Plugin/Nothing.pm
+SHA1 ceeff321fbe0e12b7a4a2421320db57b8bee8732 plugins/Nothing/lib/Jifty/Plugin/Nothing/Dispatcher.pm
 SHA1 2c5d29ea2981cc759cc5f5b27cf7c536d4ea9384 share/dtd/xhtml-lat1.ent
 SHA1 62229286e03ec35c922c8a7f9f3bb68412a78a55 share/dtd/xhtml-special.ent
 SHA1 e7749f99989ec8a9608f6cfbd41a5e5dddc18aec share/dtd/xhtml-symbol.ent
@@ -219,36 +283,48 @@
 SHA1 b65b002b9c7e5326823324c154cd2b3fc4f02b91 share/po/ja.po
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 share/web/static/css/app-base.css
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 share/web/static/css/app.css
+SHA1 c566d7ab5005e82dcf2f90809ae757e07d338138 share/web/static/css/autocomplete.css
 SHA1 5f569fc23eb815ee6f6d086aa6df87f6c38952d3 share/web/static/css/autohandler
 SHA1 cc51c4e59e5c9b14b2ab7fe96e4e814396f203cc share/web/static/css/base.css
 SHA1 7046e3ca935a0d601a08da923d1d3c30bcadf9fe share/web/static/css/calendar.css
 SHA1 bf48b6bda86f359b95b29a7c3451a3c1b5721385 share/web/static/css/combobox.css
 SHA1 6b4d4cbc063731dabe50356a3560eae6a9f25aef share/web/static/css/context-menus.css
-SHA1 d513311649b310ae0f4bc1ee8c072ffca6ac9d25 share/web/static/css/forms.css
-SHA1 26e328d8bedf1295fb0a503b8729b67b896fc22c share/web/static/css/halos.css
-SHA1 819cf5d245d9f5ac5d1e607332b28f02cbce38ed share/web/static/css/keybindings.css
-SHA1 4e87c1a4767aff04f0d322db0abfaeaf81bcec89 share/web/static/css/main.css
+SHA1 406222bd1c864c23e9c2bd77905d6769821a862e share/web/static/css/forms.css
+SHA1 52ddd83ee7c511d78537454a097f0264a7db3c1c share/web/static/css/halos.css
+SHA1 c7eede0c22f68e4417748bb0903b48195648f4c0 share/web/static/css/keybindings.css
+SHA1 91cd2873a5521bbc172389d8af2c29f33578fcc9 share/web/static/css/main.css
 SHA1 903069dae3de35d6a3226b8272ff317b8eebd58c share/web/static/css/nav.css
+SHA1 f693ecf51d25e28e1f0f73be6be6337fdb996793 share/web/static/css/notices.css
+SHA1 d36a91e3b5fb2c00c1b963ad73e1316da83b51ba share/web/static/css/yui/calendar/calendar.css
 SHA1 2f28dd2d59fe5486abce194e6fe68da0e49b1084 share/web/static/favicon.ico
+SHA1 3410d5156716e13443770cce0f3384eacfdb5adb share/web/static/images/css/fieldbg-autocomplete.gif
 SHA1 97c94d7dfb0683f9d2ac7f9406ca36495fa638e0 share/web/static/images/css/fieldbg.gif
 SHA1 67f41db40d62b81d71cb60c542695e0d7e6d393d share/web/static/images/pony.jpg
 SHA1 6197eb13b4254f77f16833e1a9a8640e939d574c share/web/static/images/silk/bullet_arrow_down.png
 SHA1 fdab0053425ba609387dffb0e2529a8feacc3906 share/web/static/images/silk/bullet_arrow_up.png
 SHA1 757e85619231e57be461e54982877457e0fbf6fc share/web/static/images/silk/calendar.png
+SHA1 899445ef75b18925f3c47969e122562dc6da5158 share/web/static/images/silk/cancel.png
+SHA1 3855754e8fc9331c67dd2d0789d9f2d6e7daae8b share/web/static/images/silk/error.png
+SHA1 04b482344d75d0732275727bd73cceb9b049d276 share/web/static/images/silk/information.png
+SHA1 62a1b41ac5eefbf3d0ad578a19572d4096d88146 share/web/static/images/silk/pencil.png
+SHA1 2f84cd8d3f46ffe9eb1406a4f6337fa5b5e2bcd1 share/web/static/images/silk/pencil_add.png
 SHA1 eb756c931be8ef70fc27ba0046375f32022e3b6d share/web/static/js/app.js
 SHA1 a0ddd0a1b4b45cf198aff6c62cf36f18b3c367e9 share/web/static/js/app_behaviour.js
 SHA1 86484ce84ddeb7488563eae5c2dc0b94b3c9a5eb share/web/static/js/behaviour.js
-SHA1 90107cadf295249c58828d349d26c19a6f2086fd share/web/static/js/bps_util.js
+SHA1 094b2109587bbb33cb401c4dcf6bdea352739c6b share/web/static/js/bps_util.js
+SHA1 ad5ba6aa95329704f1d9cd38b9050b141aadf474 share/web/static/js/calendar.js
 SHA1 e9f9931abe8ddf86cf5cfddd1f0e963bb5bf0ccb share/web/static/js/combobox.js
-SHA1 72bf6fa70a48657272677f74070cd97f0c0c6762 share/web/static/js/context_menu.js
-SHA1 04bc29f82c87440326ba1807c65b007bedc6eaaf share/web/static/js/cssquery/cssQuery-level2.js
+SHA1 456cfe126f09d2e287a1f2f03e466531985b4b5b share/web/static/js/context_menu.js
+SHA1 efa1e9f561fb31ec520e32e7d623e8e41afb7dfc share/web/static/js/cssquery/cssQuery-level2.js
 SHA1 37cfa3bfdb37450d3a89a88387c4e04baefff271 share/web/static/js/cssquery/cssQuery-level3.js
-SHA1 4d44eff44dca8ddec98629e70ef7cb57a3347d36 share/web/static/js/cssquery/cssQuery-standard.js
-SHA1 a4e88de89162ef98d8ca4d763d31e67733176d1f share/web/static/js/cssquery/cssQuery.js
+SHA1 a80e117cfca6644bde2bb8bd8d48a093e784a731 share/web/static/js/cssquery/cssQuery-standard.js
+SHA1 95408c5aa294bdbc7b857d35772c1bd888b87b33 share/web/static/js/cssquery/cssQuery.js
 SHA1 e72565db2119b617c9ca0af948956a399caa5720 share/web/static/js/dom-drag.js
+SHA1 4553f3cb184b09228ed4362898e9d30200a2a585 share/web/static/js/formatDate.js
 SHA1 a1d2c6292d656c275383b97aad6ca913b8a1b031 share/web/static/js/halo.js
-SHA1 2944ef108debb47ee70846daf4b8413e6152c76b share/web/static/js/jifty.js
-SHA1 5f49e5bd3eb2f4f5951597ed9fd68c07dc564c28 share/web/static/js/jifty_utils.js
+SHA1 9dc1901de4aee1df26070774eccbdaf9d6a96919 share/web/static/js/jifty.js
+SHA1 29fe34f11192976f1a388562188b1eb9af7f4497 share/web/static/js/jifty_smoothscroll.js
+SHA1 fc33aea1f6d4719e0a0cacd0884fe076757b8edf share/web/static/js/jifty_utils.js
 SHA1 49478568d1f258c9d061faa30c2181fd999b07f0 share/web/static/js/jsTrace.js
 SHA1 3b3493afbf46fc8afba58f541e338836bedbdd0b share/web/static/js/jsan/DOM/Events.js
 SHA1 36b2a3f1966b97fcc338b557830106bf2d490485 share/web/static/js/jsan/JSAN.js
@@ -256,16 +332,21 @@
 SHA1 7a13c9041326f2e70494f6ed5bcd87396bdd4280 share/web/static/js/jsan/Upgrade/Array/push.js
 SHA1 becdf6868ec4aec2dc93c8c33b0713d1c4f4eb34 share/web/static/js/jsan/Upgrade/Function/apply.js
 SHA1 f15b0364f99d2e4c1af795c82883f89b9eaca9b2 share/web/static/js/json.js
-SHA1 3e2bc9c2a81ac395d34c5d8c9accaa489f2971ca share/web/static/js/key_bindings.js
+SHA1 e68a5e22ae973fc8afd47a5b43fbed154dcae6ff share/web/static/js/key_bindings.js
 SHA1 986a63bc533f6fa99c9b0f0226a14f9871b94ce5 share/web/static/js/prototype.js
 SHA1 bed876257c8351aaa9c70e0882721635f25c0577 share/web/static/js/rico.js
 SHA1 164bc59cf75fe943edc80da65b19246fc9b9643e share/web/static/js/scriptaculous/builder.js
-SHA1 72542d2ad932833226780c239157a2e56264df1f share/web/static/js/scriptaculous/controls.js
+SHA1 b63a94ca5476e2a404702663b05a642105dcd61b share/web/static/js/scriptaculous/controls.js
 SHA1 28f001d3c48395daf0de22876a70d918db3a461e share/web/static/js/scriptaculous/dragdrop.js
 SHA1 21ce51daa693e3716678ac4190369b499b35e8de share/web/static/js/scriptaculous/effects.js
 SHA1 914db330c7fe585dfeddce713558f04328fb51db share/web/static/js/scriptaculous/scriptaculous.js
 SHA1 cc2e31820eed69ae87b1b2befa50e8c4a8519342 share/web/static/js/scriptaculous/slider.js
 SHA1 6b42a40cac7d45f9fd6665e18c4e494704eff9e3 share/web/static/js/scriptaculous/unittest.js
+SHA1 f254696f59ab11c2373c79ba0e6f303d8ac4f71e share/web/static/js/setup_jsan.js
+SHA1 78f4e09baeee6edb17e4f023caec36ed750e1c4d share/web/static/js/yui/calendar.js
+SHA1 b71469a8359ed5523478aa6570b53054585ce57b share/web/static/js/yui/dom.js
+SHA1 e04edc89dd20396b5f7246ed14e9e0d255a260bc share/web/static/js/yui/event.js
+SHA1 9236d84ef927b696f6a7b3e858098390d8962e9e share/web/static/js/yui/yahoo.js
 SHA1 3764719676d9456651c6b67237b0f44635d81980 share/web/templates/__jifty/admin/_elements/nav
 SHA1 0a362343ac62b44343ae26168e99612e23286880 share/web/templates/__jifty/admin/action/dhandler
 SHA1 1b55e3945405d09df59f0a40182f06f8f59a2e97 share/web/templates/__jifty/admin/autohandler
@@ -275,8 +356,8 @@
 SHA1 55799a284dbeb54b8cc12f41da854e460b3a8216 share/web/templates/__jifty/admin/fragments/list/view
 SHA1 d807fdcdff346c540f2a20ac83f407725b754173 share/web/templates/__jifty/admin/index.html
 SHA1 c78d4b3267acdf98a39c864fd0a1b4fbdc4d390c share/web/templates/__jifty/admin/model/dhandler
-SHA1 847afc510ccc102f03591804bb623ec0d6932430 share/web/templates/__jifty/autocomplete.xml
-SHA1 e33cf49304e884957fd58d53a14fea2a0bda16fc share/web/templates/__jifty/css/dhandler
+SHA1 bdaeeff0c2522a8509d4da45be703d1e8cf5c96c share/web/templates/__jifty/autocomplete.xml
+SHA1 66b1ce378bc36715f7e6395a8c4ee57a2fcd359e share/web/templates/__jifty/css/dhandler
 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 share/web/templates/__jifty/empty
 SHA1 f85d8cae8a2df3ee51b868a744a9e9af21925e0c share/web/templates/__jifty/error/_elements/error_text
 SHA1 e2d761b0b92f818eb2bbb91a15cef0a2471d2245 share/web/templates/__jifty/error/_elements/wrapper
@@ -284,22 +365,22 @@
 SHA1 0cf3e3f2f8447ea5f66fd22d325c578448129718 share/web/templates/__jifty/error/dhandler
 SHA1 78e1e0af483fa3bdac2de4e5a9d82486d67b8537 share/web/templates/__jifty/error/error.css
 SHA1 63596a50acfd1e56b1e7d3572628222576afe7b7 share/web/templates/__jifty/error/mason_internal_error
-SHA1 0e0996f23048448689a97ed7c3537e923b70f7b6 share/web/templates/__jifty/halo
+SHA1 b8793db1dd47943dc83173f02f2227f9ca310235 share/web/templates/__jifty/halo
+SHA1 dc95abf6889f2bf8b1e8a9b6ec2708d9bf67bf3f share/web/templates/__jifty/js/dhandler
 SHA1 6a50927b6d7c7f5f2048a691299585cb2dd05677 share/web/templates/__jifty/online_docs/autohandler
 SHA1 d0116574b44622720db7a9efc7fafdf4002ed012 share/web/templates/__jifty/online_docs/content.html
 SHA1 bd81ff4e458c5e1a76c131dce40ffd71fd6a76f7 share/web/templates/__jifty/online_docs/index.html
 SHA1 630b516dede6767e8185de8211e6affd7b564cfe share/web/templates/__jifty/online_docs/toc.html
 SHA1 38e4c2bc3b3e49581eea8c80da26e2cfae817979 share/web/templates/__jifty/validator.xml
-SHA1 edcee504886e4dedc5cbfcf6ece6331fea6b76c6 share/web/templates/__jifty/webservices/xml
+SHA1 a342f6c5f3234fc37f55af22537ab73ebd61a52b share/web/templates/__jifty/webservices/xml
 SHA1 c7384fcdf1ee7a3e347388c6619f6aa2f297656e share/web/templates/__jifty/webservices/yaml
-SHA1 5356a9d1df7a18703340ce62d569b711d33be344 share/web/templates/_elements/header
-SHA1 06e5558f2f56872273158924a2e32692575b21f3 share/web/templates/_elements/javascript
+SHA1 8145ab6043a7bbd70e1bfa33e068fb741f4ee3a5 share/web/templates/_elements/header
 SHA1 f36e8e0557117d8fdcebad74694fac718101ce27 share/web/templates/_elements/keybindings
-SHA1 e87efef2a9f68c9ed7d974a24564151ef532230e share/web/templates/_elements/menu
+SHA1 0d84d7af43685d7161fc800a2c8b464b8586c57d share/web/templates/_elements/menu
 SHA1 4da6700ff1fdc390436ff05906f4df979c44d572 share/web/templates/_elements/nav
 SHA1 b74c8647eb89e1e189d3cefbbfae51da608edcff share/web/templates/_elements/page_nav
 SHA1 ed970d60b8f273e71302697733b81c66e14831ab share/web/templates/_elements/sidebar
-SHA1 91d29f3e4dd42979cb76b90e790e2b934555af1d share/web/templates/_elements/wrapper
+SHA1 5c72fdcfb62dc016403c4461e52fca493722e8c1 share/web/templates/_elements/wrapper
 SHA1 35adfc3fd3cbf1c2c3310dd2c2a7eb7317495ced share/web/templates/autohandler
 SHA1 106fc0286e2aff5a01d9a623c37fc807451f2037 share/web/templates/dhandler
 SHA1 b9d730f675335894e36b780202e1afbe98b2985f share/web/templates/helpers/calendar.html
@@ -308,7 +389,7 @@
 SHA1 1a865b0c66f49d018fd7c512a09d923985513bb7 t/01-dependencies.t
 SHA1 840c77265cad57e9135c7fb1c21100df2ad7ab6e t/01-version_checks.t
 SHA1 fc52f8d8fde7fd7dc6d2bd6e77a6ce8f6e89029e t/02-connect.t
-SHA1 5ea078d9d5508b8f9cfde01a5273fc39638183cd t/03-form-protocol.t
+SHA1 e09e04e2b93ab8b8ecc94f7161e1fe54ca439a7c t/03-form-protocol.t
 SHA1 2c0bb7cb044635cac4c8a902e2f3e59c80d7eb0c t/05-dispatcher.t
 SHA1 acc343a5359eda7ce3765b16a70a6906a625ab38 t/06-forms.t
 SHA1 9310b60d521227aaeb9b3fd0c69aa579cd10ab6f t/07-limit-actions.t
@@ -317,7 +398,7 @@
 SHA1 d7982e7064c5ee2a98ea858ebf57664f50a26c40 t/Continuations/bin/jifty
 SHA1 69d51b37601c4fc51b989234f96611357d96c137 t/Continuations/lib/Continuations/Action/CrossBridge.pm
 SHA1 01ebcf50d361afff117bfbb14125470da3010f90 t/Continuations/lib/Continuations/Action/GetGrail.pm
-SHA1 9ae3f0d58d128a5007813b951fe910572b348fba t/Continuations/lib/Continuations/Dispatcher.pm
+SHA1 55c7de13306c111504b1c9a10fb3147a3d8be79f t/Continuations/lib/Continuations/Dispatcher.pm
 SHA1 904ccf244ddafa2cf756e2de1f251b0962399750 t/Continuations/share/web/templates/autohandler
 SHA1 3b7dfa8465eba725b1322a16c89e86db5aeda1e0 t/Continuations/share/web/templates/black-knight-color.html
 SHA1 33dec4df44d11fb3c62a83a2bbb9e21b82942a35 t/Continuations/share/web/templates/black-knight-name.html
@@ -325,12 +406,12 @@
 SHA1 b69550b92c17e7749ca64b299e7e15bcd8596eae t/Continuations/share/web/templates/black-knight.html
 SHA1 a57494ba5021699868a520313332b08eee3bb1e9 t/Continuations/share/web/templates/help-help.html
 SHA1 6831427bd1a041b49a320d60ef7baf2e2e62be1a t/Continuations/share/web/templates/index-help.html
-SHA1 1c53604574be09219818ea83f6337cdaa9efe64e t/Continuations/share/web/templates/index.html
+SHA1 4acb52a5373144d2cb5ccb7a39961e5306c8b5ee t/Continuations/share/web/templates/index.html
 SHA1 233ce8afb5de542506f03195f0d905f97d96324a t/Continuations/t/00-prototype.t
 SHA1 cc03d9e1f5d78c0ee1d9b74b56bda7fcd093dfda t/Continuations/t/01-raw-api.t
 SHA1 5220780feaa3fc9a432e0a2043cc07a1c6d198ec t/Continuations/t/02-api.t
 SHA1 37fa61497ffea2011ae176a2237dad18a8fc3aec t/Continuations/t/03-gc.t
-SHA1 98d29e88bcbbc4b1d8759f040a1c7e216c1fe447 t/Continuations/t/04-before-blocks.t
+SHA1 4d6b80b7cb255a5ea7273c71dc495ece0ef1a2d5 t/Continuations/t/04-before-blocks.t
 SHA1 29a9d0b63d274805fe33c3123faf1a5f871a0e24 t/Jifty.pm
 SHA1 d7982e7064c5ee2a98ea858ebf57664f50a26c40 t/Mapper/bin/jifty
 SHA1 da400e1042a4c521197a8a49b854dc077243af6b t/Mapper/lib/Mapper/Action/CrossBridge.pm
@@ -341,14 +422,18 @@
 SHA1 e6ebd82c83b4c826e305c6f212609f99e0474115 t/Mapper/t/01-raw-api.t
 SHA1 05cab3dccff05395659b5b16724ad75476d90db9 t/Mapper/t/02-api.t
 SHA1 d7982e7064c5ee2a98ea858ebf57664f50a26c40 t/TestApp/bin/jifty
+SHA1 c6d65a4f3ad4d9d10dc1a8243a2d1a37e3f269a3 t/TestApp/etc/config.yml
 SHA1 a3b4652e1fe7fb95e65ccafc533b6a239876a475 t/TestApp/lib/TestApp/Action/DoSomething.pm
 SHA1 802334e8157cdda70a1f6675aa58ac029e2234e9 t/TestApp/lib/TestApp/Dispatcher.pm
-SHA1 8cc5115b8497be8772ba553d6f8d5e6e76283edd t/TestApp/lib/TestApp/Model/User.pm
+SHA1 367411e4ab66086e6620b0743273b902bbdb5a31 t/TestApp/lib/TestApp/Model/User.pm
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 t/TestApp/mailbox
+SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 t/TestApp/mason/obj/.__obj_create_marker
 SHA1 67f41db40d62b81d71cb60c542695e0d7e6d393d t/TestApp/share/web/static/images/pony.jpg
 SHA1 a2e7bf8d2d52bbaf360af24b4ffc00c68d7e31f2 t/TestApp/share/web/templates/dispatch/basic
 SHA1 d1e244371109ce216bfd6b9ac03374737461577c t/TestApp/share/web/templates/dispatch/basic-show
-SHA1 503c6661049a739dd0ac1b6b186f711d1c7ed2cd t/TestApp/share/web/templates/editform
-SHA1 c5bcab69d7c4e7ed05962ca8e160a3116ec4263d t/TestApp/share/web/templates/index.html
+SHA1 f5870c2fb3222b86d97f14bdf8155821c887987b t/TestApp/share/web/templates/editform
+SHA1 ef0db81c421ba89231ea6d72f355b7dd8fd5e8e2 t/TestApp/share/web/templates/index.html
+SHA1 9a50bb56338896f9cd50b7098a9e28397ad28a34 t/TestApp/share/web/templates/somedir/dhandler
 SHA1 d21256a0b0b25ffc5ccc549bc1e6839694ac2921 t/TestApp/t/00-model-User.t
 SHA1 fc82fe131a569aacf7d886265617a13bcb4dd4d8 t/TestApp/t/00-prototype.t
 SHA1 23fc2f1a93c3243ed86891f29dc080facf1430cc t/TestApp/t/01-config.t
@@ -357,14 +442,16 @@
 SHA1 212fe99dac8967a6feb0725d0e4b102b9a1b0c39 t/TestApp/t/04-sessions.t
 SHA1 2f5dd61abd226ed559cecafa4f4817240f98c29a t/TestApp/t/05-actions-before-redirect.pm
 SHA1 fc4e9c429e7cb31530d9ceb16046eaa1c7aab943 t/TestApp/t/05-editactions-Cachable.t
-SHA1 75634f52766d30f9a1070e63842fed85fd9d5f0d t/TestApp/t/05-editactions-Record.t
+SHA1 62cd71ae0b5a6e017b6d1b0d8b2bd535e1e6e3f0 t/TestApp/t/05-editactions-Record.t
 SHA1 54087891789c499faecda98d2ea0bb17acc305b5 t/TestApp/t/06-validation.t
+SHA1 25d3815b225dcb5cc8ea685b373f59498bdad3ec t/TestApp/t/07-sandboxing.t
 SHA1 69401ad0579fa743f087731536229d2806dd1d6a t/TestApp/t/config-Cachable
 SHA1 710c4b0faaea46f90a7b071e5396541a59ed0ff1 t/TestApp/t/config-Record
+SHA1 6929725a4321f9e278c6ee12de9928fa3f531a10 t/TestApp/testapp
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.3 (Darwin)
 
-iD8DBQFEkWcBEi9d9xCOQEYRAnEyAKCJXpa+WZYa3SayxoHsM2l/ltPDmwCfQeya
-gTGNaJw9YnKGKmw0ic5KW1w=
-=oNhL
+iD8DBQFEreLwEi9d9xCOQEYRAhqsAJ9TMnvjUXloZzqGVr060GqFUKI+6ACffTQX
+wldVflkr/0hbqTePZV93wPU=
+=dOdA
 -----END PGP SIGNATURE-----

Modified: jifty/trunk/lib/Jifty.pm
==============================================================================
--- jifty/trunk/lib/Jifty.pm	(original)
+++ jifty/trunk/lib/Jifty.pm	Fri Jul  7 00:37:40 2006
@@ -5,7 +5,7 @@
 use encoding 'utf8';
 # Work around the fact that Time::Local caches thing on first require
 BEGIN { local $ENV{'TZ'} = "GMT";  require Time::Local;}
-$Jifty::VERSION = '0.60615';
+$Jifty::VERSION = '0.60706';
 
 =head1 NAME
 

Modified: jifty/trunk/lib/Jifty/Dispatcher.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Dispatcher.pm	(original)
+++ jifty/trunk/lib/Jifty/Dispatcher.pm	Fri Jul  7 00:37:40 2006
@@ -734,15 +734,26 @@
     # XXX TODO, we should search all component roots
 
     if ($path !~ m{/$}
-        and -d Jifty::Util->absolute_path( Jifty->config->framework('Web')->{'TemplateRoot'} . $path))
+        and -d Jifty::Util->absolute_path(
+            Jifty->config->framework('Web')->{'TemplateRoot'} . $path
+        )
+        )
     {
         $self->_do_show( $path . "/" );
     }
 
+    my $abs_template_path = Jifty::Util->absolute_path(
+        Jifty->config->framework('Web')->{'TemplateRoot'} . $path );
+    my $abs_root_path = Jifty::Util->absolute_path(
+        Jifty->config->framework('Web')->{'TemplateRoot'} );
 
-    # Set the request path
-    request->path($path);
-    $self->render_template(request->path);
+    if ( $abs_template_path !~ /^\Q$abs_root_path\E/ ) {
+        request->path('/__jifty/errors/500');
+    } else {
+        # Set the request path
+        request->path($path);
+    }
+    $self->render_template( request->path );
 
     last_rule;
 }

Modified: jifty/trunk/lib/Jifty/Handler.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Handler.pm	(original)
+++ jifty/trunk/lib/Jifty/Handler.pm	Fri Jul  7 00:37:40 2006
@@ -194,7 +194,6 @@
     $_->new_request for Jifty->plugins;
 
     Jifty->log->debug( "Received request for " . Jifty->web->request->path );
-
     my $sent_response = 0;
     $sent_response
         = $self->static_handler->handle_request( Jifty->web->request->path )

Modified: jifty/trunk/lib/Jifty/Request.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Request.pm	(original)
+++ jifty/trunk/lib/Jifty/Request.pm	Fri Jul  7 00:37:40 2006
@@ -220,6 +220,7 @@
 
     my $path = $cgi->path_info;
     $path =~ s/\?.*//;
+    $path = Jifty::Util->canonicalize_path($path);
     $self->path( $path );
 
     use HTML::Mason::Utils;
@@ -536,12 +537,6 @@
     return $self->continuation->return;
 }
 
-=head2 path
-
-Returns the path that was requested
-
-=cut
-
 =head2 just_validating
 
 This method returns true if the request was merely for validation.  If

Modified: jifty/trunk/lib/Jifty/Util.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Util.pm	(original)
+++ jifty/trunk/lib/Jifty/Util.pm	Fri Jul  7 00:37:40 2006
@@ -37,10 +37,48 @@
     my $self = shift;
     my $path = shift || '';
 
+
     return $ABSOLUTE_PATH{$path} if (exists $ABSOLUTE_PATH{$path});
+    $path = $self->canonicalize_path($path);
     return $ABSOLUTE_PATH{$path} = File::Spec->rel2abs($path , Jifty::Util->app_root);
 } 
 
+
+=head2 canonicalize_path PATH
+
+Takes a "path" style /foo/bar/baz and returns a canonicalized (but not necessarily absolute)
+version of the path.
+
+=cut 
+
+sub canonicalize_path {
+    my $self = shift;
+    my $path = shift;
+
+    my @path = File::Spec->splitdir($path);
+
+    my @newpath;
+
+    for (@path)  {
+        # If we have an empty part and it's not the root, skip it.
+        if ( @newpath and ($_ =~ /^(?:\.|)$/)) {
+            next;
+        }
+        elsif( $_ ne '..')  {
+        push @newpath, $_ ;
+    } else {
+        pop @newpath;
+    }
+
+    }
+
+    
+    return File::Spec->catdir(@newpath);
+
+
+}
+
+
 =head2 jifty_root
 
 Returns the root directory that Jifty has been installed into.

Modified: jifty/trunk/lib/Jifty/View/Static/Handler.pm
==============================================================================
--- jifty/trunk/lib/Jifty/View/Static/Handler.pm	(original)
+++ jifty/trunk/lib/Jifty/View/Static/Handler.pm	Fri Jul  7 00:37:40 2006
@@ -68,12 +68,10 @@
     my $path = shift;
 
     #if ( Jifty->handler->cgi->http('If-Modified-Since') and not Jifty->config->framework('DevelMode') ) { $self->respond_not_modified(); }
-
     my $local_path = $self->file_path($path);
     unless ($local_path) {
         return undef;
     }
-
     my $mime_type = $self->mime_type($local_path);
     
     if ( $self->client_accepts_gzipped_content and $mime_type =~ m!^(text/|application/x-javascript)! ) {
@@ -117,7 +115,13 @@
     $file =~ s/^\/*?static//; 
 
     foreach my $path (@options) {
-        my $abspath = Jifty::Util->absolute_path( $path . "/" . $file );
+        my $abspath = Jifty::Util->absolute_path( File::Spec->catdir($path,$file ));
+        # If the user is trying to request something outside our static root, 
+        # decline the request
+        my $abs_base_path = Jifty::Util->absolute_path( $path );
+        unless ($abspath =~ /^\Q$abs_base_path\E/) {
+            return undef;
+        }
         # If the user is trying to request something outside our static root, 
         # decline the request
         my $abs_base_path = Jifty::Util->absolute_path( $path );


More information about the Jifty-commit mailing list