diff options
Diffstat (limited to 'doc/plugins')
-rw-r--r-- | doc/plugins/blogspam.mdwn | 25 | ||||
-rw-r--r-- | doc/plugins/write.mdwn | 22 |
2 files changed, 46 insertions, 1 deletions
diff --git a/doc/plugins/blogspam.mdwn b/doc/plugins/blogspam.mdwn new file mode 100644 index 000000000..a090f9c60 --- /dev/null +++ b/doc/plugins/blogspam.mdwn @@ -0,0 +1,25 @@ +[[!template id=plugin name=blogspam author="[[Joey]]"]] +[[!tag type/auth]] + +This plugin adds antispam support to ikiwiki, using the +[blogspam.net](http://blogspam.net/) API. Both page edits and +[[comment|comments]] postings can be checked for spam. Currently, +detected spam is not saved for human review, it is just rejected. + +The plugin requires the [[!cpan RPC::XML]] perl module. + +You can control how content is tested via the `blogspam_options` setting. +The list of options is [here](http://blogspam.net/api/testComment.html#options). +By default, the options are configured in a way that is appropriate for +wiki content. This includes turning off some of the more problimatic tests. + +The `blogspam_pagespec` setting is a [[ikiwiki/PageSpec]] that can be +used to configure which pages are checked for spam. The default is to check +all edits. If you only want to check [[comments]] (not wiki page edits), +set it to "postcomment(*)". + +By default, the blogspam.net server is used to do the spam checking. To +change this, the `blogspam_server` option can be set to the url for a +different server implementing the same API. Note that content is sent +unencrypted over the internet to the server, and the server sees +the full text of the content. diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 4db02b532..ef14f18db 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -303,7 +303,7 @@ can check if the session object has a "name" parameter set. ### canedit - hook(type => "canedit", id => "foo", call => \&pagelocked); + hook(type => "canedit", id => "foo", call => \&canedit); This hook can be used to implement arbitrary access methods to control when a page can be edited using the web interface (commits from revision control @@ -356,6 +356,26 @@ but is passed: * a session object * the named parameters `src`, `srcfile`, `dest` and `destfile`. +### checkcontent + + hook(type => "checkcontent", id => "foo", call => \&checkcontent); + +This hook is called to check the content a user has entered on a page, +before it is saved, and decide if it should be allowed. + +It is passed named parameters: `content`, `page`, `cgi`, and `session`. If +the content the user has entered is a comment, it may also be passed some +additional parameters: `author`, `url`, and `subject`. The `subject` +parameter may also be filled with the user's comment about the change. + +Note: When the user edits an existing wiki page, the passed `content` will +include only the lines that they added to the page, or modified. + +The hook should return `undef` on success. If the content is disallowed, it +should return a message stating what the problem is, or a function +that can be run to perform whatever action is necessary to allow the user +to post the content. + ### editcontent hook(type => "editcontent", id => "foo", call => \&editcontent); |