| | 1 | = UseCase0001 Implementation - Најава на корисник = |
| | 2 | |
| | 3 | '''Актер иницијатор:''' Ненајавен корисник |
| | 4 | |
| | 5 | '''Други актери:''' нема |
| | 6 | |
| | 7 | == Опис == |
| | 8 | |
| | 9 | Корисникот внесува PIN код за да се најави во системот. Системот проверува дали постои таков корисник, дали е активен и дали PIN-от е точен. Доколку е успешно, се креира сесија и корисникот се пренасочува кон главниот екран зависно од неговата улога. |
| | 10 | |
| | 11 | == Сценарио == |
| | 12 | |
| | 13 | 1. Корисникот ја стартува апликацијата и се прикажува екранот за најава. |
| | 14 | |
| | 15 | [[Image(screenshot_1_1.png)]] |
| | 16 | |
| | 17 | 2. Корисникот внесува PIN код. |
| | 18 | |
| | 19 | 3. Системот проверува дали корисникот постои и дали е активен: |
| | 20 | |
| | 21 | {{{ |
| | 22 | SELECT |
| | 23 | u.user_id, |
| | 24 | u.role_id, |
| | 25 | u.first_name, |
| | 26 | u.last_name, |
| | 27 | r.role_name |
| | 28 | FROM app_user u |
| | 29 | JOIN role r ON u.role_id = r.role_id |
| | 30 | WHERE u.password_hash = crypt('1234', u.password_hash) |
| | 31 | AND u.active = true |
| | 32 | }}} |
| | 33 | |
| | 34 | 4. Доколку е успешно, системот креира нова сесија во меморијата (генерира UUID токен). |
| | 35 | |
| | 36 | 5. Системот го запишува настанот (преку тригер `trg_audit_orders`). |
| | 37 | |
| | 38 | 6. Системот го прикажува главното мени со достапните опции. |
| | 39 | |
| | 40 | [[Image(screenshot_1_2.png)]] |