On 7/10/07, Simetrical Simetrical+wikilist@gmail.com wrote:
Then you need to account for the namespaces too. *That's* probably not going to make MySQL happy: (xx_namespace = ... AND xx_title = ...) OR (xx_namespace = ... AND xx_title = ...) OR ... I don't think there's a way to do that with IN.
We only have to do this if we have a blacklist for an otherwise readable namespace. I don't think we have such feature. On the other hand, if whitelists allow multiple namespaces, it can get fairly ugly:
WHERE ... AND ( xx_namespace NOT IN (banned NSs) OR (xx_namespace = banned_ns1 AND xx_title IN (ns1_whitelist) OR (xx_namespace = banned_ns2 AND xx_title IN (ns2_whitelist) .... )
In short - its easier to restrict API from performing "get all pages in a non-readable NS". API would still give the content of the whitelisted pages - individual page rights validation there.
If we allow individual page visibility to be controlled through a plugin, API could become very inefficient.