mediagoblin.git
11 years agochanges after cwebb's review
Rodney Ewing [Fri, 21 Jun 2013 21:14:40 +0000 (14:14 -0700)]
changes after cwebb's review

11 years agomoved authentication_disabled to config_spec
Rodney Ewing [Sat, 15 Jun 2013 19:32:20 +0000 (12:32 -0700)]
moved authentication_disabled to config_spec

11 years agochanged no_auth to authentication_disabled in config
Rodney Ewing [Tue, 11 Jun 2013 21:30:38 +0000 (14:30 -0700)]
changed no_auth to authentication_disabled in config

11 years agocleanup
Rodney Ewing [Tue, 4 Jun 2013 23:50:06 +0000 (16:50 -0700)]
cleanup

11 years agofixed a bug that was deleting the messages
Rodney Ewing [Tue, 4 Jun 2013 18:26:34 +0000 (11:26 -0700)]
fixed a bug that was deleting the messages

11 years agominor changes from aaronw's review
Rodney Ewing [Tue, 4 Jun 2013 14:58:17 +0000 (07:58 -0700)]
minor changes from aaronw's review

11 years agoMerge remote-tracking branch 'upstream/master' into basic_auth
Rodney Ewing [Mon, 3 Jun 2013 23:20:19 +0000 (16:20 -0700)]
Merge remote-tracking branch 'upstream/master' into basic_auth

11 years agoMake sure that the pytest revision is at least at 2.3.
Christopher Allan Webber [Mon, 3 Jun 2013 18:29:04 +0000 (13:29 -0500)]
Make sure that the pytest revision is at least at 2.3.

11 years agoMerge remote-tracking branch 'upstream/master' into basic_auth
Rodney Ewing [Thu, 30 May 2013 23:31:15 +0000 (16:31 -0700)]
Merge remote-tracking branch 'upstream/master' into basic_auth

11 years agoCommenting out the max-height restriction on thumbnails.
Christopher Allan Webber [Thu, 30 May 2013 15:23:50 +0000 (10:23 -0500)]
Commenting out the max-height restriction on thumbnails.

11 years agoExplained more clearly why it's okay for interface classes to be keys.
Christopher Allan Webber [Wed, 29 May 2013 23:10:09 +0000 (18:10 -0500)]
Explained more clearly why it's okay for interface classes to be keys.

This commit sponsored by Nick Glynn.  Thank you!

11 years agoProvide a tip on how to do interfaces via our plugin API.
Christopher Allan Webber [Wed, 29 May 2013 22:21:15 +0000 (17:21 -0500)]
Provide a tip on how to do interfaces via our plugin API.

Uses a frogputer science approach to frobbing as an example (which is
total nonsense, but fun).

This commit sponsored by Ryan Kelln.  Thank you!

11 years agoActually use the right underlining for the wtforms hooks section
Christopher Allan Webber [Wed, 29 May 2013 21:12:24 +0000 (16:12 -0500)]
Actually use the right underlining for the wtforms hooks section

11 years agoAdditional hook tips! Documentation on how to modify a wtforms form.
Christopher Allan Webber [Wed, 29 May 2013 20:57:58 +0000 (15:57 -0500)]
Additional hook tips!  Documentation on how to modify a wtforms form.

This commit sponsored by Gian-Maria Daffré.  Thank you!

11 years agoWhere do you find hooks? How do you add them? An explaination!
Christopher Allan Webber [Wed, 29 May 2013 20:35:37 +0000 (15:35 -0500)]
Where do you find hooks?  How do you add them?  An explaination!

This commit about talking to community members sponsored by
community member Aeva Palecek.  Thanks!

11 years agoActually link to the release notes when we say "see the release notes".
Christopher Allan Webber [Wed, 29 May 2013 19:13:12 +0000 (14:13 -0500)]
Actually link to the release notes when we say "see the release notes".

This commit sponsored by Brian Kemp.  Thank you!

11 years agoLink to the plugin api stuff and the database plugin sections from the quickstart.
Christopher Allan Webber [Wed, 29 May 2013 19:10:07 +0000 (14:10 -0500)]
Link to the plugin api stuff and the database plugin sections from the quickstart.

This commit sponsored by Nathan Stephenson.  Thank you!

