WordPress.org

Make WordPress Core

Ticket #34905: 34905.7.diff

File 34905.7.diff, 5.1 KB (added by peterwilsoncc, 4 years ago)
  • src/wp-admin/js/password-strength-meter.js

    diff --git src/wp-admin/js/password-strength-meter.js src/wp-admin/js/password-strength-meter.js
    index 2ac7e86..efd26bb 100644
    var passwordStrength; 
    1818                        if (password1 != password2 && password2 && password2.length > 0)
    1919                                return 5;
    2020
     21                        if ( 'undefined' === typeof window.zxcvbn ) {
     22                                // Password strength unknown.
     23                                return -1;
     24                        }
     25
    2126                        var result = zxcvbn( password1, blacklist );
    2227                        return result.score;
    2328                },
  • src/wp-admin/js/user-profile.js

    diff --git src/wp-admin/js/user-profile.js src/wp-admin/js/user-profile.js
    index 5ec77bc..c5f5db3 100644
     
    3030        function generatePassword() {
    3131                if ( typeof zxcvbn !== 'function' ) {
    3232                        setTimeout( generatePassword, 50 );
    33                 } else {
     33                        return;
     34                } else if ( ! $pass1.val() ) {
     35                        // zxcvbn loaded before user entered password.
    3436                        $pass1.val( $pass1.data( 'pw' ) );
    35                         $pass1.trigger( 'pwupdate' ).trigger( 'wp-check-valid-field' );
    36                         if ( 1 !== parseInt( $toggleButton.data( 'start-masked' ), 10 ) ) {
    37                                 $pass1Wrap.addClass( 'show-password' );
    38                         } else {
    39                                 $toggleButton.trigger( 'click' );
    40                         }
     37                        $pass1.trigger( 'pwupdate' );
     38                        showOrHideWeakPasswordCheckbox();
     39                }
     40                else {
     41                        // zxcvbn loaded after the user entered password, check strength.
     42                        check_pass_strength();
     43                        showOrHideWeakPasswordCheckbox();
    4144                }
     45
     46                if ( 1 !== parseInt( $toggleButton.data( 'start-masked' ), 10 ) ) {
     47                        $pass1Wrap.addClass( 'show-password' );
     48                } else {
     49                        $toggleButton.trigger( 'click' );
     50                }
     51
     52                // Once zxcvbn loads, passwords strength is known.
     53                $( '#pw-weak-text-label' ).html( userProfileL10n.warnWeak );
    4254        }
    4355
    4456        function bindPass1() {
    45                 var passStrength = $('#pass-strength-result')[0];
    46 
    4757                currentPass = $pass1.val();
    4858
    4959                $pass1Wrap = $pass1.parent();
     
    8292                                $pass1Text.val( currentPass );
    8393                        }
    8494                        $pass1.add( $pass1Text ).removeClass( 'short bad good strong' );
    85 
    86                         if ( passStrength.className ) {
    87                                 $pass1.add( $pass1Text ).addClass( passStrength.className );
    88                                 if ( 'short' === passStrength.className || 'bad' === passStrength.className ) {
    89                                         if ( ! $weakCheckbox.prop( 'checked' ) ) {
    90                                                 $submitButtons.prop( 'disabled', true );
    91                                         }
    92                                         $weakRow.show();
    93                                 } else {
    94                                         $submitButtons.prop( 'disabled', false );
    95                                         $weakRow.hide();
    96                                 }
    97                         }
     95                        showOrHideWeakPasswordCheckbox();
    9896                } );
    9997        }
    10098
     
    289287                strength = wp.passwordStrength.meter( pass1, wp.passwordStrength.userInputBlacklist(), pass1 );
    290288
    291289                switch ( strength ) {
     290                        case -1:
     291                                $( '#pass-strength-result' ).addClass( 'bad' ).html( pwsL10n.unknown );
     292                                break;
    292293                        case 2:
    293294                                $('#pass-strength-result').addClass('bad').html( pwsL10n.bad );
    294295                                break;
     
    306307                }
    307308        }
    308309
     310        function showOrHideWeakPasswordCheckbox() {
     311                var passStrength = $('#pass-strength-result')[0];
     312
     313                if ( passStrength.className ) {
     314                        $pass1.add( $pass1Text ).addClass( passStrength.className );
     315                        if ( 'short' === passStrength.className || 'bad' === passStrength.className ) {
     316                                if ( ! $weakCheckbox.prop( 'checked' ) ) {
     317                                        $submitButtons.prop( 'disabled', true );
     318                                }
     319                                $weakRow.show();
     320                        } else {
     321                                $submitButtons.prop( 'disabled', false );
     322                                $weakRow.hide();
     323                        }
     324                }
     325        }
     326
    309327        $(document).ready( function() {
    310328                var $colorpicker, $stylesheet, user_id, current_user_id,
    311329                        select = $( '#display_name' );
  • src/wp-admin/user-edit.php

    diff --git src/wp-admin/user-edit.php src/wp-admin/user-edit.php
    index 492617d..aa6ed7f 100644
    if ( $show_password_fields = apply_filters( 'show_password_fields', true, $profi 
    531531        <td>
    532532                <label>
    533533                        <input type="checkbox" name="pw_weak" class="pw-checkbox" />
    534                         <?php _e( 'Confirm use of weak password' ); ?>
     534                        <span id="pw-weak-text-label"><?php _e( 'Confirm use of potentially weak password' ); ?></span>
    535535                </label>
    536536        </td>
    537537</tr>
  • src/wp-includes/script-loader.php

    diff --git src/wp-includes/script-loader.php src/wp-includes/script-loader.php
    index 9fff743..3b1e8fa 100644
    function wp_default_scripts( &$scripts ) { 
    380380
    381381        $scripts->add( 'password-strength-meter', "/wp-admin/js/password-strength-meter$suffix.js", array( 'jquery', 'zxcvbn-async' ), false, 1 );
    382382        did_action( 'init' ) && $scripts->localize( 'password-strength-meter', 'pwsL10n', array(
     383                'unknown'  => _x( 'Password strength unknown', 'password strength' ),
    383384                'short'    => _x( 'Very weak', 'password strength' ),
    384385                'bad'      => _x( 'Weak', 'password strength' ),
    385386                'good'     => _x( 'Medium', 'password strength' ),
    function wp_default_scripts( &$scripts ) { 
    390391        $scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'jquery', 'password-strength-meter', 'wp-util' ), false, 1 );
    391392        did_action( 'init' ) && $scripts->localize( 'user-profile', 'userProfileL10n', array(
    392393                'warn'     => __( 'Your new password has not been saved.' ),
     394                'warnWeak' => __( 'Confirm use of weak password.' ),
    393395                'show'     => __( 'Show' ),
    394396                'hide'     => __( 'Hide' ),
    395397                'cancel'   => __( 'Cancel' ),