[wp-hackers] User Capabilities

Owen Winkler ringmaster at midnightcircus.com
Sun Jul 17 22:54:35 GMT 2005


Jason Bainbridge wrote:
> Obviously both Admin and Editor have edit_others_posts as part of
> their role but the current permissions look for posts made by users of
> the same level or below so should this be changed just to check for
> Admin or Editor? Should Editor be able to edit posts by Admin?

No, this resolves to the general capability 'edit_posts'.  Just remember 
to pass the post ID as a second parameter to the current_user_can() 
function, like:

current_user_can('edit_posts', $post_id)

The map_meta_cap() function figures out what additional capabilities the 
current user needs based on the passed-in ID.

So to answer your last couple of questions, the Role of the user is 
irrelevant to the check.  Just check for the 'edit_posts' capability.

If the "Editor" has 'edit_others_posts', then obviously he can edit 
other's posts - yes, including those with the Role "Administrator", 
which is an arbitrary name assigned to a type of user with a certain 
list of capabilities.  The Role system makes no distinction of one role 
being more powerful than another.

On the other hand, we need to put a plugin hook in map_meta_caps() so 
that plugins can define additional capability requirements per post-ID, 
so that you can do things like protecting the posts of certain users 
from editing by other users that do have 'edit_others_posts'.  Or even 
crazy things like limiting editing permissions based on postmeta, which 
sounds like a cool thing to me.

Owen




More information about the wp-hackers mailing list