Массовая загрузка пользователей через файл csv
1. Импорт пользователей в СДО
1.1. Импорт пользователей с записью на курс
2. Создание .csv файла
2.1. Что такое CSV файл
2.2. Поля для заполнения информации о пользователе
2.3. Структура CSV файла
3. Загрузка CSV файла
3.1. Интерфейс загрузки пользователей
3.2. Загрузка файла с пользователями
3.3. Настройки загрузки
4. Примеры использования
4.1. Примеры полей для файлов CSV (могут быть использованы как шаблоны)
4.2. Добавление пользователей с записью на несколько курсов с указанием ролей
4.3. Массовое переименование пользователей
5. Возможные проблемы и ошибки
5.1. Загрузка пользователей из CSV файла, содержащего кастомные поля Conditional field
1. Импорт пользователей в СДО
Для импорта пользователей в систему нужно сформировать таблицу, где обязательно есть адреса электронной почты и логины участников, их фамилии (одним полем) и имена или имена-отчества (одним полем), город, страна (можно для всех поставить RU), можно добавить и некоторые другие данные, перечисленные в профайле. Пароли, если они отсутствуют, система создаст сама и вышлет на почту.
Первая строка таблицы должна содержать заголовки для каждой колонки с данными. Пример:
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)
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).
Нужно обращать внимание на ограничение по длине данных, вводимых в поля (указано в символах):
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
В значениях полей не должно быть переносов строк.
3. Загрузка CSV файла
3.1. Интерфейс загрузки пользователей
Для загрузки CSV файла нужно открыть интерфейс загрузки пользователей, который находится по следующему пути: Блок Настройки -> Администрирование -> Пользователи -> Учетные записи -> Загрузить пользователей (Рис. 3.1.1).
3.2. Загрузка файла с пользователями
3.2.1. В интерфейсе нужно
либо нажать на «Выберите файл...», затем перейти в папку с файлом и два раза кликнуть на него (Рис. 3.2.1);
3.2.2. либо перетащить файл из папки в поле загрузки (Рис. 3.2.2);
3.2.3. Разделитель нужно выбрать соответствующий разделителю в файле (Рис. 3.2.3);
3.2.4. Кодировку оставить по умолчанию UTF-8 или выбрать windows-1251, в зависимости от кодировки, в которой создан файл (Рис. 3.2.4).
3.3. Настройки загрузки
3.3.1. Тип загрузки (поз. 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.2. Добавление пользователей с записью на несколько курсов с указанием ролей
Для того чтобы добавить пользователей с записью на несколько курсов (с указанием ролей) нужно создать файл с информацией о пользователях и загрузить его в систему.
4.2.1. Создание текстового файла с расширением .CSV
Добавить в начало файла строчку:
на следующей строчке следует указать значения параметров:
Например, пользователя нужно записать на два курса «Тестовый» с ролью учителя и «Рабочий» с ролью студента.
Содержимое файла:
Ссылка на файл: user.csv
4.2.2. Загрузка пользователей в СЭО 3KL
Перейти во вкладку: Администрирование -> Пользователи -> Учетные записи -> Загрузить пользователей (Рис. 4.2.2.а).
Следует выбрать файл с пользователями, указать разделитель между словами (в примере используется запятая), указать кодировку именно ту, в которой у вас сохранен файл (например,Windows1251) и кликнуть на кнопку «Загрузить пользователей» (Рис. 4.2.2.б).
1) Тип загрузки - здесь выбирается тип загрузки из доступных:
- Добавить новых, пропустить имеющихся пользователей
- Добавить всех, при необходимости добавлять номер к логину
- Добавить новых и обновить имеющихся пользователей
- Только обновить имеющихся пользователей
2) Пароли новых пользователей - Здесь выбирается, использовать ли пароль из файла или создать новый, если поле не заполнено.
- Необходимое поле в файле
- Создавать пароль при необходимости и отправлять его по электронной почте
3) Данные существующих пользователей - Здесь выбирается, что делать с данными пользователей
- Не изменять
- Заменять данными из файла
- Заменять данными из файла и значениями по умолчанию
- Заполнить пустые поля данными из файла и значениями по умолчанию
4) Пароли существующих пользователей - параметр доступен при типе загрузки «Только обновить имеющихся пользователей»
5) Принудительная смена пароля - Выбирается из параметров:
- Пользователи с простыми паролями
- Пусто
- Все
6) Разрешить переименовывать - параметр доступен при типе загрузки «Только обновить имеющихся пользователей»
7) Разрешать удаление - параметр доступен при типе загрузки «Только обновить имеющихся пользователей».
8) Разрешить блокировку и активацию учетных записей - выбирается включить параметр заблокировать и активацию пользователей.
9) Стандартизация логинов - Механизм убирания пробелов и т.п.
10) Выбрать для массовых операций
- Нет
- Новые пользователи
- Обновленные пользователи
- Все пользователи
После настроек параметров необходимо кликнуть на кнопку «Загрузить пользователей».
На следующей странице будет отображено количество загруженных пользователей
Создано пользователей: 1
Пользователи с простыми паролями: 1
Ошибки: 0
Пользователь загружен в СДО и подписан на соответствующие курсы.
4.2.3. С записью в глобальные группы нужно:
1. Создать текстовый файл с расширением .CSV
2. Добавить в начало файла строчку:
Данные о пользователях:
Ссылка на файл: add2.csv
3. Загрузка пользователей в СЭО 3KL
Перейти во вкладку: Администрирование -> Пользователи -> Учетные записи -> Загрузить пользователей (Рис. 4.2.3.а).
Следует выбрать файл с пользователями, указать разделитель между словами (в примере используется запятая), указать кодировку именно ту, в которой у вас сохранен файл (например,Windows1251) и кликнуть на кнопку «Загрузить пользователей» (Рис. 4.2.3.б).
Выбрать тип загрузки - «Только обновить имеющихся пользователей».
Выбрать для массовых операций - «Все пользователи».
4. После настроек параметров, следует кликнуть на кнопку «Загрузить пользователей».
На следующей странице будет отображено количество загруженных пользователей (Рис. 4.2.3.в).
Выбрать параметр в поле «С выбранными пользователями...»->Добавить в группу.
5. Зачисление студентов в глобальную группу
Откроется окно с добавлением в глобальную группу (Рис. 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