Ticket #20774: 20774.diff
File 20774.diff, 2.8 KB (added by , 11 years ago) |
---|
-
wp-admin/network/users.php
123 123 $userfunction = ''; 124 124 125 125 foreach ( (array) $_POST['allusers'] as $key => $val ) { 126 127 $mark_sites_for_spam_user = apply_filters( 'mark_sites_for_spam_user' , false , $val ); 128 126 129 if ( !empty( $val ) ) { 130 131 $user = get_userdata( $val ); 132 133 if ( false === $user || is_super_admin( $user->ID ) ) 134 continue; 135 127 136 switch ( $doaction ) { 128 137 case 'delete': 129 138 if ( ! current_user_can( 'delete_users' ) ) … … 139 148 break; 140 149 141 150 case 'spam': 142 $user = get_userdata( $val ); 143 if ( is_super_admin( $user->ID ) ) 144 wp_die( sprintf( __( 'Warning! User cannot be modified. The user %s is a network administrator.' ), esc_html( $user->user_login ) ) ); 145 151 if ( ! current_user_can( 'edit_users' ) ) 152 wp_die( __( 'You do not have permission to access this page.' ) ); 146 153 $userfunction = 'all_spam'; 147 154 $blogs = get_blogs_of_user( $val, true ); 148 foreach ( (array) $blogs as $key => $details ) { 149 if ( $details->userblog_id != $current_site->blog_id ) // main blog not a spam ! 155 if ( $mark_sites_for_spam_user ) { 156 foreach ( (array) $blogs as $key => $details ) { 157 // do not mark main site 158 if ( $details->userblog_id == $current_site->blog_id ) 159 continue; 160 // only if admin email is same as user 161 if ( $user->data->user_email != get_blog_option ( $details->userblog_id , 'admin_email' ) ) 162 continue; 150 163 update_blog_status( $details->userblog_id, 'spam', '1' ); 164 } 151 165 } 152 166 update_user_status( $val, 'spam', '1' ); 153 167 break; 154 168 155 169 case 'notspam': 170 if ( ! current_user_can( 'edit_users' ) ) 171 wp_die( __( 'You do not have permission to access this page.' ) ); 156 172 $userfunction = 'all_notspam'; 157 173 $blogs = get_blogs_of_user( $val, true ); 158 foreach ( (array) $blogs as $key => $details ) 159 update_blog_status( $details->userblog_id, 'spam', '0' ); 160 174 if ( $mark_sites_for_spam_user ) { 175 foreach ( (array) $blogs as $key => $details ) { 176 // do not mark main site 177 if ( $details->userblog_id == $current_site->blog_id ) 178 continue; 179 // only if admin email is same as user 180 if ( $user->data->user_email != get_blog_option ( $details->userblog_id , 'admin_email' ) ) 181 continue; 182 update_blog_status( $details->userblog_id, 'spam', '0' ); 183 } 184 } 161 185 update_user_status( $val, 'spam', '0' ); 162 186 break; 163 187 }