I like the general approach in this decorator. However, its name might suggest that it's more general-purpose than it actually is. An example of a potential future danger: if `require_authorized_login` is used to decorate a distributed server view that returns privileged admin-only information but doesn't require a "user" GET parameter, then this will automatically grant access for a non-admin (since `get_user_from_request` falls back to `request.session.get("facility_user")`, which is what we're comparing to here.

Immediate suggestion: add docstring to `require_authorized_login` saying something like "Warning: for distributed views, only use this decorator on views that require a `user` GET parameter, and that a user should be able to run for his/her own user."

Longer term: I'm going to add a TODO item for myself to plan some systematization of the project-wide authorization code, as I feel it's getting a bit hard to grok, which is dangerous. This will also include rigorous tests. Once I have a bit of a plan for this, I'll turn it into an issue.