Можно ли под одним логином-паролем работать на двух компах одновременно? Ну, о есть студент официально сидит на уроке и типа сдает тест, а в это же время под его учеткой дома сидит "умник", который этот тест сдает... Такое возможно? И как, в каких настройках это исключить, если можно?
Раньше было такое https://moodle.org/mod/data/view.php?d=13&rid=4060 решение, правда сам не проверял.
- Какой вид авторизации используется для входа в мудл. Вывести эту авторизацию на внешние службы и копать там возможность одноразового входа.
- Написать SQL-запрос, анализирующий таблицу логов, вставить его в cron и поставить выполнение - скажем каждые 5 минут.
- Нанять в аудиторию мужика с дубиной, который будет ходить за спинами и пасти количество открытых окон и имена входов, при обнаружении нарушений - прибивать на месте. (вариант не работает, если подключение из соседней аудитории, но с этим борется метод ограничения IP-адресов)
Заинтересовался данным вопросом. У нас иногда встают подобные вопросы, поэтому, возможно, возьмусь за разработку.
В целом, для одноразового входа в систему есть модуль auth_uniquelogin. Он режит все сессии пользователя, кроме последней. Правда не у всех работает и кто-то жалуется на низкую производительность. Можно переписать его.
2 Evgeniy Schuetz: cron и таблица логов - неправильный вариант. Срабатывает не моментально и поиск по таблице логов - весьма трудоемкая операция. Делается подписка на событие user_login (подписка на события нормально реализована начиная с 2.7) и делается поиск по таблице сессий. Про внешние системы не выйдет - все внешние системы к которым moodle умеет подключаться из коробки не умеет ограничивать количество входов. Получится нужно будет шаманить и внешнююю систему и moodle, причем нетривиально.
Но вопрос в том, будет ли это тем, что нужно. Каким должно быть поведение?
1а. плагин аутентификации. Если пользователь уже вошел в систему, уже не сможет войти второй раз. Плюсы: сразу будет видно, почему студент не может войти. Минусы: если студент дома не вышел из системы, прибежал на экзамен, не сможет войти, пока сессии не очистятся, может быть много недовольства. Ещё хуже будет с преподавателями, которые не смогут зайти в систему на кафедре, если забыли выйти в компьютерном классе.
1б. плагин аутентификации. Пользователь входит в систему, его вышибает на всех остальных компьютерах. Студент входит в moodle, вышибает его помошника. Помошник вышибает студента. Так они и сидят, вводя по очереди логины и пароли. Плюсы: никаких недовольств - ничей вход не будет ограничиваться. Минусы: если достаточно быстро вводить логин/пароль и возвращаться к тесту, ситуация может пройти незамеченной.
2а. плагин ограничения тестирования. Если обнаруживается, что в данный момент времени у студента более одной сессии, он не сможет войти в систему, получив соответствующее предупреждение. Зайдет студент - не сможет зайти его помошник. Зайдет помошник - не сможет зайти студент. Плюсы: ограничение будет действовать только на конкретный тест, будет четко-понятное предупреждение. Минусы: можно обойти, если выйти из moodle, дать зайти и ответить помошнику, который потом выйдет и снова даст зайти студенту. Все равно требуется наблюдение за студентом.
2б. плагин ограничения тестирования. Если обнаруживается, что студент пытается продолжить тестирование IP-адреса, отличающегося от того, с которого он начал, выдается соответствующее предупреждение. Плюсы: настраивается на конкретный тест, поэтому не повлияет на тестирования для самоподготовки и т.п., где могут быть пользователи с переменнми IP (сейчас это в основном те, которые по GPRS-модемам подключаются). Минусы: если у студента во время тестирования сломается компьютер, он не сможет пересесть на соседний, чтобы его продолжить. Ограничение не будет работать, если пользователи находятся за NAT/proxy. И пока не совсем ясно, как получать информацию о том, с какого IP студент начал тест. Шарить в логах трудоемко и не очень надежно.
Ну и как вариант, сделать 2а и 2б и использовать их вместе для пущей надежности.
Хороши и 1а и 1б. Потому как тесты не панаценя, могут же быть и другие задания, кроме тестов. Лучше 1б. Как бы студенты не наловчились вбивать 8-10-значный "абра-кадабра" логин-пароль (пусть даже копировать-вставить), преподаватель все равно имеет очень большой шанс заметить регулярные вылеты.
Кстати, это еще и дополнительный шанс для "забывчивых", которые не вышли в классе из системы и их данными воспользовался кто-то, например, на следующий день сев за комп. Шанс невелик, но тем не менее он есть, пусть как и дополнительный.
В идеале сделать "универсальный" плагин с выбором той или иной возможности. Но я не программист и слабо представляю, насколько это сложно-несложно.
Кстати, раздавая лоигны и пароли, мы всегда говорим студентам, чтобы обязательно выходили из системы по завершении работы и пугаем подобными "страшилками" Пока боятся
1a Больше подходит. Ничего страшного не случится, если все участники процесса , будут работать по определенным правилам. Тем более это нормаль. Закончил работать - выходи с учетки.