X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/57a193789d1f48a856816c357483cfd7c621cd9d..e7bff908a0ea52b62e4fa0dc13be0293a51dcbb1:/app/controllers/voter_controller.rb?ds=inline diff --git a/app/controllers/voter_controller.rb b/app/controllers/voter_controller.rb index a912824..9ba619c 100644 --- a/app/controllers/voter_controller.rb +++ b/app/controllers/voter_controller.rb @@ -20,9 +20,7 @@ class VoterController < ApplicationController :conditions => ["session_id = ? and election_id = ?", session.session_id, @election.id])[0] - unless @voter and not @voter.election.kiosk - @voter = OpenVoter.new - end + @voter = OpenVoter.new unless @voter @voter.election = @election @voter.session_id = session.session_id @@ -182,8 +180,10 @@ class VoterController < ApplicationController end def kiosk_ready + reset_session + if not authenticate - redirect_to :action => 'index', :kiosk => true + redirect_to :action => 'index' end end @@ -192,12 +192,27 @@ class VoterController < ApplicationController password = params[:id] if password == "open" election = Election.find(params[:format]) + + # check to see if the person has voted before unless election.authenticated? @voter = OpenVoter.find(:all, :conditions => ["session_id = ? and election_id = ?", session.session_id, election.id])[0] @password = "open." + election.id.to_s end + + # if it's ready for kiosk_mode, then we create and authenticate + unless @voter and params[:action] == 'kiosk_ready' \ + and election.kiosk + + # this is maybe not quite as a dry as it should be + @voter = OpenVoter.new unless @voter + + @voter.election = election + @voter.session_id = session.session_id + @password = "open." + election.id.to_s + end + else @voter = FullVoter.find(:all, :conditions => [ "password = ?", password ] )[0]