diff options
author | Jan Dittberner <jandd@cacert.org> | 2020-04-14 23:23:23 +0200 |
---|---|---|
committer | Jan Dittberner <jandd@cacert.org> | 2020-04-14 23:25:11 +0200 |
commit | 58898b29a7bd0c2f2e7417b2f713a0eda2cb36f4 (patch) | |
tree | 347c2c5aa30cd4ac0ff33f9d2abac1ed80f1f198 /models.go | |
parent | 6c9bf09f1a4bd12fc1f91419a3de9242a5c1cb2c (diff) | |
download | cacert-boardvoting-58898b29a7bd0c2f2e7417b2f713a0eda2cb36f4.tar.gz cacert-boardvoting-58898b29a7bd0c2f2e7417b2f713a0eda2cb36f4.tar.xz cacert-boardvoting-58898b29a7bd0c2f2e7417b2f713a0eda2cb36f4.zip |
Add new table user_roles
This commit adds a new database table user_roles to prepare for the
introduction of a voter management system. All existing enabled voters
are added to the VOTER role.
Diffstat (limited to 'models.go')
-rw-r--r-- | models.go | 24 |
1 files changed, 15 insertions, 9 deletions
@@ -1,5 +1,5 @@ /* - Copyright 2017-2019 Jan Dittberner + Copyright 2017-2020 Jan Dittberner Licensed under the Apache License, Version 2.0 (the "License"); you may not use this program except in compliance with the License. @@ -86,14 +86,16 @@ FROM votes JOIN voters ON votes.voter=voters.id WHERE decision=$1`, sqlLoadEnabledVoterByEmail: ` -SELECT voters.id, voters.name, voters.enabled, voters.reminder +SELECT voters.id, voters.name, voters.reminder FROM voters JOIN emails ON voters.id=emails.voter -WHERE emails.address=$1 AND voters.enabled=1`, +JOIN user_roles ON user_roles.voter_id=voters.id +WHERE emails.address=$1 AND user_roles.role='VOTER'`, sqlGetEnabledVoterById: ` -SELECT id, name, enabled, reminder +SELECT voters.id, voters.name, voters.reminder FROM voters -WHERE enabled=1 AND id=$1`, +JOIN user_roles ON user_roles.voter_id=voters.id +WHERE user_roles.role='VOTER' AND voters.id=$1`, sqlCountOlderThanDecision: ` SELECT COUNT(*) > 0 FROM decisions WHERE proposed < $1`, sqlCountOlderThanUnvotedDecision: ` @@ -123,10 +125,15 @@ WHERE decisions.status=0 AND :now > due`, sqlGetNextPendingDecisionDue: ` SELECT due FROM decisions WHERE status=0 ORDER BY due LIMIT 1`, sqlGetVotersForProxy: ` -SELECT id, name, reminder -FROM voters WHERE enabled=1 AND id != $1`, +SELECT voters.id, voters.name, voters.reminder +FROM voters +JOIN user_roles ON user_roles.voter_id=voters.id +WHERE user_roles.role='VOTER' AND voters.id != $1`, sqlGetReminderVoters: ` -SELECT id, name, reminder FROM voters WHERE enabled=1 AND reminder!='' AND reminder IS NOT NULL`, +SELECT voters.id, voters.name, voters.reminder +FROM voters +JOIN user_roles ON user_roles.voter_id=voters.id +WHERE user_roles.role='VOTER' AND reminder!='' AND reminder IS NOT NULL`, sqlFindUnvotedDecisionsForVoter: ` SELECT tag, title, votetype, due FROM decisions @@ -162,7 +169,6 @@ type Decision struct { type Voter struct { Id int64 Name string - Enabled bool Reminder string // reminder email address } |