[wp-trac] [WordPress Trac] #26365: map_meta_cap() should use parent post status when post has a post status of inherit
WordPress Trac
noreply at wordpress.org
Mon Dec 2 20:08:00 UTC 2013
#26365: map_meta_cap() should use parent post status when post has a post status of
inherit
-----------------------------------+------------------------------
Reporter: methnen | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Role/Capability | Version: trunk
Severity: normal | Resolution:
Keywords: 2nd-opinion has-patch |
-----------------------------------+------------------------------
Description changed by SergeyBiryukov:
Old description:
> When a post has a status of inherit `map_meta_cap()` fails to use the
> parent's status and so logic that uses the status to determine the
> mapping doesn't behave as expected.
>
> For example `read_post()` will often fail when it should pass. Similarly
> for `delete_post()` and `edit_post()`.
>
> This has recently caused a variety of difficulties in a project I've been
> working on where we have a custom post type that uses the inherit post
> status on children so authors only need to manage the post status of the
> main parent post.
>
> The fix is two parts. One a fix to `get_post_status()` that causes it to
> check the parent status so it'll work backwards to the first post that
> has a valid (not 'inherit') post status.
>
> The second is a fix to `map_meta_cap()` that checks for a post status of
> inherit on the post object and then uses `get_post_status()` on the
> post_parent id value.
>
> A couple related/similar issues:
> http://core.trac.wordpress.org/ticket/23458 (these patches would fix the
> root issue)
> http://core.trac.wordpress.org/ticket/17668 (fixed)
New description:
When a post has a status of inherit `map_meta_cap()` fails to use the
parent's status and so logic that uses the status to determine the mapping
doesn't behave as expected.
For example `read_post()` will often fail when it should pass. Similarly
for `delete_post()` and `edit_post()`.
This has recently caused a variety of difficulties in a project I've been
working on where we have a custom post type that uses the inherit post
status on children so authors only need to manage the post status of the
main parent post.
The fix is two parts. One a fix to `get_post_status()` that causes it to
check the parent status so it'll work backwards to the first post that has
a valid (not 'inherit') post status.
The second is a fix to `map_meta_cap()` that checks for a post status of
inherit on the post object and then uses `get_post_status()` on the
post_parent id value.
A couple related/similar issues:
#23458 (these patches would fix the root issue)
#17668 (fixed)
--
--
Ticket URL: <http://core.trac.wordpress.org/ticket/26365#comment:5>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list