# Package =TWiki::UI::Register User registration handling.
## [[StaticMethod]] **register\_cgi** `($session)` `register` command handler. This method is designed to be invoked via the `TWiki::UI::run` method. ## [[StaticMethod]] **passwd\_cgi** `($session)` `passwd` command handler. This method is designed to be invoked via the `TWiki::UI::run` method. ## [[StaticMethod]] **bulkRegister** `($session)` Called by [[ManageCgiScript]]::bulkRegister (requires authentication) with topic = the page with the entries on it. 1. Makes sure you are an admin user ;) 2. Calls TWiki::Data::DelimitedFile (delimiter => '|', content =>textReadFromTopic) 3. ensures requiredFieldsPresent() 4. starts a log file 5. calls registerSingleBulkUser() for each row 6. writes output to log file, sets [[TWiki.TOPICPARENT|TWiki/TOPICPARENT]] back to page with entries on it. 7. 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 ## [[StaticMethod]] **register** `($session)` This is called through: [[TWikiRegistration]] -> [[RegisterCgiScript]] -> here 1. gets rows and fields from the query 2. 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. 1. Checks required fields have values 2. get wikiName and userName from getUserByEitherLoginOrWikiName(username) 3. check passwords match each other, and that the password is correct, otherwise 'wrongpassword' 4. TWiki::User::updateUserPassword 5. 'oopschangepasswd' The [[NoPasswdUser]] case is not handled. An admin user can change other user's passwords. ## [[StaticMethod]] \*verifyEmailAddress `($session,$tempUserDir)` This is called: on receipt of the activation password -> [[RegisterCgiScript]] -> here 1. calls \_reloadUserContext(activation password) 2. throws oops if appropriate 3. calls emailRegistrationConfirmations 4. still calls 'oopssendmailerr' if a problem, but this is not done uniformly ## [[StaticMethod]] **finish** `` Presently this is called in [[RegisterCgiScript]] directly after a call to verify. The separation is intended for the [[RegistrationApprovals]] functionality 1. calls \_reloadUserContext (throws oops if appropriate) 2. calls newUserFromTemplate() 3. if using the htpasswdFormatFamily, calls \_addUserToPasswordSystem 4. calls the misnamed [[RegistrationHandler]] to set cookies 5. calls addUserToTWikiUsersTopic 6. writes the logEntry (if wanted :/) 7. redirects browser to 'oopsregthanks' reloads the context by code these two are separate in here to ease the implementation of administrator approval