- Создать
ConnectionProvider
(20 мин.)- Возвращает коннект к БД с нужными URL, логином и паролем
- URL, логин и пароль передаются через переменные среды
- Если переменные среды отсутствуют, берутся значения по умолчанию
- Заинжектить
ConnectionProvider
вDBWrapper
(5 мин.) - Переписать методы
DBWrapper
на работу с провайдером (40 мин.) - Добавить поле
id
в таблицуusers
в БД, сделать его первичным ключом (2 мин.) - Добавить поле
id
в классUser
(1 мин.) - Добавить метод
getUser(id)
вDBWrapper
(25 мин.)- Возвращает
List<User>
- Если
id != 0
список содержит пользователя с указаннымid
- Иначе список содержит всех пользователей
- Возвращает
- Переименовать таблицу
permissions
и объектPermission
наauthorities
иAuthority
соответственно (20 мин.) - В таблице
authorities
заменить полеlogin
на полеuserId
, сделать его внешним ключом и связать с таблицейusers
(2 мин.) - Добавить метод
getAuthority(id)
вDBWrapper
(15 мин.)- Возвращает
List<Authority>
- Если
id != 0
список содержит разрешение с указаннымid
- Иначе список содержит все разрешения
- Возвращает
- Добавить метод
getAuthorityByUser(userId)
вDBWrapper
(15 мин.)
- Возвращает
List<Authority>
с разрешениями пользователя с указаннымuserId
- В класс
Activity
добавить полеid
(1 мин.) - В классе
Activity
заменить поляuser
,res
иrole
на полеauthority
(1 мин.) - Добавить метод
getActivity(id)
вDBWrapper
(10 мин.)
- Возвращает
List<Activity>
- Если
id != 0
список содержит действия с указаннымid
- Иначе список содержит все действия
- Добавить метод
getActivityByAuthority(authorityId)
вDBWrapper
(10 мин.)
- Возвращает
List<Activity>
с действиями с указанным разрешением
- Создать
GSONProvider
(10 мин.)- Возвращает
GsonBuilder().excludeFieldsWithoutExposeAnnotation().create()
- Возвращает
- Заинжектить
GSONProvider
в классыUserServlet
,AuthorityServlet
иActivityServlet
(5 мин.) - Заинжектить
DBWrapper
в классыUserServlet
,AuthorityServlet
иActivityServlet
(90 мин.) - Реализовать метод
UserServlet.service()
(20 мин.)- Создать переменную
userList
- Если в запросе присутствует
id
:userList = DBWrapper.getUser(id)
- Иначе
userList = DBWrapper.getUser(0)
- Сериализовать
userList
и вернуть полученный json- Для получения сериализатора использовать
GSONProvider
- Для получения сериализатора использовать
- Создать переменную
- Реализовать метод
AuthorityServlet.service()
(20 мин.)- Создать переменную
authorityList
- Если в запросе присутствует
id
:authorityList = DBWrapper.getAuthority(id)
- Если в запросе присутствует
userId
:authorityList = DBWrapper.getAuthorityByUser(userId)
- Иначе
authorityList = DBWrapper.getAuthority(0)
- Сериализовать
authorityList
и вернуть полученный json- Для получения сериализатора использовать
GSONProvider
- Для получения сериализатора использовать
- Создать переменную
- Реализовать метод
ActivityServlet.service()
(20 мин.)- Создать переменную
activityList
- Если в запросе присутствует
id
:activityList = DBWrapper.getActivity(id)
- Если в запросе присутствует
authorityId
:activityList = DBWrapper.ActivityByAuthority(authorityId)
- Иначе
activityList = DBWrapper.getActivity(0)
- Сериализовать
activityList
и вернуть полученный json- Для получения сериализатора использовать
GSONProvider
- Для получения сериализатора использовать
- Создать переменную
- В классе
User
добавить аннотацию@Expose
для всех полей кромеsalt
иhash
(5 мин.) - В классе
Authority
добавить аннотацию@Expose
для всех полей кромеuser
(5 мин.) - В классе
Activity
добавить аннотацию@Expose
для всех полей кромеauthority
(5 мин.)
Пункт плана | Оценка времени | Фактическое время |
---|---|---|
1. | 20 мин. | |
2. | 5 мин. | |
3. | 40 мин. | |
4. | 2 мин. | |
5. | 1 мин. | |
6. | 25 мин. | |
7. | 20 мин. | |
8. | 2 мин. | |
9. | 15 мин. | |
10. | 15 мин. | |
11. | 1 мин. | |
12. | 1 мин. | |
13. | 10 мин. | |
14. | 10 мин. | |
15. | 10 мин. | |
16. | 5 мин. | |
17. | 90 мин. | |
18. | 20 мин. | |
19. | 20 мин. | |
20. | 20 мин. | |
21. | 5 мин. | |
22. | 5 мин. | |
23. | 5 мин. |