I need help of someone who knows the Organic Groups module (og.module). Though it does a lot of great things, it unfortunately renders all node access modules useless, at least this is what its descriptions says.
I need the following access methods. Probably I could emulate them by writing action scripts that create groups on themselves, add the users to it that are allowed to perform an action, set the permission rights and remove them again - if I combine it with the workflow module, it could be possible. However, I don't know the OG module good enough to decide how much work it would be. I'd like to know from an insider how doable the following access methods would be:
- Some users in a group only can "view" posts, others can edit all posts. This is important for certain types of announcement postings that need updating from a group of dedicated helpers without giving everyone in a group the possibility to mess with posts from anyone.
- A book page can be set on status "consider for inclusion" with the workflow module. Once it is set on this status, a group discussion via mailing list ensues. As long as the node is set on this status, the author should not be allowed to edit the node since it would invalidate the ongoing discussion if the content was to change without announcing it first and stopping the discussion.
- Using the "userpoints" module, users can do workshops (essentially read book pages). However, each book page costs userpoints that are substracted. Only users that engage in community activities can continue to read those workshops. How could I handle those access rights? Probably I could reate groups like "workshop_#1_unit_1" to "workshop_#1_unit_20" for every workshop and if a users wants to read unit 2, he has to join the next group (and on joinig userpoints are subtracted), but this seems very clumsy.
I'm happy about any input, any thought!
Comments
Testing a solution
In case anyone is interested: I've installed patch_104 for og to make it work with node access arbitrator. This is a great combination since without it, every content on a page HAS to be group content. With node access arbitrator, you have group content and other content that you can grant/deny access to with the help of other modules.
view/edit access: This is already possible by setting a group manager (og.module).
"consider for inclusion": The workflow.module included in naa is able to do this.
workshop access: It would be great if every user was able to set his/her own workflow state. But anyway, I think I can solve this by making a group for every workshop. On joining, I subtract the userpoints for the whole course.
Too optimistic
I was too optimistic. The patch_104 did need a bit of tweaking, because module_exist was renamed to module_exists in drupal 5.0. However, after that it worked - or worked partly.
Node Access Arbitrator seems to work for group access, but it completely ignores my workflow_access by state settings on the books. I need the books, because the bookpages play a vital role in the structure of my site.
Unfortunately, there is no module that helps me to realize what I need. I deinstalled NAA again, put og.module back in its old state and copied the book.module in workshop.module. I renamed the functions, customized the output of the book view a bit and put view/edit denial based on workflow_state, role and group right into the module itself. This is not pretty and probably it will cost me a whole day to migrate this to drupal 5.0 once it's out, but at least it works exactly the way I want it to work now. At least, it seems so. I will test it a bit more and report in this thread, in case someone has the wish to use workflow_access and groups together as well.
Drupal 5.0
I read the drupal 5.0 readme - and I really feel less inclined to migrate my workshop.module. So I took a look around for anything that could help. Now I'm testing configuration #211 or something. ;-)
I de-installed og module. Now I am trying to use workflow, workflow_access and checkout.module for the "consider for inclusion" part. Checkout blocks editing.