Разработать систему управления пользователями. Система должна представлять собой WEB-приложение, которое предоставляет интерфейс управления пользователями. Система должна поддерживать следующую ролевую модель:
Роль | Доступные действия |
---|---|
USER | Авторизция (Login) Просматривать список пользователей (List) Просматривать детали любого пользователя (View) Выход (Logout) |
ADMIN | Авторизция (Login) Просматривать список пользователей (List) Просматривать детали любого пользователя (View) Создание нового пользователя (New/Edit) Редактирование существующего пользователя (New/Edit) Lock/Unlock пользователя (Lock/Unlock) Выход (Logout) |
Основная сущность в системе – UserAccount.
Field | Description | Length | Validation |
---|---|---|---|
Username | Имя пользователя для авторизации. | 3-16 | Только латинские символы; Должна быть уникальным |
Password | Пароль пользователя | 3-16 | Только латинские символы и цифры. Минимум один символ; Минимум одна цифра; |
First Name | Имя. | 1-16 | Только латинские символы |
Last Name | Фамилия | 1-16 | Только латинские символы |
Role | Роль пользователя USER or ADMIN На UI должно быть dropdown. |
||
Status | Состояние пользователя ACTIVE or INACTIVE На UI должно быть dropdown. |
||
Created At | Дата заведения пользователя. Проставляется автоматически при записи в БД. |
Пароли в БД хранить в хешированоым виде с применением алгоритма bcrypt.
В системе должны быть следующие страницы:
Страница | URL | Описание | Доступные действия (с учетом роли) |
---|---|---|---|
Login | /login | Авторизация в системе | Вход в систему; Если состояние пользователя INACTIVE, то вход невозможен; Если логин/пароль не верен, то вход невозможен; |
List | /user | Список пользователей | Опционально: 1. Фильтрация списка по Username 2. Фильтрация списка по Role 3. Пагинация |
View | /user/{id} | Просмотр деталей пользователя | Lock/Unlock: должно приводить к смене состояния ACTIVE/INACTIVE |
New | /user/new | Создание нового пользователя | При наличии валидационных ошибок должно показываться соответствующее сообщение на UI. |
Edit | /user/{id}/edit | Редактирование пользователя | При наличии валидационных ошибок должно показываться соответствующее сообщение на UI. |
Предпочтительный стек технологий:
- Java 8+
- Spring (Spring Boot, Spring MVC, Spring Data, Spring Security)
- PostgreSQL
- Html Template Engine - любой (Thymeleaf, Freemarker, etc.)
- Gradle
- Опционально: сборка docker-образов Можно использовать сторонние библиотеки.