Массовая загрузка пользователей через файл csv

Алексей Городков
11.06.24
С помощью импорта пользователей через csv файл можно создать новых пользователей в СЭО 3KL или отредактировать уже имеющихся пользователей. При этом импортировать можно различные поля профилей пользователей. . . . .

1. Импорт пользователей в СДО

Для импорта пользователей в систему нужно сформировать таблицу, где обязательно есть адреса электронной почты и логины участников, их фамилии (одним полем) и имена или имена-отчества (одним полем), город, страна (можно для всех поставить RU), можно добавить и некоторые другие данные, перечисленные в профайле. Пароли, если они отсутствуют, система создаст сама и вышлет на почту.

Первая строка таблицы должна содержать заголовки для каждой колонки с данными. Пример:

email, username, firstname, lastname, password, city, country, icq, phone1, url, description, course1
Важно! Четыре первые колонки обязательны для импорта и регистрации.

-Вернуться к содержанию-

1.1. Импорт пользователей с записью на курс

Колонка course1 позволяет задать короткое имя курса, на который эти пользователи будут автоматически подписаны. Результат (файл с таблицей) надо сохранить в формате CSV (текст с разделителем) и загрузить в СДО через меню: Администрирование -> Пользователи -> Учетные записи -> Загрузить пользователей.

Нужно обращать внимание на кодировку символов и разделитель: они должны совпадать с теми, которые будут выбираться при импорте файла. Система предложит предпросмотр данных.

Перед решением этой задачи рекомендуется сперва потренироваться на тестовых пользователях.

-Вернуться к содержанию-

2. Создание .csv файла

2.1. Что такое CSV файл

CSV — текстовый формат, предназначенный для представления табличных данных, его можно создавать и редактировать в любом текстовом редакторе, добавив в конце имени файла расширение .csv (например, FILE.csv).

-Вернуться к содержанию-

2.2. Поля для заполнения информации о пользователе

2.2.1. Обязательные поля

username - имя пользователя (должно быть уникально, может содержать только алфавитные строчные буквы, цифры,дефис '-', подчеркивание '_',точка '.', или знак '@')

firstname - настоящее имя пользователя

lastname - фамилия пользователя

email - адрес электронной почты (должно быть уникально и иметь вид: name@example.com)

*Для добавления новых пользователей необходимо указать все обязательные поля. Для обновления имеющихся пользователей достаточно поля username.

-Вернуться к содержанию-

2.2.2. Необязательные поля

institution - учреждение, к которому принадлежит пользователь (ВУЗ, колледж, название рабочей организации);

department - подразделение в учреждении, к которому принадлежит пользователь;

city - город;

country - страна (чтобы страна была корректно импортирована в соответствующее поле профиля пользователя в СЭО 3KL, необходимо указать ее в двухбуквенном формате ISO 3166);

lang - язык;

timezone - часовой пояс;

idnumber -используется для указания идентификатора пользователя во внешней системе

icq - номер icq;

phone1, phone2 - телефонный номер (1;2);

address - адрес (улица, дом, квартира);

url - ссылка на сайт пользователя (например, страница в VK/Facebook, личный сайт);

description - описание пользователя (например, личная характеристика или краткая биография);

autosubscribe - автоподписка.

-Вернуться к содержанию-

2.2.3. Поле password

password

Если выбрано автоматическое создание пароля для пользователей и не указано поле password, то при создании пользователя пароль будет сгенерирован автоматически и будет отправлено уведомление с паролем на почту пользователя (задание на отправку приветственного письма выполняется по определенному расписанию в планировщике заданий и приходит пользователям с некоторой задержкой).

-Вернуться к содержанию-

2.2.4. Пользовательские поля

profile_field_xxxxx

Пользовательские поля профиля: XXXXX - уникальное имя поля (краткое название кастомного поля, обычно пишется латиницей), указываемое после конструкции «profile_field_».

Cоздавать пользовательские поля необходимо перед импортом. Часть символов ХХХХХ должна быть в нижнем регистре, иначе не будет принято. Запись должна содержать «profile_field_xxxxx».

