- password = params[:id]
- password = params[:vote][:password] if params[:vote]
- if @voter = FullVoter.find(:all, :conditions => [ "password = ?", password ] )[0]
- @voter.vote = Vote.new if @voter.vote.nil?
+ if params[:election_id]
+ @election = Election.find(params[:election_id])
+ unless @election.authenticated?
+ @voter = Voter.find(:all,
+ :conditions => ["session_id = ? and election_id = ?",
+ session.session_id, @election.id])[0]
+
+ @voter = Voter.new unless @voter
+
+ @voter.election = @election
+ @voter.session_id = session.session_id
+ @password = "open." + @election.id.to_s
+ end
+ elsif params[:urlpassword]
+ password = params[:urlpassword]
+
+ if @voter = FullVoter.find(:all,
+ :conditions => [ "password = ?", password ] )[0]
+ @election = @voter.election
+ @password = @voter.password
+ end
+ end
+
+ if @voter and @election
+ # initialize things if the vote is blank
+ if @voter.vote.nil?
+ @voter.vote = Vote.new
+ @voter.save
+ end
+