I'm getting near to putting the site live now (migrating a fairly mature member's-club site from PostNuke, with differing levels of access for differing groups of users), and am having another one of those "There's gotta be an easy way..." moments again.
I have several individual nodes (pages, currently, but there'll be the odd webform and possibly others) which I want to make available just to certain pools of users. For example, a "Why should I register?" page to users who aren't logged on; a "Why should I join the club?" page to users - logged-on and not - who aren't in the "Known to be club members" role - and the odd node which should only be shown to those in the "known club members" role.
So - what's the easy way...? There's two real approaches to my mind - restrict the node, and just hide the menu item. Doing the former automagically does the latter. Nice. Very nice. I'm used to doing the latter - less elegant, but not the end of the world. Clearly, I'd prefer the former.
The "Private" module is just that bit too coarse-grained, but closest to what I'm after, I think. ACL and it's various sister modules don't quite hit the button - or am I missing something?
How do you do it?
Comments
Content Access
Content Access (http://drupal.org/project/content_access)
Node access (http://drupal.org/project/nodeaccess)
Either should do the trick.
I'd had a look at Content
I'd had a look at Content Access - and it seems to be more "by-content-type" than "by-individual-node". Yes, I could have umpty-seven different but similar content types differing only in access, but life's too short...
NodeAccess - very interesting, don't know quite how I'd missed that. But it's not _quite_ perfect, unless I'm missing something. It looks like I can't say "Deny this node to people within the 'Club Members' role, but show it to all other authenticated users".
I've just seen mention of Simple_Access in another thread - I'll give that a try in the morning.
Content Access can control
Content Access can control permissions based on content type, however, it can also do per-node. See screenshot: http://drupal.org/node/257453
How did I miss that?
So it does...
Again, though, it doesn't allow me to deny access - so I can't use it to remove the link from Club Members whilst leaving it available to Authenticated Users outside that group.
Simple Access is a bit too simple.
I'm wondering if I might be best going with a mix of approaches - node permissions (probably NodeAccess) to restrict from "lower" groups, and menu item hiding to simplify for "higher" groups.
Yep, I think Menu Per Role does what I'm after...
It typically isn't wise to
It typically isn't wise to use two different permission modules on the same site...permissions modules don't play nice unless they are designed to work together...
Even when they're doing two
Even when they're doing two different jobs on completely different bits of content?
Literally, we're talking about a handful of menu items which are hidden to one role - and some nodes which'll be available only to one role.
If the same piece of content was being fiddled with by both, sure. But...?
Testing shows that there doesn't _appear_ to be any strange interaction - MenuPerRole and ContentAccess seem to be playing nicely together, at least for the mo...