-sub check_canedit ($$$;$) {
- my $page=shift;
- my $q=shift;
- my $session=shift;
- my $nonfatal=shift;
-
- my $canedit;
- run_hooks(canedit => sub {
- return if defined $canedit;
- my $ret=shift->($page, $q, $session);
- 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;
-}
-
-sub check_cansave ($$$$) {
- my $page=shift;
- my $content=shift;
- my $q=shift;
- my $session=shift;
-
- my $cansave;
- run_hooks(cansave => sub {
- return if defined $cansave;
- my $ret=shift->($page, $content, $q, $session);
- if (defined $ret) {
- if ($ret eq "") {
- $cansave=1;
- }
- elsif (ref $ret eq 'CODE') {
- $ret->();
- $cansave=0;
- }
- else {
- error($ret);
- $cansave=0;
- }
- }
- });
- return $cansave;
-}
-