User can’t edit a node – Drupal troubleshooting

From time to time a user may not be able to edit a Drupal node and you end up tearing your hair out trying to figure out why. Sometimes the solution is obvious, and sometimes it is not. This post will take you through some of the main reasons for the problem along with suggested solutions.

The Problem

When viewing a node (page), a user with the correct permissions should see an edit tab at the page. The problem here occurs when the user can not see the edit tab at the top and therefore can not edit the node.

Edit tab visible (as it should be):
Edit tab visible

Edit tab missing:
Edit tab visible

Possible causes and solutions

User’s role does not have permission to edit the content type

All users belong to a role, whether you have created roles or not. If you have not created any roles yourself, then users with accounts will be given the “authenticated user” role. The user must have access to edit the relevant type of node.

For example, if you want all authenticated users to be able to edit the page content type, then you need to tick “edit page content” for authenticated users in access control.
Access control url:
Drupal 5: yoursite.com?q=admin/user/access
Drupal 6: yoursite.com?q?q=admin/user/permissions

Access control

Node permissions need to be rebuilt

If you are using an access control module (such as Content Access) then from time to time you may need to rebuild the permissions table. You will find a button to do this under "Post settings". This button will only appear if you are using an access control module.

Post settings -> Rebuild permissions
Rebuild Permissions

Users role does not have permissions to use the input format

This is a weird one that trips many people up. The user must have permission to use the input format that the node uses. If, for example, the users role does not have access to “Full HTML” but one of the text areas in the node is set to Full HTML, then users who belong to that role will not be able access to edit the node.

No roles are allow to use full html:
No role can use Full HTML

But the node body is set to full html:
Node input format set to Full HTML

The easy solution here is allow the user's role (authenticated user) to use Full HTML, or mark it as the default.
Full HTML input format

Edit tab is missing

The edit tab maybe missing from your page. Check page.tpl.php in your theme. It should include something like this:

if ($tabs): print $tabs; endif;

The variable $tabs contains the view and edit tab. If that is missing, the edit tab will not appear at all.

Edit tab is hiding under title

The edit tab may be hiding under your title. If you have Firebug, you should be able to check to see if the edit tab is there or not. There could be a CSS error causing it to sit under the title.

Comments

Thank you!

I spent ages looking around the site permissions only to read your post and realise that it was the input filter permissions that tripped me up. Thanks heaps for the post, saved me a lot of frustration.

Who knows - maybe it would

Who knows - maybe it would be a good idea to move filters permissions to user administration section? A small contribution to Drupal's development.

Thanks for the post.

Thanks!

It was the default input type problem. Thank you!

Very helpful

I'd neglected to include the "tabs" variable on my custom theme. This helps make the page much more usable to admins.

Thanks a lot.

Thanks a lot for above post!!! Saved my hours

Thanks.

Thanks. Very usefull! Has solved my problem. The cause was that the input formats werer not porperly configured.

Just wanted to say

Just wanted to say thanks....turned out to be the input format permissions. I would never have thought to look there ;)

Saved !

Input format it was...Thank you for saving me even more time looking for this.

You've got to admit though, that is a great feature. Drupal rocks !

you rock, thanks.

you rock, thanks.

Not working for me

Hello,

I stumbled upon your post when googling for an answer to my problem. Basically, none of the above seemed to work. Yet, I am still unable to view my own profile (created with Advanced Profile Kit). And this occurs even with my admin profile. I did disable the primary links menu through some custom modules I created for this. But right now, when I access the edit profile page, I am redirected to the not authorised view page message.
Any views more than welcome ;-)
Happy New Year
T

Thank you for taking the

Thank you for taking the time to document and post this very helpful troubleshooting guide.

Thank you! I didn't know

Thank you! I didn't know about filters, it helps (=

Thanks!!

Fantastic post. It was that last bit - the input formats - that was tripping me up. Never would have figured that out on my own - much thanks!

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options