Allowing Organic Groups Administrators the Ability to Unpublish/Publish and Schedule Content

One requirement of the Archdiocese of St. Louis' website is that group administrators are able to publish and unpublish the content inside their groups, and they should also be able to schedule posts for automated publishing and unpublishing at a later time.

To do this, I used the following modules:

After enabling these modules, I spent a while in the Permissions page, and also created a new user role, "administer nodes." Ironically, I didn't assign the 'administer nodes' permission to this role, because doing so causes a huge mess ('administer nodes' gives waaay too much power to anyone except the site admin—it's best to leave that beast unchecked in most cases).

Scheduling and Publishing options inside a group

For the 'administer nodes' role, I checked the box next to 'schedule (un)publishing of nodes', which allows users with this role to schedule the publish/unpublish time of a given node. I also checked boxes next to 'publish <content type>' and 'unpublish <content type>' for each of the content types I wanted users to be able to publish or unpublish (these permissions are under the "publishcontent module" permissions section).

Then I went into the OG User Roles module's configuration page (at admin/og/og_user_roles), and checked the box to allow the 'administer nodes' role to be set per group, and also set that as the default role to be added to any user in a group that is made an admin of that group.

The OG User Roles module basically assigns all the permissions you assign to a given role within a user's group only. So you can give some permissions that you'd be very cautious giving out otherwise, because those permissions only affect the user's group, rather than all sections of the website. (However, there are still some permissions that can wreak havoc on your access control, like 'administer nodes'—always test!).

Now, users can schedule content to be posted whenever they'd like, and they can publish or unpublish any content inside their own group(s)!

Comments

I'm still working on the ability to let users make nodes sticky/unsticky...

[Edit: Well, I decided to use the Fasttoggle module to enable this functionality; I could also use it to allow people to publish/unpublish nodes (just allow those with the 'administer nodes' role to use these fasttoggle links), however, the solution above is more elegant, since it gives users access to the 'Publishing options' fieldset on the node add/edit page directly.]

Very nice - I've never seen that module. It seems like once every day or so, I find a new module I've never noticed before. Saves a lot of time coding (and saves a few thousand lines of code to maintain!).

I actually use the Rules and Flag modules for most of this. I simply created a global flag (promote/demote) to handle moving content to the frontpage. I also have one for stick/unstick. With CCK fields I put in the publish/unpublish date and then had a rule scheduled based on those dates. It kept me from having to deal with a lot of extra modules and I was already using flag, rules, CCK.

That's another good idea - Rules can really flex some mighty muscles when it comes to finding manageable solutions to these kinds of problems. I remember having to upgrade a Drupal 4.7 site that had one massive, 4,000-line custom module that could've been replaced (and was replaced) by Rules, Views and CCK.

Hi there,
I try to use only OG and Scheduler or Rules. My node lost it's group during the scheduled publishing.... Did some one know the cause of it?