Fixes published-post autosave-previews in calypso#6530
Conversation
The wpcom endpoint cannot predict whether the user is logged in or not on the remote site. So it cannot pass the appropriate nonce that gets verified in `/wp-includes/revision.php`. This patch detects the frame-nonce parameter for a caypso preview falls back to the existing frame-nonce validation when it exists.
|
Testing tasks:
|
zinigor
left a comment
There was a problem hiding this comment.
Looks good, tested on both drafts and published posts. I'm assuming that it's expected behaviour that when you edit a post and click View without saving, you don't see your changes on the Jetpack site. To see them you'd need to Update, right?
class.frame-nonce-preview.php
Outdated
|
|
||
| /** | ||
| * Handle validation for autosave preview request | ||
| * |
There was a problem hiding this comment.
Changes look good and tests well. Could you please just fix the wonky indentation in this block? Thanks!
There was a problem hiding this comment.
Thanks... I don't have a proper jetpack dev setup so I was mangling this with nano. Didn't notice the spacing.
|
LGTM |
class.frame-nonce-preview.php
Outdated
| */ | ||
| public function handle_autosave_nonce_validation() { | ||
| if ( ! $this->is_frame_nonce_valid() ) { | ||
| wp_die( __( 'Sorry, you are not allowed to preview drafts.' ) ); |
There was a problem hiding this comment.
Missing 'jetpack' textdomain
Indeed unrelated |
Yes, that's correct. It's basically doing a "preview" of your changes, but without updating the published post until you're happy with it and decide to "update". |
* Changelog: update stable tag and move changelog to changelog.txt Also remove old releases from readme.txt to keep the changelog tab short. * Changelog: add #5883 Also update the filter's docblock to match new version. * Changelog: add #5938 * Changelog: add #6298 * Changelog: add #3405 * Changelog: add #5941 * Changelog: add #6239 * Changelog: add #6281 * Changelog: add #6303 * Changelog: add #6018 * Changelog: add #6300 * Changelog: add #6296 * Changelog: add #6130 * Changelog: add #6292 * Readme: remove extra "on". * Changelog: add #6307 * Changelog: add #3297 * Changelog: add #6275 * Changelog: add #6321 * Changelog: add #6297 * Readme: update the support forum link anchor. Anchor changed when WordPress.org forums were updated to bbPress 2 * Readme: update list of a12s, it wasn't up to date anymore! * Changelog: add #6338 * Changelog: add #6337 * Changelog: add #6335 * Changelog: add #6333 * Testing List: first version of the 4.7 testing list. * Changelog: add #6332 * Changelog: add #6325 * Changelog: add #6326 * Changelog: add #6339 * Changelog: add #6342 * Changelog: add #6343 * Changelog: add #6346 * Changelog: add #6347 * Changelog: add #6279 * Changelog: add #6306 * Changelog: add #6312 * Changelog: add #6316 * Changelog: add #6171 * Changelog: add #6317 * Changelog: add #6246 * Changelog: add #6263 * Changelog: add #4220 * Changelog: add #5888 * Changelog: add #3406 * Changelog: add #3637 * Changelog: add #6320 * Changelog: add #5992 * Changelog: add #6322 * Changelog: add #6324 * Changelog: add #6352 * Changelog: add #6355 * Changelog: add #6360 * Changelog: add #6362 * Changelog: add #6369, #6382 * Changelog: add #6370 * Changelog: add #6375 * Changelog: add #6383 * Changelog: add #6384 * Changelog: add #6386 * Changelog: add #6395 * Changelog: add #6403 * Changelog: add #6406 * Changelog: add #6418 * Changelog: add #6419 * Changelog: add #6434 * Changelog: add #6446 * Changelog: add #6006 * Changelog: add #6096 * Changelog: add #6399 * Changelog: fix typo. @see #6331 (comment) * Changelog: add #6440 * Changelog: add #6443 * Changelog: add #6445 * Changelog: add #6463 * Changelog: add #6468 * Changelog: add #6471 * Changelog: add #6474 * Changelog: add #6480 * Changelog: add #6497 * Changelog: add #6499 * Changelog: add #6514 * Changelog: add #6267 * Changelog: add #5940 * Changelog: add #6492 * Changelog: add #5281 * Changelog: add #6327 * Changelog: add #6451 * Changelog: add #6525 * Changelog: add #6530
The wpcom endpoint cannot predict whether the user is logged in or not on the remote site. So it cannot pass the appropriate nonce that gets verified in
/wp-includes/revision.php. This patch detects the frame-nonce parameter for a caypso preview and falls back to the existing frame-nonce validation when it exists.Fixes Automattic/wp-calypso#5607
Testing instructions:
/posts/:site, then start to "edit" a published post (not a draft!) in Calypso. Now start typing, and without saving click the "view" button in the left sidebar. It will open a new tab that will resolve to a page that says you don't have permission to view drafts, whether you are logged-in to the remote site or not.Caveat
FWIW I am seeing an error in the preview page, but it seems unrelated. Still worth confirming.
/cc @ebinnion