svn commit: r264576 - user/des/fbp/lib/FBP/Controller
Dag-Erling Smørgrav
des at FreeBSD.org
Thu Apr 17 00:31:03 UTC 2014
Author: des
Date: Thu Apr 17 00:31:02 2014
New Revision: 264576
URL: http://svnweb.freebsd.org/changeset/base/264576
Log:
Allow admins to see inactive polls.
Add safeguards to prevent voting on inactive polls.
Modified:
user/des/fbp/lib/FBP/Controller/Poll.pm
Modified: user/des/fbp/lib/FBP/Controller/Poll.pm
==============================================================================
--- user/des/fbp/lib/FBP/Controller/Poll.pm Thu Apr 17 00:18:51 2014 (r264575)
+++ user/des/fbp/lib/FBP/Controller/Poll.pm Thu Apr 17 00:31:02 2014 (r264576)
@@ -31,7 +31,7 @@ sub poll :Chained('/') :Path :CaptureArg
$pid = $1;
my $poll = $c->model('FBP::Poll')->find($pid);
$c->detach('/default')
- unless $poll && $poll->active;
+ unless $poll && ($poll->active || $c->user->admin);
$c->stash(poll => $poll);
my $psession = ($c->session->{$pid} //= {});
if (!$$psession{answers}) {
@@ -93,6 +93,8 @@ sub vote :Chained('poll') :Path :Args(0)
unless $question;
# Did the user submit any answers?
+ delete($c->req->params->{answer})
+ unless $poll->active;
if ($c->req->params->{qid} ~~ $qid && $c->req->params->{answer}) {
my $answer = $c->req->params->{answer};
$answer = [ $answer ]
@@ -113,6 +115,7 @@ sub vote :Chained('poll') :Path :Args(0)
} elsif ($c->req->params->{done}) {
# Validate all the answers
foreach $question ($questions->all) {
+ next unless $poll->active; # hack
try {
my $answer = $answers->{$question->id};
$question->validate_answer(@{$answer // []});
@@ -173,7 +176,8 @@ sub review :Chained('poll') :Path :Args(
# Validate the answers
try {
- $poll->validate_answer(%$answers);
+ $poll->validate_answer(%$answers)
+ unless $poll->active; # hack
} catch {
$c->stash(error => $_);
$c->detach();
More information about the svn-src-user
mailing list