This is my idea (mockup only) for taxonomy permissions:
http://www.construct3d.com/temp/taxperm.htm
The basic idea is to keep it simple and usable, whilst still allowing flexibility.
The select options are:
- inherit
- no access
- read only
- read/write
inherit is the default, so permissions are automatically inherited from the term's parent, but can be overridden easily when required. This saves having to explicitly set each term's permissions, especially if the taxonomy tree is large.
no access means those taxonomy vocabularies and terms are not shown anywhere (including menus) and if a user were to type a valid URL, they'd get the usual access denied page. Would this require modifications to the core menu system?
Given that Drupal now supports multiple roles per user, user-level permissions could be accomplished with the same interface. For example, if the admin wanted a single user to have access to a particular term, simply create a new role, assign the user to that role and then allocate the relevant permissions.
Similarly with node-level permissions, if the admin wanted a role to have access to a particular node, simply create a new parent term for that node and assign the relevant role permissions.
In this way one interface could serve all three purposes.