The page class has a variable called current_user which is an object of (user) which extends visitor which extends data_access. Visitor has a variable called authorizer which is an object of (defauth) which extends authorizer.

() = developer designed and the name is in the configuration file or passed to page.

Page
Has variable current_user which is an instance of (user) and passes to the constructor the routine, level, and parameters for the authorization.

(user) extends visitor
Has authorize, deauthorize, and meets_credentials functions. Authorize uses the authorizer and returns true or false based on the results. Deauthorize sets authorized to false. Meets_credentials will check a set of credentials against the values of the current user to see if they can perform some task without changing their login status.

Visitor (abstract) extends data_access
Has variable authorizer which is an instance of (defauth).

data_access (abstract)

(defauth) extends authorizer and is an auth routine
Has a function check_auth which will check if the user is authorized.

authorizer (abstract)
Has a reference to the current user. Contains some heavily modified PEAR Auth code. May be rewritten completely soon when implementing LDAP control.

I use webfaction to host a lot of my django projects. It has an easy setup that will get you developing quickly and a great community of talented programmers. There is also a quick setup for rails, wordpress, and a lot more.

Related posts:

  1. More CyTE Improvements  In addition to the changes listed at http://dev.cyproject.net/ , I will be modifying the OpenID authorization to be more usable....
  2. CyTE g9 Released  CyTE g9 is now available for download. See http://cyte.googlecode.com for all versions. Miscellaneous Changes Added the include_files function to the...
  3. CyTE g7 to CyTE g8 Change Log  General Changes Error reporting is no longer set to E_ALL by default Added functions js_script and js_msg to util.php Auth...