Extension:Hidden pages

Wikis are great and MediaWiki is a great Wiki engine (Warning: POV ;-) But under some circumstances you'd like to have some information not publically available but only for the management - for instance private adresses, press contact, financial issues and preparation of suprises. Normally this information is seperated from the Wiki inside of mailings lists, forums or a seperate Wiki. This is very uncomfortable. MediaWiki is designed as an open Wiki Engine without a complicated management of users, groups and right and it should stay as open and simple as possible.

Here are some thoughts on introducing the feature of hidden pages that are only visible and editable by some users. We do not want such pages in Wikipedia but other projects may need them.

Making it simple

 * If hidden pages are defined for whole namespaces you do not add a function to hide/unhide pages. You could use the 'Projectname'-Namespace or additional namespaces like 'intern'
 * If only admins can read and edit hidden pages you do not have to add more user rights management that we already have

Making it secure
Which parts of the software contain functions that return page content?


 * OpenPage
 * Editpage
 * Diff
 * Export XML (less important, can be switched off)
 * Recent changes as RSS? (less important, can be switched off)
 * Randompage

Which parts of the software contain functions that return article titles?
 * Recent changes
 * Watchlist
 * Recent changes in RSS? (less important, can be switched off)
 * Whatlinkshere
 * Lonelypages
 * Uncategorizedpages
 * Popularpages
 * Shortpages
 * ...other special pages...

Implementation
Where is the best point to add the code that prohibits acces to hidden pages for non-admins?

1. Maybe you can add something like

AND NOT cur_namespace = H1 AND NOT NOT cur_namespace = H2 ...

in the SQL statement there with H1...H2 as hidden namespaces?

2. Or set title='' if user is not an admin and title='intern:...'