Функция "Регистрация по внешней базе данных"
Суть доработки
добавляется режим регистрации (не авторизации!), в котором система позволяет зарегистрироваться не всем, а только тем, кто перечислен в определенном списке, причем, только по одному разу.
От существующего плагина авторизации по внешней БД это отличается тем, что во внешнем источнике может не быть ни пароля, ни электронной почты, а только, например, ФИО и табельный номер. Система только проверит, что пользователь есть в списке и что он еще не зарегистрировался, а остальные данные пользователь укажет сам.
Пример применения
у организации имеется электронный список сотрудников или слушателей электронных курсов. Доступ к системе должны получить только люди из этого списка. Но в этом списке отсутствует электронная почты и другие данные, необходимые для регистрации. При этом список слишком велик, чтобы регистрировать и сообщать логины/пароли лично или по телефону. С помощью инструмента "Регистрация по внешней базе данных", включается режим регистрации по "предварительному списку". Пользователь вводит известные системе данные, она проверяет наличие его в списке и допускает ко второму этапу регистрации, где он вводит свою электронную почту, логин и пароль.
Если злоумышленник воспользуется чужими данными, то настоящий пользователь уже не сможет зарегистрироваться. Он обратиться к администратору и тот вручную удалит поддельную учетную запись.
Предварительные настройки
Администратор в настройках системы создает необходимые дополнительные поля, которые должны участвовать в регистрации или проверяться по внешней базе данных.
Администратор в настройках плагина auth/dof выбирает тип регистрации "По предварительным спискам" и настраивает следующие опции:
- Поля регистрации (заменяет собой опции "добавить поле повтора пароля" и "настройки полей формы регистрации")
- В данном разделе настроек отображаются все доступные поля регистрации, включая основные и дополнительные поля профиля.
- Администратор устанавливает для каждого поля один из режимов:
- Режим отображения
- Скрывать - поле не будет отображаться в форме регистрации.
- Показать на шаге 1 - поле отобразится на шаге 1.
- Показать на шаге 2 - поле отобразится на шаге 2. Если для шага 2 нет ни одного поля, система его пропускает.
- Порядок отображения (вес) - чем меньше вес, тем выше поле в форме отображения.
- Модификатор
- Обязательное - поле, обязательное для заполнения. Только поля шага 1 и шага 2.
- Поисковое - по данному полю будет происходить поиск записи в источнике. Регистрация возможна, только если в источнике найдется одна и только одна запись с нужным сочетанием значений. Применимо только к полю шага 1.
- Транслируемое - поле будет скопировано напрямую из источника в аккаунт пользователя. Если применить модификатор к скрытому полю, значений не будет видно даже в html-коде страницы. Если применить модификатор к полю шага 2, будет отображено поле "только для чтения", но данные будут копироваться напрямую из источника, чтобы поле нельзя было изменить подделкой POST-запроса. К полям шага 1 не применимо. Не совместимо с "генерируемое"
- Генерируемое - опция доступна только для отдельных полей, для которых предусмотрен алгоритм генерации. Не совместимо с "транслируемое" и "поисковое".
- Логин - формируется уникальный логин.
- Пароль - формирует случайный пароль и отправляет его выбранным способом пользователю.
- Если генератор выключен, а поле пароля нет ни среди полей формы, ни среди транслируемых, то на этапе регистрации, пароль все-равно будет сгенерирован, но не будет выслан.
- Электронная почта - формирует электронную почту вида "логин@домен_из_настроек" после проверки логина на уникальность.
- Город - заполняет поле город значением "Не указан".
- Проверка уникальности - регистрация возможна, только если в списке зарегистрированных пользователей нет ни одного пользователя с таким же сочетанием значений уникальных полей. Если проверка уникальности включена для нескольких полей, поиск будет только по полной комбинации значений полей, а не по каждому полю в отдельности. Применимо к любому полю шага 1, а так же к полю с опцией "транслируемое".
- Если не задать полей проверки уникальности, пользователи смогут регистрироваться многократно, если будут соблюдать требования к уникальности логина и электронной почты.
- Режим отображения
- Источники (доступно, только если задано хотя бы одно поисковое поле):
- Настройка источников - это множественное поле, которое позволяет задать один или несколько источников со следующими опциями:
- Параметры подключения
- Сетевой адрес СУБД
- Логин для СУБД
- Пароль от СУБД
- Имя в СУБД
- Таблица в СУБД
- Поля СУБД (раздел отображается после нажатия на кнопку "Проверить подключение и получить поля базы данных"). Представляет собой список полей из БД, каждому из которых можно сопоставить одно из выбранных в предыдущем разделе полей.
- Система предлагает только следующие поля формы со следующими модификаторами:
- Поисковые поля.
- Транслируемые поля.
- Проверка уникальности.
- Поле СУБД не используется, если оно не сопоставлено ни одному из полей формы.
- Поле СУБД не может быть сопоставлено сразу двум и более полям.
- Все поля с модификаторами "поисковое", "транслируемое" и "проверка уникальности" должны быть сопоставлены с полями источника.
- Система предлагает только следующие поля формы со следующими модификаторами:
- Параметры подключения
- Настройка источников - это множественное поле, которое позволяет задать один или несколько источников со следующими опциями:
- Подтверждение электронной почты
- Если опция установлена, после "шага 2", на электронную почту пользователя будет выслан код подтверждения. Доступ к системе будет возможен только после подтверждения.
Сценарий
- Пользователь: Переходит по ссылке к регистрации
- Система: Отображает пользователю форму с полями шага 1.
- Пользователь: Заполняет требуемые поля и отправляет форму
- Если задано хотя бы одно поисковое поле (в противном случае регистрация идет по сценарию без источников)
- Система: По очереди подключается к каждому из источников и ищет в них запись, соответствующую параметрам.
- Если запись найдена, поиск прекращается. Система выполняет проверку на уникальность и отображает форму шага 2 (если она есть).
- Если запись не найдена, система отображает сообщение об ошибке и оставшееся число попыток.
- Если попытки израсходованы, система блокирует регистрацию с данного ip-адреса на 1 час.
- Система: По очереди подключается к каждому из источников и ищет в них запись, соответствующую параметрам.
- Если второй шаг предусмотрен.
- Система: отображает форму шага 2.
- Пользователь: заполняет поля формы шага 2.
- Система: регистрирует учетную запись.
- Если включен режим "подтверждение по электронной почте" - высылает подтверждение по электронной почте.
- Если включен режим "генерации пароля" - высылает пользователю пароль.
- Пользователь: авторизуется в системе.
- Если остались незаполненные обязательные поля профиля (согласно настройкам системы, а не формы регистрации):
- Система: требует заполнения недостающих обязательных полей до начала работы в системе.
Теги: регистрация