diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2009-02-12 16:31:05 -0500 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-02-12 16:33:35 -0500 |
commit | 2c51b18aec0cebd1a433cb541fe80f8ade7b3936 (patch) | |
tree | 575b6ab25cb3ff52b7c12311f4a56f5fa5f1d2cf /IkiWiki | |
parent | c0405e0f20e49c382b656bf9c83c4dd1aa0fc187 (diff) |
move check_canedit, check_content to IkiWiki library from editpage
It no longer makes sense to keep these functions in editpage, because
serveral plugins now exist that use them, and users may want to disable
editpage, while leaving those plugins enabled.
Most notably, comments uses both functions, and it's entirely appropriate
to disable editpage but still want to have comments enabled.
Less likely, attachments, rename, and remove all use check_canedit -- but
it would be unusual indeed to want to use these w/o editpage.
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Plugin/editpage.pm | 66 |
1 files changed, 1 insertions, 65 deletions
diff --git a/IkiWiki/Plugin/editpage.pm b/IkiWiki/Plugin/editpage.pm index c206d96a4..0068a6b11 100644 --- a/IkiWiki/Plugin/editpage.pm +++ b/IkiWiki/Plugin/editpage.pm @@ -51,73 +51,9 @@ sub refresh () { # Back to ikiwiki namespace for the rest, this code is very much # internal to ikiwiki even though it's separated into a plugin, -# and other plugins use the functions below. +# and other plugins use the function below. package IkiWiki; -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 defined $canedit ? $canedit : 1; -} - -sub check_content (@) { - my %params=@_; - - return 1 if ! exists $hooks{checkcontent}; # optimisation - - if (exists $pagesources{$params{page}}) { - my @diff; - my %old=map { $_ => 1 } - split("\n", readfile(srcfile($pagesources{$params{page}}))); - foreach my $line (split("\n", $params{content})) { - push @diff, $line if ! exists $old{$_}; - } - $params{content}=join("\n", @diff); - } - - my $ok; - run_hooks(checkcontent => sub { - return if defined $ok; - my $ret=shift->(%params); - if (defined $ret) { - if ($ret eq "") { - $ok=1; - } - elsif (ref $ret eq 'CODE') { - $ret->() unless $params{nonfatal}; - $ok=0; - } - elsif (defined $ret) { - error($ret) unless $params{nonfatal}; - $ok=0; - } - } - - }); - return defined $ok ? $ok : 1; -} - sub cgi_editpage ($$) { my $q=shift; my $session=shift; |