11 years agoThe pdf.js iframe view is awesome so I'm making it the default. So there! ;)
Christopher Allan Webber [Tue, 28 May 2013 21:36:27 +0000 (16:36 -0500)]
The pdf.js iframe view is awesome so I'm making it the default.  So there! ;)

This commit sponsored by Jay Turley.  Thank you!

11 years agoFixing bug where non-image types might break if app_config['original_date_visible...
Christopher Allan Webber [Tue, 28 May 2013 21:34:47 +0000 (16:34 -0500)]
Fixing bug where non-image types might break if app_config['original_date_visible'] is true

Not all media managers have the .get_original_date attribute, so of
course break.  This is fixed by making a new space where individual
media types can define this if they like.

This commit sponsored by Matthieu Dupont de Dinechin.  Thank you!

11 years agoremoved extra argument from check_login_simple in login view
Rodney Ewing [Tue, 28 May 2013 16:56:16 +0000 (09:56 -0700)]
removed extra argument from check_login_simple in login view

11 years agocleanup
Rodney Ewing [Tue, 28 May 2013 16:28:59 +0000 (09:28 -0700)]
cleanup

11 years agoMerge remote-tracking branch 'upstream/master' into basic_auth
Rodney Ewing [Tue, 28 May 2013 16:20:35 +0000 (09:20 -0700)]
Merge remote-tracking branch 'upstream/master' into basic_auth

Conflicts:
mediagoblin/auth/tools.py
mediagoblin/auth/views.py
mediagoblin/plugins/basic_auth/tools.py

11 years agocleanup
Rodney Ewing [Tue, 28 May 2013 16:05:05 +0000 (09:05 -0700)]
cleanup

11 years agoConflicts:
Rodney Ewing [Tue, 28 May 2013 02:34:49 +0000 (19:34 -0700)]
Conflicts:
mediagoblin/auth/tools.py
mediagoblin/auth/views.py
mediagoblin/plugins/basic_auth/tools.py

11 years agoadded a register_user function
Rodney Ewing [Fri, 24 May 2013 19:52:14 +0000 (12:52 -0700)]
added a register_user function

cherry picked from rodney757 and fixed for out of order
picking.

11 years agocreated a check_login_simple function
Rodney Ewing [Sat, 25 May 2013 14:59:03 +0000 (07:59 -0700)]
created a check_login_simple function

cherry-picked from rodney757, fixed few conflicts due to
out of order cherry-picking. Thanks to rodney757 for making
my idea even better.

11 years agomoved email_debug_message to gmg/tools/mail
Rodney Ewing [Fri, 24 May 2013 19:48:29 +0000 (12:48 -0700)]
moved email_debug_message to gmg/tools/mail

11 years agomoved send_verification_email to auth/tools
Rodney Ewing [Fri, 24 May 2013 19:26:45 +0000 (12:26 -0700)]
moved send_verification_email to auth/tools

11 years agoremoved unused import
Rodney Ewing [Thu, 23 May 2013 21:56:32 +0000 (14:56 -0700)]
removed unused import

11 years agoCommitting extracted and compiled translations
Christopher Allan Webber [Mon, 27 May 2013 18:55:06 +0000 (13:55 -0500)]
Committing extracted and compiled translations

11 years agomodified get_user function to take kwargs instead of username
Rodney Ewing [Mon, 27 May 2013 18:13:23 +0000 (11:13 -0700)]
modified get_user function to take kwargs instead of username

11 years agono need for user might be email kwarg in check_login_simple
Rodney Ewing [Mon, 27 May 2013 17:38:09 +0000 (10:38 -0700)]
no need for user might be email kwarg in check_login_simple

11 years agoMerge branch 'pre-auth' into basic_auth
Rodney Ewing [Mon, 27 May 2013 16:04:53 +0000 (09:04 -0700)]
Merge branch 'pre-auth' into basic_auth

Conflicts:
mediagoblin/auth/tools.py
mediagoblin/auth/views.py
mediagoblin/plugins/basic_auth/tools.py

11 years agomoved fp_verification_email to auth/tools
Rodney Ewing [Mon, 27 May 2013 15:57:56 +0000 (08:57 -0700)]
moved fp_verification_email to auth/tools

11 years agocreated a check_login_simple function
Rodney Ewing [Sat, 25 May 2013 14:59:03 +0000 (07:59 -0700)]
created a check_login_simple function

11 years agoadded a register_user function
Rodney Ewing [Fri, 24 May 2013 19:52:14 +0000 (12:52 -0700)]
added a register_user function

11 years agomoved email_debug_message to gmg/tools/mail
Rodney Ewing [Fri, 24 May 2013 19:48:29 +0000 (12:48 -0700)]
moved email_debug_message to gmg/tools/mail

11 years agomoved send_verification_email to auth/tools
Rodney Ewing [Fri, 24 May 2013 19:26:45 +0000 (12:26 -0700)]
moved send_verification_email to auth/tools

11 years agoremoved unused import
Rodney Ewing [Thu, 23 May 2013 21:56:32 +0000 (14:56 -0700)]
removed unused import

11 years agochanged User model pw_hash field to nullable and added migrations
Rodney Ewing [Thu, 23 May 2013 21:33:56 +0000 (14:33 -0700)]
changed User model pw_hash field to nullable and added migrations

11 years agono need for check_login with the new check_login_simple function
Rodney Ewing [Mon, 27 May 2013 15:54:25 +0000 (08:54 -0700)]
no need for check_login with the new check_login_simple function

11 years agorenamed lib to tools
Rodney Ewing [Mon, 27 May 2013 15:43:12 +0000 (08:43 -0700)]
renamed lib to tools

11 years agocleanup after merge
Rodney Ewing [Mon, 27 May 2013 15:39:34 +0000 (08:39 -0700)]
cleanup after merge

11 years agoMerge branch 'pre-auth' into basic_auth
Rodney Ewing [Mon, 27 May 2013 15:25:22 +0000 (08:25 -0700)]
Merge branch 'pre-auth' into basic_auth

Conflicts:
mediagoblin/auth/tools.py
mediagoblin/auth/views.py
mediagoblin/db/migrations.py
mediagoblin/plugins/basic_auth/lib.py
mediagoblin/plugins/httpapiauth/__init__.py
mediagoblin/plugins/piwigo/views.py

11 years agoExtract footer into bits/base_footer.html.
Elrond [Sun, 26 May 2013 11:29:02 +0000 (13:29 +0200)]
Extract footer into bits/base_footer.html.

11 years agocreated a check_login_simple function
Rodney Ewing [Sat, 25 May 2013 14:59:03 +0000 (07:59 -0700)]
created a check_login_simple function

11 years agoadded a register_user function
Rodney Ewing [Fri, 24 May 2013 19:52:14 +0000 (12:52 -0700)]
added a register_user function

11 years agomoved email_debug_message to gmg/tools/mail
Rodney Ewing [Fri, 24 May 2013 19:48:29 +0000 (12:48 -0700)]
moved email_debug_message to gmg/tools/mail

11 years agomoved send_verification_email to auth/tools
Rodney Ewing [Fri, 24 May 2013 19:26:45 +0000 (12:26 -0700)]
moved send_verification_email to auth/tools

11 years agoremoved unused import
Rodney Ewing [Thu, 23 May 2013 21:56:32 +0000 (14:56 -0700)]
removed unused import

11 years agochanged User model pw_hash field to nullable and added migrations
Rodney Ewing [Thu, 23 May 2013 21:33:56 +0000 (14:33 -0700)]
changed User model pw_hash field to nullable and added migrations

11 years agomoving forgot_password views back to gmg/auth and cleanup
Rodney Ewing [Sat, 25 May 2013 01:09:57 +0000 (18:09 -0700)]
moving forgot_password views back to gmg/auth and cleanup

11 years agofixed failing tests after rebase
Rodney Ewing [Thu, 23 May 2013 20:55:11 +0000 (13:55 -0700)]
fixed failing tests after rebase

11 years agoadded gen_password_hash and check_password functions to auth/__init__
Rodney Ewing [Thu, 23 May 2013 20:28:03 +0000 (13:28 -0700)]
added gen_password_hash and check_password functions to auth/__init__

11 years agoadded focus to form input
Rodney Ewing [Thu, 23 May 2013 20:22:13 +0000 (13:22 -0700)]
added focus to form input

Conflicts:
mediagoblin/auth/views.py
mediagoblin/plugins/openid/views.py

11 years agomodified basic_auth.check_login to check that the user has a pw_hash first
Rodney Ewing [Thu, 23 May 2013 20:20:13 +0000 (13:20 -0700)]
modified basic_auth.check_login to check that the user has a pw_hash first

11 years agochanged occurances of form.data['whatever'] to form.whatever.data
Rodney Ewing [Thu, 23 May 2013 20:18:47 +0000 (13:18 -0700)]
changed occurances of form.data['whatever'] to form.whatever.data

Conflicts:
mediagoblin/plugins/basic_auth/__init__.py
mediagoblin/plugins/openid/__init__.py

11 years agocheck if password field present in basic_auth create_user
Rodney Ewing [Tue, 21 May 2013 18:28:56 +0000 (11:28 -0700)]
check if password field present in basic_auth create_user

11 years agoadded a register_user function to be able to use in a plugin's register view, and...
Rodney Ewing [Mon, 20 May 2013 18:48:40 +0000 (11:48 -0700)]
added a register_user function to be able to use in a plugin's register view, and modified auth/views.register to redirect to openid/register if appropriate.

11 years agoModified basic_auth plugin to work with modified auth plugin hooks. Added context...
Rodney Ewing [Mon, 20 May 2013 15:45:04 +0000 (08:45 -0700)]
Modified basic_auth plugin to work with modified auth plugin hooks. Added context variables. Removed basic_auth/tools which was previously renamed to basic_auth/lib.

11 years agomodified auth/__init__ hooks to work better with multiple plugins. Removed auth/lib...
Rodney Ewing [Mon, 20 May 2013 15:10:19 +0000 (08:10 -0700)]
modified auth/__init__ hooks to work better with multiple plugins. Removed auth/lib.py. And added a basic_extra_verification function that all plugins will use.

11 years agoremoved check_login from db mixin
Rodney Ewing [Mon, 20 May 2013 14:45:17 +0000 (07:45 -0700)]
removed check_login from db mixin

11 years agoadded Copyright header to basic_auth/forms.py
Rodney Ewing [Fri, 17 May 2013 20:06:46 +0000 (13:06 -0700)]
added Copyright header to basic_auth/forms.py

11 years agomoved fake_login_attempt to plugins
Rodney Ewing [Fri, 17 May 2013 18:03:41 +0000 (11:03 -0700)]
moved fake_login_attempt to plugins

11 years agolog a previously logged in user when switched to no_auth mode
Rodney Ewing [Fri, 17 May 2013 17:50:46 +0000 (10:50 -0700)]
log a previously logged in user when switched to no_auth mode

11 years agomade basic_auth a default plugin
Rodney Ewing [Fri, 17 May 2013 17:28:43 +0000 (10:28 -0700)]
made basic_auth a default plugin

11 years agoadded tests for no_auth feature
Rodney Ewing [Fri, 17 May 2013 17:20:46 +0000 (10:20 -0700)]
added tests for no_auth feature

11 years agochanged from sys.exit() to raise AuthError for handling no_auth=false in config and...
Rodney Ewing [Fri, 17 May 2013 14:51:08 +0000 (07:51 -0700)]
changed from sys.exit() to raise AuthError for handling no_auth=false in config and no auth plugin present

11 years agoexisting test all passing now
Rodney Ewing [Fri, 17 May 2013 02:01:45 +0000 (19:01 -0700)]
existing test all passing now

11 years agomodified test .ini files and changed tests to use basic_auth bcrypt
Rodney Ewing [Wed, 15 May 2013 22:56:05 +0000 (15:56 -0700)]
modified test .ini files and changed tests to use basic_auth bcrypt

11 years agorenamed hook as to no conflict with existing hook names
Rodney Ewing [Wed, 15 May 2013 20:24:43 +0000 (13:24 -0700)]
renamed hook as to no conflict with existing hook names

11 years agorenamed basic_auth/tools to basic_auth/lib
Rodney Ewing [Wed, 15 May 2013 19:44:00 +0000 (12:44 -0700)]
renamed basic_auth/tools to basic_auth/lib

11 years agomodified check_login function to return None instead of False to be able to have...
Rodney Ewing [Wed, 15 May 2013 19:08:23 +0000 (12:08 -0700)]
modified check_login function to return None instead of False to be able to have multiple plugins check_login

11 years agomoved bcrypt_gen_password_hash to basic_auth/tools and added gen_password_hash functi...
Rodney Ewing [Wed, 15 May 2013 00:38:18 +0000 (17:38 -0700)]
moved bcrypt_gen_password_hash to basic_auth/tools and added gen_password_hash function to auth/__init__

11 years agomoved bcrypt_check_password to basic_auth/tools from auth/lib
Rodney Ewing [Wed, 15 May 2013 00:14:48 +0000 (17:14 -0700)]
moved bcrypt_check_password to basic_auth/tools from auth/lib

11 years agoadd a check for authentication plugin on startup and respond according to no_auth...
Rodney Ewing [Tue, 14 May 2013 23:14:19 +0000 (16:14 -0700)]
add a check for authentication plugin on startup and respond according to no_auth config option. allows instance to be run w/o authentication

11 years agochanged User model pw_hash field to nullable and added migrations
Rodney Ewing [Mon, 13 May 2013 22:49:50 +0000 (15:49 -0700)]
changed User model pw_hash field to nullable and added migrations

11 years agomoved normalize_user_or_email_field to auth/tools.py from auth/forms.py
Rodney Ewing [Mon, 13 May 2013 22:48:56 +0000 (15:48 -0700)]
moved normalize_user_or_email_field to auth/tools.py from auth/forms.py

11 years agomoved forgot pw views to basic_auth plugin
Rodney Ewing [Tue, 7 May 2013 15:36:04 +0000 (08:36 -0700)]
moved forgot pw views to basic_auth plugin

11 years agoadded login.html template hook and basic_auth login template
Rodney Ewing [Fri, 3 May 2013 20:48:48 +0000 (13:48 -0700)]
added login.html template hook and basic_auth login template

11 years agoreset mediagoblin.ini
Rodney Ewing [Fri, 3 May 2013 20:28:03 +0000 (13:28 -0700)]
reset mediagoblin.ini

11 years agobasic_auth v0 plugin working
Rodney Ewing [Fri, 3 May 2013 15:50:30 +0000 (08:50 -0700)]
basic_auth v0 plugin working

11 years agoNo more of this find_packages nonsense.
Christopher Allan Webber [Fri, 24 May 2013 23:49:06 +0000 (18:49 -0500)]
No more of this find_packages nonsense.

Explicitly declare mediagoblin as the only package.  find_packages has
caused messes in the past :)

