Having a small issue with the node revisions. I have disabled "create new revision" on all of my content types. I am the only user with a role that has "administer nodes" permission.
Another user with no "administer nodes" permission creates a content of type "page" and it goes into the moderation queue.
I review the node and make a couple of minor changes before approving the node.
I check phpMyAdmin and see that indeed, a node revision was created even though I've specifically set it up (I think) for no node revisions to ever be created. During my search of d.o., I came across numerous postings saying that it had to do with the "administer nodes" permission, and there's some discussion in the core issue queue about moving the revisions into it's own module.
Have I missed a setting somewhere? Is this functionality intentional (by design)?
Comments
By design (I think..)
Presumably your are using a contrib module to handle the moderation queue?
The actual node body (and trimmed version - teaser) are always stored in {node_revisions} table. So each node will have exactly one "revision". If you as admin or another user edits a node then that one revision will be modified. The permissions relate to having multiple revisions for a given node.
gpk
----
www.alexoria.co.uk
gpk
----
www.alexoria.co.uk
Correct - modr8
I am using the modr8 module to handle the moderation workflow. The problem comes when I have people contributing content who do not have "edit all [content_type]" permissions. They can edit their own, but when I as an administrator do a small touch up, they are "locked out" of editing the node they created. Strange.
I could manually change these values in node_revisions, but as the site grows and content comes in more frequently ... not something I'd want to do, obviously.
I wonder if it is modr8
I wonder if it is modr8 (which I'm not familiar with) or core that is at fault. When you "touch up" the content (in the context of moderation, I presume), is the user still listed as being the one that Authored the node (bottom of the edit screen)?
gpk
----
www.alexoria.co.uk
gpk
----
www.alexoria.co.uk
I have tried two methods for
I have tried two methods for solving this:
1) Have the user create content, which I touch up, and then approve in the moderation queue.
2) Have the user create content, which I don't touch up, and then approve immediately.
In the first instance, the node_revisions table for that nid lists my uid instead of the original creator's uid. However, as this may be related, we use Nodeauthor module to display information about the author on the bottom of each node. As the original author has given us consent, and neither myself nor the person who inputs the content is that author (who has an account), we have to change it to that third account to properly display the information.
Possibly we can have the person who adds content log in as the third account, but since we have multiple sources, they'd have to log out and log back in for each piece of content they edit. I'm not sure if the two are related (nodeauthor changing and uid changing), because the uid in the node_revisions table is my account's uid, not the content adder nor the third party.
Regardless, if we don't need to change the author information (if the contributor is the original content author), and I do make touch ups with their permission, it still lists my uid as the node_revision's owner, and the original author cannot edit the page.
OK I may not have
OK I may not have appreciated all the subtleties of what you are trying to do and what is going on here, but as far as Drupal core is concerned the user who created the original node/post on the site should be listed in the {node} table and the user who last updated the node should be listed in the (possibly most recent) revision in {node_revisions}.
If the actual author of the content is someone else, and if you want *them* listed as the author, then the choice is whether to let Drupal do its usual stuff in terms of the creator/reviser (since that is technically correct) and use a CCK user reference field to identify the author. Then use themeing to display their details instead of the actual node creator. Or, use the Authoring info field (by default you need administer node permissions to see this) to specify the "correct" author.
>it still lists my uid as the node_revision's owner, and the original author cannot edit the page
The original author should be listed under the uid column in the {node} table - and it is this that should determine edit permissions, provided the author is in a role that has "edit own xxxx" permissions for the relevant content type.
Hope this is adding something useful to the confusion..!
gpk
----
www.alexoria.co.uk
gpk
----
www.alexoria.co.uk
Yes, this is making a lot
Yes, this is making a lot more sense now. I figured that there was nothing wrong with Drupal, but more with my implementation of it. Currently we're using the Authoring info to change the "listed" author of the node, as this is what the Nodeauthor module references. No problems there.
Over the weekend I did some local testing and discovered that it was actually the input format of each node that wasn't quite setup right, so by thinking through the input formats and getting them set up right, the problem seems to have been resolved. I don't mind the extra revisions, it just seemed to be causing issues previously.
Thanks much for your assistance!
Ahh yes now you mention it
Ahh yes now you mention it input formats do interfere with node edit permissions .. has caused me confusion in the past as well. This might be reworked in 7.x - there's certainly an open issue to try and make it all a bit more straightforward.
gpk
----
www.alexoria.co.uk
gpk
----
www.alexoria.co.uk