wiki:ProtectedMacro

Version 4 (modified by frayja, 15 years ago) (diff)

--

Protect parts of a wiki page from invalid access

Description

With the TracProtected macro it is possible to limit access to parts of a wiki page.

A protected part has the following syntax:

{{{                                                
#!protected                                        
#:This is what an unauthorized user sees (optional)
This is what an authorized user sees               
}}}

A protected part can use !protected, !protected-red, !protected-blue, or !protected-green to provide access restrictions on different levels. Users will only see these protected sections when they have the permissions "PROTECTED_VIEW", "PROTECTED_RED_VIEW", "PROTECTED_BLUE_VIEW", or "PROTECTED_GREEN_VIEW", respectively.

A #!protected part will be rendered with a red line to the left, a #!protected-blue part will be rendered with a blue line to the left, etc.

Attachments are protected when the key-string "!protected", "!protected-red", "!protected-blue", or "!protected-green" is present in the attachment's description. To enable the attachment protection the conf/trac.ini must be modified. Add the ProtectedAttachmentPolicy to the permission_policies:

[trac]                                                                  
permission_policies = ProtectedAttachmentPolicy, DefaultPermissionPolicy

Note: a user who is allowed to edit the wiki page will always be able to see (and edit) protected parts.

Improvements:

  • Filter out hidden parts when editing a wiki page
  • Supply an admin feature to add/edit protected-xxx
  • Supply an admin feature to edit the style/template for a permission part
  • Give visual feedback for unauthorized attachments in the attachment list

Bugs/Feature Requests

Existing bugs and feature requests for ProtectedMacro are here.

If you have any issues, create a new ticket.

Download

Download the zipped source from [download:protectedmacro here].

Source

You can check out ProtectedMacro from here using Subversion, or browse the source with Trac.

Example

{{{
#!protected
#: This will only be visible to those that do not have the PROTECTED_VIEW
This will only be visible to those that have PROTECTED_VIEW
Will show all content with a red line to the left
}}}

{{{
#!protected-red
#: This will only be visible to those that do not have the PROTECTED_RED_VIEW
This will only be visible to those that have PROTECTED_RED_VIEW
Will show all content with a red line to the left
}}}

{{{
#!protected-blue
#: This will only be visible to those that do not have the PROTECTED_BLUE_VIEW
This will only be visible to those that have PROTECTED_BLUE_VIEW
Will show all content with a blue line to the left
}}}

{{{
#!protected-green
#: This will only be visible to those that do not have the PROTECTED_GREEN_VIEW
This will only be visible to those that have PROTECTED_GREEN_VIEW
Will show all content with a green line to the left
}}}

Recent Changes

7628 by frayja on 2010-02-17 07:32:48
Fix by miau: the format must be checked since the action will be 'view' when you download a plain text
6679 by frayja on 2009-10-12 12:53:40
A little code cleanup. The filter is part of wiki page security, so can be in the same class as the other wiki page security features
6678 by frayja on 2009-10-12 12:43:12
Added a security filter on other view actions such as edit and diff
(more)

Author/Contributors

Author: frayja
Contributors: