WordPress.org

Make WordPress Core

Opened 7 years ago

Closed 7 years ago

#7299 closed defect (bug) (fixed)

AtomPub: Draft posts cannot be edited without turning them published

Reported by: redsweater Owned by: josephscott
Milestone: 2.6.1 Priority: high
Severity: normal Version: 2.6
Component: XML-RPC Keywords: has-patch
Focuses: Cc:

Description

The logic in put_post, in wp-app.php correctly extracts a "publish" or "draft" status for a post by looking for a draft entry in the supplied post. If there is one, and it specifies "yes", then the updated entry should be set to "Unpublished" - otherwise it should be published.

The problem is with some seemingly unnecessary and flawed code which later overrides that determination with some faulty logic:

let's not go backwards and make something draft again.
if(!$publish && $post_status == 'draft') {

$post_status = ($publish) ? 'publish' : 'draft';

} elseif($publish) {

$post_status = 'publish';

}

See how it relies on an unset $post_status field, which hasn't been set in this function. Furthermore, the logic is flawed because in the case where !$publish is true, it goes on to test for ($publish) being true.

I don't think this faulty logic belongs in here at all. What it does in my tests is always overrides the post_status to be 'publish', no matter what the client has specified.

Patch attached to use the basic, good logic as the sole determination for publish status of the post.

Attachments (1)

FixAtomPubDrafts.diff (940 bytes) - added by redsweater 7 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 @josephscott7 years ago

  • Cc josephscott added

comment:2 @redsweater7 years ago

  • Keywords has-patch added

comment:3 @westi7 years ago

  • Resolution set to fixed
  • Status changed from new to closed

(In [8374]) Ensure that AtomPub does not auto-publish draft posts when they are edited. Fixes #7299 for trunk props redsweater.

comment:4 @westi7 years ago

  • Milestone changed from 2.7 to 2.6.1
  • Resolution fixed deleted
  • Status changed from closed to reopened

re-opening for 2.6.1

comment:5 @westi7 years ago

  • Resolution set to fixed
  • Status changed from reopened to closed

(In [8375]) Ensure that AtomPub does not auto-publish draft posts when they are edited. Fixes #7299 for 2.6.x props redsweater.

Note: See TracTickets for help on using tickets.