* poll: This plugin turns out to have edited pages w/o doing any locking.
Oops. Convert it from a cgi to a sessioncgi hook, which will work much better.master
parent
80915c830a
commit
9f60272831
|
@ -7,7 +7,7 @@ use IkiWiki 2.00;
|
|||
|
||||
sub import { #{{{
|
||||
hook(type => "preprocess", id => "poll", call => \&preprocess);
|
||||
hook(type => "cgi", id => "poll", call => \&cgi);
|
||||
hook(type => "sessioncgi", id => "poll", call => \&sessioncgi);
|
||||
} # }}}
|
||||
|
||||
sub yesno ($) { #{{{
|
||||
|
@ -74,8 +74,9 @@ sub preprocess (@) { #{{{
|
|||
return "<div class=poll>$ret</div>";
|
||||
} # }}}
|
||||
|
||||
sub cgi ($) { #{{{
|
||||
sub sessioncgi ($) { #{{{
|
||||
my $cgi=shift;
|
||||
my $session=shift;
|
||||
if (defined $cgi->param('do') && $cgi->param('do') eq "poll") {
|
||||
my $choice=$cgi->param('choice');
|
||||
if (! defined $choice) {
|
||||
|
@ -92,7 +93,6 @@ sub cgi ($) { #{{{
|
|||
|
||||
# Did they vote before? If so, let them change their vote,
|
||||
# and check for dups.
|
||||
my $session=IkiWiki::cgi_getsession();
|
||||
my $choice_param="poll_choice_${page}_$num";
|
||||
my $oldchoice=$session->param($choice_param);
|
||||
if (defined $oldchoice && $oldchoice eq $choice) {
|
||||
|
|
|
@ -11,6 +11,9 @@ ikiwiki (2.31) UNRELEASED; urgency=low
|
|||
* cgi hooks are now run before ikiwiki state is loaded.
|
||||
* This allows locking the wiki before loading state, which avoids some
|
||||
tricky locking code when saving a web edit.
|
||||
* poll: This plugin turns out to have edited pages w/o doing any locking.
|
||||
Oops. Convert it from a cgi to a sessioncgi hook, which will work
|
||||
much better.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Sat, 02 Feb 2008 23:36:31 -0500
|
||||
|
||||
|
|
Loading…
Reference in New Issue