This commit sponsored by Pedro Ângelo.  Thanks!

11 years agoImproved docs
Joar Wandborg [Fri, 24 May 2013 21:07:09 +0000 (23:07 +0200)]
Improved docs

- Fixed an outdated URL
- Rewrote "Separate Celery" section
- Changed literal blocks to bash code-blocks
- Changed wording when referring to the MediaGoblin WSGI application

11 years agomoved normalize_user_or_email_field to auth/tools.py from auth/forms.py
Rodney Ewing [Thu, 23 May 2013 21:29:19 +0000 (14:29 -0700)]
moved normalize_user_or_email_field to auth/tools.py from auth/forms.py

11 years agoMoving statcdirect automodule doc reference to autoclass per Elrond's suggestion.
Christopher Allan Webber [Thu, 23 May 2013 20:56:07 +0000 (15:56 -0500)]
Moving statcdirect automodule doc reference to autoclass per Elrond's suggestion.

Cleaner!

11 years agoCleaned up EXIF view
Joar Wandborg [Thu, 23 May 2013 20:21:02 +0000 (22:21 +0200)]
Cleaned up EXIF view

The last update made the assumption that EXIF metadata is in some way
consistent between camera models, images, manufacturers. This update
takes into account that nothing is certain whenever EXIF is involved.

