Thanks for the reply, I have actually found out an alternative way to programatically set the builtin acl. cheers. James On Wed, Dec 10, 2008 at 5:58 PM, Christopher Smith <chris@xxxxxxxxxxxxx>wrote: > > On 10 Dec 2008, at 04:47, James Lin wrote: > > Hi Guys, >> >> I am trying to write a custom ACL plugin to restrict access to individual >> wiki pages, it works like this: >> >> putting the tag {{restrict group=developers /restrict}} at the beginning >> of the wiki page. >> >> my problem is: >> >> if the access is denied, I need to change the wiki page content to display >> some friendly message. However I don't know how to modify the content >> outside my syntax scope. >> if I use $renderer->doc .= "access denied", it only replace my syntax but >> not global content. >> >> I know the builtin ACL does similar thing but I just don't know which >> internal function to use. Please help. >> >> Cheers >> >> James Lin >> > > > > My guess would be: > > Handle your tag in metadata rather than html. Take a look at the Dublin > Core, http://dublincore.org, for possible standard terms (dokuwiki > metadata keys) that would be appropriate. "rights" and "accessRights" are > possibilities. By having the information in the dokuwiki's page metadata it > is easy for other code to check the metadata value (see p_get_metadata() > function in inc/parserutils.php). > > Your ACL backend or an action plugin would then check the page's metadata > for the metadata keys and respond accordingly. If its an ACL backend you'll > get DokuWiki's standard restricted access message. If its an action plugin, > you'll need to review the event list ( > http://www.dokuwiki.org/devel:events_list) to work out which event is most > appropriate - possibly TPL_ACT_RENDER. Handling this properly as a plugin > would also mean intervening in other dokuwiki actions where page links are > hidden when the user does not have read access (e.g. search) probably via > the SEARCH_QUERY_PAGELOOKUP event. > > Cheers, > > Chris > -- > DokuWiki mailing list - more info at > http://wiki.splitbrain.org/wiki:mailinglist >