Annotert utgave av medlemsdb2valg

Forfattere

Tekst

! Valg i MDB2 - Teknisk dokumentasjon 

!! ER-diagram

[image|mdb2election_er.png|ER-diagram]

!! Valg

Et valg er gyldig når tiden er mellom =starter= og =slutter=. Alle funksjoner rundt et valg untatt valgsletting og å sjekke resultat er kun tilgjengelig mens valget er gyldig. Ved stenging av valget settes =slutter= lik nåtid.

Et valg kan ha en av tre typer:

| *valgtype * | *navn* | *beskrivelse* | 
| fysisk | Fysiske urnevalg | For urnevalg med fysiske lapper. Systemet brukes kun til validering av medlemskap. |
| remote | Digitale valg (remote) | Alle medlemmer med gyldig medlemskap i MDB2 kan stemme ved å logge inn på MDB2. Ingen beeping av kort gjøres; alle kan stemme uansett Hovedsakelig brukt under covid.|
| digitalt | Digitale valg (tilstedeværelse) | Man må først beepe kortet i storsalen før man kan avlegge stemme. Dette er også den eneste valgtypen der en valgbås kan benyttes. | 

=======
! Valg i MDB2 - Teknisk dokumentasjon 

!!! Databasestruktur

!!! ER-diagram

[image|mdb2election_er.png|ER-diagram]

!!! Valg

Et valg er gyldig når tiden er mellom =starter= og =slutter=. Alle funksjoner rundt et valg untatt valgsletting og å sjekke resultat er kun tilgjengelig mens valget er gyldig. Ved stenging av valget settes =slutter= lik nåtid.

Et valg kan ha en av tre typer:

| *valgtype * | *navn* | *beskrivelse* | 
| fysisk | Fysiske urnevalg | For urnevalg med fysiske lapper. Systemet brukes kun til validering av medlemskap. |
| remote | Digitale valg (remote) | Alle medlemmer med gyldig medlemskap i MDB2 kan stemme ved å logge inn på MDB2. Ingen beeping av kort gjøres; alle kan stemme uansett Hovedsakelig brukt under covid.|
| digitalt | Digitale valg (tilstedeværelse) | Man må først beepe kortet i storsalen før man kan avlegge stemme. Dette er også den eneste valgtypen der en valgbås kan benyttes. | 

!!! Stemmer

=stemmer= brukes for å verifisere at man ikke kan stemme flere ganger via medlemsdatabasen. Vesentlig her er variabelen =stemt=. Hvis denne er =false= betyr det at medlemmet har registrert seg, men ikke enda avlagt stemme. Hvis denne er =true= er stemmen avgift. For digitale valg med tilstedeværelse kan altså medlemmet kun avgi stemme dersom =stemt= er =false= (det samme gjelder angring av stemmer). Ved digitale valg uten krav om tilstedeværelse settes denne =true= etter medlemmet har stemt ( =false= brukes ikke). Når det er valg med fysiske lapper settes den lik =true= når kortet har blitt beepet (igjen, =false= brukes ikke). =stemmer= har også en fremmednøkkel til =medlem= tabellen, fordi en må ha gyldig bruker i MDB for å avgi stemme. Denne brukes da for å bekrefte at et medlem ikke kan beepe kortet to ganger.

!!! Valgbås-stemmer

=valgbaas= representerer stemmer i valgbåsen. Denne har et =aktiv= flagg som forsikrer at kun en kan være i valgbåsen samtidig. Så hvis =aktiv= er =true= for en rad regnes valgbåsen som opptatt. Hvis man bruker funksjonen for å frigjøre en opptatt valgbås (eller angrer valgbås-beep) vil denne sette =aktiv= til =false= for den aktuelle raden. Valgbåsen lar kun en person avgi stemme hvis det finnes en rad der =aktiv= er =true=. Denne tabellen har en fremmednøkkel mot =kort= , siden kortet ikke nødvendigvis må være registrert i systemet (men det må finnes et kort lagt ut for salg). Det gjøres mindre validering her: det som sjekkes er at kortet er et medlemskort, og hvis det tilhører et medlem i systemet, sjekk at denne personen ikke har kort som har blitt brukt til å avlegge stemme på nett.

!!! Valgbås-sesjon

=valgbaas_sesjon= representerer nettop det: en valgbås-sesjon. Hva er det for noe? Jo, vi må ha en måte å si at Raspberry PI-en som brukes som valgbås-PC faktisk er den eneste legitime kilden til stemmer i valgbåsen. Dette gjøres med litt autentisering: for hver sesjon genereres et 7-sifret passord. Dette passordet kan man så taste inn i valgbåsen når den starter opp. Etter det opprettes det en UUID-token ( =sesjon_pollett= ) i databasen, som også lagres som en cookie i nettleseren på Raspberry PI-en for videre autentisering, slik at man kun trenger å taste passordet en gang. Denne cookien er gyldig i 24 timer.

Valgbås-sesjoner kan ugydliggjøres ved å sette =gyldig= til =false= . Dette kan man gjøre hvis det mot formodning skulle være noen hackere som taster inn passordet et annet sted og prøver å si at de er valgbåsen. Det kan kun eksistere en gyldig sesjon om gangen, så man vil merke at man ikke får til å sette opp valgbåsen. Da kan man ugyldiggjøre sesjonen og lage en ny en.

Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: (changelog)