Problem/Motivation
It took me a long time to figure out what the Node - Administer Content (internally known as administer-nodes) permission was for. Documentation for it elsewhere is scarce and IMHO the title (which we can't change now, clearly) is misleading.
The description (after the usual "trusted role"' warning) reads:
Promote, change ownership, edit revisions, and perform other tasks across all content types.
To me, the title "Administer Content" implies full edit permissions, but that's not the case, e.g.:
- It doesn't allow you to edit all nodes - you get no choices in the Operations column on /admin/content without individual create/edit/delete permissions for specific content type or the "Bypass Content Access Control" permission
- It doesn't allow you to view or edit content types (/admin/structure/types) - that's what Administer Content Types is for (plus "Use the administration pages and help")
- Attempting anything in the /admin/content Actions dropdown will also give a No access message - e.g. marking the content as sticky, promoting it, changing the publish state etc.
- You can't access /node/1/revisions with Administer Content alone.
From my testing and checking the source code, it seems, providing I already have permission to edit a content type (without this you can't do anything), Administer Content gives me the Author (uid, created) and Promotion (promoted, sticky) panels on the edit screen, plus the Revisions tab.
NB: we still refer to "administer nodes" rather than "administer content" in a few places ("Role requires" text in other permissions) - I've submitted a separate patch to fix this.
Proposed resolution
Can we:
- remove or clarify the ambiguous 'perform other tasks'
- indicate "Administer Content" needs to be used in conjunction with edit permissions / doesn't allow editing on it's own
- consider position/relative importance of Administer Content vs Bypass Content Access Types etc. in permissions list (which combination do most users need?)
Current suggested new text:
Warning: Give to trusted roles only; this permission has security implications. Change ownership, date/time, promote or make sticky and edit past revisions for content in all content types. Does not include view, edit or delete.
Remaining tasks
Agree wording. Write patch.
User interface changes
New description on /admin/people/permissions.
API changes
None.
Data model changes
None.
| Comment | File | Size | Author |
|---|---|---|---|
| #47 | 2842960-after_patch-44.png | 20.55 KB | abhijith s |
| #47 | 2842960-before_patch-44.png | 18.75 KB | abhijith s |
| #46 | Improve-administer-content-permission-description-2842960-44.patch | 708 bytes | shivam kaushal |
| #24 | interdiff-improve_administer-2842960-14-23.txt | 1.56 KB | chiranjeeb2410 |
| #23 | improve_administer-2842960-23.patch | 1.59 KB | chiranjeeb2410 |
Comments
Comment #2
pashupathi nath gajawada commentedShall I look into this.
Comment #3
wturrell commentedBy the way, I've submitted a patch to change "administer nodes" to "administer content" in the other descriptions
https://www.drupal.org/node/2843030
Comment #4
wturrell commentedRephrase my suggestions for clarity.
Comment #5
wturrell commentedAdd some suggested wording. Convert issue summary to template.
Comment #6
wturrell commentedTag to encourage feedback on wording etc.
Comment #7
dpiThere is no reason to do this.
This comment is not necessarily an endorsement of this issue.
Comment #8
dpiFixed html
Comment #9
wturrell commentedSimple text change so quicker for me to do to make progress.
Comment #10
wturrell commented- Permission description updated with my suggestion.
- Not aware of any particular Drupal YML line-break coding standard for long lines.
- Tagged for translation.
- Issue summary updated to be more useful re: relative position of permissions in list.
Comment #11
wturrell commentedComment #12
dpiIts not one or the other, both are possible
Of what? (creation date) Why is this worthy of mention?
Also, preferably no slashes
Typically we only mention what a permission does, not what is does not do.
Comment #13
wturrell commentedI don't believe that'll mislead people given they're checkboxes, but sure, it sh/could be a comma.
Yes. This permission is an unusual combination of privileges, not documented well elsewhere. I favour listing all we know about unless the description becomes unwieldy.
The title "Administer Content" implies the ability to perform general edits, which is misleading. We should be more explicit that it's only a partial permission.
Comment #14
wturrell commented"promote or make sticky" -> "promote, make sticky"
Comment #15
chiranjeeb2410 commentedComment #17
wturrell commentedUnassigning due to lack of activity (but if you'd like to review it or make a change go ahead.)
Updating String change tag.
Comment #18
chiranjeeb2410 commented@wturell, changes are good. Patch supplies well. Changing to RTBC.
Comment #19
xjmThanks everyone for improving the text of this key permission. Accurately communicating what powerful permissions like this do is very important.
I'm not sure this is the best change. I find the last sentence actually confusing. In general our overall pattern should be to shorten or remove permission descriptions rather than lengthen them, because we should make the label say everything the user needs to know about the permission if possible. That may not be possible in this case because it is a complex permission.
Looking over the introduced changes with a word diff, this patch:
So, maybe a better improvement would be to have something like:
That's just a rough draft; it can probably be better. I might not be following all the content standards there for the descriptions. I just wanted to show how we could explain the limitations on the permission more clearly.
In general, a lot of usability work is done on these UI descriptions, and many of them have undergone prior usability review. So, it's good to get usability review before changing them. However, this issue does not seem to be attached to any meta issue for permission descriptions that are being updated to get a high-level picture on this work. Can we create one and attach these issues to it?
Finally, I'm adding a couple of past related issues.
So, let's look more at how we could improve this text, and look at past improvements made to it and related permissions as well as future improvements that are proposed for other related permissions. Then, with that larger picture, we can come up with an improved description and get usability review to make sure we are achieving our goal.
Thanks everyone for your careful attention to detail here!
Comment #20
wturrell commentedThanks @xjm. This will also take me ages, so I'll split into separate long comments.
The first is specifically re: the history of this permission (I've traced changes it right back to D7).
TL;DR - it didn't IMHO have a full UX review when first created and the one edit increased the ambiguity.
Also, a mistake in the patch got committed and wasn't spotted until a year later.
"Administer Content" (administer nodes) never had a description, until #1980010: Add description to "Administer content" permission
(13 months from reporting to commit to 8.0.x-dev in July 2014)
Summary of comments at the time:
- problem: it's not obvious what it does
- back and forth over whether it should be concise or list everything
- the usual (imho) "drive-by" reviewing problem (does the patch work? looks good to me, needs review->RTBC etc.)
- webchick and catch both asked for a usability review.
Catch's full comment feels relevant:
…which I interpret as:
- having any description may be more confusing than having none
- it's primarily of use for developers, rather than site users
(worth getting an opinion from him?)
TravisCarden's original wording:
[some time passes] description deemed too verbose, subsequent edit to:
Incidentally, not criticising Travis at all - especially as the bit that was cut from his version - "administration content operations", hints that it's not really the same/as straightforward as create/edit/delete. ("Perform certain", perhaps? Will come back to the wording at a later point.) Plus he reported it for the same reasons I did - I think it's a bit of a messy set of privileges.
Anyway, that edit didn't get any further scrutiny – the subsequent patch was tested, RTBC'd and committed without further comment.
Unfortunately, although Travis' original patch (#1) in April 2013 was correct, those made later (#12,#14) added the new text to "administer content types", not "administer nodes", possibly because the contributor came to the issue fresh and was confused over the issue title – or simply what the permissions actually did (remember neither of them had a description in the UI at that point...)
This was compounded by not making an interdiff, which would have shown to contributor (or the reviewer if they'd remembered to check, or indeed alex when he committed it) that a different line had been changed.
Additionally, someone had uploaded a screenshot of the original patch with the correct description altered, but that was not hidden, so it would have been understandable to glance at that and assume everything was OK..
The issue you found #2561325: Wrong description for 'administer content types' permission - was a year after everything had been moved to node.permissions.yml - and identifies the description is in the wrong place.
Btw, for anyone reading that issue - it's also confusing – it has before and after screenshots attached, but only the "after" was added to the issue summary (and in a position where you might expect to see the 'before').
I'll go through your other points and update the issue summary when I have time.
Comment #21
wturrell commentedAdd related "View site reports" permission issue
Comment #22
chiranjeeb2410 commented@wturrell, can you suggest the changes to be issued as of now?
Comment #23
chiranjeeb2410 commented@wturell, made new changes. Please review
Comment #24
chiranjeeb2410 commenteduploading interdiff here.
Comment #25
chiranjeeb2410 commentedComment #26
joyceg commentedComment #27
wturrell commentedThis needs further discussion/work, as per previous lengthy comments by @xjm and I.
Also when you mark issues as RTBC, please explain what you've done to review it, why you think it's ready etc. (Thanks!)
Comment #28
wturrell commentedComment #29
chiranjeeb2410 commented@wturell,
Could you please describe the changes required as of now ?
Comment #33
geek-merlinComment #34
webel commented@wturrel thanks for raising this issue, I agree especially that "perform other tasks across all content types" is too vague, it could mean anything, and the only way to know what the consequences are is to tediously experiment. I've been using Drupal for about 10 years and I still sometimes struggle with that permission setting.
Comment #35
bramdriesenI guess this should target the latest dev release. And un-assigning the issue since there is nothing done since 2017 =)
Comment #38
mxr576+1
Figuring out what "administer nodes" gives access exactly is almost impossible to tell. My gut says both core and contrib modules are using it incorrectly. Probably we should get rid of these AIO permissions and only support granural ones which makes more clear that who can access to what and why.
Comment #39
bdanin commentedI've reviewed the patch in #23, and this is the updated recommendation:
This is a big improvement and I support this change.
Comment #40
mxr576I am not sure if "edit past revisions of content" should be tied to this permission. Probably revisioning system should have it own permission for handling access to past/draft revisions.
Although I do agree that the description in #23 describes much better what this permission is currently used/should be used for.
Comment #41
xjmThanks for working on this. Node access control has always confused people and maybe we can help fix that.
The first sentence is lacking parallelism, and is therefore very confusing.
"Change ownership" is a verb with an object. "published time" is a noun. "Promote" is again a verb. "Make sticky and edit past revisions" is not a single concept, yet is written as such. (There's at least a missing serial comma after "sticky"). The second sentence is also unclear -- I don't understand it, and I nominally am a node access system maintainer. ;)
This also is missing parallel constructions. At a minimum, the second instance of the word "permission" in each case is redundant. It says currently "Role requires permission... to delete permission".
Comment #42
xjmAlso, it looks like my feedback in #19 wasn't really ever addressed. Please review both before continuing work on this issue. It should also have a usability review once the obvious problems have been fixed, as I stated back then. :)
Comment #43
berdir1. I interpret the first sentence as "Change all, those, things". But agreed that the mix of nouns and actions is confusing, but it's also hard to make nouns for promotedness and stickyness.
I think I mentioned that elsewhere but IMHO, the main reason that it's so hard to describe is that the permission is a mess. It simply covers all the left-overs that weren't access content overview nor bypass node access, back when those two permissions were split away from administer nodes.
If this would be a simple fix then we could do this and then later split it off, but maybe we should actually start by adding dedicated permissions for some of the things it covers, that would make it easier to describe then eventually, although IMHO the goal should eventually be to deprecate the permission entirely. We could start with the revision part. There's already ongoing activity to improve node revision access handling.
Comment #45
shivam kaushal commentedComment #46
shivam kaushal commentedComment #47
abhijith s commentedApplied patch #44 . Now the description seems more meaningful.


Attaching screenshots
Before patch:
After patch:
RTBC
Comment #48
abhijith s commentedComment #49
quietone commentedThank you to everyone for getting this to RTBC.
I briefly read the issue and noticed that the feedback from xjm in #19 and #41 has not been addressed.
The IS needs an update, the remaining task states that the wording needs to be agreed on which based on the feedback mentioned above that has not happened. This issue requires screenshots so the latest before and after screenshot should be in the Issue Summary. There may be other items in the IS that need updating, I only skimmed it. Adding tag.
Because of the above, setting back to NW.
Comment #52
vikashsoni commentedApplied patch #46 applied successfully
After patch description has been changed in node.permission.yml file
Thanks for the patch
Comment #56
acbramley commentedStill relevant, #19 and #41 still need actioning. We also need an MR here.
Comment #57
ruuds commentedAfter reading the current description in Drupal 11 I still didn't understand completely what the "administer nodes" permission does. After examining \Drupal\node\NodeAccessControlHandler::checkFieldAccess i did. It still felt strange to me that this is single permission covers all node types. Shouldn't it be split in a permission per node type as is done for the view/edit/etc permissions?