X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/3316f9cc737c091ff79270f75fc30dd349616b12..fae3cef41a55dace8545429c0139d01b93c69307:/doc/plugins/write.mdwn diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index a927b1629..fff142fa2 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -321,6 +321,21 @@ This hook should avoid directly redirecting the user to a signin page, since it's sometimes used to test to see which pages in a set of pages a user can edit. +### cansave + + hook(type => "cansave", id => "foo", call => \&cansave); + +This hook can be used to implement arbitrary access methods to control +when a page being edited can be saved using the web interface (commits +from revision control bypass it). + +When a page is about to be saved, each registered cansave hook is +called in turn, and passed the page name, the edited content, a CGI +object and a session object. + +The return value of a cansave hook is interpreted the same as for the +canedit hook. + ### canremove hook(type => "canremove", id => "foo", call => \&canremove); @@ -335,7 +350,11 @@ bypass it). It works exactly like the `canedit` hook. This hook can be used to implement arbitrary access methods to control when a page can be renamed using the web interface (commits from revision control -bypass it). It works exactly like the `canedit` hook. +bypass it). It works exactly like the `canedit` and `canremove` hook, +but is passed: +* a CGI object +* a session object +* the named parameters `src`, `srcfile`, `dest` and `destfile`. ### editcontent @@ -392,9 +411,13 @@ new page. hook(type => "rename", id => "foo", call => \&renamepages); When a page or set of pages is renamed, the referenced function is -called, and passed a reference to an array of hashes with keys: -`src`, `srcfile`, `dest`, `destfile`, `required`. It can modify -the array. +called, and is passed: + +* a reference to an array of hashes with keys: `src`, `srcfile`, + `dest`, `destfile`, `required`. Such a hook function can modify + the array. +* a CGI object +* a session object ### getsetup