Changeset 6739
- Timestamp:
- 02/25/2018 05:56:27 AM (7 years ago)
- Location:
- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-two-factor
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-two-factor/class.two-factor-core.php
r6738 r6739 126 126 } 127 127 128 $providers = s elf::get_providers();129 $enabled_providers = get_user_meta( $user->ID, s elf::ENABLED_PROVIDERS_USER_META_KEY, true );128 $providers = static::get_providers(); 129 $enabled_providers = get_user_meta( $user->ID, static::ENABLED_PROVIDERS_USER_META_KEY, true ); 130 130 if ( empty( $enabled_providers ) ) { 131 131 $enabled_providers = array(); … … 147 147 } 148 148 149 $providers = s elf::get_providers();150 $enabled_providers = s elf::get_enabled_providers_for_user( $user );149 $providers = static::get_providers(); 150 $enabled_providers = static::get_enabled_providers_for_user( $user ); 151 151 $configured_providers = array(); 152 152 … … 173 173 } 174 174 175 $providers = s elf::get_providers();176 $available_providers = s elf::get_available_providers_for_user( get_userdata( $user_id ) );175 $providers = static::get_providers(); 176 $available_providers = static::get_available_providers_for_user( get_userdata( $user_id ) ); 177 177 178 178 // If there's only one available provider, force that to be the primary. … … 182 182 $provider = key( $available_providers ); 183 183 } else { 184 $provider = get_user_meta( $user_id, s elf::PROVIDER_USER_META_KEY, true );184 $provider = get_user_meta( $user_id, static::PROVIDER_USER_META_KEY, true ); 185 185 186 186 // If the provider specified isn't enabled, just grab the first one that is. … … 213 213 */ 214 214 public static function is_user_using_two_factor( $user_id = null ) { 215 $provider = s elf::get_primary_provider_for_user( $user_id );215 $provider = static::get_primary_provider_for_user( $user_id ); 216 216 return ! empty( $provider ); 217 217 } … … 226 226 */ 227 227 public static function wp_login( $user_login, $user ) { 228 if ( ! s elf::is_user_using_two_factor( $user->ID ) ) {228 if ( ! static::is_user_using_two_factor( $user->ID ) ) { 229 229 return; 230 230 } … … 232 232 wp_clear_auth_cookie(); 233 233 234 s elf::show_two_factor_login( $user );234 static::show_two_factor_login( $user ); 235 235 exit; 236 236 } … … 248 248 } 249 249 250 $login_nonce = s elf::create_login_nonce( $user->ID );250 $login_nonce = static::create_login_nonce( $user->ID ); 251 251 if ( ! $login_nonce ) { 252 252 wp_die( esc_html__( 'Failed to create a login nonce.', 'two-factor' ) ); … … 255 255 $redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : $_SERVER['REQUEST_URI']; 256 256 257 s elf::login_html( $user, $login_nonce['key'], $redirect_to );257 static::login_html( $user, $login_nonce['key'], $redirect_to ); 258 258 } 259 259 … … 274 274 275 275 $nonce = $_GET['wp-auth-nonce']; 276 if ( true !== s elf::verify_login_nonce( $user->ID, $nonce ) ) {276 if ( true !== static::verify_login_nonce( $user->ID, $nonce ) ) { 277 277 wp_safe_redirect( get_bloginfo( 'url' ) ); 278 278 exit; 279 279 } 280 280 281 $providers = s elf::get_available_providers_for_user( $user );281 $providers = static::get_available_providers_for_user( $user ); 282 282 if ( isset( $providers[ $_GET['provider'] ] ) ) { 283 283 $provider = $providers[ $_GET['provider'] ]; … … 286 286 } 287 287 288 s elf::login_html( $user, $_GET['wp-auth-nonce'], $_GET['redirect_to'], '', $provider );288 static::login_html( $user, $_GET['wp-auth-nonce'], $_GET['redirect_to'], '', $provider ); 289 289 290 290 exit; … … 304 304 public static function login_html( $user, $login_nonce, $redirect_to, $error_msg = '', $provider = null ) { 305 305 if ( empty( $provider ) ) { 306 $provider = s elf::get_primary_provider_for_user( $user->ID );306 $provider = static::get_primary_provider_for_user( $user->ID ); 307 307 } elseif ( is_string( $provider ) && method_exists( $provider, 'get_instance' ) ) { 308 308 $provider = call_user_func( array( $provider, 'get_instance' ) ); … … 311 311 $provider_class = get_class( $provider ); 312 312 313 $available_providers = s elf::get_available_providers_for_user( $user );313 $available_providers = static::get_available_providers_for_user( $user ); 314 314 $backup_providers = array_diff_key( $available_providers, array( $provider_class => null ) ); 315 315 $interim_login = isset( $_REQUEST['interim-login'] ); // WPCS: override ok. … … 429 429 $login_nonce['expiration'] = time() + HOUR_IN_SECONDS; 430 430 431 if ( ! update_user_meta( $user_id, s elf::USER_META_NONCE_KEY, $login_nonce ) ) {431 if ( ! update_user_meta( $user_id, static::USER_META_NONCE_KEY, $login_nonce ) ) { 432 432 return false; 433 433 } … … 444 444 */ 445 445 public static function delete_login_nonce( $user_id ) { 446 return delete_user_meta( $user_id, s elf::USER_META_NONCE_KEY );446 return delete_user_meta( $user_id, static::USER_META_NONCE_KEY ); 447 447 } 448 448 … … 456 456 */ 457 457 public static function verify_login_nonce( $user_id, $nonce ) { 458 $login_nonce = get_user_meta( $user_id, s elf::USER_META_NONCE_KEY, true );458 $login_nonce = get_user_meta( $user_id, static::USER_META_NONCE_KEY, true ); 459 459 if ( ! $login_nonce ) { 460 460 return false; … … 462 462 463 463 if ( $nonce !== $login_nonce['key'] || time() > $login_nonce['expiration'] ) { 464 s elf::delete_login_nonce( $user_id );464 static::delete_login_nonce( $user_id ); 465 465 return false; 466 466 } … … 485 485 486 486 $nonce = $_POST['wp-auth-nonce']; 487 if ( true !== s elf::verify_login_nonce( $user->ID, $nonce ) ) {487 if ( true !== static::verify_login_nonce( $user->ID, $nonce ) ) { 488 488 wp_safe_redirect( get_bloginfo( 'url' ) ); 489 489 exit; … … 491 491 492 492 if ( isset( $_POST['provider'] ) ) { 493 $providers = s elf::get_available_providers_for_user( $user );493 $providers = static::get_available_providers_for_user( $user ); 494 494 if ( isset( $providers[ $_POST['provider'] ] ) ) { 495 495 $provider = $providers[ $_POST['provider'] ]; … … 498 498 } 499 499 } else { 500 $provider = s elf::get_primary_provider_for_user( $user->ID );500 $provider = static::get_primary_provider_for_user( $user->ID ); 501 501 } 502 502 503 503 // Allow the provider to re-send codes, etc. 504 504 if ( true === $provider->pre_process_authentication( $user ) ) { 505 $login_nonce = s elf::create_login_nonce( $user->ID );505 $login_nonce = static::create_login_nonce( $user->ID ); 506 506 if ( ! $login_nonce ) { 507 507 wp_die( esc_html__( 'Failed to create a login nonce.', 'two-factor' ) ); 508 508 } 509 509 510 s elf::login_html( $user, $login_nonce['key'], $_REQUEST['redirect_to'], '', $provider );510 static::login_html( $user, $login_nonce['key'], $_REQUEST['redirect_to'], '', $provider ); 511 511 exit; 512 512 } … … 516 516 do_action( 'wp_login_failed', $user->user_login ); 517 517 518 $login_nonce = s elf::create_login_nonce( $user->ID );518 $login_nonce = static::create_login_nonce( $user->ID ); 519 519 if ( ! $login_nonce ) { 520 520 wp_die( esc_html__( 'Failed to create a login nonce.', 'two-factor' ) ); 521 521 } 522 522 523 s elf::login_html( $user, $login_nonce['key'], $_REQUEST['redirect_to'], esc_html__( 'ERROR: Invalid verification code.', 'two-factor' ), $provider );523 static::login_html( $user, $login_nonce['key'], $_REQUEST['redirect_to'], esc_html__( 'ERROR: Invalid verification code.', 'two-factor' ), $provider ); 524 524 exit; 525 525 } 526 526 527 s elf::delete_login_nonce( $user->ID );527 static::delete_login_nonce( $user->ID ); 528 528 529 529 $rememberme = false; … … 588 588 } 589 589 590 if ( ! s elf::is_user_using_two_factor( $user_id ) ) {590 if ( ! static::is_user_using_two_factor( $user_id ) ) { 591 591 return sprintf( '<span class="dashicons-before dashicons-no-alt">%s</span>', esc_html__( 'Disabled' ) ); 592 592 } else { 593 $provider = s elf::get_primary_provider_for_user( $user_id );593 $provider = static::get_primary_provider_for_user( $user_id ); 594 594 return esc_html( $provider->get_label() ); 595 595 } … … 609 609 wp_enqueue_style( 'user-edit-2fa', plugins_url( 'user-edit.css', __FILE__ ) ); 610 610 611 $enabled_providers = array_keys( s elf::get_available_providers_for_user( $user->ID ) );612 $primary_provider = s elf::get_primary_provider_for_user( $user->ID );611 $enabled_providers = array_keys( static::get_available_providers_for_user( $user->ID ) ); 612 $primary_provider = static::get_primary_provider_for_user( $user->ID ); 613 613 614 614 if ( ! empty( $primary_provider ) && is_object( $primary_provider ) ) { … … 621 621 622 622 ?> 623 <input type="hidden" name="<?php echo esc_attr( s elf::ENABLED_PROVIDERS_USER_META_KEY ); ?>[]" value="<?php /* Dummy input so $_POST value is passed when no providers are enabled. */ ?>" />623 <input type="hidden" name="<?php echo esc_attr( static::ENABLED_PROVIDERS_USER_META_KEY ); ?>[]" value="<?php /* Dummy input so $_POST value is passed when no providers are enabled. */ ?>" /> 624 624 <table class="form-table"> 625 625 <tr> … … 637 637 </thead> 638 638 <tbody> 639 <?php foreach ( s elf::get_providers() as $class => $object ) : ?>639 <?php foreach ( static::get_providers() as $class => $object ) : ?> 640 640 <tr> 641 <th scope="row"><input type="checkbox" name="<?php echo esc_attr( s elf::ENABLED_PROVIDERS_USER_META_KEY ); ?>[]" value="<?php echo esc_attr( $class ); ?>" <?php checked( in_array( $class, $enabled_providers ) ); ?> /></th>642 <th scope="row"><input type="radio" name="<?php echo esc_attr( s elf::PROVIDER_USER_META_KEY ); ?>" value="<?php echo esc_attr( $class ); ?>" <?php checked( $class, $primary_provider_key ); ?> /></th>641 <th scope="row"><input type="checkbox" name="<?php echo esc_attr( static::ENABLED_PROVIDERS_USER_META_KEY ); ?>[]" value="<?php echo esc_attr( $class ); ?>" <?php checked( in_array( $class, $enabled_providers ) ); ?> /></th> 642 <th scope="row"><input type="radio" name="<?php echo esc_attr( static::PROVIDER_USER_META_KEY ); ?>" value="<?php echo esc_attr( $class ); ?>" <?php checked( $class, $primary_provider_key ); ?> /></th> 643 643 <td> 644 644 <?php $object->print_label(); ?> … … 676 676 check_admin_referer( 'user_two_factor_options', '_nonce_user_two_factor_options' ); 677 677 678 if ( ! isset( $_POST[ s elf::ENABLED_PROVIDERS_USER_META_KEY ] ) ||679 ! is_array( $_POST[ s elf::ENABLED_PROVIDERS_USER_META_KEY ] ) ) {678 if ( ! isset( $_POST[ static::ENABLED_PROVIDERS_USER_META_KEY ] ) || 679 ! is_array( $_POST[ static::ENABLED_PROVIDERS_USER_META_KEY ] ) ) { 680 680 return; 681 681 } 682 682 683 $providers = s elf::get_providers();684 685 $enabled_providers = $_POST[ s elf::ENABLED_PROVIDERS_USER_META_KEY ];683 $providers = static::get_providers(); 684 685 $enabled_providers = $_POST[ static::ENABLED_PROVIDERS_USER_META_KEY ]; 686 686 687 687 // Enable only the available providers. 688 688 $enabled_providers = array_intersect( $enabled_providers, array_keys( $providers ) ); 689 update_user_meta( $user_id, s elf::ENABLED_PROVIDERS_USER_META_KEY, $enabled_providers );689 update_user_meta( $user_id, static::ENABLED_PROVIDERS_USER_META_KEY, $enabled_providers ); 690 690 691 691 // Primary provider must be enabled. 692 $new_provider = isset( $_POST[ s elf::PROVIDER_USER_META_KEY ] ) ? $_POST[ self::PROVIDER_USER_META_KEY ] : '';692 $new_provider = isset( $_POST[ static::PROVIDER_USER_META_KEY ] ) ? $_POST[ static::PROVIDER_USER_META_KEY ] : ''; 693 693 if ( ! empty( $new_provider ) && in_array( $new_provider, $enabled_providers, true ) ) { 694 update_user_meta( $user_id, s elf::PROVIDER_USER_META_KEY, $new_provider );694 update_user_meta( $user_id, static::PROVIDER_USER_META_KEY, $new_provider ); 695 695 } 696 696 }
Note: See TracChangeset
for help on using the changeset viewer.