X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/fd484b33a3920e0031007c5c2f1dec61913cbab5..05ebed925ae2b5e7bf2a599536ba7d7ac15ffbf7:/app/models/voter.rb diff --git a/app/models/voter.rb b/app/models/voter.rb index c4700cb..5ffa30f 100644 --- a/app/models/voter.rb +++ b/app/models/voter.rb @@ -1,18 +1,38 @@ +# Selectricity: Voting Machinery for the Masses +# Copyright (C) 2007, 2008 Benjamin Mako Hill +# Copyright (C) 2007 Massachusetts Institute of Technology +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public +# License along with this program. If not, see +# . + class Voter < ActiveRecord::Base belongs_to :election has_one :vote - - before_create :create_password - - def create_password - token_generator = UniqueTokenGenerator.new( 16 ) - until password and not password.empty? \ - and Voter.find_all( [ "password = ?", password ]).empty? - self.password = token_generator.token - end + + def reset_vote + self.vote.destroy + self.reload + end + + def destroy + vote.destroy if vote + super end + def voted? + vote.confirmed == 1 + end end -