After two years of promising to look at this, I finally did (mostly because I had to update several wikis to use SMW).
It requires only a very minor patch to GlobalFunctions.php to install, and I'm working on removing that barrier in the future.
See: http://www.mediawiki.org/w/index.php?title=Extension:NSFileRepo for full details and installation instructions.
==What can this extension do? ==
The NSFileRepo extension implements a way to restrict access to specified files and images to a given set of user groups using NameSpace protections. This provides a more fine grained security model and allows access restriction to users in specified groups.
==Usage==
Generically, you use the same syntax as a normal file/image reference link, adding the namespace between the file specifier ("File","Image", or "Media"), and the file name:
[[{FILE_NS}:{Namespace}:{Filename}]]
Example(Where "Project" is the protected namespace and "ProjectFile.pdf" is the file to which you wish to limit access):
[[File:Project:ProjectFile.pdf]]]
The standard for accessing files/images is generally:
[[File:Filename.txt]] [[Image:Filename.jpg]] [[Media:Filename.pdf]]
This extension allows you to protect access to files/images, by adding the namespace text identifier after the file namespace identifier, for example(Where "Project" is the protected namespace and "ProjectFile.xxx" is the file to which you wish to limit access):
[[File:Project:Filename.txt]] [[Image:Project:Filename.jpg]] [[Media:Project:Filename.pdf]]
Limitations of security are the same as for Extension Lockdown. To review these limitations, [[Extension:Lockdown#Additional_measures | please reference here]].
To use the full capabilities of this extension (e.g., specific namespace protections), you will need to install and use the namespace protections provided through [[Extension:Lockdown]].
This extension was made possible by the introduction of Repository Classes by Tim Starling - an elegant and brilliant implementation. It uses a new Local Repository class mechanism. Technical details on how this extension works can be found [[Extension:NSFileRepo/DOC | here]].
This extension has only been tested on 1.15.0, but should work on everything
= 1.13.0
I will be testing 1.13.0 and 1.14.0 within the next couple of days. As always, I appreciate any help/advice/support.
Hope this helps!
Jack D. Pond "Although prepared for martyrdom, I preferred that it be postponed." -- Sir Winston Leonard Spencer Churchill(1874-1965)