11 years agoDocumentation changes to reflect new plugin assetlink stuff
Christopher Allan Webber [Thu, 23 May 2013 18:43:04 +0000 (13:43 -0500)]
Documentation changes to reflect new plugin assetlink stuff

 - updated old theme assetlink section to reflect new location of
   ./bin/gmg assetlink and removed comment about the plugin command
   being temporary.
 - Added a new section to the standard config file on where to put the
   plugin_static section
 - Added release notes about said section

This commit sponsored by Thomas Webber.  Thanks, Dad!

11 years agoFull unit test for the plugin assetlink command.
Christopher Allan Webber [Thu, 23 May 2013 18:14:01 +0000 (13:14 -0500)]
Full unit test for the plugin assetlink command.

Tests:
 - if the link doesn't exist yet
 - if the link already exists
 - if it is a symlink to something else
 - if it exists but is not a symlink

This commit sponsored by Lon Koenig.  Thank you!

11 years agoCleaning a bit: os.path.sep.join -> os.path.join
Christopher Allan Webber [Thu, 23 May 2013 18:12:20 +0000 (13:12 -0500)]
Cleaning a bit: os.path.sep.join -> os.path.join

11 years agodocstring update: link theme... and plugins!
Christopher Allan Webber [Thu, 23 May 2013 15:55:09 +0000 (10:55 -0500)]
docstring update: link theme... and plugins!

