andrewcmyers / civs

Condorcet Internet Voting System
http://civs1.civs.us
MIT License
91 stars 28 forks source link

Can't recast ballot when detailed reporting + voter identities is enabled #56

Open ace24713 opened 1 year ago

ace24713 commented 1 year ago

At least on the web version if I check off "Enable detailed ballot reporting" and "In detailed ballot report, also reveal the identity of the voter with each ballot" once a user has cast a ballot it still returns a voter receipt as usual, but it doesn't seem usable.

On the landing page after casting your vote, the "revote" button just takes you back to the vote page and allows you to cast a second ballot, but the original ballot is not retracted, and you get an "already voted" error if you enter the same identity.

Beyond that, if you've left the landing page, there's no ui anywhere to enter your receipt and recast your ballot.

andrewcmyers commented 1 year ago

Thanks for the report; I'll try to look into this when I have time.

andrewcmyers commented 1 year ago

The UI for recasting the vote can be accessed by clicking on the voting link in the email, but I agree that revoting doesn't work in this case.

ace24713 commented 1 year ago

To clarify: with a Public poll, using the voting link normally brings you to the vote page - but if it already has a ballot from your ip address it instead directs you to the "already voted" page with the recast ballot option.

If voter identity is enabled it skips the ip duplicate check that normally happens on Public polls, so the voting link always brings you to the vote page. Although I have since found you can get taken to the "already voted" page if you try to cast a vote with the same voter identity. Not super obvious, but it works.

But regardless of how you trigger it, your original vote never gets retracted and the recast doesn't work.

cwassert commented 1 year ago

Where can I recast my vote using the voting receipt? Both the FAQ and the confirmation page ask me to save it. But where do I enter it?

andrewcmyers commented 1 year ago

At the "Already Voted" page that the voting link takes you to, there should be a Revote button and a slot to type in your receipt.

cwassert commented 1 year ago

If I open that page I can just vote again. I guess my IP changed? To clarify: I do not want to change my vote right away, but several days later, long after the page has been closed.

andrewcmyers commented 1 year ago

Probably your IP changed, in which case it thinks you are a new voter and doesn't show the revote UI. It would make sense to show that.

ace24713 commented 1 year ago

Just to add something, I've observed the new "Turn off IP address checking so multiple voters can vote from the same network address." option for public polls seems to exhibit the same behavior: attempting to recast your ballot does not work, and it'll instead just cast a new ballot.

I'm reasonably confident it's just another symptom of the same issue, so I'm just documenting it in a comment here rather than opening a new issue for it.