Ticket #16847: 16847.diff
File 16847.diff, 2.1 KB (added by , 11 years ago) |
---|
-
wp-admin/revision.php
23 23 case 'restore' : 24 24 if ( !$revision = wp_get_post_revision( $revision_id ) ) 25 25 break; 26 if ( ! current_user_can( 'edit_post',$revision->post_parent ) )26 if ( ! $post = get_post( $revision->post_parent ) ) 27 27 break; 28 if ( ! $post = get_post( $revision->post_parent ))28 if ( ! $post_type_object = get_post_type_object( $post->post_type )) 29 29 break; 30 if ( ! current_user_can( $post_type_object->cap->edit_posts, $revision->post_parent ) ) 31 break; 30 32 31 33 // Revisions disabled and we're not looking at an autosave 32 34 if ( ( ! WP_POST_REVISIONS || !post_type_supports($post->post_type, 'revisions') ) && !wp_is_post_autosave( $revision ) ) { … … 44 46 break; 45 47 if ( !$right_revision = get_post( $right ) ) 46 48 break; 47 48 if ( !current_user_can( 'read_post', $left_revision->ID ) || !current_user_can( 'read_post', $right_revision->ID ) ) 49 if ( ! $post = get_post( $revision->post_parent ) ) 49 50 break; 51 if ( ! $post_type_object = get_post_type_object( $post->post_type )) 52 break; 53 if ( ! current_user_can( $post_type_object->cap->edit_posts, $left_revision->ID ) || ! current_user_can( $post_type_object->cap->edit_posts, $right_revision->ID ) ) 54 break; 50 55 51 56 // If we're comparing a revision to itself, redirect to the 'view' page for that revision or the edit page for that post 52 57 if ( $left_revision->ID == $right_revision->ID ) { … … 107 112 break; 108 113 if ( !$post = get_post( $revision->post_parent ) ) 109 114 break; 110 111 if ( !current_user_can( 'read_post', $revision->ID ) || !current_user_can( 'read_post', $post->ID ) ) 115 if ( ! $post_type_object = get_post_type_object( $post->post_type )) 112 116 break; 117 if ( ! current_user_can( $post_type_object->cap->edit_posts, $revision->ID ) || ! current_user_can( $post_type_object->cap->edit_posts, $post->ID ) ) 118 break; 113 119 114 120 // Revisions disabled and we're not looking at an autosave 115 121 if ( ( ! WP_POST_REVISIONS || !post_type_supports($post->post_type, 'revisions') ) && !wp_is_post_autosave( $revision ) ) {