Changes between Version 3 and Version 4 of AdvancedApplicationDevelopment


Ignore:
Timestamp:
06/20/24 08:06:08 (2 weeks ago)
Author:
211012
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedApplicationDevelopment

    v3 v4  
    110110    }
    111111}}}
    112 Во committeeService-от се пронаѓа членот на комисија кој го претставува корисничкиот профил, комисијата во која е член, како и избирачкиот список за гласачкото местоо за кое е одговорна. Во
     112Во committeeService-от се пронаѓа членот на комисија кој го претставува корисничкиот профил, комисијата во која е член, како и избирачкиот список за гласачкото место за кое е одговорна. Во
    113113програмската имплементација, ова се прави со повик на соодветни методи од Spring Data JPA, а во SQL би изгледало вака:
    114114{{{#!sql
     
    120120    limit 1
    121121}}}
     122Приказот кој го добива членот на комисијата е прикажан на следната слика. Во делот акции, достапно е времето на гласање за оние корисници кои правото на глас го оствариле онлајн или со физичко присуство, а за остантите достапно е копче за генерирање код за гласање. При клик се повикува следниот контролер:
     123{{{#!java
     124    @GetMapping("/admin/electionRealizationInterface/{id}")
     125    public String showElectionRealization(Model m, @PathVariable Long id, Principal p, Authentication authentication) {
     126        UserProfile userProfile = (UserProfile) authentication.getPrincipal();
     127        Long realizationId = committeeService.findElectionRealizationByCitizen(userProfile.getCitizen().getId()).getId();
     128        CommitteeMember committeeMember = committeeMemberService.findById(userProfile.getCitizen().getId());
     129        if(!committeeService.getSamePollingStation(committeeMember.getId(), id)){
     130            return "redirect:/admin/electionRealizationInterface";
     131        }
     132        return "redirect:/admin/voteCode/" + realizationId + "/" + id;
     133    }
     134}}}
     135Како што е и претходно споменато, за да се избегнат манипулации, идентитетот повторно се проверува на серверската страна, односно се проверува дали корисникот кој го испратил барањето и гласачот за кој се генерира код се од исто гласачко место и потоа се пренасочува кон контролерот кој повикува сервис за генерирање на кодот доколку тој не постои или го прикажува веќе генерираниот. Кодот за гласање е од тип UUID, односно шансите за негово повторување или случајно погодување се практично еднакви на нула. Приказот кој го добива членот на комисијата по генерирање код изгледа вака.
     136== Гласа со физичко присуство
     137Граѓанин кој сака да го оствари правото на глас со физичко присуство на потенцијално поставена машина во гласачко место може да го направи тоа користејќи го кодот добиен од избирачката комисија на страницата /codeVote, при што го гледа следниот интерфејс. Потоа, процесот на гласање продолжува исто како што тоа е опишано во делот од прототипот на апликацијата.