Пример:
1. Если создано пользовательское текстовое поле с названием  «Жанр» и кратким названием «genre», в файле в заголовке таблицы нужно указать короткое имя: «profile_field_genre».
2. Для пользовательских полей профиля, которые представляют собой меню, используется соответствующее значение.
3. Для пользовательских полей профиля типа дата используется стандарт ISO формате ГГГГ-мм-ДД, например, 2014-06-19. Данные в таком формате будут правильно локализованы в интерфейсе.

-Вернуться к содержанию-

2.2.5. Поля для зачисления на курс

Заголовки полей должны иметь числовой суффикс, например: type1, group1, enrolperiod1 и т.д.

course - краткое название курса;

type - задает роль для зачисления. Значения:
1 - роль студента (по умолчанию),
2 - задает роль преподавателя,
3 - задает роль ассистента;

role - используется для указания ролей напрямую, используя для роли короткое имя или ID (из базы данных);

group - используется для назначения пользователя в группу, используя имя или ID (названия числовых групп не поддерживаются);

enrolperiod - период времени, в течение которого будет активна запись на курс;

enrolstatus - позволяет блокировать пользователей курса, когда значение 1 или должно быть оставлено пустым для обучающихся.

-Вернуться к содержанию-

2.2.6. Поле глобальной группы

cohort1

*Должны использоваться внутренние идентификаторы глобальной группы или нечисловые идентификаторы существующих глобальных групп;
*Имена имеющихся глобальных групп использовать не рекомендуется, так как это повлечет за собой добавление новой глобальной группы с идентификатором в виде имени той глобальной группы, которая указывается.

-Вернуться к содержанию-

2.2.7. Поле роли системы

sysrole1,sysrole2 (и т.д. в зависимости от количества системных ролей, которые нужно присвоить пользователю); используются короткие имена ролей.

-Вернуться к содержанию-

2.2.8. Поля для удаления и блокировки пользователей

deleted - удаление пользователя из системы (значения 0 - не удалять или 1 - удалять)
Чтобы удалить пользователя, нужно указать значения полей username и deleted.

suspended - блокировка пользователя в системе (значения 0 - не блокировать или 1 - блокировать)
Чтобы заблокировать пользователя, нужно указать значения полей username и suspended.

Производить добавление и удаление/блокировку пользователей можно загрузкой одного csv файла. Для добавляемых пользователей заполняются все нужные поля, а для удаляемых или блокируемых пользователей заполняются только username и deleted или suspended соответственно.

При удалении нужно разрешить удаление пользователей.

-Вернуться к содержанию-

2.2.9. Поле метода аутентификации

Наименование поля: auth

Этот параметр определяет используемый метод аутентификации при входе пользователя в систему. Следует выбирать только включенные плагины аутентификации, в противном случае пользователь больше не сможет войти в систему.
Основные варианты содержимого:

  • Ручная регистрация: manual
  • Самостоятельная регистрация по электронной почте: email
  • Автоматическая подписка кураторов: enrolmentor
  • OTOAuth: otoauth
  • Синхронизация с Free Deans Office: dof
  • User key authentication: userkey
  • Сервер LDAP: ldap
  • Внешняя база данных: db
  • OAuth 2: oauth2
  • Мульти-LDAP: otmultildap

-Вернуться к содержанию-

2.3. Структура CSV файла

1. Необходимо задать обязательные поля для заполнения (по желанию можно добавить необязательные и пользовательские поля);
2. Затем в новой строке в той же последовательности, что и перечисленные поля, указать данные пользователя.
3. В следующей строке указать данные второго пользователя и т.д. (Рис. 2.3.1).

Рис. 2.3.1. Пример структуры csv файла.

Нужно обращать внимание на ограничение по длине данных, вводимых в поля (указано в символах):

login - 100
password - 255
firstname - 100
lastname - 100
email - 100
city - 120
country - 2
lang - 30
description - неограничено
url - 255
idnumber - 255
institution - 255
department - 255
phone1 - 20
phone2 - 20
address - 255
firstnamephonetic - 255
lastnamephonetic - 255
middlename - 255
alternatename - 255

