#!/usr/bin/perl -w
###############################################################################
-# UseVoteGer 4.07 Wahldurchfuehrung
-# (c) 2001-2004 Marc Langer <uv@marclanger.de>
+# UseVoteGer 4.09 Wahldurchfuehrung
+# (c) 2001-2005 Marc Langer <uv@marclanger.de>
#
# This script package is free software; you can redistribute it and/or
# modify it under the terms of the GNU Public License as published by the
my $clean = 0;
my %opt_ctl = ();
-print "\n$usevote_version Wahldurchfuehrung - (c) 2001-2004 Marc Langer\n\n";
+print "\n$usevote_version Wahldurchfuehrung - (c) 2001-2005 Marc Langer\n\n";
# unknown parameters remain in @ARGV (for "help")
Getopt::Long::Configure(qw(pass_through bundling));
# normally unixtime is sufficient, if it is not unique append our PID
my $ext = time;
- opendir (TMP, $config{tmpdir});
- my @tmpfiles = readdir (TMP);
- closedir (TMP);
+ opendir (DIR, $config{tmpdir});
+ my @tmpfiles = readdir (DIR);
+ closedir (DIR);
opendir (FERTIG, $config{archivedir});
my @fertigfiles = readdir (FERTIG);
closedir (FERTIG);
# no mails: exit here
unless ($count) {
- print UVmessage::get("VOTE_NO_VOTES") . "\n\n";
+ print UVmessage::get("VOTE_NO_VOTEMAILS") . "\n\n";
exit 0;
}
my @header = split(/\n/, $entity->stringify_header);
my $head = $entity->head;
my $msgid = $head->get('Message-ID');
- chomp($msgid) if defined($msgid);
+ chomp($msgid) if ($msgid);
my @votes = (); # the votes
my @set; # interactively changed fields
my $onevote = 0; # 0=no votes, 1=everything OK, 2=vote cancelled
my $voteerror = ""; # error message in case of invalid vote
my $ballot_id = ""; # ballot id (German: Wahlscheinkennung)
+ my $voting = ""; # voting (should be votename)
# found address?
if ($voter_addr) {
push (@errors, 'InvalidAddress');
}
+ # correct voting?
+ if ($$body =~ /\Q$config{ballotintro}\E\s+(.+?)\s*$/m) {
+ $voting = $1;
+ push (@errors, 'WrongVoting') if ($config{votename} !~ /^\s*\Q$voting\E\s*$/);
+ } else {
+ push (@errors, 'NoVoting');
+ }
+
# personalized ballots?
if ($config{personal}) {
if ($$body =~ /$config{ballotidtext}\s+([a-z0-9]+)/) {
# Errors encountered?
if (@errors) {
my $res = UVmenu::menu(\@votes, \@header, $body, \$voter_addr, \$voter_name,
- \$ballot_id, \@set, \@errors);
+ \$ballot_id, \$voting, \@set, \@errors);
return 0 if ($res eq 'i'); # "Ignore": Ignore vote, don't save
my $tpl;
my $msg = $template->processTemplate($config{tpl_bdsg_error});
UVsendmail::mail($voter_addr, "Fehler", $msg, $msgid) if ($config{voteack});
return 0;
+ } elsif ($error{NoVoting} or $error{WrongVoting}) {
+ $voteerror = UVmessage::get("VOTE_WRONG_VOTING");
+ my $template = UVtemplate->new();
+ $template->setKey('body' => $$body);
+ my $msg = $template->processTemplate($config{tpl_wrong_voting});
+ UVsendmail::mail($voter_addr, "Fehler", $msg, $msgid) if ($config{voteack});
} elsif ($error{NoVote}) {
$voteerror = UVmessage::get("VOTE_NO_VOTES");
my $template = UVtemplate->new();