28 | | ||= **Нормален тек** =|| 1. Корисникот е на било која страница во апликацијата\\ 2. Клика на опцијата за најавување\\ 3. Доколку веќе има корисничка сметка, ги внесува своето корисничко име (или e-mail) и лозинка, инаку оди на !UseCase со ID 3 (корисничка регистрација) || |
29 | | ||= **Исклучоци:** =|| Корисникот ја има заборавено својата лозинка:\\ 1. Клика на опцијата за заборавена лозинка\\ 2. Ги внесува својата e-mail адреса со која е претходно регистриран и новата лозинка\\ 3. Добива електронска порака со линк за потврда на новата лозинка\\ 4. Се најавува на апликацијата со новата лозинка || |
| 28 | ||= **Нормален тек** =|| ''Акции преземени од корисникот:'' \\ **1.** Клика на опцијата за најавување (HTML anchor елемент)\\ **2.** Доколку веќе има корисничка сметка, ги внесува својот e-mail и лозинка и клика на ''Најави се'', инаку оди на !UseCase со ID 3 (корисничка регистрација) т.е. притиска на елемент кој го води на таа страница \\ \\ ''Акции преземени од системот кон:'' **1.** Се активира погледот мапиран на /login патеката кој содржи две input полиња за внес на податоците. \\ **2.** Се праќа барање до одредена патека на контролерот, кое во телото ги содржи мејлот и лозинката. Аналогно на текот опишан во претходниот use-case, се испитува дали внесени кориснички мејл е претходно зачуван, дали сметката е активирана, се хашира пречеканата лозинка со BCrypt и се споредува со соодветната колона во базата за торката каде е зачуван мејлот. Во случај на успех, се креира инстанца од HttpSession која содржи податоци за што е авторизиран корисникот (пр. преку getSession().getRoles()) и на прелистувачот се враќа id:String полето од истата. Апликацијата на клиентска страна ја зачувува променливава како колаче што дозволува рендерирање на повеќе погледи за корисникот. Во случај на неуспех, се случува истото, само што апликацијата на клиентска страна детектира од телото на response-от низа од знаци (пр. "error") и добиената сесиска променлива без привилегии ја игнорира. || |
| 29 | ||= **Исклучоци:** =|| Корисникот ја има заборавено својата лозинка: апликацијата нема функционалност за recovery на сметките. || |