В значениях полей не должно быть переносов строк.

Пример:
username,password,firstname,lastname,email,course1,group1,cohort1
jonest,verysecret,Tom,Jones,jonest@someplace.edu,math102,Section 1,year 3
reznort,somesecret,Trent,Reznor,reznort@someplace.edu,math102,Section 3,year 4

-Вернуться к содержанию-

3. Загрузка CSV файла

3.1. Интерфейс загрузки пользователей

Для загрузки CSV файла нужно открыть интерфейс загрузки пользователей, который находится по следующему пути: Блок Настройки -> Администрирование -> Пользователи -> Учетные записи -> Загрузить пользователей (Рис. 3.1.1).

Рис. 3.1.1. Страница «Загрузить пользователей».

-Вернуться к содержанию-

3.2. Загрузка файла с пользователями

3.2.1. В интерфейсе нужно
либо нажать на «Выберите файл...», затем перейти в  папку с файлом и два раза кликнуть на него (Рис. 3.2.1);

Рис. 3.2.1. Выбор файла csv.

3.2.2. либо перетащить файл из папки в поле загрузки (Рис. 3.2.2);

Рис. 3.2.2. Перетаскивание файла csv.

3.2.3. Разделитель нужно выбрать соответствующий разделителю в файле (Рис. 3.2.3);

Рис. 3.2.3. Выбор разделителя.
*если будет выбран несоответствующий разделитель, загрузка будет произведена некорректно.

3.2.4. Кодировку оставить по умолчанию UTF-8 или выбрать windows-1251, в зависимости  от кодировки, в которой создан файл (Рис. 3.2.4).

Рис. 3.2.4. Выбор кодировки.

-Вернуться к содержанию-

3.3. Настройки загрузки

3.3.1. Тип загрузки (поз. 1 Рис. 3.3.1):

Рис. 3.3.1. Выбор типа загрузки.

Добавить новых, пропустить имеющихся пользователей - опция добавляет пользователей в базу данных, но не затрагивает пользователей, уже имеющихся в базе данных;

Добавить всех, при необходимости добавлять номер к логину - добавляет всех пользователей из файла, и, если у них имеются повторяющиеся логины, то при загрузке к логину будет добавляться нумерованный суффикс (например: login, login1 или login_1);

Добавить всех, и обновить имеющихся пользователей - добавляет всех пользователей из файла и обновляет уже имеющихся пользователей, если изменения затрагивают данную группу пользователей;

Только обновить имеющихся пользователей - обновляет пользователей, уже имеющихся в базе данных, если в файле содержатся данные об этих пользователях.

3.3.2. Пароли новых пользователей (см. поз. 2 Рис. 3.3.1):

Необходимое поле в файле - если указано поле password в самом CSV файле, будет загружен пароль из файла;

Создавать пароль при необходимости и рассылать его по электронной почте - автоматически создает пароль для пользователя и отправляет его по адресу электронной почты пользователя.

3.3.3. Данные существующих пользователей (см. поз. 3 Рис. 3.3.1)

Это способ обновления данных уже имеющихся пользователей (если в типе загрузки выбран один из пунктов, позволяющий обновлять имеющихся пользователей);

3.3.4. Пароли существующих пользователей (см. поз. 4 Рис. 3.3.1)

Опцию можно установить в значение «Изменять», если в пункте «Данные существующих пользователей» не указано значение «Не изменять»;

-Вернуться к содержанию-

4. Примеры использования

4.1. Примеры полей для файлов CSV (могут быть использованы как шаблоны)

1. Простое добавление пользователя: добавление пользователя.csv

2. Добавление пользователя с глобальной ролью: добавление пользователя с глобальной ролью.csv

3. Добавление пользователя в глобальную группу: глобальные группы.csv

4. Добавление пользователя в курс с указанием локальной группы и локальной роли: указание курса, локальной группы, локальной роли.csv

5. Смена пароля у уже умеющегося пользователя : изменение пароля.csv

