Author: humbedooh
Date: Thu Mar 26 10:49:08 2015
New Revision: 1669314

URL: http://svn.apache.org/r1669314
Log:
if a vote validator has been specified, run it

Modified:
    steve/trunk/pysteve/lib/election.py

Modified: steve/trunk/pysteve/lib/election.py
URL: 
http://svn.apache.org/viewvc/steve/trunk/pysteve/lib/election.py?rev=1669314&r1=1669313&r2=1669314&view=diff
==============================================================================
--- steve/trunk/pysteve/lib/election.py (original)
+++ steve/trunk/pysteve/lib/election.py Thu Mar 26 10:49:08 2015
@@ -158,9 +158,16 @@ def vote(electionID, issueID, voterID, v
     "Casts a vote on an issue"
     votes = {}
     basedata = getBasedata(electionID)
-    if basedata:
+    issueData = getIssue(electionID, issueID)
+    if basedata and issueData:
         votehash = hashlib.sha224(basedata['hash'] + issueID + voterID + 
vote).hexdigest()
         
+        # Vote verification
+        voteType = getVoteType(issueData)
+        if 'vote_func' in voteType and voteType['vote_func']:
+            # This will/should raise an exception if the vote is invalid
+            voteType['vote_func'](electionID, issueID, voterID, vote)
+            
         if config.get("database", "dbsys") == "file":
             issuepath = os.path.join(homedir, "issues", electionID, issueID) + 
".json"
             if os.path.isfile(issuepath + ".votes"):


Reply via email to