WordPress.org

Make WordPress Core

Ticket #46536: 46536.diff

File 46536.diff, 4.7 KB (added by garrett-eclipse, 6 months ago)

Patch to move check for _wp_privacy_action_request_types into wp_create_user_request, along with updated unit tests to avoid failures

  • src/wp-admin/includes/user.php

     
    688688                                $username_or_email_address = sanitize_text_field( wp_unslash( $_POST['username_or_email_for_privacy_request'] ) );
    689689                                $email_address             = '';
    690690
    691                                 if ( ! in_array( $action_type, _wp_privacy_action_request_types(), true ) ) {
    692                                         add_settings_error(
    693                                                 'action_type',
    694                                                 'action_type',
    695                                                 __( 'Invalid action.' ),
    696                                                 'error'
    697                                         );
    698                                 }
    699 
    700691                                if ( ! is_email( $username_or_email_address ) ) {
    701692                                        $user = get_user_by( 'login', $username_or_email_address );
    702693                                        if ( ! $user instanceof WP_User ) {
  • src/wp-includes/user.php

     
    33183318        }
    33193319
    33203320        if ( ! $action_name ) {
     3321                return new WP_Error( 'missing_action', __( 'Missing action name.' ) );
     3322        }
     3323
     3324        if ( ! in_array( $action_name, _wp_privacy_action_request_types(), true ) ) {
    33213325                return new WP_Error( 'invalid_action', __( 'Invalid action name.' ) );
    33223326        }
    33233327
  • tests/phpunit/tests/privacy/wpCreateUserRequest.php

     
    9393        }
    9494
    9595        /**
     96         * Ensure a WP_Error is returned when no action is passed.
     97         *
     98         * @ticket 46536
     99         */
     100        public function test_missing_action() {
     101                $actual = wp_create_user_request( self::$registered_user_email, false );
     102
     103                $this->assertWPError( $actual );
     104                $this->assertSame( 'missing_action', $actual->get_error_code() );
     105        }
     106
     107        /**
    96108         * Ensure a WP_Error is returned when an invalid action is passed.
    97109         *
    98          * @ticket 44707
     110         * @ticket 46536
    99111         */
    100112        public function test_invalid_action() {
    101                 $actual = wp_create_user_request( self::$registered_user_email, false );
     113                $actual = wp_create_user_request( self::$registered_user_email, 'invalid_action_name' );
    102114
    103115                $this->assertWPError( $actual );
    104116                $this->assertSame( 'invalid_action', $actual->get_error_code() );
     
    161173         * @ticket 44707
    162174         */
    163175        public function test_sanitized_action_name() {
    164                 $actual = wp_create_user_request( self::$non_registered_user_email, 'some[custom*action\name' );
     176                $actual = wp_create_user_request( self::$non_registered_user_email, 'export[_person*al_\data' );
    165177
    166178                $this->assertNotWPError( $actual );
    167179
    168180                $post = get_post( $actual );
    169181
    170                 $this->assertSame( 'somecustomactionname', $post->post_name );
     182                $this->assertSame( 'export_personal_data', $post->post_name );
    171183                $this->assertSame( self::$non_registered_user_email, $post->post_title );
    172184        }
    173185
  • tests/phpunit/tests/privacy/wpPrivacySendErasureFulfillmentNotification.php

     
    4343         */
    4444        public static function wpSetUpBeforeClass( $factory ) {
    4545                self::$requester_email = 'erase-my-data@local.test';
    46                 self::$request_id      = wp_create_user_request( self::$requester_email, 'erase_personal_data' );
     46                self::$request_id      = wp_create_user_request( self::$requester_email, 'remove_personal_data' );
    4747                wp_update_post(
    4848                        array(
    4949                                'ID'          => self::$request_id,
  • tests/phpunit/tests/user/wpSendUserRequest.php

     
    340340                update_user_meta( self::$admin_user->ID, 'locale', 'es_ES' );
    341341                wp_set_current_user( self::$admin_user->ID );
    342342
    343                 $request_id = wp_create_user_request( 'erase-user-not-registered@example.com', 'erase_personal_data' );
     343                $request_id = wp_create_user_request( 'erase-user-not-registered@example.com', 'remove_personal_data' );
    344344
    345345                wp_send_user_request( $request_id );
    346346                $mailer = tests_retrieve_phpmailer_instance();
     
    362362                update_user_meta( self::$admin_user->ID, 'locale', 'de_DE' );
    363363                wp_set_current_user( self::$admin_user->ID );
    364364
    365                 $request_id = wp_create_user_request( 'export-user-not-registered@example.com', 'erase_personal_data' );
     365                $request_id = wp_create_user_request( 'export-user-not-registered@example.com', 'remove_personal_data' );
    366366
    367367                wp_send_user_request( $request_id );
    368368                $mailer = tests_retrieve_phpmailer_instance();