* При смене пароля через .csv необходимо выставить соответствующие настройки загрузки (Рис. 4.1.1):

Рис. 4.1.1. Настройки загрузки при смене пароля через файл csv.

-Вернуться к содержанию-

4.2. Добавление пользователей с записью на несколько курсов с указанием ролей

Для того чтобы добавить пользователей с записью на несколько курсов (с указанием ролей) нужно создать файл с информацией о пользователях и загрузить его в систему.

-Вернуться к содержанию-

4.2.1. Создание текстового файла с расширением .CSV

Добавить в начало файла строчку:

username,password,firstname,lastname,email,course1,type1,role1,course2,type2,role2

на следующей строчке следует указать значения параметров:

username - логин пользователя,
password - пароль,
firstname - Имя,
lastname - Фамилия,
email - почта,
course1,course2 - название курса (краткое название курса),
type1,type2 - тип роли при регистрации (параметр для студента = 1, для преподавателя = 2)
role1,role2 - роль в курсе (student = студент, teacher = Ассистент (без права редактирования), editingteacher = Учитель, coursecreator = Создатель курса, manager = Управляющий)

Например, пользователя нужно записать на два курса «Тестовый» с ролью учителя и «Рабочий» с ролью студента.

Содержимое файла:

username,password,firstname,lastname,email,course1,type1,role1,course2,type2,role2
ivanov@localhost.ru,somesecret,Иван,Иванов,ivanov@localhost.ru,Тестовый,2,editingteacher,Рабочий,1,student

Ссылка на файл: user.csv

-Вернуться к содержанию-

4.2.2. Загрузка пользователей в СЭО 3KL

Перейти во вкладку: Администрирование -> Пользователи -> Учетные записи -> Загрузить пользователей (Рис. 4.2.2.а).

Рис. 4.2.2.а. Загрузка пользователей в СЭО 3KL.

Следует выбрать файл с пользователями, указать разделитель между словами (в примере используется запятая), указать кодировку именно ту, в которой у вас сохранен файл (например,Windows1251) и кликнуть на кнопку «Загрузить пользователей» (Рис. 4.2.2.б).

Рис. 4.2.2.б. Предварительный просмотр загружаемых пользователей.

1) Тип загрузки - здесь выбирается тип загрузки из доступных:

  • Добавить новых, пропустить имеющихся пользователей
  • Добавить всех, при необходимости добавлять номер к логину
  • Добавить новых и обновить имеющихся пользователей
  • Только обновить имеющихся пользователей

2) Пароли новых пользователей - Здесь выбирается, использовать ли пароль из файла или создать новый, если поле не заполнено.

  • Необходимое поле в файле
  • Создавать пароль при необходимости и отправлять его по электронной почте

3) Данные существующих пользователей - Здесь выбирается, что делать с данными пользователей

  • Не изменять
  • Заменять данными из файла
  • Заменять данными из файла и значениями по умолчанию
  • Заполнить пустые поля данными из файла и значениями по умолчанию

4) Пароли существующих пользователей - параметр доступен при типе загрузки «Только обновить имеющихся пользователей»

5) Принудительная смена пароля - Выбирается из параметров:

  • Пользователи с простыми паролями
  • Пусто
  • Все

6) Разрешить переименовывать - параметр доступен при типе загрузки «Только обновить имеющихся пользователей»

7) Разрешать удаление - параметр доступен при типе загрузки «Только обновить имеющихся пользователей».

8) Разрешить блокировку и активацию учетных записей - выбирается включить параметр заблокировать и активацию пользователей.

9) Стандартизация логинов - Механизм убирания пробелов и т.п.

10) Выбрать для массовых операций

  • Нет
  • Новые пользователи
  • Обновленные пользователи
  • Все пользователи

После настроек параметров необходимо кликнуть на кнопку «Загрузить пользователей».

На следующей странице будет отображено количество загруженных пользователей

Создано пользователей: 1
Пользователи с простыми паролями: 1
Ошибки: 0

Пользователь загружен в СДО и подписан на соответствующие курсы.

-Вернуться к содержанию-

4.2.3. С записью в глобальные группы нужно:

