36 Sections of Content with Authenticated Access

Events happening in the community are now at Drupal community events on www.drupal.org.
amariotti's picture

I'm trying to set-up a site that will allow students that are enrolled in our different College programs (i.e. IT, Media Design, Pharmacy Technician, etc.) to have access to their curriculum (meaning web links, pdfs, docs, xls, etc.) through a web interface. We are open-entry/open-exit so we have students coming and going all of the time. We would like to keep a close eye on the students when the withdraw from the class to make sure that their access is taken away from the content for that class. This will be done using LDAP Integration with LDAP Groups to Drupal Roles, which we have set-up and working.

So, if "Student A" is enrolled in the IT Program they would be in the "it" Drupal role on the Drupal site and would have access to the section of the site dedicated to IT. When they withdraw the LDAP Server is notified and then next time they login/logout (at least I think that's when the server checks for a change in groups) their access will change.

Here's my question: Is there some way to do this with the Organic Groups module, or should this be using some node access modules? My initial thought was to use OG but I am not seeing any way to "auto-join" users into groups based on their role. I can imagine that a custom module could be thrown together pretty easily to do this. Is there an alternative to these two options that I'm missing?

Comments

Multiple Mandatory Groups by Role

kmillecam's picture

Hey Andrew, take a look at the "Multiple Mandatory Groups by Role" module: http://drupal.org/project/og_multiple_mandatory_groups_by_role

We use it at Novell to manage access to Partner groups. Novell's scheme is similar to yours. When a partner forgets to pay their dues, their entitlement is removed in LDAP which is handed to Drupal on login. The MMGBR module then modifies their group membership(s) based on the LDAP info.

My only criticism is the module is a beast (six legs, four arms, three eyeballs). You may be able to write a cleaner implementation after you study the code. (For example, the module maintainer offers, for a price, to set up the module for you ....)

HTH,