%META:TOPICINFO{author="ProjectContributor" date="1282571475" format="1.1" version="1"}%
%META:TOPICPARENT{name="ManagingUsers"}%
---+ Bulk Registration

Administrators can use this topic to register (i.e. create logins and user topics) for a group of people in one batch. 

Unlike normal registration the administrator is assumed to have correct e-mail addresses for the users, so *no verification is required.*
Note that the new users are not notified that they have an account. This is so you can prepare and verify the accounts before announcing them.
To announce them use the [[BulkResetPassword]] feature: this will assign a new random password and notify users. 

---++ Bulk Registration usage
Note: this is an administrator job - only admistrators can run this.

If you are administrator, you will take these actions:
   1 (First time use) Create new bulk registration topics (see [[#Settings][Settings]] below).
   1 In the REGISTERTOPIC topic: create a table of new users. An example table is provided below to copy.
   1 Return to this topic and press the button "Bulk Register" to create the new topics.
   1 Read %LOGTOPIC% to verify if all has gone well.
   1 When you are ready, use the [[BulkResetPassword]] page to assign passwords and notify the users of their new accounts.

Below are the details.

---++ Settings
   * Define where to pick up the table of users to register
      * Set REGISTERTOPIC = %USERSWEB%.UnprocessedRegistrations
   * Use this to define where to log the bulk registration process. It needs
     to be a topic name in this web.
      * Set LOGTOPIC = %REGISTERTOPIC%Log
   * Set this to 1 to make the bulk registration overwrite any existing user
     topics. By default, existing user topics are left alone.
      * Set OVERWRITEHOMETOPICS = 0

---++ The user table
This table is a template for user data that will be written to the new user topics. If you stick to these basic fields you can just use the first example below. If you want to write more data (like phone number or country) read the section [[#CustomizingUserData][Customizing user data]] as well.

---+++ Example format
The following should be inserted into your %REGISTERTOPIC% as a table. This is the most simple format:
<verbatim class="tml">
<noautolink>
%EDITTABLE{}%
| FirstName | LastName | Email | WikiName |
| Test | User | you@example.com | TestUser |
</noautolink>
</verbatim>

*Usage:*
   1 Copy this text to your clipboard
   1 Click through and paste this on %REGISTERTOPIC%. 
   1 Add and customize entries, save table. Note that the first row must not contain bolded entries, so don't apply any formatting.
   1 Return here

#CustomizingUserData
---+++ Customizing user data

You can write additional data to the new user topics. Do this by enhancing the user table with additional field names as table headers.

Any fields you define in this table will end up in the User's topic. If a form (such as %SYSTEMWEB%.UserForm) is attached to NewUserTemplate then the data will go in as META:FIELDS, meaning that you can use SEARCH formfield constructs to search. 

If you use the %SYSTEMWEB%.UserForm then ensure that it contains all the fields you define here. Otherwise they will disappear when the user edits their home topic!

---++++ Mandatory fields
   * !WikiName 
   * !FirstName
   * !LastName 

---++++ Optional fields
   * LoginName - if not set will register with WikiName

---++++ Customized table example
Make sure that the extra fields also appear on the %SYSTEMWEB%.UserForm.
<verbatim class="tml">
<noautolink>
%EDITTABLE{}%
| FirstName | LastName | Email | WikiName | CustomFieldThis | SomeOtherRandomField | WhateverYouLike |
| Test | User | you@example.com | TestUser | A | B | C |
</noautolink>
</verbatim>

---
%IF{
  "context passwords_modifyable"
  then=""
  else="<strong>%MAKETEXT{"Sorry, the password system is currently read only, please contact [_1]" args="%WIKIWEBMASTER%"}%</strong><br />"
}%
<!--
      * Set NOTMODIFYABLE = %IF{"context passwords_modifyable" then="" else="DISABLED"}%
%JQREQUIRE{"chili"}%
-->
<form name="bulkRegister" action="%SCRIPTURLPATH{"manage"}%/%REGISTERTOPIC%" method="post">
<input type="hidden" name="action" value="bulkRegister" />&nbsp;
<input %NOTMODIFYABLE% type="submit" class="foswikiSubmit" value="Bulk Register these people" />
<input type="hidden" name="LogTopic" value="%LOGTOPIC%" />
<input type="hidden" name="OverwriteHomeTopics" value="%OVERWRITEHOMETOPICS%" />
</form>

---++ <nop>%REGISTERTOPIC%

%INCLUDE{"%REGISTERTOPIC%" warn="off"}%


---++ <nop>%LOGTOPIC%

%INCLUDE{"%LOGTOPIC%" warn="off"}%

---
*Related Topics:* AdminToolsCategory