1. Создать текстовый файл с расширением .CSV

2. Добавить в начало файла строчку:

username,password,firstname,lastname,email

Данные о пользователях:

ivanov@localhost.ru,somesecret,Иван,Иванов,ivanov@localhost.ru
petrov@localhost.ru,somesecret2,Петр,Петров,petrov@localhost.ru

Ссылка на файл: add2.csv

3. Загрузка пользователей в СЭО 3KL

Перейти во вкладку: Администрирование -> Пользователи -> Учетные записи -> Загрузить пользователей (Рис. 4.2.3.а).

Рис. 4.2.3.а. Загрузка пользователей в СЭО 3KL.

Следует выбрать файл с пользователями, указать разделитель между словами (в примере используется запятая), указать кодировку именно ту, в которой у вас сохранен файл (например,Windows1251) и кликнуть на кнопку «Загрузить пользователей» (Рис. 4.2.3.б).

Рис. 4.2.3.б. Предварительный просмотр загружаемых пользователей.

Выбрать тип загрузки - «Только обновить имеющихся пользователей».

Выбрать для массовых операций - «Все пользователи».

4. После настроек параметров, следует кликнуть на кнопку «Загрузить пользователей».

На следующей странице будет отображено количество загруженных пользователей (Рис. 4.2.3.в).

Рис. 4.2.3.в. Выбор загружаемых пользователей.

Выбрать параметр в поле «С выбранными пользователями...»->Добавить в группу.

5. Зачисление студентов в глобальную группу

Откроется окно с добавлением в глобальную группу (Рис. 4.2.3.г):

Рис. 4.2.3.г. Зачисление пользователей в глобальную группу.

Здесь нужно выбрать глобальную группу и нажать на кнопку «Добавить в группу».

-Вернуться к содержанию-

4.3. Массовое переименование пользователей

При помощи экспорта/импорта данных из .csv-файла можно осуществить процедуру массового переименования пользователей.

1. Из СЭО выгрузить (в формате .csv) список необходимых пользователей (Администрирование>Пользователи>Учетные записи>Действия над несколькими пользователями).

2. В выгруженном файле любым удобным способом изменить название столбца «username» на «oldusername». Добавить новый столбец с названием «username» и заполнить его новыми логинами.

3. Загрузить данные (Администрирование>Пользователи>Учетные записи>Загрузить пользователей) из модифицированного .csv-файла обратно в СЭО, указав в настройках:

  • Тип загрузки= Только обновить имеющихся пользователей.
  • Данные существующих пользователей=Заменять данными из файла.
  • Разрешить переименовывать=Да.

-Вернуться к содержанию-

5. Возможные проблемы и ошибки

5.1. Загрузка пользователей из CSV файла, содержащего кастомные поля Conditional field

Отмечены следующие проблемы:

  • Не загружаются пользователи из csv-файла, если в файле присутствуют поля Conditional field и при условии, что поля, входящие в его состав (внутренние) являются обязательными для заполнения.
  •  При выборе различных вариантов содержимого конкретного поля с последующим сохранением информации в профиле, в блоке информации о пользователе сохраняется содержимое всех полей, а не только тех, которые выбраны в настоящее время.

Это является особенностью работы плагина.

При загрузке значения поля Conditional field, делающего обязательным определенное поле профиля, система не позволит загрузить пользователей, даже если указанное поле будет заполнено (будет выдавать ошибку, что поле не заполнено). Если поле просто настроено в системе, но отсутствует в файле (не являясь обязательным), ошибки не возникнет. 
Если настроить плагин Conditional field так, чтобы при одном значении отображал и требовал заполнения одной группы полей, а при другом значении отображал и требовал заполнения другой группы, то не получится загрузить пользователей через CSV, заполнив только требуемые поля без значений для скрытой группы полей.

 Дорполнительная информация доступна в статьях
Conditional field
Conditional profile field
Moodle-profilefield_conditional

-Вернуться к содержанию-

Теги: импорт, регистрация
Рейтинг ответа: 5 (4 оценок)

Комментарии запрещены