Program relies heavily on session variables. To decrease database accesses, information which does not change during a session is stored once. Thus, changes to the underlying structure require a logout (to destroy) and login (to reinitialize).
The first screen seen by a user is the login screen, which captures the username and password. This is processed by the Auth class and, on success, username, user id and ACL are stored in the session variable. Upon successful login, the following information is stored in session