}
} #}}}
-
+
sub showform ($$$$) { #{{{
my $form=shift;
my $buttons=shift;
run_hooks(canedit => sub {
return if defined $canedit;
my $ret=shift->($page, $q, $session);
- if (defined $ret && $ret eq "") {
- $canedit=1;
- }
- elsif (defined $ret) {
- $canedit=0;
- error($ret) unless $nonfatal;
+ if (defined $ret) {
+ if ($ret eq "") {
+ $canedit=1;
+ }
+ elsif (ref $ret eq 'CODE') {
+ $ret->() unless $nonfatal;
+ $canedit=0;
+ }
+ elsif (defined $ret) {
+ error($ret) unless $nonfatal;
+ $canedit=0;
+ }
}
});
return $canedit;
elsif ($do eq 'create' || $do eq 'edit') {
cgi_editpage($q, $session);
}
- elsif (defined $session->param("postsignin")) {
+ elsif (defined $session->param("postsignin") || $do eq 'postsignin') {
cgi_postsignin($q, $session);
}
else {