This may be a bug, by design, or my expectation, and it may be Module grants rather than Revisioning, not 100% sure where the line is drawn.
I have set up a user who can create /edit only content type "Encyclopedia"
When they look at My Content > Viewable there are entries for other Content Types (this may be expected)
In total there are approximately 43 nodes listed, but no paging facility (this again may be expected- but there are over 9000 published nodes visible to all)
What does concern though is that one of these nodes of content type "News" is listed as unpublished, but this node has been configured using Scheduler 6.x-1.3 to only appear on a day in the future. The consequences of this are that "Sensitive" information may be visible to users with authoring privilages before time. (again may be whats expected)
So number of nodes "Viewable", should it be all nodes?
And should it be restricted to those only of Content types the Author can Create (I have assumed that anyone with permission to edit should normally be authorised to create)
If any authorised user just wants to see All the content , they have the website in front of them.
Guidance would be appreciated
Comments
Comment #1
rdeboerThanks for the feedback mikmedia. So 9000 nodes -- good test case!
Yes, a paging facility for Module Grants would be good. And column sorting would be nice too. I simply haven't had time to look into it, have spent my time on other requests. And funny enough, you're the first person to ask for a paging feature!
About viewing content.. Module Grants itself does not grant or deny access. The content shown is a pure reflection of what the logged-in user is allowed to view by the permissions and access grants assigned by core and contributed modules. The only difference is that Module Grants also applies the access grants to pre-published content, so that you don't need to first publish content (showing it to the world) and then start an approval workflow with restricted access etc. (the fact that the drupal community has lived with this flaw for years never ceases to amaze me).
If no content access modules (e.g. Workflow, TAC etc.) are enabled on your system, then the core node access permissions apply. These are quite crude in that out-of-the box you cannot take away the "view" permission per content type. It's either view all or view nothing (aka the "access content" tickbox under the node module section of the User management>>Permissions page). So each of those 43 entries can be viewed by simply typing their URL in the address bar of your browser. Those "view" permissions are there whether you have Module Grants enabled or not, it's just that the 'My content' menu option of Module Grants opens a window and exposes the facts. And yes... the facts are that without any other content access modules installed, authorised users have the entire web site in front of them.... because the "access nodes" tick box permits them to do so.
By the way, when you say "9000 nodes visible to all" do you mean the public or all authenticated users? You could untick "access nodes" for "anonymous users" -- that will definitely shut the public out.
So number of nodes "Viewable", should it be all nodes?
Well, if you want to restrict "view" access for particular kinds of content, this tutorial is worth a look as it's all about that. I haven't tried it myself, but I think you can do that tutorial without the Revisioning module enabled to better bring out the effect TAC-Lite has when used with Module Grants only. As will become clear when you follow the tutorial, access restrictions implemented via a simple taxonomy may be more fine-grained than access granted along content type "borders", but they can also cut right across content types. I suspect that you'll be able to chop that list of 43 down to exactly the subset you require, using TAC-Lite.
But you may also be able to use other modules for content access. It all depends on your criteria for granting/denying view access. In the case of an content approval process it is likely to be determined by the state the content is in, that is: on whose "desk" (author, reviewer, publisher) the content currently is (see the Workflow tutorial for Revisioning).
Basing "viewing" rights on "creation" permissions does seem a bit odd, although the core node module has a similar quirk in that in the absence of anything else, "view" access is granted based on original authorship.
As for the unpublished content being visible before its scheduled date.... if you want a role to not see content while it is still unpublished you have to take away their "view revisions" permission: User management>>Permissions, node module section.
See also the Module Grants handbook page.
The scheduled publication scenario does complicate things a bit... I need to think about it a bit more.
Hope this helps so far, anyway...
Rik
Comment #2
Anonymous (not verified) commentedHi Rik,
Thanks for the explanation. As you have probably guessed I have only just installed the module, and after a few days testing decided it was for the live website. It was pure chance i found the module while looking for Revision Moderation to see if they had fixed the access issues, I have been using a tweaked version for months now, but was not happy with it
Tho only reason for asking for the paging facility was becasue the viewable was was missing so many nodes that may have helped identify what was going on. Though thinking further it woudl definitely be good for all the tabs, in addition to your collumn sorting. I would go one further ad add the ability to Filter by at least content type. An editior may have several roles where he only wants to deal with one area at a time to avoid confusion
The 9000 nodes are public. Baisally its a limited Authentcated user site - Basically building the site in Frontpage got beyond me :)
I will take a look at the Tutorial
As to unpublished being visible before scheduled date. The simplest solution in my view would be to limit the the visible content of all tabs by the Content types the user can create or edit, whether that is as easy in code is another matter. It may not stop them seeing the node if they type the URL, but first they would have to have to figure out the URL
Comment #3
Anonymous (not verified) commentedAditional information
One of my scheduled nodes has just been published but the "by" column is showing Anonymous, however if you look at the Authored info for the node, the corret user is shown. This may be due to Scheduler publishing the node, not the author
Comment #4
rdeboer@midkemia, #2
"... viewable was missing so many nodes ..."
I actually had expected you to complain that there were too many. Just out of interest: why is it that you're only seeing 43 nodes and not 9000 under the "viewable" tab?
Actually that would be 1000, I think I put a limit on the query returning the node summary.....
BTW: if the website you're talking about is public, can I have a look? What's the URL?
"... filter by at least content type ..."
Great suggestion... I'll put it on the list and hope I or someone else can find some time....
"... limit the visible content... by the content the user can (create or) edit..."
This is exactly what the "editable" tab does!
I am not keen in having the "viewable" tab filtering by edit/creation permission (just to reduce the amount of output?) -- I quite like the fact that the 'My content' tab shows it the way it is: a true reflection of the access the logged-in user has. Silently suppressing nodes to which a user actually has access (via the URL) may also give a false sense of security about nodes that are in fact exposed.
@midkemia, #3
Yeah, the "by" column shows the user that has last modified the node, which would be the Scheduler 'user', while the Author info shows the initial creator of the content.
Comment #5
Anonymous (not verified) commentedHi Rik,
website is www.crydee.com, and I lied, its only 8551 nodes, memory is failing with old age...
I just counted how many nodes under my Viewable = 189 for user/1 so the 43 looks to be an error (will interrogate wife later). Not sure if you have another parameter in your query limiting to date or something else, maybe you limit the time the query can run?
I would have complained if there were too many nodes, especially without paging, the page would have taken ages to load :)
Rik
"..I am not keen in having the "viewable" tab filtering by edit/creation permission.."
The original idea for implimenting by edit/creation permission was to cover the visibility of Scheduled nodes, However I think what is part of the problem, is my perception, and If i percieve it one way, its likely others may too at some point. Lets explain
The menu item is "My Content" so I am in the mindset of this will only contain those things that are "Mine",
so My Content:-
Pending : My nodes that are Pending,
Editable : My nodes that are Editable,
Viewable : My nodes that are Viewable
Now if the menu were My Moderation:-
Pending : All nodes that I can moderate that are Pending,
Editable : All nodes that I can moderate that are Editable,
Viewable : All nodes that I can moderate that are Viewable
What we seem to have is:-
Pending : All nodes that I can moderate that are Pending,
Editable : All nodes that I can moderate that are Editable,
Viewable : All nodes that I can View
This also brings up another issue in that Viewable, implies Visible which isn't strictly true when a node is not published. So is it a case of another tab is needed Such as Not Published and rename Viewable to Published
Giving us:-
Pending
Editable
Not Published
Published
Now combining that with the above we get
My Content:-
Pending : My nodes that are Pending,
Editable : My nodes that are Editable,
Not Published: My nodes that are Not Published (Not Viewable)
Published: MY nodes that Published (Viewable)
My Moderation:-
Pending : All nodes that I can moderate that are Pending,
Editable : All nodes that I can moderate that are Editable,
Not Published: All nodes that I can moderate that are Not Published (Not Viewable)
Published: All nodes that I can moderate that are Published (Viewable)
In realilty once Editable and Published (Viewable) get past about 100 nodes, they become almost worthless without some form of filtering,
Their may also be a case for providing an option for Admins to disable the Visability of Not Published and/or Published Tabs (Its like having Site Statistics on some people spend more time looking at them, than actually doing the important things on their website, like fixing content) Its an advanced tool, which many "Non Internet Ready" users just don't need.
These are just some thoughts that hopefully give an insight into a different perception, and maybe ideas for the future (some of this may also be done elsewhere, but a one stop shop can be far more rewarding)
Rik
"...Yeah, the "by" column shows the user that has last modified the node, which would be the Scheduler 'user', while the Author info shows the initial creator of the content...."
Makes sense, may just need a few words explaining this, if they dont already exist. ....and if their were more space both Author and Last modified user so we can instantly see who is moderating who :)
Comment #6
Anonymous (not verified) commentedForgot to say
"...Great suggestion... I'll put it on the list and hope I or someone else can find some time......."
If i was any good at coding, I would have loved to help, unfortunately i have only picked up bits in the last couple of years. Now if it were 30 years ago and Basic or Assembly, i would have had a better chance... :)
Comment #7
rdeboerReply to #5
Thanks for the suggestions, John!
No the query isn't time-limited. Can you thing of any access control modules you may have enabled? If you go in as admin, you should definitely see all 8551 nodes (and crash the system in the process because there's no paging - haha).
Some of this does come down to language: both the way a message is phrased and the way the it is interpreted contribute to the effectiveness of the communication.
It is apparent that the 'Pending', 'Editable' and 'Viewable' tabs don't get the message across clearly.
For starters, after your post I'm beginning to wonder whether the 'My content' menu option should be renamed. It isn't 'My content' in the sense that the user "owns" it (i.e. is the initial creator). 'My content' is meant to be interpreted as 'Content that I (the logged-in user) have access to at the moment' (whether I'm interested in that content is a different matter).
Acess can be 'View' (wich may or may not include 'Edit') and 'Edit' (which in most practical cases would include 'View', it would be hard to imagine what it means to edit content without viewing it!). There's also the 'Delete' permission, but we've left that one out of the story. By '... access to at the moment' I mean that access can change as the content transitions to a different state (e.g with the Workflow module installed, it might go from "draft" to "in review" to "live").
So the way it's partitioned at the moment, typically, 'Viewable' will produce the longest list of content, 'Editable' will show a subset of that and 'Pending' (by definition) is a subset of 'Editable': it's the editable content for which a new revision is waiting in the wings.
You are right: 'Viewable', 'Editable' and 'Pending' disregard the publication status (i.e. whether the content is 'visible' to the public) -- this status flag is shown for each piece of content listed, though.
Apart from the new tab arrangement are you suggesting that there should be two menu options 'My content' (for authors? i.e. showing only content they initially created, but possibly edited later by a moderator) and 'My moderation' (for moderators only ?). How would the system tell that the logged-in user is a moderator? All it has to go by are the node permissions (core), the revisioning permissions and the access grants (from additional content access modules, like TAC, Workflow etc.).
Similarly, at a programming level, the code doesn't know what "to moderate" is, it only knows about view/edit/delete/publish/unpublish/revert revisions, so where you speak about "nodes that I can moderate" you'll have to explain a bit more what this means to you in terms of these basic operations.
Here are my thoughts (these may change):
I'll get my brain around the suppression of these tabs by the administrator later. One step at the time!
Rik
Comment #8
Anonymous (not verified) commentedHi Rik
Will break down my reply to two seperate responses
Fisrt to visible nodes
When i go to Admin >Content I get 50 nodes visible with a pager of 172 pages, its been like that for as long as I can remember
Here is a complete module list, incase you recognise one that affects access, though I don't think there is.
Content 6.x-2.2
Content Copy 6.x-2.2
Content Taxonomy 6.x-1.0-beta5
Content Taxonomy Options 6.x-1.0-beta5
Content Templates 6.x-1.0
Option Widgets 6.x-2.2
Text 6.x-2.2 Defines
Color 6.12
Database logging 6.12
Help 6.12
Menu 6.12
Path 6.12
PHP filter 6.12
Search 6.12
Taxonomy 6.12
Date 6.x-2.0-rc6
Date API 6.x-2.0-rc6
Date Timezone 6.x-2.0-rc6
Devel 6.x-1.x-dev
Advanced help 6.x-1.2
Alinks 6.x-1.0-rc1
Clone module 6.x-1.0
Frequently Asked Questions 6.x-1.x-dev
Global Redirect 6.x-1.2
IMCE 6.x-1.2
Keyword Autocomplete 6.x-1.0-beta1
Lightbox2 6.x-1.x-dev
Module Grants 6.x-2.4
Node breadcrumb 6.x-1.0-beta2
Nodetype 6.x-1.0
Path redirect 6.x-1.x-dev
Pathauto 6.x-1.1
Poormanscron 6.x-1.x-dev
ReIndex 6.x-1.x-dev
Revisioning 6.x-2.3
Scheduler 6.x-1.3
Search 404 6.x-1.4
Search Restrict 5.x-1.x-dev
Site Documentation 6.x-1.2
Sitenotes 6.x-1.2
Synonyms 6.x-1.0
Token 6.x-1.11
Multichoice 6.x-2.1
Quiz 6.x-2.1
IMCE Wysiwyg API bridge 6.x-1.x-dev
Wysiwyg 6.x-2.x-dev
Insert view 6.x-1.0
Views 6.x-2.2
Views exporter 6.x-2.2
Views UI 6.x-2.2
XML Sitemap 6.x-1.x-dev
XML Sitemap: Engines 6.x-1.x-dev
XML Sitemap: Helper 6.x-1.x-dev
XML Sitemap: Node 6.x-1.x-dev
Comment #9
rdeboerThanks John,
You said there's 8000+ nodes on your site. But under Admin>>Content management>>Content you only see 172.
So how do you get access to the remaining 7 thousand something?
What is your list filtered by?
Rik
Comment #10
Anonymous (not verified) commentedHI Rik
"That is Content I get 50 nodes visible with a pager of 172 pages"
Just to clarify
50 nodes a page, with the pager giving 172 pages, so 50*172 = 8600 nodes :)
John
Comment #11
Anonymous (not verified) commentedHi Rik,
Now for the Big reply, so get a Bottle of wine, and a glass , you will need it :)
First some comments on what you have written
Instead of My Content , Accessable Content would work, but its quite long, though it may provoke ideas. ( OK Just read further down the page :) )
You mention the actions a user may take View Edit, Delete The first two fall under Administer, and although Delete can be an Administrative function, once its deleted, it can't be Administered, so the phrase Administer and Delete may be appropriate.
We could have two menu Items My Content and My Moderation. This would clearly define Which section does what. Moderation menu only being visible under certain permissions. This could alternatively be approached as a menu item "Content Administration" and have both My Content and My Moderation as tabs where permitted
Now to see if i can explain how I see it working using the the terms i mentioned above. We can fix the naming later, but first to see if we can identify how we get the content using what you have already made available, though if this can be coded is another matter :) But if I can think it, it can usually be coded :) Some of the criteria may be redundant, but are there to make sure they have been considered
It is also likely that a specific , or specific roles will be defined as "Moderators", though i am ignoring Workflow and Tac Lite as I have no knowledge of them.
My Content:- Pending : My nodes that are Pending
Nodes where the User is the Author
Published = FALSE
This option would excluder scheduled content ie Approved for Publishing on the appropriate date (not sure how)
My Content:- Editable : My nodes that are Editable
Nodes where the User is the Author
Nodes where the User has edit own content TRUE or edit any Content
Published = TRUE or FALSE
My Content:- Not Published: My nodes that are Not Published (Not Viewable)
Nodes where the User is the Author
Published = FALSE
This option would cover scheduled content ie Approved for Publishing on the appropriate date (not sure how)
My Content:- Published: My nodes that Published (Viewable)
Nodes where the User is the Author
Published = TRUE
My Moderation:- Pending : All nodes that I can moderate that are Pending
Nodes where Content Type has New revisions in moderation TRUE
Nodes where the Anyone is the Author
Nodes where the User has Publish Revisions
Published = FALSE
My Moderation:- Editable : All nodes that I can moderate that are Editable
Nodes where Content Type has New revisions in moderation TRUE
Nodes where the Anyone is the Author
Nodes where the User has Publish Revisions
Published = TRUE or FALSE
My Moderation:- Not Published: All nodes that I can moderate that are Not Published (Not Viewable)
Nodes where Content Type has New revisions in moderation TRUE
Nodes where the Anyone is the Author
Nodes where the User has Publish Revisions
Published = FALSE or Authored date > Now (Poormans Scheduler) or Scheduled Date > Now
My Moderation:- Published: All nodes that I can moderate that are Published (Viewable)
Nodes where Content Type has New revisions in moderation TRUE
Nodes where the Anyone is the Author
Nodes where the User has Publish Revisions
Published = TRUE
One thought has come from this, and that relates to the poormans scheduling. ie setting a publication date in the future, where would that fit. Its visible if you know its URL
Another relates to My Content - User is Author, what do we do when the User has Revised a node That they didnt create, it may not be a node they moderated either, do we need "My Contributions" this would probably fit Wiki type content so assuming we do need My Contributions I have added a set of criteria below, which at least will help brainstorm the issue I have excluded User Authored Content to ensure clarity, though it may be this is merged with My Content at a later stage
My Contributions:- Pending : Nodes I have contributed to but not Authored(originated) that are Pending
Nodes where the User is the Not the Author
Nodes where the User has created a Revision(not just published)
Published = FALSE
My Contribution:- Editable : Nodes I have contributed to but not Authored(originated) that are Editable
Nodes where the User is the Not the Author
Nodes where the User has created a Revision(not just published)
Nodes where the User has edit any Content
Published = TRUE or FALSE
My Contributions:- Not Published :- Nodes I have contributed to but not Authored(originated) that are Not Published (Not Viewable)
Nodes where the User is the Not the Author
Nodes where the User has created a Revision(not just published)
Published = FALSE
This option would cover scheduled content ie Approved for Publishing on the appropriate date (not sure how)
My Contributions:- Published: Nodes I have contributed to but not Authored(originated) that are Published (Viewable)
Nodes where the User is the Not the Author
Nodes where the User has created a Revision(not just published)
Published = TRUE
If your still awake, hopefully this will provoke thought :)
Comment #12
rdeboerWow John!
Looks like you've had your thinking cap on and your fingers on the keyboard for most of the night!
Great analysis work
I really appreciate where you're coming from and the angle you provide from a very practical real-life situation.
As a maintainer of the Module Grants and Revisioning modules I do need to make sure that any enhancements you propose are generic enough to fit in with the way these modules work in a variety of contexts in the drupal community. For instance when the Workflow module is used in conjunction with Module Grants+Revisioning (and people do!), then the fact that a logged-in user is the author/creator of a piece of content may no longer be a guarantee to having access to their "own" content. Using Workflow, the administrator may have configured a content approval process whereby once the author has "submitted" their initial draft (or modifications to an existing revision) to a moderator, the system prevents them from editing it. So it's "their" content, but they can't touch it! That is, until the moderator has reviewed the changes and has decided to either publish it (possibly with some edits) or has thrown it back (via a workflow state transition) to the author for a rewrite.
I'm not at all saying that your proposal isn't worth implementing in some form.
I do have a caveat though when it comes to what we mean by "pending" and "unpublished".
Module Grants was written because core drupal does NOT deal gracefully with UNpublished content. So without module grants you tend to end up with a revision moderation process whereby you have to first publish content (i.e. make it visible to the world) and THEN start your moderation -- that's crazy. OR.... you assign the far-reaching "administer nodes" privilege to moderator roles, which makes them "gods" and throws out all efforts to control access.
So we need to be able to view and operate on "pending" initial revisions for nodes that are yet to be "published", as well as "pending" revisions for nodes that already have current published revisions.
Does that make you want to refine your proposal?
Rik
Comment #13
Anonymous (not verified) commentedHi Rik,
Not so much thinking, more like reviving dead grey matter :) 25 years of writing QA procedures does help :)
"....As a maintainer of the Module Grants and Revisioning ...."
I totally appreciate the problems you have with keeping these working, part of the reason I have tended to point all issues here, as I am not sure which of the two provide specific function, and their are probably implications to both.
As to the example of workflow, i must say I can see the advantage of restricting editing of created content whilst in moderation, but it can also have a major time impact if the originator has subsequently identified a mistake which needs correcting, as the moderato can be happily spending hours reviewing what is in essence junk. It woul dbe nice if they could send a subsequent "Change Notice" so that things get fixed
"....I'm not at all saying that your proposal isn't worth implementing in some form...."
The proposal is more to cover the scenarios of what could be needed, from this further analysis, and hopefully oinput by other users, would help tailor it towards a possible future interface
"....I do have a caveat though when it comes to what we mean by "pending" and "unpublished"....."
I dont thing Pending / Unpublished is a major issue, and that in the existing scenario we have under pending Nodes in moderation for content types the user can create/edit content.
The Not Published / UnPublished scenario is a bit misleading in that if a Node is published, and the content is now out of date ie expired, should that content go back to pending, probably not, it needs to go to unpublished, as it may be needed for audit trail or just plain reference in the future, say next year when the same event occurs.
This leads me not to wonder if Not Published and UnPublished should be seperate
Not Published - or Scheduled
Would be used just for nodes Scheduled for future publication so calling the section Scheduled would be valid,
These nodes should also only appear in this section when they have been moderated and Published in the sense that the Schedule now takes over, though not sure how Scheduling controls this. If a node in this section is edited, it should fall back to pending
UnPublished
Would show nodes that have been Expired or just Unpublished as not needed, or other reason, say SPAM needing review. They should not appear in Pending, unless they are edited, and hence re-submitted for Moderation at which point they do fall back to pending. How we identify nodes unpublished i do not know, I suspect the existing system does not cope
Again these are just thoughts, but like most things until we see the complete picture, we never know whats lurking around teh corner.
It would be nice to see som other input on these thoughts though
regards
John
Comment #14
rdeboerLots of good ideas John!
But before we get to far ahead of ourselves, let's try and pick some of the low-hanging fruit first and then decide what the return of coding investment is for some of the remaining change requests.
It is going to be very hard to distinguish between "pre-publish" (i.e. never published before) and "unpublished" (was once published) content. All that the node object/db-table offers is a status flag indicating whether the node (i.e the current revision of the node) is published or not. No history is of this flag is stored. So, while we have access to a trail of revisions we don't know which ones of these have ever seen the public eye. It would require additional database tables and code.
Similarly, scheduling status is not a core feature and the modules dealing with it (Scheduler, Rules Scheduler to name just two) have their own methods to maintain it. So Module Grants and Revisioning will have to be made aware and interact with these modules to find out whether a node is scheduled to be published (or unpublished for that matter). Apart from this being a coder's nightmare (think maintenance, every time one of these modules are changed), these modules may not have been created with the facility, the "hooks()", for Revisioning to look at their scheduling internals.
I have been trying to make some of the "roles" you talk about less fuzzy by expressing them in terms of drupal concepts.
W.r.t to 'My content': the creator of the node (i.e the first revision) is stored in drupal, so we can do something based on initial authorship.
But how useful is it to list a node as "mine", when subsequent modifications (i.e. revisions) were made by other users (e.g writers in the same role or moderators)? As far as the "Pending" tab goes, would it be useful to list pending content under 'My content', even if the author may not be able to edit it at the moment (for instance, because it is in the "review" workflow state or because it has been allocated to a different 'department')? In the case of it being in the review state, I think it would be: it serves as a reminder that the content is with the moderator. But then again, would the initial author want to know about pending revisions when they're no longer the ones creating revisions of that content (but somebody else is) ?
Maybe the only people that should see entries under "Pending" are the user that last modified the node (i.e created the pending revision) and the moderators that have edit access to it.
Which brings me to the following. What is the definition of a moderator?
I guess in drupal terms this would be a user that has one of the "publish/unpublish/revert revisions" permissions. And 'Pending' would show all the nodes that this moderator has edit access to and which have a revision newer than the currently published one, or newly created nodes (i.e nodes consisting of a single yet to be published revision). This is the current behaviour of the Pending tab. Note, that we don't have to explicitly check for "New revisions in moderation" as if this isn't ticked for the content type in question, there won't be any revisions newer than the current, publicly visible one.
'My contributions'/contributor'... someone who at some point created (at least) a revision of a node...I can see the Wiki context, but wouldn't similar comments to 'My content'/Author apply? Do I want to keep on being reminded forever of any piece of content that have touched in the past?
Comment #15
Anonymous (not verified) commentedHi Rik
"...It is going to be very hard to distinguish between "pre-publish" (i.e. never published before) and "unpublished"..."
Ok going to try and get my head around this one tonight :)
I can see where your coming from. without adding extra fields to the table it may be a task.. There may be an alternative option, though I am not sure how the data inter-relates.
For every node we have a Revisions of, we are also offered the option to create a "Log Message"
Is there a way that we could Append at the begining of this field something along the lines of "Unpublished - Date" when a node is unpublished, though if a node was never revised we dont have the field, so would it be wrong to create a revision on Unpublishing of nodes that are not a revision, so that we can add this infomation ? This could then be used as part of a filter of the content ?
Scheduling as you say may be more complex. so will leave that from the equation at present, as if we cant resolve other issues to form a plan, this one will be irrelevant :)
"...I have been trying to make some of the "roles" you talk about less fuzzy by expressing them in terms of drupal concepts...."
Part of the thought about "mine" is that a user might create some content, and later it may be completely changed my another user or moderator, though at some point the user may then want to use some of their original content in another case, they know they created it so, its probably the best place to start, as a site search will not find it due to subsequent extensive changes. Also what they create will hopefully be a small subset of the complete site content they can view, or slightly lesser moderate.
"...As far as the "Pending" tab goes.."
The way I am thinking is the more you add to a tab the bigger the content will be. Pending is probably a small subset and could easily be lost if included with another category, and use just a tag to identify it. If say yestrday I created 10 nodes which went for moderation, when i start work today I would first look at my pending nodes. If there are 10, no change, if there are less, then some may have been published or I asume still in pending but with what to tell us work is needed... maybe it needs a note -returned or highlited another colour say red, with all pending normally green, ( something I need to think through as something is nagging and I have yet to put my finger on it)
Jumping ahead to
">>>Maybe the only people that should see entries under "Pending" are the user that last modified the node (i.e created the pending revision) and the moderators that have edit access to it...."
This is sort of what I was trying to cover with the following, Moderator in the first case (as this only applies to moderators), and Revisior in the second
My Moderation:- Pending : All nodes that I can moderate that are Pending
Nodes where Content Type has New revisions in moderation TRUE
Nodes where the Anyone is the Author
Nodes where the User has Publish Revisions
Published = FALSE
My Contributions:- Pending : Nodes I have contributed to but not Authored(originated) that are Pending
Nodes where the User is the Not the Author
Nodes where the User has created a Revision(not just published)
Published = FALSE
"...Which brings me to the following. What is the definition of a moderator?..."
I have taken Moderator to mean a user who has publish or unpublish or revert revisions, which to me make sense, so it looks like we are thinking the same way there, as with the rest of the paragraph.
"..'My contributions'/contributor'... ..."
Pending would only be visible when the user has a revision they created pending
The only sections where they would see longterm content would be the Editable and Published, as the others are in theory transient, other than unpublished
For most users this tab may be superflous, but was included for completeness
Possibly one qestion comes from this and that is If i moderate a node and Publish, it should stay with the revision creators username. If i edit it, then it should be my username for the revision? But this may be dependent on an organisations structure?
I think that has responded to all points though I bet i have missed one
John
Comment #16
rdeboerHi John,
I think the idea of the system writing a note in the "Log message" of the revision when the moderator unpublishes the node is a good one. It is similar to what the system already does when the moderator reverts to an old revision. In this case a copy of the old revision is created and the log message reads like this "Copy of the revision from Mon 05/25/2009 - 11:30" (BTW: don't get me started as to why a copy is created -- it's core node behaviour that I am not going to change).
So we could get Revisioning to write "Unpublished on Mon 05/25/2009 - 11:59". That could be useful info.
As far basing programming logic on a user-editable text (if that's what you're proposing).... not so sure. The whole idea of revision moderation and content access control is that we're not assuming that all users always behave!
Yes, I don't want to get into anything to do with scheduling until we have all the basics covered.
Maybe we should start with two menu options Accessible to me and Created by me (or My content), each with 4 tabs:
Pending, nodes editable to the logged-in user that either consist of a single (i.e. initial) revision that is not yet published or published nodes that have a revision newer than the "current"; as is already the case this tab willnot list multi-revision nodes for which the newest revision equals the current (whether published or not, i.e. archived).
Editable, anything the logged-in user can edit; includes pending, published and unpublished content
Published (visible to the public and Viewable to me)
Not published (currently not visible to the public, but Viewable to me); this will have to include pre-published and post-published content, simply because drupal doesn't offer a reliable way to tell the two apart (as discussed above).
The titles of content not viewable to the logged-in user would not appear under any of the tabs (as is the case now).
Editable would list both published and unpublished nodes, latest first, as it does now. When I get round to doing the sorting one possibility would be to group by publication status, so that under Editable all the pending nodes come first, then the published nodes and finally the unpublished nodes, ordered in reverse by modification date within each group. Something to consider at a later point.
Basically, for each tab Content created by me would be the content for Accessible to me under the same tab, but with an additional filter applied, namely that of the logged-in user also being the creator of the node (the first revision).
In fact, an alternative way to implement the Content created by me menu option would be to have just the Accessible to me menu option but add a check-box above the node summary table saying "Only show content created by me". A similar box could be "Only show content that I have contributed to". Or we can merge the two together in a multi-select drop-down (they are in fact not mutual exclusive, you can be a creator AND a contributor).
I have my doubts about the usefulness of the third menu option you propose, My moderation. It seems to me that if you're logged-in as a moderator, and click Accessible to me, then you know that what's under the Pending tab is your moderation queue to work from (an extended version of the "pending revisions" block).
Whereas when you're logged in as an author, then you know what's under 'Pending' is content for which you (or others in the same role) have just created new revisions (which you can't publish) and that are awaiting moderator review and publication.
So the separation of My content and My moderation comes out of the wash by itself.
Again, we don't have to filter explicitly for nodes where the Content Type has "New revisions in moderation" ticked, because if it isn't ticked, then no revisions can be created for that content type anyway.
"... If i moderate a node and Publish, it should stay with the revision creators username. If I edit it, then it should be my username for the revision? ..
This is exactly how Revisioning currently works.
Are we getting somewhere?
Rik
Comment #17
Anonymous (not verified) commentedHI Rik
"...I think the idea of the system writing a note in the "Log message"..."
I didnt actually realise teh system did add a message to teh log message on Reverting :) I assume teh reason it makes a copy is to ensur erevisions stay in sequence, or it was an easy way at one point.
"...As far basing programming logic on a user-editable text ..."
This may not be the best way, but if we lack an alternative... Just search for the word Unpublished would be adequate, though teh date would be better for a workflow . I agree it is a potentil issu eif users don't behave, but i would qualify this in How many users actually look at the Log Message section, or even know its there, see my comment above. Its often just skipped over to get to the save function. It may be used more in a Wiki or other Colaboration enviroment
"...Maybe we should start with two menu options Accessible to me and Created by me (or My content), each with 4 tabs:..."
We will have to start somewhere :)
Pending, Editable, Published, Not Published appear to be defined OK as are the following which seem to be in teh right direction, and as you say their are some options in how things are displayed. I would tend to keep away from using a filter though, especially if at a later date filtering is to be provided on other aspects, it may be a little too complex, Tabs can be a very effective and simple filter.
"/...I have my doubts about the usefulness of the third menu option you propose,..."
I think part of my initial reasoning on this was simplification and consistency ie each tab, when available has the same basic options presented.
Having a Moderation Tab, sort of implies a specific purpose
I was also thinking their may be a case where we have moderators of different content types i.e. I moderate type A but i also create Type B moderated by someone else. I dont think this scenario is available at present but... I was thinking future. I would want to see in My content opending Moderation seperate from Content I have to Moderate. Though my logic may be clouded on this.
"New revisions in moderation" Was basically to identify whats expected to be seen, ie the content would meet these requirements. as in some cases it wouldnt apply Say viewing My Content we may/will have visible contemnt types that are not revioned, or moderated, but they are my content so I can see them. However for a Moderator, in their own Visibkle tab they get everything, but in the moderation tab they only need to see those where Revisions are put through the Moderation, that is This is content that is Moderated. It also adds visibility to help identify that content with problems, and not appearing in that list, may need to be moderated.
I definitely think we are closing in on the target. I would suggest if its not too much of a nightware in coding, that if we can, we provide all the tab variants to start, which would allow refinement, and then if we find there is duplicates/crossover , knock them out one at a time, moving functionality as needed.
(I Remeber designing a data analysis system back in the early 80's on a "Make it happen brief" We started with over 120 reports, but after 6 months, it was halved, as each report found its user :), and the fact that the data being analysed, showed us the products were far better than expected, basically their was nothing to report on the other reports, so when something popped up, we took notice :)
Regards
John
Comment #18
Anonymous (not verified) commentedJust Stumbled on this link http://drupal.org/node/216961 may have bearing on the future
Comment #19
rdeboerI have just checked-in a first cut of an implementation of what is discussed in this thread. Will be available in the next development snap shot.
@John,
I can't quite get my brain around your extra 'My moderaton' menu item and how much benefit it will bring. Perhaps you can download the latest versions or Module Grants and Revisioning, have a play and we'll take it from there in terms of what functionality is still sorely missed.
Don't forget to try different users, in particular a moderator role vs an author role, so that you can contrast the different content appearing under the 4 tabs. There's little gained from logging in as admin, as admin can view, edit and delete anything and everything.
Do you know the Masquerade module? It saves a bit of time when using the app under different users (roles), switching between them. Alternatively you can open 2 browsers at the same time, provided they're different brands (e.g IE and Firefox) otherwise you still end up with your sessions mixing.
Comment #20
Anonymous (not verified) commentedHi Rik
I will take a look when its available, ensuring i get Module Grants too
No need for the Masquerade module, I canget access to Admin Creator and Moderator at the same time :)
John
Comment #21
Anonymous (not verified) commentedRik
My wife just made a comment on the advantage of having a Moderator section
Content under Pending of My Content, if stuff i have awaiting approval elsewhere
Content under Pending of My Moderation is stuff I have to approve
John
Comment #22
Anonymous (not verified) commentedHi Rik,
Logged in as Admin
Initial reactions, some we have covered previously
Layout
We only need one Menu item, and that could be "Content Administration" or "Administer Content", positioned under "Create Content" is perfect, though their may be a programatic reason for doing this over the following
I invisage two levels of Tabbing
Top row
"Content I Created" Content I can View" "Content I can Moderate" etc, though titles definitely may need work
By making the page title Administer Content a row of tabs as below could work
"I Created" "I Can View" "I can Moderate", or just down to "Created" "View" "Moderate" if we include a descriptive below the second row of tabs above the table, which is probably a good idea anyway
Second Row
"Draft" "Pending" "Editable" "Not Published" "Published"
I rearanged the sequence and added Draft, in case it an be created using info from Workflow
The sequence now is as close as you could get from conception left to delivery right.
If an option is not available to the user, should the tabs just be omitted or should tabs move left. My inital thought is just omited, that way a user with different roles under different usernames would tend to look in the same place.
Will cover content is later reply
Comment #23
Anonymous (not verified) commentedHi Rik,
Logged in as basic user with create but no moderate rights
Initial reactions, some we have covered previously
Layout
Basically as previous
Content>Content I can View
Pending
Appears to have the same results as Editable
Published
Is basically site content
Not Published, should be restricted to same content types as Editable
Content>Content I Created
Pending does not show Content I Created but not approved, but it does appear in Editable and Not Published
Comment #24
Anonymous (not verified) commentedHi Rik,
Logged in as moderator
Initial reactions, some we have covered previously
Layout
Basically as previous
Block
As their wa sonly 1 test item, I noticed a small issue "1 revisions pending", maybe chaging to "Revisions Pending - 1" would be a simple solution to inference of more than one "Revisions", rather than lots of code to change it to "Revision"
Content>Content I Created
Pending
Shows entries as pending, when it should be none, also therer was one entry where the "by" has Anonymous, not sure where this has come from as their are no rights to Anonymous nor any auto publish options
Content>Content I can view
Pending
Shows entries as pending, when it should be none but does not appear to show teh one nod ethat should be there
Editable
Appears OK Though looking at the existing titles Content I Can View and Editable is misleading as it is Content I can view and that I can edit ( This may need a wording re-think later)
Not Published should be restricted to same content types as Editable
Comment #25
Anonymous (not verified) commentedHi Rik
A general summary
Apart from a few minor coding glitches we seem to be homing in on the target
I am still inclined to think My Content, My Contributions and My Moderation, may be more appropriate, but again that is for later, at the moment its getting a better feel for what we have, obiously a little easier once the bugs move out ;)
If we do opt for a descriptive text (mentioned in another thread) that goes under the tabs above the table to explain whats on display and what can be done, that would also help new users. But should this be a default message, (Probably) and possibly over-ridden by Admin (Possibly) This would allow an organization to tailor it to their needs, including potential translations if they have a multi language userbase.
John
Comment #26
rdeboerHi John,
Thanks for all your testing work.
Following your suggestion, I have introduced the double layer of tabs i.e. what drupal calls the "primary_links" and "secondary_links".
I'm still not convinced that this is the prettiest or most user-friendly arrangement. I quite like the idea of removing the top layer of tabs and converting them to normal menu links as a submenu of "Administer content" in the main navigation bar on the left.
There was indeed a bug in the 'Pending' tab, which I have fixed.
'Not published' is now showing content that is editable, as per your request.
I have put a couple of help messages in for the the two top tabs 'I created' and 'I can access (view)'. May need to change the wording and/or add help messages for the 2nd layer of tabs too.
Revisioning does not change the author or modifier of any content so this 'Anonymous' must come from somewhere else (Sheduler, after publication?).
I believe there is still a technical hurdle with having a 'My Moderation' (primary) tab, which is related to the technically difficulty we/drupal have w.r.t to the distinction of "in draft" and "pending".
I'll elaborate on that another time, in another thread.
Comment #27
Anonymous (not verified) commentedHi Rik,
just a quick reply for the moment, will check out the changes later.
I was looking at the Views module earlier, and noticed it can create many of the queries needed for the content
I was wondering if you had ever looked at utilsing som eof those facilities? Though as it stands Revisioning and Module Grants are quite self contained.
Comment #28
rdeboerHi John,
Yes I have thought of that and integrating with Views would bring in some handy additional functionality, e.g. sorting. But I don't think Views has the concept of "pending revisions". However, maybe there are some hooks I can use....
It's on my list of to-do's to research this some more.
Rik
Comment #29
Anonymous (not verified) commentedHI Rik, just stared to look at the improved interface... I am liking, further analysis to follow.
One of the advantages Views can offer is a lot of the query building can be done for you :)
It can handle Scheduled revisions by filtering by less than now on nodes
It can handle not published content
Maybe its a case of using views to create the page of nodes, as your coding drops more into the node itself
John
Comment #30
Anonymous (not verified) commentedHI Rik,
Ok on to the analysis
As admin
I Created
Pending is showing nodes that do not require moderation, and are not published
(Would it be fair to say that an item that does not require moderation and is not published, is not pending just Not Published - Think Pending Moderation)
Not Published is showing the same nodes as Pending and a few more including scheduled some of which are not scheduled ( looks like some issue with the code in either Pending and or not published
I Can Access
Pending is showing exactly the same set of node as Pending above, except it has an additional entry of 1 item that Should be there as its a moderated content type. Applying above fix would resolve
Not Published As Not Published above + 1 extra node mentioned that should also be there
everything else looks to have correct results returned
more to follow
Comment #31
Anonymous (not verified) commentedInterlude
Workflows (so i can remember)
Draft > Published (User)
Draft > Not Published > Published (User)
Draft > Pending > Published (Mod)
Draft > Pending > Not Published > Published (Mod)
Pending > Published (Mod)
Pending > Not Published > Published (Mod)
Comment #32
Anonymous (not verified) commentedNothing much as User or moderator both roles appears Ok
Menu, entry for Administer Content does not come after Create Content for Admin, but after Administer
One thing that keeps jumping into mind is that in "Published" we see all site content not those that the user has create edit delete rights. Do they really need to see all other content types that they cant manipulate? If they want to see it they should look through the site search or menus and see it in the format intended for them. If say we have 1000 Nodes in Published and the user can manipulate none of them, it makes the option redundant, If however we restrict it to content types that they can manipulate, we then provide a useful tool for easier access to content they do need access to.
This may also be applicable where users are restricted to areas of the site by some other means.
By the way Wife went wow when she saw the new layout :)
regards
John
Comment #33
rdeboer#30
Hi John,
Fair perhaps, but currently "pending" means "pending publication" more so than "pending moderation" and as will become clear below, without a sophisticated Workflow using distinct states, you won't be able to tell the difference anyway.
The nodes that appears under Pending that you feel "don't require moderation" probably have only 1 revision, am I right?
Or they are nodes with revisions that were created when "New revisions in moderation" was checked for that content type but since reversed while the nodes still had pending revisions. We talked about this before, see #472718: Pending revisions to exclude content types that no longer have moderation?. The system considers these nodes "pending (some action)" -- it is saying: "we're not moderating this content type any longer, but we've got this dangling revision, someone needs to either publish or delete that revision or unpublish the node" (and the moderators are the ones to do this).
Note that both with "pending publication" and with "pending moderation", we cannot really be sure whether a node that has only a single revision that is not published is a draft awaiting publication/moderation (pre-publish) or was previously published and taken off the site (unpublished) -- we don't know its history. We'll have to live with that for now.
First, a caveat: if "pending" is to mean "pending moderation", then content that requires publication (with or without further edits) won't show up under "Pending" or in the "revisions pending" block, so it isn't brought to the attention of the user(s) who can publish it.
I think what I'm saying is that content of a type that requires another role to publish it should be configured to always be created by the author in a "not published" state (i.e. untick checkbox on Content management>>Content types>>edit>>Workflow settings), whereas content that does not require moderation should always be created in the "published" state.
Is this the case on your system?
It would be an impossible contradiction to on the one hand configure a content type to have no moderation (read: no publisher), and at the same time configure it to not publish upon creation (read: require a publisher).
This may be the reason why things appear screwy.
In determining whether content is "pending" the system takes its cue from the fact that a revision exists that is newer than the currently published. It doesn't look at whether "New revisions in moderation" is checked for that content type, because if it isn't ticked, then it is impossible to create a new revision without it becoming the current at the same time..... unless the configuration settings were misused as explained in the paragraph above.
I could change the code to and define "pending moderation" = "pending publication" + "New revisions in moderation ticked", but it's quite a bit of work, might slow down performance, and as explained, "pending publication" + "New revisions in moderation NOT ticked" is a contradiction in terms, a symptom of an incorrectly configured system.
So, basically: "pending publication" = "pending moderation".
With that in mind, do you still feel the tabs have a bug - or is it more a case of lacking functionality?
If I'm correct, I guess it would be worthwhile for me to explain this point in the project docs....
Re the other point in #30:
The "I can access - Pending" tab can indeed show the same as the "I created - Pending" tab, if the logged-in user has created all content.
Rik
Comment #34
rdeboer@ #32
Hi John,
What do you mean by manipulate? 'Edit? Publish?
Under the 'I can view'>>'Published' tab, the logged-in user should only see published content they have at least 'view' access to (and possibly edit and delete).
As a consequence If the user is admin, they'll see the whole site.
If this also happens to other users, then maybe you've accidentally given them the God-like powers of the "administer nodes" permission?
Or actually, if your site mainly uses one or a few content type and the user has 'view' permission to those content types, then yes, they'll see the whole or almost the whole site.
It may not be the most useful option. I guess it plays a more useful role when you have content that is categorised (e.g. by department, such as "sport", "science", "arts") and you have authors and moderators that only operate in certain departments and may only view content that belongs to their department(s).
That's where Taxonomy Access Control comes in and this is what the second Revisioning tutorial is about.
Rik
Comment #35
Anonymous (not verified) commented#34 first
"...What do you mean by manipulate? 'Edit? Publish?..."
Exacly Edit Publish and Delete
This restricts the users then to only content types they can do something with. View basically give total access to anything they can se that is on the site anyway
Part of the problem I think stems from how the permissions are set
We have
Access content (view) which is global, but can be restricted using other means to prevent display, under certain cases, which is what we ideally need too, so we dont bypass the restrictions (Admitedly from what you have said before, all nodes are visible if you know the URL , but if you dont its hard to find, also there may be code in the template to restrict visibility of the node content to certain users. I use this technique for certain administration notices, that are for admin only)
Each content type has
Create
Delete
Edit_any
Edit_own
We also have
View Revisions
Revert Revisions
The two roles other than admin i have, are configure as below
encyclopedia_clerk
Access content by default
Create Encyclopedia Content
Edit own Encyclopedia Content
Edit any Encyclopedia Content (recently added as role may change)
View Revisions
Edit Revisions
encyclopedia_editor
Access content by default
Create Encyclopedia Content
Edit own Encyclopedia Content
Edit any Encyclopedia Content
View Revisions
Revert Revisions
Edit Revisions
Publish Revisions
Unpublish Current Revision
Neither of these users has need to see other site content, other than when its displayed on the website
In total I have 32 content types
Case I have a couple of content types where basically I put information into them that for most viewers would be meaningless until processed with a bit of php, so i dont advertise the URLs, the nodes are only seen through a view which processes and formats as i wantthe information displayed
You mention
"...Or if your site mainly uses one content type and the user has 'view' permission to that content type, then yes, they'll see the whole or almost the whole site. ..."
I may be missing something here but
Access content (view) is not content type restricted?
Re "...It may not be the most useful option..."
I can see where your coming from here with the use of Taxonomy to create departments, in my case I Took a different approach. I created different content types for each so called "department" as they were so wildly different in their content,
So part of the problem may be we are perceiving the issue from slightly different directions.
Comment #36
rdeboer#35: Access content (view) is not content type restricted?
You're absolutely right. I got my wires crossed. Access content goes across all content types, unless you have one or more modules for fine-grained content access control enabled, such as Workflow and/or Taxonomy Access Control (Lite).
So I agree, when these modules or modules like these aren't installed, then any authenticated user can see pretty much everything, it will be filtered by Published and Not published only.
Maybe the Published tab should become "Published and Editable by me"? Would that be more useful, as Editable depends on the content type.
Comment #37
Anonymous (not verified) commentedRe #33
I need to take a further look at this as part of the issue may be related to the new content type workflow setting, I had not seen before:)
As a quick response though
The nodes that appears under Pending that you feel "don't require moderation" probably have only 1 revision, am I right? appears true
"...First, a caveat: if "pending" is to mean "pending moderation", then content that requires publication (with or without further edits) won't show up under "Pending" or in the "revisions pending" block, so it isn't brought to the attention of the user(s) who can publish it...."
This makes sense and is what I was expecting. Basically if it doesnt need moderation it is effectively just Not Published, and anyone with access to that content can then publish as they see fit, I would expect it to appear in the Not Published section but not in Pending using the Content Types Requires moderation as the filter, however that brings us back to #472718:
There are obviously a few points we still need to resolve :) I will have a more thorough look later todaty and provide a fuller response
John
Comment #38
Anonymous (not verified) commentedHi Rik
re #36
if we first consider - I Created
Published - only shows those content types I can "create"(i may no longer have access to edit) or "edit" which are published
Not Published - only shows those content types I can "create"(i may no longer have access to edit) or "edit" and which is not published
Editable - only shows those content types i can edit (Published or not is irrelevant)
Now for - I Can Access
(still think I can Moderate would be more descriptive) :)
Currently
Published - shows all content types I can "access" which are published
Not Published - only shows those content types I can "create"(i may not have access to edit) or "edit"(I may not have acces to create) and which is not published
Editable - only shows those content types i can edit (Published or not is irrelevant)
Probably should be
Published - only shows those content types I can "edit" which are published
Not Published - only shows those content types I can "edit" and which is not published
Editable - only shows those content types i can edit (Published or not is irrelevant)
If we now look at - I can access but from a different point of view and call it "I Can View"
( and an option disabled by default - Would fit Ron's view all access - assuming its not an existing configuration issue)
Pending - Everything on the site Pending
Editable - Everything on the site Editable though this is in theory covered by the other options in this section so could be omitted
Not Published - Everything on the site that is not published
Published - Everything on the site that is published
if we were to merge Published and Editable we loose some functionalit in that Not Published is also potentially editable
At present I think we have the secondary tabs correctly labeled, and its a case of finalising what primary tabs, we need and their labels. Once that is resolved, it will have an impact on the final filtering of content of the scondary tabs.
Comment #39
Anonymous (not verified) commentedRe #33 #37
I Had just taken an hour+ to reply and then lost the screen....Aaaaargh !
Will try again later, though probably not as detailed
Comment #40
Anonymous (not verified) commentedWill answer bits i can remember first
"...I think what I'm saying is that content of a type that..."
This is my configuration though in my case an author gets to Publish if he has publish permission
"...In determining whether content is "pending" ..."
How is a new node handled that gets moderated as when its created its the first revision ? ( And i wont even mention the Revision Deletion module that delets old outdated revisions to save space)
"...I could change the code to and define...."
"pending moderation" = "pending publication" + "New revisions in moderation ticked",
This is what I would expect to see under Pending Publication
"pending publication" + "New revisions in moderation NOT ticked"
is a contradiction in term,
It may seem a contradition at first, but when you look at it another way, they way I have, I get :-
NOT Published = "pending publication" + "New revisions in moderation NOT ticked"
More responses to the earlier bits to follow
Comment #41
rdeboerIt's not easy deciding on a set of filtering tabs to make useful partitions through that sea of content, is it?
I have played with a few more ideas. Been trying not mix more than one permission into a single tab, as it so easily comes across as convoluted to the user. Latest thoughts are this:
So we have "Accessible content" in the left navigation bar, which when clicked shows to rows of tabs.
top row, applies a filter based on access permission: "I last modified" | "I can edit" | "I created" | "I can view"
2nd row, applies an additional filter based on publication status: "Pending publication" | "Published" | "Not published"
Note that for authors and contributors the most common selection would probably be "I last modified"+"Pending publication" to see where there drafts/pending revisions are at (are they still in the moderation queue?).
For moderators the most-used selection would most likely be "I can edit"+"Pending publication".
As RTH suggested in another thread, it would be great if we could set these default selections based on the fact whether the logged-in user has publication permission.
I have added an "I created" tab, but I feel that "I last modified" is probably going to emerge as the more versatile of the two. Of course, for nodes with only one (the initial) revision "I created" and "I last modified" are equivalent and will show the same content.
I have thrown in "I can view", although I realise its usefulness is limited, as in particular for sites that don't have any additional content access control modules (such as Workflow, TAC-Lite) this tab will show a very long list, the entire live web-site in fact, when combined with "Published". The "I can view" tab is there as a 'debug' tool and to allow people to find their content. For instance, when an author only has the right to view and create (but not edit), their content would go "missing" when saved and subsequently edited by another user (and there may be content approval workflows where this is needed). The "I can view" tab would reassure the original author/creator that their content is still there, it's just not in their hands anymore.
A natural extension would be to add "I can delete", but as with "I can view" its practical usefulness is limited and that first row of tabs is getting pretty crowded already and may wrap to the next line, which is ugly and confusing to look at.
Now as for "I can moderate" ... I'll discuss that in a next comment.
Comment #42
rdeboerSo re an "I can moderate" filtering tab... (continuing on from previous comment #41)...
As much as I love the concept, it is the drupal architecture that makes it very hard to realise this.
It all comes down to the permissions system available to us.
1) We can assign edit permissions by content type. Good!
2) We can tick the option "New revisions in moderation" for selected content types. Good. But we have to be careful not to interpret "moderation" in too fancy a way. All this option does is create a new draft without making it the "current" revision (the "current" revision is the one intended for public view, once published). This new draft/revision can be edited by anyone that has edit (this content type) plus edit revisions permissions (I'm assuming we're talking about the case where Workflow is NOT enabled). So in Drupal terms, there is NO DIFFERENCE between a draft that's on the author/contributor's desk and a "revision in moderation" being reviewed by a moderator, because typically authors, contributors and moderators have the same content access permissions to that piece of content. In terms of the software, you cannot (yet) transition a revision from the draft-state to a "pending moderation" state as these two states are one and the same. Would it be less confusing if that "New revisions in moderation" option were called "New revisions in draft".
3) We can assign, globally across all content types, a publish permission to certain roles. If this publish permission is assigned to a role that only has "view" access (which as we know in drupal is also across all content types), then I guess we'd call that user a "publisher" (for any and all content types). If that role also has edit permission then we'll call them a "moderator" (for that content type) plus a "publisher" for any other content type.
So really a "moderator" is in fact an author/editor with the publish permission. They share access to the same content (content type). Which means that what a moderator would see under the "I can edit" and "I can moderate" tabs would be the same content (for any of the 2nd row tabs selected)....
[unless for "I can moderate" we are going to also filter by the "New revisions in draft/moderation" flag which means that "I can moderate" would show the same or a subset of "I can edit". However this would be misleading as it would not reflect what the moderator can really do -- remember that the "publish permission" is in no way related to the "New revision in draft/moderation" option, and so even though certain content would not show up under the "I can moderate" tab, they would still be able to publish it, as they can publish ANY content, it's a global permission]
What I can do regardless, is for those users with publish permissions (publish, unpublish or revert) to remind them of this fact in a message immediately below the tabs, for example "You may moderate this content". Would that be useful.
Comment #43
Anonymous (not verified) commentedHI Rik
re #41
The problems with deciding the boundaries is trying to accomodate all situations. I used my own case as teh basis of what I have suggested, adding in where i could see others may have differing needs. but even then as you say its not easy.
Accessible Content sounds good to me, Not sure if their is a way to permit admin overide, to change the title if their userbase interprets different?
I like the new top row, it sounds ok. The "I last modified" is a good addition. Needn to sequence logically I Created, I last Modified, I can Edit, I can View might be appropriate
Getting my head around teh moving of Editable to the upper menu may take a bit of getting used to :)
I agree on using default setting, and would definitely agree on moderators being offered I can Edit + Pending Publiation especially if its not one they last modified (assuming auto publish is not on) we would want them to clear others work before starting their own. ( This may be part of why i have suggested modeartion to get their own content seperate from user content)
I can view is as you say a more of a debug tool, though this is one that should have an admin settin gto permit, mentioned elsewhere
I can delete does have limited use, which might be accomodated with another column in the returned tables? along teh lines of deletable, but then that another column :)
will respond to #42 shortly
Comment #44
Anonymous (not verified) commentedre #42
Starting at the bottom
Any message is good :) Again these could be enabled for roles or across the board, mayb even in the same area a total of nodes under that tab, but these are just thoughts
The rest seems to make sense, probably be easier to grasp when its visual. :)
I think one of the things in the back of my mind is viisibility of content that is moderated, ie its own pending its own edit its own view which are restricted to just those content types that are moderated. In my case as admin i see all, so having them burried in 8000 nides is not a good thing. By seperating them i can see whats being approved by other moderators over recent days, sort of an audit of whats going on, incase some standard has drifted
Comment #45
Anonymous (not verified) commentedOne really wild idea. is Publish permissions for each content type/role, this would in theory allow for moderators own work to be moderated by another moderator, though i suspect this is outside the scope of the module and more what should be in core
Comment #46
rdeboer#43, #44
Thanks for the feedback John,
Well I might go ahead with this experiment then, make it real, so we can all have a play.
Showing "deleteable" as an extra column (rather than a filtering tab) is not a bad idea -- the query for that doesn't fit in with any of the others, so would be a bit of work and may cost us (the users) a performance penalty. I may put that one on the back burner (or put it in as a filtering tab anyway, as it is so easily done).
I'll change the order of the tabs and I'll see if I can get the permissions-dependent defaults for the tab-selection happening.
#44
A more philosophical response to "I can view". I'm not sure whether this should be restricted to admin only. It would suggest that other users don't have view access, when in reality they have (they could get to it by typing the URL). If the system has been set up so that certain users can view certain content, then I feel "I can view" should expose that (tell it like it is!), as it makes apparent what is in fact a symptom of a wrongly/incompletely configured system, swept under the carpet.
Similar w.r.t an "I can moderate" filter. As mentioned before, without the Workflow module installed, "I can moderate" just means "I can edit" AND I have "publish revisions" permission (or "administer nodes"). This will be so for ALL content types, even if we filter out those for which "New revision in moderation" isn't ticked. So we could filter them out, but that would just suggest that the user doesn't have this capability, when in reality they have.
"New revision in moderation" is not a content access or publication permission it is simply a configuration that tells the system not to make the new revision current, but leave it as pending.
In fact, as this is a constant source of confusion (for myself included), I think I'm going to rename this option "New revision in draft").
#45
Publish permissions per content type: yes that would be great and yes that should have been in core.
As I found out when developing Module Grants, one has to bend over backwards to make even the most basic revision moderation operations possible and secure. Drupal's core permissions system leaves a lot to be desired.
Let's hope it gets sorted out properly in version D7.
Comment #47
Anonymous (not verified) commentedRe 49 part #43#44
Re 46 part #44
I think its more a case of not what the user role can view so let hem have it, but more of what the admin "Wants" them to be able to view at a specific time, using this specific interface. Remember what is seen on the site may be formatted differently. as Mentioned before I have content types of that nature.
One site i designed has a user who falls under the category of autistic, If i were to present to them all the informattion in I Can View would be just too much, its a facility that for them, and the other site users, that I would be prefered turned off
In my own case, I already have a block that is redundant as it displays several nodes that are not published, none of which I care about as i can find them in in the normal content interface if i need.
The same applies to "I can moderate", its not a case of whether a role can view but if the admin wants them to
at that time with this interface filtering tp remove those where "New revision in moderation" isn't ticked. makes the block again useful
I think what it comes down to is different ways sites are coping with the options available, and the type of user that is using them. Were manipulating whats available to get the best from the tools available
Re 46 part #45 more likely D2012 :) It seems some simple fundamentals have been overlooked, i added a feature request for D7 Block visability, http://drupal.org/node/393386 cant see it ever getting in, as its not been responded to, but its another case of from an oustiders point of view, a simple but obvious facility.
Comment #48
rdeboer#47
"I think its more a case of not what the user role can view so let hem have it, but more of what the admin "wants" them to be able to view at a specific time, using this specific interface"
Ok, I guess what I'm saying is that "what the admin wants them to be able to view" should ideally be expressed and enforced through permissions or content access grants rather than through hard-coded suppressions or auxiliary configuration options. Otherwise we're luring ourselves into a false sense of security, i.e security hole.
I do agree that in order to cope with the amount of content like you have on your site, we need sorting, grouping and additional filtering. The idea of further tabs, as you initially suggested and now maturing in the development version of Module Grants+Revisioning, is great and hopefully the community will agree with us it's a step in the right direction.
Filter-by-content type could be the next step.
"In my own case, I already have a (pending revisions?) block that is redundant as it displays several nodes that are not published,"
Do you not care about the "not published" nodes because in your view they are previously published (or never published) nodes, but because they have only 1 revision the block thinks the nodes are pending publication?
You can make these disappear from the block by Saving them (no need to edit anything), creating a new revision, then publishing them (so that the pending revision is made current) and then unpublishing them. This ensures that these nodes are considered unpublished in the true sense of the word, rather than not-published, pending publication.
Comment #49
Anonymous (not verified) commented"...Do you not care about the "not published" nodes because in your view they are previously published (or never published) nodes, but because they have only 1 revision the block thinks the nodes are pending publication?
..."
I do care about them in that I may need them at some point, but i can get to them through Admin> Content when i need them
These nodes are ones that have been unpublished, for the moment as at present they have no need to be displayed, but they are to be republished at a later date without change. Others are nodes with ideas/experiments etc., so really drafts, but ones that need visibility on an as and when basis to a select few.
I tried your suggested method, unfortunately I realised after 20 minutes of re-saving , that it didnt eactly work, because the content types of some of the nodes do NOT create revisions :)
Another issue could be a site with 1000s of nodes in this "Not Published" state, having to update them to get them out of the block
From this I think we have hit on a posible future snag. If you can run through this scenario.
Node created an published. Later modified, still published, modified again and still published, goes on for months. 1000's of revisions.
Node created, never published but revised several times.
Revision Deletion module comes along doing its regular clean up, deletes all old revisions !
Where does that leave us with the current logic?
"...we need sorting, grouping and additional filtering..."
These I look forward to as they will definitely improve the situation.
"...Ok, I guess what I'm saying is that "what the admin wants them to be able to view" ..."
The problem we have is there is no permissions that cover this scenario.
If we look at it from a "Views" module point of view, we can take several nodes and present them as a view. None of the original nodes are visible to the user, in their unformated state, unless the user can guess the URL for the node. almost 50% of my site has content of this nature, using a view to access the content, so as to provide format and theming to ensure teh content is opresented in the correct context.
I also use the Quiz module. which uses 2 content types. Quiz and Multichoice.
The Quiz is the basic desription. But the Multichoice are the specific questions. The nodes of the multi choice are not exposed in the URL whilst taking a quiz, so as to prevent them being viewed outside a quiz. I have a Filter on the site search to prevent them being returned in the search results to normal users and roles i do not want to see them (using Search Restrict). But Revisioning without a means to restrict what a user can view, exposes all question to all Roles acting as moderators.
Comment #50
rdeboerRe: "Revision Deletion" and "... where does that leave us with the current logic?"
See the "aside" comment #1 of #477682: Pending vs Rejected revisions
Re: The problem we have is there is no permissions that cover this scenario..."
That's right... !
So we can do the following:
1) live with it
2) properly code those permissions, i.e. for starters: fine-grained publication permissions by content type (could be a lot of work AND conflict with existing revisions permissions in the core node module)
3) wishy-washy hack around the issue (again, see also #477682: Pending vs Rejected revisions)
4) wait until D7 provides these permissions (hahaha!)
Re: But Revisioning without a means to restrict what a user can view, exposes all question to all Roles acting as moderators.
That means that Revisioning (Module Grants rather) does what it is meant to do and exposing a security hole in the Quiz module in the process! We can't blame Module Grants for that, we should be grateful!
But look, I hear what you're saying -- we may have to go 3) and implement a quick and dirty of some kind...
Comment #51
Anonymous (not verified) commentedRe #50
"...See the "aside".."
OK they got it (moderate column), They dont use it? Will they be using it? Do they want it? Can we have it ?
Which gives us a facility we need, but also alows us to create something that one day could be modified and adopted to core (then we might get a bot more:) )
Option 1 in not an option otherwise we wouldnt be here :)
Option 2, if we knew there was no conflit great, thougfh as there is a risk. limiting the coding is prudent
Option 3 Looks to be the way to go
Option 4 With the way things seem to be put off till later or discussed to death whilst achieving nothing. The option could be obsolete as I may have died of old age long before something happens.
I think were not really exposing security holes , but more identifying others suffering the same fate as us, due to lack of revisioning and other access permissions
John
Comment #52
rdeboerThis thread has gone off-topic a few times.
As far as the core feature request, new filtering tabs, this has now been implemented in Revisioning 6.x-2.x-dev (soon to become 6.x-2.6) (via Module Grants 6.x-2.x-dev/6.x-2.5).
Suggest we use this thread for comments about this feature in those releases and raise other issues in their own threads.