Refactored for drier code and encapsulated ugliness.
Refactored for drier code and encapsulated ugliness.

* External dependencies for finding user encapsulated in #get_user
* #permit now calls #permit? to handle options in just one place.
* #has_permission removed as it no longer added any value.

cch1/authorize,cch1/authorize