Задача записи по одноразовым паролям обсуждалась, но решения в виде готового плагина нет.
Я так понимаю, это тестирования типа fepo вносят организаторам в сознание такую деформацию, прививая им любовь к одноразовым паролям. Одноразовые пароли - это неудобно, потому что их нужно сначала создать, потом забить в систему, потом выдать студентам, потом записать, кто какой получил. Если у Вас правильно настроена система, у вас и так должна быть вся информация о студентах, и о том, куда им можно, а куда нельзя.
Если у Вас система изначально была настроена на самостоятельную регистрацию студентов, а теперь вдруг вы захотели отсечь ситуации, когда один студент регистрируется дважды, чтобы дважды пройти тест, то проблема как раз в том, что у Вас разрешена самостоятельная регистрация. Примите все меры по переходу с "добровольной" регистрации студентами на "принудительную" регистрацию сотрудниками деканата. Средств много - и интеграция с Active Directory, и с внешней БД, и загрузка студентов списками. Когда вы реализуете запись студентов из нужных групп в нужные курсы, например через метасвязи или синхронизацию с глобальными группами, вам достаточно будет поставить в тесте ограничение на 1 попытку тестирования.
Личный опыт показывает, что вариант с 1 попыткой тестирования всё-равно не пройдет, многие не сдадут с первого раза, потребуется пересдача, потребуется или делать новые логины/пароли, или снимать ограничения, короче говоря, мороки только добавится.
Обходные варианты.
Поставить запись по приглашениям
https://moodle.org/plugins/enrol_invitation, рассылать студентам приглашения, ограничить тестирование 1 попыткой.
Сделать запись на курс открытой. Ограничить тест 1 попыткой. Поставить ограничение на доступ к тесту по случайному, никому неизвестному паролю. Настроить переопределение настроек теста для каждого из студентов, настроив в переопределении другой пароль, который и сообщается студенту. Но потребуется, чтобы сначала студенты записались на курс, чтобы появится в списке на переопределение.
Лично я рекомендую
Сделать запись на этот курс открытой. Установить на экзаменационное тестирование ограничение в 3 или более попыток. (Можно поставить и 1 попытку, но тогда для всех должников придется настраивать переопределение). Настроить время между попытками в 12 часов или более, чтобы пересдача не могла оказаться в тот же день. Установить крайние даты сдачи тестирования, чтобы не смогли протестироваться раньше положенного срока. Установить плагин для ограничения доступа по списку аудиторий
https://moodle.org/plugins/quizaccess_ipaddresslist и ограничить тестирование конкретной аудиторией. (Как альтернативу, можно поставить
https://moodle.org/plugins/view.php?plugin=block_supervised и
https://moodle.org/plugins/quizaccess_supervisedcheck , ввести расписание сеансов и поставить правило, что тест только под присмотром) Установить плагин для блокировки одновременных подключений с разных компьютеров (чтобы никто не смог помочь)
https://moodle.org/plugins/quizaccess_onesession и включить в настройках теста. Настроить на компьютерах SafeExamBrowser и включить его обязательное использование в настройках теста, чтобы не могли пользоваться интернетом. Установить ограничение на доступ к тесту по паролю. Пароль не сообщается студентам, а вводится лаборантом или преподавателем или же сообщается студентам, но меняется сразу после завершения тестирования.
Менять один пароль проще, чем генерировать пачку.
Такой совокупности мер будет вполне достаточно, чтобы не дать случайным людям попасть в тест, чтобы не пытались списывать, и чтобы не было попыток пересдач без разрешения преподавателя.