WordPress.org

Make WordPress Core

Ticket #23697: 23697-3.patch

File 23697-3.patch, 3.4 KB (added by azaozz, 8 years ago)
  • wp-admin/includes/class-wp-posts-list-table.php

     
    477477                $classes = $alternate . ' iedit author-' . ( get_current_user_id() == $post->post_author ? 'self' : 'other' );
    478478
    479479                $lock_holder = wp_check_post_lock( $post->ID );
     480                // Don't show the "[superadmin] is currently editing" in the list table
     481                // when a superadmin that is not a member of this blog has locked the post
     482                if ( $lock_holder && is_multisite() && is_super_admin( $lock_holder ) && ! is_user_member_of_blog( $lock_holder ) )
     483                        $lock_holder = false;
     484               
    480485                if ( $lock_holder ) {
    481486                        $classes .= ' wp-locked';
    482487                        $lock_holder = get_userdata( $lock_holder );
  • wp-admin/includes/misc.php

     
    608608                if ( !current_user_can('edit_post', $post_id) )
    609609                        return $response;
    610610
     611                // No locks for superadmins that are not users on this blog
     612                if ( is_multisite() && is_super_admin() && ! is_user_member_of_blog() )
     613                        return $response;
     614
    611615                if ( $user_id = wp_check_post_lock( $post_id ) ) {
     616                        // Don't show the "[superadmin] has taken over..." dialog to users
     617                        // when a superadmin that is not a member of this blog has locked the post
     618                        if ( is_multisite() && is_super_admin( $user_id ) && ! is_user_member_of_blog( $user_id ) )
     619                                return $response;
     620
    612621                        $user = get_userdata( $user_id );
    613622
    614623                        $error = array(
  • wp-admin/includes/post.php

     
    11901190        if ( ! $post = get_post() )
    11911191                return;
    11921192
    1193         if ( $user = wp_check_post_lock( $post->ID ) ) {
    1194                 $user = get_userdata( $user );
    1195                 $locked = apply_filters( 'show_post_locked_dialog', true, $post, $user );
     1193        // Don't show "locked" dialogs to superadmins that are not users on this blog
     1194        if ( is_multisite() && is_super_admin() && ! is_user_member_of_blog() )
     1195                return;
     1196
     1197        if ( $user_id = wp_check_post_lock( $post->ID ) ) {
     1198                // Don't show the "Content locked..." dialog to users
     1199                // when a superadmin that is not a member of this blog has locked the post
     1200                if ( is_multisite() && is_super_admin( $user_id ) && ! is_user_member_of_blog( $user_id ) )
     1201                        $locked = false;
     1202                else
     1203                        $locked = true;
     1204
     1205                $user = get_userdata( $user_id );
     1206                $locked = apply_filters( 'show_post_locked_dialog', $locked, $post, $user );
    11961207        } else {
    11971208                $locked = false;
    11981209        }
  • wp-admin/js/post.js

     
    276276                        // show "editing taken over" message
    277277                        wrap = $('#notification-dialog-wrap');
    278278
    279                         if ( ! wrap.is(':visible') ) {
    280                                 autosave();
     279                        if ( wrap.length && ! wrap.is(':visible') ) {
     280                                if ( typeof autosave == 'function' )
     281                                        autosave();
    281282
    282283                                if ( received.lock_error.avatar_src ) {
    283284                                        avatar = $('<img class="avatar avatar-64 photo" width="64" height="64" />').attr( 'src', received.lock_error.avatar_src.replace(/&amp;/g, '&') );