Package TWiki::UI::Register 
User registration handling.
register command handler.
This method is designed to be
invoked via the 
TWiki::UI::run method.
passwd command handler.
This method is designed to be
invoked via the 
TWiki::UI::run method.
  Called by 
ManageCgiScript? ::bulkRegister (requires authentication) with topic = the page with the entries on it. 
-  Makes sure you are an admin user 
  -  Calls TWiki::Data::DelimitedFile (delimiter => '|', content =>textReadFromTopic)
  -  ensures requiredFieldsPresent()
  -  starts a log file
  -  calls registerSingleBulkUser() for each row 
  -  writes output to log file, sets TWiki.TOPICPARENT?  back to page with entries on it.
  -  redirects to log file
 
 
 StaticMethod registerAndNext ($session,$tempUserDir) 
This is called when action = register or action = ""
It calls register and either Verify or Finish.
Hopefully we will get workflow integrated and rewrite this to be table driven
This is called through: 
TWikiRegistration -> 
RegisterCgiScript?  -> here
 
-  gets rows and fields from the query
  -  calls _validateRegistration() to ensure required fields correct, else OopsException?  
 
 
 StaticMethod resetPassword ($session) 
Generates a password. Mails it to them and asks them to change it. Entry
point intended to be called from TWiki::UI::run
 StaticMethod changePassword ($session) 
Change the user's password and/or email. Details of the user and password
are passed in CGI parameters.
 
-  Checks required fields have values
  -  get wikiName and userName from getUserByEitherLoginOrWikiName(username)
  -  check passwords match each other, and that the password is correct, otherwise 'wrongpassword'
  -  TWiki::User::updateUserPassword
  -  'oopschangepasswd'
 
 
The 
NoPasswdUser?  case is not handled
 StaticMethod verifyEmailAddress ($session,$tempUserDir) 
This is called: on receipt of the activation password -> 
RegisterCgiScript?  -> here 
-  calls _reloadUserContext(activation password)
  -  throws oops if appropriate
  -  calls emailRegistrationConfirmations
  -  still calls 'oopssendmailerr' if a problem, but this is not done uniformly
 
 
Presently this is called in 
RegisterCgiScript?  directly after a call to verify. The separation is intended for the 
RegistrationApprovals functionality 
-  calls _reloadUserContext (throws oops if appropriate)
  -  calls newUserFromTemplate()
  -  if using the htpasswdFormatFamily, calls _addUserToPasswordSystem
  -  calls the misnamed RegistrationHandler?  to set cookies
  -  calls addUserToTWikiUsersTopic
  -  writes the logEntry (if wanted :/)
  -  redirects browser to 'oopsregthanks'
 
 
reloads the context by code
these two are separate in here to ease the implementation of administrator approval 
 generate user entry
 If a password exists (either in Data{PasswordA} or data{CryptPassword}, use it.
 Otherwise generate a random one, and store it back in the user record.