11 years agoGeneralize "gmg theme assetlink" -> "gmg assetlink" and cover both theme and plugins
Christopher Allan Webber [Thu, 23 May 2013 14:52:57 +0000 (09:52 -0500)]
Generalize "gmg theme assetlink" -> "gmg assetlink" and cover both theme and plugins

We've moved the module... probably I'll re-add theme just to give a
warning that this is deprecated.

This commit sponsored by Kevin Williams.  Thank you!

11 years agotest_plugin_staticdirect now works and passes.
Christopher Allan Webber [Wed, 22 May 2013 20:55:21 +0000 (15:55 -0500)]
test_plugin_staticdirect now works and passes.

This commit sponsored by Samuel Vale.  Thank you!

11 years agoSimple "staticstuff" plugin for writing unit tests on plugin static asset linking.
Christopher Allan Webber [Wed, 22 May 2013 19:20:44 +0000 (14:20 -0500)]
Simple "staticstuff" plugin for writing unit tests on plugin static asset linking.

It doesn't do much... it just has a static directory with a "bunnify"
CSS file and has a unit test that returns a json encoded set of a
staticdirect with both this plugin enabled and also
with (theoretically) a file distributed with MediaGoblin (it isn't
really, but in our case that doesn't matter.)

Also set up the static_setup hook / PluginStatic object for this
plugin; testing that with `./bin/gmg theme assetlink` seemed to work.
(And argh, need to update that command name, I know.)

This commit sponsored by Bradley Kuhn.  Thanks bkuhn!

11 years agoVarious fixes to plugin assetlinking command.
Christopher Allan Webber [Wed, 22 May 2013 19:07:41 +0000 (14:07 -0500)]
Various fixes to plugin assetlinking command.

Actually trying to run the command helps figure out what needs to be
fixed :)

