add voting portal #7

Merged
kiara merged 17 commits from vote into main 2023-01-27 14:47:10 +00:00
Owner

de huidige opzet hier houdt in dat de tokens van leden voor een vergadering, voorheen alleen gebruikt voor hun persoonlijke links tot de digitale vergadering (die hun naam instelt in BigBlueButton en ze als aanwezig markeerde voor stemmingen), nu ook gebruikt worden voor de link naar de stem portaal.

implicatie hiervan is dat Ingang admins zo ook toegang krijgen tot de stem credentials, in plaats van enkel de systeembeheerders met toegang tot de Helios database.

waar die kennis iemand wel in staat stelt om namens een ander te stemmen, wordt dit risico in check gehouden doordat dit niet ongemerkt gaat: na het uitbrengen van een stem wordt er naar het bijbehorende email adres een bevestiging gestuurd.
het risico bij anderszins kwaadwillenden die de info verkrijgen is hetzelfde; gebruik ervan gaat niet ongemerkt.

waar het mogelijk zou zijn om van de bestaande token af te wijken voor dit doeleinde naar een hash niet zichtbaar voor Ingang admins, zou dit ook nadelen hebben.
af en toe hebben we leden voor wie de mailtjes uit Ingang niet makkelijk aankomen, in welk geval we nu handmatig een inlog link kunnen doorgeven.
mochten de nodige info hiervoor niet meer beschikbaar zijn voor degene die een ALV technisch runt, dan worden juist dit soort situaties weer lastiger.

de huidige opzet hier houdt in dat de tokens van leden voor een vergadering, voorheen alleen gebruikt voor hun persoonlijke links tot de digitale vergadering (die hun naam instelt in BigBlueButton en ze als aanwezig markeerde voor stemmingen), nu ook gebruikt worden voor de link naar de stem portaal. implicatie hiervan is dat Ingang admins zo ook toegang krijgen tot de stem credentials, in plaats van enkel de systeembeheerders met toegang tot de Helios database. waar die kennis iemand wel in staat stelt om namens een ander te stemmen, wordt dit risico in check gehouden doordat dit niet ongemerkt gaat: na het uitbrengen van een stem wordt er naar het bijbehorende email adres een bevestiging gestuurd. het risico bij anderszins kwaadwillenden die de info verkrijgen is hetzelfde; gebruik ervan gaat niet ongemerkt. waar het mogelijk zou zijn om van de bestaande token af te wijken voor dit doeleinde naar een hash niet zichtbaar voor Ingang admins, zou dit ook nadelen hebben. af en toe hebben we leden voor wie de mailtjes uit Ingang niet makkelijk aankomen, in welk geval we nu handmatig een inlog link kunnen doorgeven. mochten de nodige info hiervoor niet meer beschikbaar zijn voor degene die een ALV technisch runt, dan worden juist dit soort situaties weer lastiger.
kiara added 2 commits 2023-01-24 13:29:29 +00:00
kiara added 6 commits 2023-01-24 15:37:10 +00:00
kiara added 2 commits 2023-01-25 18:28:08 +00:00
joep requested changes 2023-01-26 21:59:37 +00:00
@ -142,2 +142,4 @@
def destroy_all
@users.each do |user|
Vote.where(user_id: user.id).each do |vote|
vote.destroy
Member

Moeten votes ook niet verwijderd worden bij het verwijderen van een enkele user? zie destroy functie

Moeten `votes` ook niet verwijderd worden bij het verwijderen van een enkele user? zie `destroy` functie
Member

wat betreft veiligheid. je gaf aan dat admins bij de stemmen kunnen. zo te zien kunnen admins ook stemmen verwijderen.

ik raad aan de stemmen niet uit de database te verwijderen, maar ze enkel op 'verwijderd' te zetten.

wat betreft veiligheid. je gaf aan dat admins bij de stemmen kunnen. zo te zien kunnen admins ook stemmen verwijderen. ik raad aan de stemmen niet uit de database te verwijderen, maar ze enkel op 'verwijderd' te zetten.
Author
Owner

dank, update gepusht voor destroy.
de info in de vote tabel is niet langer relevant dan ten tijde van de login om te stemmen zonder email.
vervolgens krijgen stemmers een mailtje met info om hun stem te verifieren, en vervalt de relevantie van de oorspronkelijke login.

dank, update gepusht voor `destroy`. de info in de vote tabel is niet langer relevant dan ten tijde van de login om te stemmen zonder email. vervolgens krijgen stemmers een mailtje met info om hun stem te verifieren, en vervalt de relevantie van de oorspronkelijke login.
@ -0,0 +1,75 @@
class VotesController < ApplicationController
http_basic_authenticate_with name: Rails.application.config.admin_name,
Member

opmerking voor later: niet heel handig dat alle admins met hetzelfde account inloggen. hierdoor kan je niet bijhouden wie welke handeling heeft verricht..

opmerking voor later: niet heel handig dat alle admins met hetzelfde account inloggen. hierdoor kan je niet bijhouden wie welke handeling heeft verricht..
Author
Owner

eens, is wat het resultaat geweest van meer projecten dan mensen.
de data in dit project is van zeer tijdelijke aard tho, en verwachting tot nu toe is geweest dat deze ivm AVG na de dag van de vergadering weer verwijderd wordt.

eens, is wat het resultaat geweest van meer projecten dan mensen. de data in dit project is van zeer tijdelijke aard tho, en verwachting tot nu toe is geweest dat deze ivm AVG na de dag van de vergadering weer verwijderd wordt.
@ -0,0 +35,4 @@
vote_fields = {
:room_id => room_id,
:user_id => user.id,
:election_slug => csv_fields[:short_name],
Member

this code probably fails if :user_id and :election_slug combination already exists. catch duplicate exception.

this code probably fails if `:user_id` and `:election_slug` combination already exists. catch duplicate exception.
Author
Owner

thanks! looks like your ruby already got better than mine ;), i indeed had yet to test upserts, and it does indeed turn out my db uniqueness constraint won't do here.

i'll try and push an update to address this. got the code now, but seems to use upsert i should still migrate it from sqlite to postgres as well.

thanks! looks like your ruby already got better than mine ;), i indeed had yet to test upserts, and it does indeed turn out my db uniqueness constraint won't do here. i'll try and push an update to address this. got the code now, but seems to use upsert i should still migrate it from sqlite to postgres as well.
Author
Owner

i pushed some commits to address this, manually tested to verify this works now.

i pushed some commits to address this, manually tested to verify this works now.
kiara marked this conversation as resolved
@ -0,0 +52,4 @@
# DELETE /rooms/:room_id/votes.json
def destroy_for_room
@votes.each do |vote|
vote.destroy
Member

wederom: waarom verwijder functies van stemmen? overweeg soft deletes

wederom: waarom verwijder functies van stemmen? overweeg `soft deletes`
kiara added 1 commit 2023-01-26 22:46:46 +00:00
kiara added 1 commit 2023-01-27 11:28:19 +00:00
kiara added 2 commits 2023-01-27 11:51:55 +00:00
kiara added 1 commit 2023-01-27 11:53:57 +00:00
kiara added 1 commit 2023-01-27 12:18:18 +00:00
kiara added 1 commit 2023-01-27 13:39:56 +00:00
kiara merged commit 9d67656f44 into main 2023-01-27 14:47:10 +00:00
kiara referenced this issue from a commit 2023-01-27 14:47:11 +00:00
kiara deleted branch vote 2023-01-27 14:47:11 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: bij1/ingang#7
No description provided.