I am creating a site that will use Drupal to enforce document publishing queues. The idea is to have two roles, Staff and Admin. Staff can log in and create a page but should not be allowed to publish it. The Admin would then login and make any revisions to the page then approve/publish it.

My current line of thinking is to set Create Content -> Page -> Publishing Options to default to "In moderation queue" and "Create new revision", then some how lock down the 'Publishing options' to the Staff user group, preventing any un-approved content from being published. This works as a decent content control and workflow system minus the gaping hole of anyone with access to create content can change a nodes publish options.

The question is, how can I do this. I don't want to have to modify any core files if I don't have to but as of now I can't see any way to modify(enable/disable) specific sections of the Create Content pages, be it Publishing Options, Menu settings, Comment settings, or any other option a module may provide

Comments

drupal777’s picture

the workflow module. It is exactly what you want. I think you have to have the actions module installed, too. It might take a few hacks at it to understand how those two things go together, but once you have it, you have exactly what you want. And total control in the hands of who you want to have the control. Sweet doesn't begin to describe how functional those modules are.

murmur’s picture

I'm newish to Drupal so I'm still having a bit of trouble finding solutions using a lexicon that I'm not entirely familiar with.

I will give workflow.module and actions.module a good run for it's money tomorrow and report back with my results.

Thanks for the helpful nod in the right direction.

drupal777’s picture

hope it helps. If you have questions, post back here. It really is a tremendously powerful set of tools.

As far as the lexicon goes, the only rational response is "You and everybody else!".

I've been burrowed in this stuff for 3 weeks and don't feel like I have nearly the handle I should have.

Yet, when I look back on things that I saw the first time, but didn't quite "get", I'm hard pressed to come up with significantly better descriptions. I guess it is just a learning curve that everybody has to go through. I'd love to write a "Drupal for Dummies" someday, as I think I'm particularly qualified in certain respects!

murmur’s picture

It looks like for the most part this is the solution. It's down to the specifics now. I followed the tutorial provided in the Workflow.module readme file, very helpful.

The website now has the Staff and Admin users in a relationship where the Staff workflow is to create content and the Admin workflow is to publish it. However there seems to be a hole in my logic. If the page needs to go back to the staff to edit it, the don't have access permissions to do so.

How on earth do i enable a low permissions user to edit his/her own pages? There is a checkbox in the administer -> access control titled page module -> edit own pages but its not working or working the way i would expect... suggestions?

I'll give you the login info for the Staff and Admin users if you feel like taking a look.

drupal777’s picture

I think? Anyway... you are on the right track and if you get the Administer->Access Control->Page Module->Edit Own Pages to work you should find that after a user creates a page, that user can edit it. Let's say the user creates a page with a node address of node/55. If you just put that address in the address bar ..../node/55 then the user should get a screen with both VIEW and EDIT tabs. If they can't edit the page, then something is definitely wrong and you need to fix that.

By the sounds of things, you are well on your way to making it work, though.

Fiddle with the above for a bit and if that doesn't work, ship me the login info and I'll see what I can see.

drupal777’s picture

If you have it set up so that users can create, but not publish, content, then if the workflow actions are such that an editor wants to "send it back" then they have to ensure that the state of the node isn't "published". It would seem to me that if a user can't publish a node then that user can't edit a node that is already published. Let me know if that is the issue.

baec’s picture

hey. ive seen many posts about this issue and myself am stuck with it. can anyone explain this paradox ?
as far as i could figure out, a user even if he has "edit own" access, isnt allowed to "view" nodes that are unpublished and so even if you get him to see the list of unpublished nodes [as can be achieved with views module or workspcae module], clicking to edit an unpublished node will "access deny".
btw manulayy entering in the browsers address bar the editing address of that unpublished node (...[nid]/edit), will let the user edit the node. its just that he wont be able to get there since he has to somehow view the node first so he can click the edit tab.
this all means a user can unpublish his own content but then cant get it republished ? [is this just stupid or am i missing something ?]

been posting around and as always didnt get any answers .. this is the second project im trying to workout with drupal and am starting to get fed up. can anyone help out with any hack or anything to make it possible so a user can republish his own content ? [its very simple and basic functionality for a cms isnt it ?]

excuse my negetivity, its just the endless problems, the extremly unintuative system, the fact no one cares or knows, the confusing and contradictory docs and the fact im sure no-one is going to read this since this site doesnt even inform its users new responses have been posted by mail, is starting to get to me. ive been wasting so much time reading unanswered questions and writing them myself i should have wrote a small cms myself in the first place.

ok anyway just had to get that out :(

baec’s picture

ended up hacking up line 866 in node.module from

'access' => node_access('view', $node),

to

'access' => ((node_access('view', $node)) || (array_search('staff', $user->roles))),

would rather not change node.module but i just cant figure this one out :(

ps assuming of course you have a 'staff' role set up

drupal777’s picture

...

baec’s picture

hmmmm someone reads after all.
hey drupal777 ... where do i "Submit this as an issue to infrastructure" ?

drupal777’s picture

Home >> Forum >> Development (working groups) >> Drupal.org infrastructure

baec’s picture

ok thx :)
though as you can see ive found and posted this http://drupal.org/node/41188
its addresses this exact issue. so it seems in acknowledged and being handled and i would rather avoid duplication and thus even more confusing docs.
one good example of what i mean as the docs being confusing is the fact that though ive read and searched for hours, i didnt find this thread [41188], which addresses my exact problem. and had to read through 10s of unanswered questions / ideas and opinions of this issue of ppl who are also starting out but couldnt find the solution.
thats my HO though im but just a frustrated newbie :)

drupal777’s picture

I think we all go through (are going through?) that. You have had a full week more than I have, though!

I think it depends, in large part, on the effectiveness of the searches that are run. Sometimes they hit, sometimes they don't.

baec’s picture

thx man.

ive decided to soon post a new forum topic on this docs issue and other major usability issues in the doc systems ive xped.
though being a complete newbie one always risk simply coming out as an idiot doing such a thing.

btw it may be just me missing out on how to do it but can i subscribe to a forum thread anywhere and get email updates whether a new response has been posted ? [isnt it a basic forum function ?]

baec’s picture