This commit sponsored by Justin Nichol.  Thank you!

11 years agoMoving test_user_dev->user_dev in plugin app configs & adding plugin static serving
Christopher Allan Webber [Wed, 22 May 2013 17:23:06 +0000 (12:23 -0500)]
Moving test_user_dev->user_dev in plugin app configs & adding plugin static serving

The test_user_dev (as opposed to user_dev) was a legacy before we had
each application running in its own directory (as they now do in
pytest).  Move that name to just user_dev... this is more consistent
with the rest of our naming and will make writing these config files
easier.  (If we want to test that changing these still works, that
should be a separate unit test with special config files.)

Additionally, add plugin static serving to the common test paste
config file.

This commit sponsored by Juan Jose Marin Martinez.  Thank you!

11 years agoDocument assetlink and staticdirect usage for plugins.
Christopher Allan Webber [Wed, 22 May 2013 16:51:46 +0000 (11:51 -0500)]
Document assetlink and staticdirect usage for plugins.

Still a bit to clean up around what the command to be run actually is,
since that will likely change.

This commit sponsored by David Decker.  Thank you!

11 years agoOh right, actually mount /plugin_static/ :)
Christopher Allan Webber [Wed, 22 May 2013 15:06:24 +0000 (10:06 -0500)]
Oh right, actually mount /plugin_static/ :)

11 years agoWork towards getting plugin static linking/serving to work
Christopher Allan Webber [Tue, 21 May 2013 21:07:18 +0000 (16:07 -0500)]
Work towards getting plugin static linking/serving to work

 - add link_plugin_assets.  For now, incorrectly running from
   ./bin/gmg theme assetlink... uh, will fix ;)
 - Update paste and config_spec.ini configs to handle the locations
   and serving of the plugins' static resources

This commit sponsored by Marko Dimjašević.  Thank you!

11 years agoStart of ability to have plugins provide static resources!
Christopher Allan Webber [Thu, 16 May 2013 15:38:45 +0000 (10:38 -0500)]
Start of ability to have plugins provide static resources!

Note I have not tested any of this yet ;)  But we're already on our way:
 - We've got docs
 - The hook is there

Lots to do still though.  But, progress! :)

This commit sponsored by Laura Arjona Reina.  Thanks larjona!