Вход в систему

Технология Drupal такова, что внешняя аутентификация может быть очень просто включена в Drupal за счет реализации в модуле обработчиков прерываний. Краткое описание процесса, выполняемого Drupal при внешней идентификации.
Если никакой модуль, обеспечивающий внешнюю аутентификацию (т.е. отвечающий на обработчик прерываний аутентификации) недоступен, Drupal будет трактовать все имена пользователей как локальные. Поэтому как joe.

так и joeeexample.com будут считаться просто строками, без специальных значений. Однако, когда модуль, который обеспечивает внешнюю аутентификацию, доступен, две названные строки становятся существенно разными.
Будет всегда пытаться позволить войти пользователю сначала локально, перед любой попыткой внешней аутентификации.
Давайте осуществим реализацию очень простого модуля внешней аутентификации, который мог бы использоваться на сайте компании, где в ходу простые имена пользователей. Предположим, что ваша компания принимает на работу только людей по имени Dave (Дейв). а имена пользователей образуются на основе имени и фамилии. Этот модуль аутентифицирует любого, чье имя пользователя начинается со строки dave, поэтому пользователи davebrown. davesmith и davejonee смогут успешно войти в систему.
После установки этого модуля при каждом успешном входе пользователя в систему будет запускаться пользовательский обработчик прерываний, на который модуль будет отвечать, вставляя запись в таблицу login_history базы данных. Когда загружается объект Suser. будет запускаться пользовательский обработчик прерываний загрузки, и модуль будет добавлять текущее число входов в систему для данного пользователя в $user->loginhistory_count. А когда пользователь будет просматривать страницу "моя учетная запись", на ней будет отображаться количество входов в систему.
Хотя мы представили дополнительную информацию, которую мы добавили в объект $user на странице my account (моя учетная запись), помните, что. поскольку объект $user является глобальным, к нему может получить доступ любой другой модуль. Мы предлагаем читателю в качестве полезного упражнения изменить приведенный выше модуль так. чтобы он обеспечил отображение красиво отформатированного списка прошлых входов в систему в виде блока во врезке, используемой для безопасности ("Эй! Я не входил в систему сегодня в 3:00 ночи!").