Changed the way paths in settings are handled and also added requirements.txt.
Added a comment specifying what ought to be in the secrets file.
Refactored local imports to explicit relative imports.
Adding 3-clause BSD license.
Added sentry/raven support and introduced some of my own auth middleware in preparation for a future commit.
Updated requirements.
Added a blank secrets file to make construction of future secrets files easier.
Decided on behaviour for sequenced querysets for the time being. Until further notice, they'll simply fail informatively when presented with joins in the new subquery.
Added proper authorization policies and support for anonymous users. Users are now always identified by BareUser IDs in sessions. Anonymous users are permitted anything that doesn't have a specified permission. Also reinterpreted the way has_perm works in a way that I think is more compatible with default Django auth.
Moved Sentry's DSNs to appropriate settings files.
Fixed a minor bug in automatic permissions population and added an admin honeypot.
Changed my mind on side-effects in from_codename and fixed a bug with the content-type query.
Added logic that checks for both null and specific object_id values when has_perm or has_perms is given an object. The intent here is to implement general permissions (with object_id as null) alongside object-level permissions (where object_id is some non-null value). Also refactored a bit.