Upload users: Difference between revisions
(→After preview: delted this section for 2.1) |
|||
Line 84: | Line 84: | ||
You may be able to set default user field values, if the fields were not included in the uploaded file on this page. | You may be able to set default user field values, if the fields were not included in the uploaded file on this page. | ||
==After results == | ==After results == |
Revision as of 12:46, 27 July 2011
Please refer to these notes before editing this page.
Location: Site administration > Users > Accounts > Upload users The upload users link allows the site administrator to load multiple user accounts from a text file as authenticated users on the Moodle site.
There are many robust options for uploading information (fields associated with a user) with this method: from enrolling users in multiple courses with course specific roles to updating user information in the User profile to deleting users from the site.
- Tip: It is usually not necessary to upload users in bulk with Upload users. To keep maintenance work down you should first explore forms of authentication that do not require manual maintenance, such as connecting to existing external databases or letting the users create their own accounts. See Manage authentication for more information.
Upload user process
Here is an outline of the process:
- Create file for uploading
- Go to Settings > Site administration > Users > Accounts > Upload users
- Add file to upload
- Upload users preview - check settings and default user profile settings
- Upload users preview - click "Upload users"
- Upload users results - shows list of users, exceptions made in upload and summary of number of users
- Upload users results - click "Continue"
- Returns to Upload users screen
Upload users file format
- Each line contains fields separated by commas (or other delimiters) without quotes (") and no trailing delimiter
- The first line is special, and contains fieldnames defining the format for the rest of the file.
Here is an example of a simple valid upload file:
username, password, firstname, lastname, email, course1, group1
jonest, verysecret, Tom, Jones, jonest@someplace.edu, math102, Section 1
reznort, somesecret, Trent, Reznor, reznort@someplace.edu, math102, Section 3
Fields that can be included
- Required fields:
username, firstname, lastname, email
- Validity checks are performed for:
username
can only contain alphabetical lowercase letters , numbers, hypen '-', underscore '_', period '.', or at-sign '@'email
is in the form: name@example.com .
- Password field: "password" field is optional if "Create password if needed" setting is chosen (default).
- If included, values should meet the requirements for the site's Password policy. To force password change for a particular user, set the password field to
changeme
. - If omitted, a password will be generated for each user (during the next Cron job) and welcome e-mails sent out (not working in v2.0.2?).
- If included, values should meet the requirements for the site's Password policy. To force password change for a particular user, set the password field to
- Optional fields: To provide values other than the default include one or more of these
institution, department, city, country, lang, auth, ajax, timezone, idnumber, icq, phone1, phone2, address, url, description, mailformat, maildisplay, emailstop, htmleditor, autosubscribe
- Custom profile field names: (Optional). xxxxx is the real custom user profile field name (i.e. the unique shortname)
profile_field_xxxxx
- Create the custom fields BEFORE importing. Use the standard header. The "shortname" for your custom field is xxxxx (NB: as at v2.0.2, the shortname must be all lowercase, otherwise won't be recognised). The first record must include "profile_field_xxxxx".
- Example: To create a custom field "genre", you must write a shortname "genre" in the new field, and write "profile_field_genre" in the header of the .csv file.
- Special fields: Used for changing of usernames or deleting of users
oldusername
,deleted
- Enrolment fields: (Optional):
course1, type1, role1, group1, enrolperiod1, course2, type2, role2, group2, enrolperiod2
etc.
course
is the "shortname" if present the user will be enrolled in those courses.type
refers to the role to be used for associated course enrolment. Value 1 is default course role, 2 is legacy Teacher role and 3 is legacy Non-editing Teacher.- You can use role field instead to specify roles directly - use either role short name or id (numeric names of roles are not supported).
- Users may be also assigned to groups in course (group1 in course1, group2 in course2, etc.).
- A group is identified by name or id (numeric group names are not supported).
- From Moodle 2.0, you can set the enrolment duration, in days, for each course (
enrolperiod1
forcourse1
,enrolperiod2
forcourse2
, etc.).
Commas within a field must be encoded as , - the script will decode these back to commas.
For Boolean fields, use 0
for false and 1
for true.
To prevent users from receiving a large number of emails from courses or forced subscription forums use the maildigest. The options for this field are 0 = No digest, 1 = Complete digest and 2 = Digest with just subjects.
Updating existing accounts
There are settings for the kind of Upload user function you want to perform on the "Upload users preview" page.
By default Moodle adds new user accounts and skips existing users lines where the username
matches an existing account. Set "Upload Type" to Add new and update existing us, and existing user account will be updated.
- Add all, append number to usernames if needed
- Add new and update existing users
- Updatee existing users only
There are also fields settings to force password change, allow renames, allow deletes, prevent email address duplicates, standardise usernames and select for bulk operations(new users. updated users, all users).
Warning: errors updating existing accounts can affect your users badly. Be careful when using the options to update.
You may be able to set default user field values, if the fields were not included in the uploaded file on this page.
After results
Users which were not added, will NOT be auto-enrolled in courses
Open another moodle browser and
- Site administration
- Courses
- Add/edit courses; select the category, and the course
- Courses
- Course administration
- Users
- Enrolled Users
- Enrol users and select the users flagged from other window
- Enrolled Users
- Users
Templates
The default values are processed as templates in which the following codes are allowed:
- %l - will be replaced by the lastname
- %f - will be replaced by the firstname
- %u - will be replaced by the username
- %% - will be replaced by the %
Between the percent sign (%) and any code letter (l, f or u) the following modifiers are allowed:
- (-) minus sign - the information specified by the code letter will be converted to lowercase
- (+) plus sign - the information specified by the code letter will be converted to UPPERCASE
- (~) tilde sign - the information specified by the code letter will be converted to Title Case
- a decimal number - the information specified by the code letter will be truncated to that many characters
For example, if the firstname is John and the lastname is Doe, the following values will be obtained with the specified templates:
- %l%f = DoeJohn
- %l%1f = DoeJ
- %-l%+f = doeJOHN
- %-f_%-l = john_doe
- http://www.example.com/~%u/ = http://www.example.com/~jdoe/ (if the username is jdoe or %-1f%-l)
Template processing is done only on default values, and not on the values retrieved from the CSV file.
In order to create correct Moodle usernames, the username is always converted to lowercase. Moreover, if the "Allow extended characters in usernames" option in the Site policies page is off, characters different to letters, digits, dash (-) and dot (.) are removed. For example if the firstname is John Jr. and the lastname is Doe, the username %-f_%-l will produce john jr._doe when Allow extended characters in usernames is on, and johnjr.doe when off.
When the "New username duplicate handling" setting is set to Append counter, an auto-increment counter will be append to duplicate usernames produced by the template. For example, if the CSV file contains the users named John Doe, Jane Doe and Jenny Doe without explicit usernames, the default username is %-1f%-l and New username duplicate handling is set to Append counter, then the usernames produced will be jdoe, jdoe2 and jdoe3.
Deleting accounts
If the deleted
field is present, users with value 1 for it will be deleted. In this case, all the fields may be omitted, except for username
. After uploading the file, be sure to change the "Upload type" to "Update existing users only" and the "Allow deletes" option to "Yes".
Deleting and uploading accounts could be done with a single CSV file. For example, the following file will add the user Tom Jones and delete the user reznort:
username, firstname, lastname, deleted jonest, Tom, Jones, 0 reznort, , , 1
Encoding
In Moodle 1.8 the file must be UTF-8. In Moodle 1.9 onwards, the encoding may be selected from a large list, including ISO-8859-1.
Hints
Spreadsheet
If you use a spreadsheet program such as Excel to create your .csv file, check the resulting output in a text editor before you upload it. It is possible to get trailing commas on each line from an empty field if you have added and deleted columns of information prior to saving the final file. Also check the character encoding. A csv file is a simple text file (ASCII or Unicode) that can be used to upload user accounts.
Excel translates passwords that begin with - (minus) or + (plus) as zero. Even when saving as .csv and saying "Yes" to "Keep this format, and leave out any incompatible features." Check for this before uploading, as a zero halts the upload process.
If you use a formula in Excel to create fields (for example, the concatenate function to create a user name), then remember to copy the cells with the formula and use special paste with values checked to make them into an acceptable data for a csv file.
Country
The country should be written as a two letter code, in capitals. For example, use BE for Belgium or NL for the Netherlands. Using "be" or "nl" as a country code will result in a database error.
- Tip: If you are having trouble working out the two-letter code for a country, you can consult this Moodle source code file /moodle/lang/en_utf8/countries.php or click here for a 1.9 STABLE list.
ISO Website: [1]
See also
Moodle Docs:
Using Moodle forum discussions: