|
|
@@ -0,0 +1,58 @@
|
|
|
+# Модуль № 3: Проектирование и разработка информационных систем
|
|
|
+
|
|
|
+## Текст задания:
|
|
|
+
|
|
|
+Для выполнения задания рекомендуется создать в базе данных таблицу "Пользователи". Если такая таблица уже существует, необходимо внести некоторые изменения для реализации дальнейшего функционала приложения.
|
|
|
+
|
|
|
+Разработайте форму для авторизации зарегистрированных пользователей с ролями "Администратор" и "Пользователь".
|
|
|
+
|
|
|
+Форма должна содержать текстовые поля логин, пароль и кнопку "Войти". Поля "Логин" и "Пароль" должны быть обязательными для заполнения. При неверно введенных данных, пользователь должен получить сообщение об ошибке "Вы ввели неверный логин или пароль. Пожалуйста проверьте ещё раз введенные данные".
|
|
|
+
|
|
|
+После успешной авторизации пользователь должен получить сообщение "Вы успешно авторизовались".
|
|
|
+
|
|
|
+При аутентификации связка «логин/пароль» должна совпадать с одной из записей в таблице "Пользователи".
|
|
|
+
|
|
|
+При первой успешной авторизации по выданному паролю администратором должна выводится форма для смены пароля.
|
|
|
+
|
|
|
+Форма должна включать текущий пароль, новый пароль, подтверждение нового пароля. Все поля обязательные для заполнения. После заполнения формы и нажатия кнопки "Изменить пароль", система должна проверить правильность введенного текущего пароля и совпадение нового пароля с подтверждением.
|
|
|
+
|
|
|
+В случае ошибок при заполнении формы пользователю должно выводиться сообщение об ошибке. В случае успешного изменения пароля, пользователю должно выводиться сообщение об успешной смене пароля.
|
|
|
+
|
|
|
+Если в течении 3-х раз подряд был неверно введен логин/пароль, то учетная запись блокируется и при повторном авторизации должно появляться сообщение "Вы заблокированы. Обратитесь к администратору".
|
|
|
+
|
|
|
+Так же учетная запись должна блокироваться если пользователь не авторизовался в течении 1 месяца.
|
|
|
+
|
|
|
+На рабочем столе пользователя с ролью "Администратор" предусмотрите функционал для добавления новых пользователей, изменения данных текущих пользователей (включая снятие блокировки).
|
|
|
+
|
|
|
+При добавлении нового пользователя следует проверять его наличие в базе данных.
|
|
|
+
|
|
|
+В случае, если пользователь с указанным логином уже существует, должно выводиться соответствующее сообщение.
|
|
|
+
|
|
|
+Графический интерфейс необходимо разработать в соответствии с требованиями к разработке.
|
|
|
+
|
|
|
+Разработайте проектную документацию на разработанный функционал.
|
|
|
+
|
|
|
+Включите описание функционального назначения, используемые методы с указанием параметров.
|
|
|
+
|
|
|
+Необходимые приложения: [Требования к разработке.pdf](./Требования%20к%20разработке.pdf)
|
|
|
+
|
|
|
+## Реализация
|
|
|
+
|
|
|
+### Доработка таблицы **User** (Пользователи)
|
|
|
+
|
|
|
+Необходимо добавить поля:
|
|
|
+
|
|
|
+- логин
|
|
|
+- пароль
|
|
|
+- дата создания (чтобы отслеживать 30 дней на первую авторизацию)
|
|
|
+- признак блокировки аккаунта (можно совместить со счетчиком неуспешных авторизаций и признаком активности)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+**Логин** и **пароль** я сделал обязательными, но можно делать не обязательными, тогда и значение по-умолчанию не нужно.
|
|
|
+
|
|
|
+**Дата создания** обязательное поле типа DATETIME со значением по-умолчанию CURRENT_TIMESTAMP
|
|
|
+
|
|
|
+**Количество блокировок** является одновременно признаком успешной авторизации (`-1`) и количеством неуспешных (`>= 0`)
|
|
|
+
|
|
|
+Окно авторизации мне рисовать лень. Реализацию можете посмотреть в [Задание модуль_3 Авторизация.pdf](../solution/Задание%20модуль_3%20Авторизация.pdf), только работу с базой реализуте сами.
|