HEX
Server: Apache
System: Linux efa57bbe-abb1-400d-2985-3b056fbc2701.secureserver.net 6.1.147-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jul 24 12:33:32 EDT 2025 x86_64
User: root (0)
PHP: 8.0.30.4
Disabled: NONE
Upload Files
File: /var/www/wp-content/mu-plugins/vendor/wpsec/wp-2fa-plugin/src/web/js/adminMy2faPage.js
jQuery( document ).ready(
	function ($) {
		const WPSEC_2FA_RESEND_MAIL_ACTION         = 'wpsec_2fa_send_email';
		const WPSEC_2FA_VERIFY_MAIL_CODE_ACTION    = 'wpsec_2fa_verify_email_code';
		const WPSEC_2FA_VERIFY_APP_CODE_ACTION     = 'wpsec_2fa_verify_app_code';
		const WPSEC_2FA_VERIFY_YUBIKEY_CODE_ACTION = 'wpsec_2fa_verify_yubikey_code';
		const WPSEC_2FA_DISABLED_DIALOGUE          = 'wpsec_2fa_disabled_dialogue';

		let admin_2fa_dialog                   = $( "#wpsec_2fa_admin_dialogs" );
		let admin_2fa_dialogue_background      = $( "#wpsec_2fa_email_template_background" );
		let admin_2fa_dialogue_success_message = $( "#gritter-notice-wrapper" );
		let admin_2fa_dialogue_close           = $( "#wpsec_2fa_admin_dialogue_close" );
		let admin_2fa_disabled_first_text      = $( "#wpsec_2fa_disable_first_text" );
		let admin_2fa_disabled_second_text     = $( "#wpsec_2fa_disable_second_text" );
		let admin_2fa_is_disabled_dialogue     = $( "#wpsec_2fa_is_disabled_dialogue" );
		let admin_2fa_disable_cancel           = $( "#wpsec_2fa_disable_close_button" );

		let admin_2fa_mail_disable_dialogue_button = $( "#wpsec_2fa_disable_mail" );
		let admin_2fa_disable_content              = $( "#wpsec_2fa_admin_disable_dialog_content" );
		let admin_2fa_disable_title                = $( "#wpsec_2fa_admin_email_dialog_disable_title" );
		let admin_2fa_app_disable_title            = $( "#wpsec_2fa_admin_app_dialog_disable_title" );
		let admin_2fa_yubikey_disable_title        = $( "#wpsec_2fa_admin_yubikey_dialog_disable_title" );
		let admin_2fa_disable_which                = $( "#wpsec_2fa_disable_which" );

		let admin_2fa_email_enable_button = $( "#wpsec_2fa_enable_mail" );
		let admin_2fa_mail_title          = $( "#wpsec_2fa_admin_email_dialog_title" );
		let admin_2fa_mail_content        = $( "#wpsec_2fa_admin_email_dialog_content" );
		let admin_2fa_mail_close_button   = $( "#wpsec_2fa_email_close_button" );
		let admin_2fa_resend_mail         = $( "#wpsec_2fa_admin_email_resend" );

		let admin_2fa_app_enable_button          = $( "#wpsec_2fa_enable_app" );
		let admin_2fa_yubikey_enable_button      = $( "#wpsec_2fa_enable_yubikey" );
		let admin_2fa_app_scan_content           = $( "#wpsec_2fa_admin_app_scan_dialog_content" );
		let admin_2fa_app_title                  = $( "#wpsec_2fa_admin_app_dialog_title" );
		let admin_2fa_yubikey_title              = $( "#wpsec_2fa_admin_yubikey_dialog_title" );
		let admin_2fa_app_cancel_button          = $( "#wpsec_2fa_app_scan_close_button" );
		let admin_2fa_yubikey_cancel_button      = $( "#wpsec_2fa_yubikey_close_button" );
		let admin_restart_2fa_cancel_button      = $( "#wpsec_2fa_restart_methods_cancel_button" );
		let admin_2fa_app_next_button            = $( "#wpsec_2fa_app_next_button" );
		let admin_2fa_app_verify_content         = $( "#wpsec_2fa_admin_app_check_dialog_content" );
		let admin_2fa_app_back_button            = $( "#wpsec_2fa_app_back_button" );
		let admin_2fa_app_wrapper_content        = $( "#wpsec_2fa_admin_app_wrapper_content" );
		let admin_2fa_yubikey_wrapper_content    = $( "#wpsec_2fa_admin_yubikey_wrapper_content" );
		let admin_2fa_verify_mail_code_button    = $( "#wpsec_2fa_admin_verify_mail_code" );
		let admin_2fa_verify_app_code_button     = $( "#wpsec_2fa_admin_verify_app_code" );
		let admin_2fa_verify_yubikey_code_button = $( "#wpsec_2fa_admin_verify_yubikey_code" );
		let wpsec_2fa_admin_slides               = $( ".wpsec-yubikey-dialog" );
		let admin_2fa_nonce                      = $( "#wpsec_2fa_admin_nonce" );
		let email_code_sent                      = $( "#wpsec_2fa_mail_code_info" );
		let email_error_expired_code             = $( "#wpsec_2fa_mail_code_error_expired" );
		let email_error_code                     = $( "#wpsec_2fa_mail_code_error" );
		let admin_2fa_restart_dialog_content     = $( "#wpsec_2fa_admin_restart_method_dialog_content" );
		let admin_2fa_restart_title              = $( "#wpsec_2fa_admin_restart_dialog_title" );
		let admin_restart_method_single_user_id  = $( "#wpsec_2fa_restart_single_user_id" );

		let wpsec_2fa_admin_button_next = $( ".wpsec_2fa_admin_button_next" );
		let wpsec_2fa_admin_button_back = $( ".wpsec_2fa_admin_button_back" );
		let currentSlide                = $( "#wpsec_2fa_current_slide" );

		close_success_wrapper();

		set_up_mail_listeners();

		set_up_app_listeners();

		admin_2fa_dialogue_close.on(
			'click',
			function() {
				close_admin_2fa_setup_dialogue( admin_2fa_mail_content, admin_2fa_mail_title );
				close_admin_2fa_setup_dialogue( admin_2fa_disable_content, admin_2fa_disable_title );
				hideTitles( [admin_2fa_yubikey_disable_title, admin_2fa_app_disable_title] );
				close_admin_2fa_setup_dialogue( admin_2fa_app_wrapper_content, admin_2fa_app_title );
				close_admin_2fa_setup_dialogue( admin_2fa_yubikey_wrapper_content, admin_2fa_yubikey_title );
				close_admin_2fa_setup_dialogue( admin_2fa_restart_dialog_content, admin_2fa_restart_title );
				admin_restart_method_single_user_id.val( "" );
			}
		)

		admin_2fa_disable_cancel.on(
			'click',
			function (){
				close_admin_2fa_setup_dialogue( admin_2fa_disable_content, admin_2fa_disable_title );
				hideTitles( [admin_2fa_yubikey_disable_title, admin_2fa_app_disable_title] );
			}
		)

		admin_2fa_verify_mail_code_button.on(
			'click',
			function() {
				let code = $( "#wpsec_2fa_mail_code_check" ).val();
				if (code === "") {
					let mail_code_error = $( "#wpsec_2fa_mail_code_error" );
					mail_code_error.hasClass( 'wpsec_2fa_hidden' ) ? mail_code_error.removeClass( 'wpsec_2fa_hidden' ) : '';
					return;
				}
				! email_error_expired_code.hasClass( 'wpsec_2fa_hidden' ) ? email_error_expired_code.addClass( 'wpsec_2fa_hidden' ) : '';
				! email_error_code.hasClass( 'wpsec_2fa_hidden' ) ? email_error_code.addClass( 'wpsec_2fa_hidden' ) : '';
				ajax_call_with_response( WPSEC_2FA_VERIFY_MAIL_CODE_ACTION, code, admin_2fa_nonce.val() );
			}
		)

		admin_2fa_verify_app_code_button.on(
			'click',
			function() {
				let code = $( "#wpsec_2fa_app_code_check" ).val();
				ajax_call_with_response( WPSEC_2FA_VERIFY_APP_CODE_ACTION, code, admin_2fa_nonce.val() );
			}
		)

		admin_2fa_verify_yubikey_code_button.on(
			'click',
			function() {
				let code = $( "#wpsec_2fa_yubikey_code_check" ).val();
				ajax_call_with_response( WPSEC_2FA_VERIFY_YUBIKEY_CODE_ACTION, code, admin_2fa_nonce.val() );
			}
		)

		/**
		 * Adds listeners for mail set up actions
		 */
		function set_up_mail_listeners() {
			admin_2fa_email_enable_button.on(
				'click',
				function() {
					open_admin_2fa_setup_dialog( admin_2fa_mail_content, admin_2fa_mail_title, false , 'email' );
					! email_code_sent.hasClass( 'wpsec_2fa_hidden' ) ? email_code_sent.addClass( 'wpsec_2fa_hidden' ) : '';
					ajax_call_with_response( WPSEC_2FA_RESEND_MAIL_ACTION, '' , admin_2fa_nonce.val() );
				}
			)

			admin_2fa_mail_close_button.on(
				'click',
				function() {
					close_admin_2fa_setup_dialogue( admin_2fa_mail_content, admin_2fa_mail_title, null, null );
				}
			)

			admin_2fa_resend_mail.on(
				'click',
				function () {
					! email_code_sent.hasClass( 'wpsec_2fa_hidden' ) ? email_code_sent.addClass( 'wpsec_2fa_hidden' ) : '';
					ajax_call_with_response( WPSEC_2FA_RESEND_MAIL_ACTION, '', admin_2fa_nonce.val() );
				}
			)

			admin_2fa_mail_disable_dialogue_button.on(
				'click',
				function() {
					open_admin_2fa_setup_dialog(
						admin_2fa_disable_content,
						admin_2fa_disable_title,
						true,
						'email'
					);
				}
			)
		}

		/**
		 * Adds listeners for authenticator app set up actions
		 */
		function set_up_app_listeners() {
			admin_2fa_app_enable_button.on(
				'click',
				function () {
					let app_enabled = $( "#wpsec_2fa_is_app_enabled" ).val();
					if (Boolean( app_enabled )) {
						open_admin_2fa_setup_dialog(
							admin_2fa_disable_content,
							admin_2fa_app_disable_title,
							true,
							'app'
						);
					} else {
						open_admin_2fa_setup_dialog( admin_2fa_app_wrapper_content, admin_2fa_app_title, false, 'app' );
					}
				}
			)

			admin_2fa_yubikey_enable_button.on(
				'click',
				function () {
					let yubikey_enabled = $( "#wpsec_2fa_is_yubikey_enabled" ).val();
					if (Boolean( yubikey_enabled )) {
						open_admin_2fa_setup_dialog(
							admin_2fa_disable_content,
							admin_2fa_yubikey_disable_title,
							true,
							'yubikey'
						);
					} else {
						open_admin_2fa_setup_dialog( admin_2fa_yubikey_wrapper_content, admin_2fa_yubikey_title, false, 'yubikey' );
					}
				}
			)

			admin_2fa_app_cancel_button.on(
				'click',
				function() {
					close_admin_2fa_setup_dialogue( admin_2fa_app_wrapper_content, admin_2fa_app_title );
				}
			)

			admin_2fa_yubikey_cancel_button.on(
				'click',
				function() {
					close_admin_2fa_setup_dialogue( admin_2fa_yubikey_wrapper_content, admin_2fa_yubikey_title );
				}
			)

			admin_restart_2fa_cancel_button.on(
				'click',
				function() {
					close_admin_2fa_setup_dialogue( admin_2fa_restart_dialog_content, admin_2fa_restart_title );
					admin_restart_method_single_user_id.val( "" );
				}
			)

			admin_2fa_app_next_button.on(
				'click',
				function() {
					close_admin_2fa_setup_dialogue( admin_2fa_app_scan_content, admin_2fa_app_title );
					open_admin_2fa_setup_dialog( admin_2fa_app_verify_content, admin_2fa_app_title, false, 'app' );
				}
			)

			admin_2fa_app_back_button.on(
				'click',
				function() {
					close_admin_2fa_setup_dialogue( admin_2fa_app_verify_content, admin_2fa_app_title );
					open_admin_2fa_setup_dialog( admin_2fa_app_scan_content, admin_2fa_app_title, false, 'app' );
				}
			)

			wpsec_2fa_admin_button_next.each(
				function()
				{$( this ).on(
					'click',
					function() {
						slider_buttons( 'next' )
					}
				)
				}
			)
			wpsec_2fa_admin_button_back.each(
				function()
				{$( this ).on(
					'click',
					function(){
						slider_buttons( 'previous' );
					}
				)
				}
			)
		}

		/**
		 * Opens provided admin dialog
		 */
		function open_admin_2fa_setup_dialog(dialog_content, dialog_title, disabled_dialogue, disabled_dialogue_type) {
			admin_2fa_dialog.hasClass( 'wpsec_2fa_hidden' ) ? admin_2fa_dialog.removeClass( 'wpsec_2fa_hidden' ) : '';
			dialog_title.hasClass( 'wpsec_2fa_hidden' ) ? dialog_title.removeClass( 'wpsec_2fa_hidden' ) : '';
			if (disabled_dialogue) {
				admin_2fa_is_disabled_dialogue.val( WPSEC_2FA_DISABLED_DIALOGUE );
				admin_2fa_disabled_first_text.hasClass( 'wpsec_2fa_hidden' ) ? admin_2fa_disabled_first_text.removeClass( 'wpsec_2fa_hidden' ) : '';
				admin_2fa_disabled_second_text.hasClass( 'wpsec_2fa_hidden' ) ? admin_2fa_disabled_second_text.removeClass( 'wpsec_2fa_hidden' ) : '';
				switch (disabled_dialogue_type) {
					case 'email' :
						admin_2fa_disabled_first_text.html( wpsec_2fa_disable_texts.email_first_text );
						admin_2fa_disabled_second_text.html( wpsec_2fa_disable_texts.email_second_text );
						admin_2fa_disable_which.val( 'email' );
						break;
					case 'app':
						admin_2fa_disabled_first_text.html( wpsec_2fa_disable_texts.app_first_text );
						admin_2fa_disabled_second_text.html( wpsec_2fa_disable_texts.app_second_text );
						admin_2fa_disable_which.val( 'app' );
						break;
					case 'yubikey':
						admin_2fa_disabled_first_text.html( wpsec_2fa_disable_texts.yubikey_first_text );
						admin_2fa_disabled_second_text.html( wpsec_2fa_disable_texts.yubikey_second_text );
						admin_2fa_disable_which.val( 'yubikey' );
				}
			}

			dialog_content.hasClass( 'wpsec_2fa_hidden' ) ? dialog_content.removeClass( 'wpsec_2fa_hidden' ) : '';
			admin_2fa_dialogue_background.hasClass( 'wpsec_2fa_hidden' ) ? admin_2fa_dialogue_background.removeClass( 'wpsec_2fa_hidden' ) : '';
		}

		/**
		 * Closes provided admin dialog
		 */
		function close_admin_2fa_setup_dialogue(dialog_content, dialog_title) {
			! admin_2fa_dialog.hasClass( 'wpsec_2fa_hidden' ) ? admin_2fa_dialog.addClass( 'wpsec_2fa_hidden' ) : '';
			! dialog_title.hasClass( 'wpsec_2fa_hidden' ) ? dialog_title.addClass( 'wpsec_2fa_hidden' ) : '';
			! dialog_content.hasClass( 'wpsec_2fa_hidden' ) ? dialog_content.addClass( 'wpsec_2fa_hidden' ) : '';
			if (admin_2fa_is_disabled_dialogue.val() === WPSEC_2FA_DISABLED_DIALOGUE) {
				! admin_2fa_disabled_first_text.hasClass( 'wpsec_2fa_hidden' ) ? admin_2fa_disabled_first_text.removeClass( 'wpsec_2fa_hidden' ) : '';
				! admin_2fa_disabled_second_text.hasClass( 'wpsec_2fa_hidden' ) ? admin_2fa_disabled_second_text.removeClass( 'wpsec_2fa_hidden' ) : '';
			}

			! admin_2fa_dialogue_background.hasClass( 'wpsec_2fa_hidden' ) ? admin_2fa_dialogue_background.addClass( 'wpsec_2fa_hidden' ) : '';
		}

		/**
		 * Closes success message after 5 seconds
		 */
		function close_success_wrapper() {
			if ( ! admin_2fa_dialogue_success_message.hasClass( 'wpsec_2fa_hidden' ) ) {
				setTimeout(
					function() {
						admin_2fa_dialogue_success_message.addClass( 'wpsec_2fa_hidden' );
					},
					5000
				)
			}
		}

		/**
		 * Screen changing functionality for transitioning between screens with buttons
		 * @param direction Direction to scroll to, 'next' for the next slide, 'previous' for the previous slide
		 */
		function slider_buttons( direction = 'next' ) {
			let currentSlideNumber = Number( currentSlide.val() );
			hideAllDialogs( wpsec_2fa_admin_slides );
			if ( direction === 'next' ) {
				currentSlide.val( ! (currentSlideNumber + 1 > wpsec_2fa_admin_slides.length - 1) ? currentSlideNumber += 1 : currentSlideNumber );
			}

			if ( direction === 'previous' ) {
				currentSlide.val( ! (currentSlideNumber - 1 < 0) ? currentSlideNumber -= 1 : currentSlideNumber );
			}

			$( wpsec_2fa_admin_slides[currentSlideNumber] ).removeClass( 'wpsec_2fa_hidden' );
		}

		/**
		 * Hides all dialogs that are supplied in array
		 */
		function hideAllDialogs( dialogs ) {
			dialogs.each( function() { deactivate_configuration( $( this ) )} );
		}

		/**
		 * Deactivates given mail configuration
		 */
		function deactivate_configuration( configuration ) {
			! configuration.hasClass( 'wpsec_2fa_hidden' ) ? configuration.addClass( 'wpsec_2fa_hidden' ) : '';
		}

		function hideTitles( titles ) {
			titles.forEach(
				function (title){
					! title.hasClass( 'wpsec_2fa_hidden' ) ? title.addClass( 'wpsec_2fa_hidden' ) : '';
				}
			)
		}

	}
);