WordPress.org

Make WordPress Core

Ticket #44079: 44079.2.diff

File 44079.2.diff, 1.8 KB (added by iandunn, 21 months ago)
  • src/wp-admin/includes/misc.php

    diff --git src/wp-admin/includes/misc.php src/wp-admin/includes/misc.php
    index 1d8615899f..c95b8b15a2 100644
    final class WP_Privacy_Policy_Content { 
    15641564                        return;
    15651565                }
    15661566
    1567                 if ( ! current_user_can( 'manage_privacy_options' ) ) {
    1568                         return;
    1569                 }
    1570 
    15711567                $policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' );
    15721568
    15731569                if ( ! $policy_page_id || $policy_page_id != $post->ID ) {
  • src/wp-includes/capabilities.php

    diff --git src/wp-includes/capabilities.php src/wp-includes/capabilities.php
    index 530fe563d8..d1b61f20b3 100644
    function map_meta_cap( $cap, $user_id ) { 
    121121                                        $caps[] = $post_type->cap->delete_private_posts;
    122122                                }
    123123                        }
     124
     125                        /*
     126                         * Editing the Privacy Policy page should require the same capability
     127                         * as choosing which page is used.
     128                         */
     129                        $privacy_policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' );
     130                        if ( $privacy_policy_page_id && ! empty( $args[0] ) && $privacy_policy_page_id === $args[0] ) {
     131                                $caps[] = 'manage_privacy_options';
     132                        }
     133
    124134                        break;
    125135                // edit_post breaks down to edit_posts, edit_published_posts, or
    126136                // edit_others_posts
    function map_meta_cap( $cap, $user_id ) { 
    183193                                        $caps[] = $post_type->cap->edit_private_posts;
    184194                                }
    185195                        }
     196
     197                        /*
     198                         * Editing the Privacy Policy page should require the same capability
     199                         * as choosing which page is used.
     200                         */
     201                        $privacy_policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' );
     202                        if ( $privacy_policy_page_id && ! empty( $args[0] ) && $privacy_policy_page_id === $args[0] ) {
     203                                $caps[] = 'manage_privacy_options';
     204                        }
     205
    186206                        break;
    187207                case 'read_post':
    188208                case 'read_page':