Make WordPress Core

Ticket #46884: 46884.2.patch

File 46884.2.patch, 2.6 KB (added by samful, 4 years ago)

updated with correct /src path and line numbers

  • src/wp-admin/network/settings.php

    diff --git src/wp-admin/network/settings.php src/wp-admin/network/settings.php
    index d03f36d..9ca545e 100644
    if ( $_POST ) { 
    7575                'registrationnotification'    => 'no',
    7676                'upload_space_check_disabled' => 1,
    7777                'add_new_users'               => 0,
     78                'privacy_permissions'             => 1,
    7879        );
    7980        foreach ( $checked_options as $option_name => $option_unchecked_value ) {
    8081                if ( ! isset( $_POST[ $option_name ] ) ) {
    if ( $_POST ) { 
    106107                'WPLANG',
    107108                'new_admin_email',
    108109                'first_comment_email',
     110                'privacy_permissions',
    109111        );
    110112
    111113        // Handle translation installation.
    if ( isset( $_GET['updated'] ) ) { 
    491493                endif;
    492494                ?>
    493495
     496                <h2><?php _e( 'Privacy Settings' ); ?></h2>
     497                        <table id="menu" class="form-table">
     498                                <tr>
     499                                        <th scope="row"><?php _e( 'Privacy policy permissions' ); ?></th>
     500                                        <?php
     501                                        if ( ! get_site_option( 'privacy_permissions' ) ) {
     502                                                update_site_option( 'privacy_permissions', 'super_admin' );
     503                                        }
     504                                        $privacy_permissions = get_site_option( 'privacy_permissions' );
     505                                        ?>
     506                                        <td>
     507                                                        <fieldset>
     508                                                                        <legend class="screen-reader-text"><?php _e( 'Privacy policy permisisons' ); ?></legend>
     509                                                                        <label><input name="privacy_permissions" type="radio" id="privacy-super-admins" value="super_admin"<?php checked( $privacy_permissions, "super_admin" ); ?> /> <?php _e( 'Only allow Super Admins to edit the privacy policy page' ); ?></label><br />
     510                                                                        <label><input name="privacy_permissions" type="radio" id="privacy-admins" value="admin"<?php checked( $privacy_permissions, "admin" ); ?> /> <?php _e( 'Admins can edit their own sites\'s privacy policy page'); ?></label><br />
     511                                                        </fieldset>
     512                                        </td>
     513                                </tr>
     514                </table>
     515
    494516                <?php
    495517                /**
    496518                 * Fires at the end of the Network Settings form, before the submit button.
  • src/wp-includes/capabilities.php

    diff --git src/wp-includes/capabilities.php src/wp-includes/capabilities.php
    index e3c28a1..19ee735 100644
    function map_meta_cap( $cap, $user_id, ...$args ) { 
    583583                case 'export_others_personal_data':
    584584                case 'erase_others_personal_data':
    585585                case 'manage_privacy_options':
    586                         $caps[] = is_multisite() ? 'manage_network' : 'manage_options';
     586                        if (is_multisite() && get_site_option( 'privacy_permissions' ) == "admin" && 'manage_options'){
     587                                        $caps[] = 'manage_options';
     588                        } elseif ( is_multisite() ){
     589                                        $caps[] = 'manage_network';
     590                        } else {
     591                                        $caps[] = 'manage_options';
     592                        }
    587593                        break;
    588594                default:
    589595                        // Handle meta capabilities for custom post types.