User:Pfrields/Drupal notes

AuthFAS

 * hook_form_alter on $form_id == 'user_login' or 'user_login_block' to catch logins
 * Then set up our own functions to authenticate
 * need a settings table that contains mappings FASGroup <=> DrupalGroup
 * loop through memberships to determine groups for Drupal
 * If one exists, turn its membership on for user (or check for !member and then add)
 * If not, turn its membership off for user (or check for member and then remove)
 * Need a SQL table {authfas}
 * Contains a mapping of Drupal group ID (rid) => FAS group name
 * Admin menu should include rows from SQL table

External authentication
From http://www.darrenmothersele.com/content/using-external-data-source-drupal-user-authentication-and-login

The normal login process will call your custom authentication when the built in login process fails.

The process is as follows:
 * 1) user submits login information
 * 2) drupal checks if user is blocked, if so message is displayed and login fails
 * 3) drupal then attempts to load the user locally
 * 4) * if this is successful then the user object is loaded and drupal fires the load and login hooks. the user is then directed towards the 'user' page.
 * 5) * if user is not found locally then drupal will call external authentication

External authentication involves firing the auth hook, and on success either validating an existing user or creating a new user object. When a user is created this way a record is stored in the authmap table that confirms which module validates this user login.