[dokuwiki] Re: Syntax Plugin: How to manipulate wiki content

  • From: "James Lin" <guanfenglin@xxxxxxxxx>
  • To: dokuwiki@xxxxxxxxxxxxx
  • Date: Wed, 10 Dec 2008 18:07:38 +1300

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
>

Other related posts: