Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement voting authorization #196

Open
mensch72 opened this issue Oct 13, 2022 · 0 comments
Open

Implement voting authorization #196

mensch72 opened this issue Oct 13, 2022 · 0 comments
Labels
challenging This might take some effort couchdb Probably needs CouchDB-related skills feature A new feature or enhancement ready to implement Sufficiently detailed to start working on --> place in "Issues" typescript Probably needs Typescript-related skills

Comments

@mensch72
Copy link
Collaborator

User story: A poll initiator can mark a poll as "restricted access" and provide a list of email addresses of eligible voters. When pressing "start" on the preview page, each of them is sent a notification automatically via email, containing a private link telling the vodle app the access token for the poll so that the voter can access the poll.

Implementation:

  • Implement a "key distribution" web-service that receives a request containing the poll couchdb credentials, a "poll keylist id" (different from the usual poll id), and eligible email addresses when the initiator presses "start". The service then generates a key pair for each email address, permutes the list of public keys randomly, stores it in the poll couchdb as a document with id equalling the poll keylist id (this document is mentioned in issue prepare for later voter-based voting authorization #67), and sends each email address an email containing a magic link that tells the vodle app the poll keylist id and their private key.
  • The usual invitation message magic link also contains the poll keylist id. Once the user has clicked both magic links, the app looks up the list of eligible public keys, stores it locally, and uses it to verify which voters are eligible as described in prepare for later voter-based voting authorization #67.
@mensch72 mensch72 added feature A new feature or enhancement ready to implement Sufficiently detailed to start working on --> place in "Issues" challenging This might take some effort typescript Probably needs Typescript-related skills couchdb Probably needs CouchDB-related skills labels Oct 13, 2022
@mensch72 mensch72 added this to the Second Release milestone Oct 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
challenging This might take some effort couchdb Probably needs CouchDB-related skills feature A new feature or enhancement ready to implement Sufficiently detailed to start working on --> place in "Issues" typescript Probably needs Typescript-related skills
Projects
None yet
Development

No branches or pull requests

1 participant