WordPress.org

Make WordPress Core

Ticket #14460: 14460.patch

File 14460.patch, 1.3 KB (added by linuxologos, 6 years ago)
  • wp-includes/capabilities.php

     
    939939                // Allow user to edit itself
    940940                if ( isset( $args[0] ) && $user_id == $args[0] )
    941941                        break;
     942                // Don't allow user to edit a protected user, if the first is not protected too.
     943                if ( isset( $args[0] ) && ( user_can( $args[0], 'self_protect' ) && ! user_can( $user_id, 'self_protect' ) ) ) {
     944                        $caps[] = 'do_not_allow';
     945                        break;
     946                }
    942947                // Fall through
    943948        case 'edit_users':
    944949                // If multisite these caps are allowed only for super admins.
     
    11421147                }
    11431148                // Fall through if not DISALLOW_UNFILTERED_HTML
    11441149        case 'delete_user':
     1150                // Don't allow user to delete itself (just in case)
     1151                if ( isset( $args[0] ) && $user_id == $args[0] ) {
     1152                        $caps[] = 'do_not_allow';
     1153                        break;
     1154                }
     1155                // Don't allow user to delete a protected user, if the first is not protected too.
     1156                if ( isset( $args[0] ) && ( user_can( $args[0], 'self_protect' ) && ! user_can( $user_id, 'self_protect' ) ) ) {
     1157                        $caps[] = 'do_not_allow';
     1158                        break;
     1159                }
    11451160        case 'delete_users':
    11461161                // If multisite these caps are allowed only for super admins.
    11471162                if ( is_multisite() && !is_super_admin( $user_id ) ) {