Ticket #7299 (closed defect (bug): fixed)

Opened 4 years ago

Last modified 4 years ago

AtomPub: Draft posts cannot be edited without turning them published

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

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

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

Change History

  • Cc josephscott added
  • Keywords has-patch added
  • Status changed from new to closed
  • Resolution set to fixed

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

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

re-opening for 2.6.1

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

(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.