Version Description
Download this release
Release Info
Developer | cyberlord92 |
Plugin | Google Authenticator – WordPress Two Factor Authentication (2FA) |
Version | 5.4.8 |
Comparing to | |
See all releases |
Code changes from version 5.4.7 to 5.4.8
- {api → miniorange-2-factor-authentication/api}/Mo2f_OnPremRedirect.php +0 -0
- {api → miniorange-2-factor-authentication/api}/class-customer-setup.php +0 -0
- {api → miniorange-2-factor-authentication/api}/class-rba-attributes.php +0 -0
- {api → miniorange-2-factor-authentication/api}/class-two-factor-setup.php +0 -0
- {api → miniorange-2-factor-authentication/api}/mo2f_api.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/account.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/advanced-blocking.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/backup/backup.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/backup/backup_ajax.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/backup/backup_controller.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/backup/backup_created_report.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/backup/backup_created_result.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/backup/backup_schdule.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/change-password.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/content-protection.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/dashboard.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/dashboard_ajax.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/feedback_form.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/ip-blocking.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/licensing.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/login-security.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/login-spam.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/main_controller.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/malware_scan_ajax.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/malware_scan_result.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/scan_malware.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/scan_malware_report.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/scan_malware_settings.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/scan_malware_summary.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/navbar.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/newtork_security_features.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/notification-settings.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/registration-security.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/reports.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/request_demo.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/support.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/tour-model.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/troubleshooting.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/mo2fa_common_login.php +18 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/setup_twofa.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_addon.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_custom_form.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_custom_login.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_login_option.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_rba.php +0 -0
- miniorange-2-factor-authentication/controllers/twofa/two_fa_session_control.php +3 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_shortcode.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_unlimittedUser.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_unlimittedUser_ajax.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_video_guide.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/twofa/two_factor_ajax.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/upgrade.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/waf.php +0 -0
- {controllers → miniorange-2-factor-authentication/controllers}/wpns-loginsecurity-ajax.php +0 -0
- {database → miniorange-2-factor-authentication/database}/database_functions.php +0 -0
- {database → miniorange-2-factor-authentication/database}/database_functions_2fa.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/WAF/database/mo-waf-db.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/WAF/database/mo-waf-plugin-db.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/WAF/mo-waf-plugin.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/WAF/mo-waf.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/WAF/waf-include.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/ajax.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/backup.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/feedback_form.php +33 -9
- {handler → miniorange-2-factor-authentication/handler}/logger.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/login.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/malware_scanner.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/malware_scanner/malware_scanner_cron.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/malware_scanner/scanner_set_cron.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/mo-block.html +0 -0
- {handler → miniorange-2-factor-authentication/handler}/mo-error.html +0 -0
- {handler → miniorange-2-factor-authentication/handler}/mo-waf-plugin.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/mo-waf.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/recaptcha.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/registration.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/security_features.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/signature/APLFI.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/signature/APSQLI.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/signature/APXSS.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/spam.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/twofa/class_miniorange_2fa_strong_password.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/twofa/encryption.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/twofa/gaonprem.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/twofa/setup_twofa.php +48 -5
- {handler → miniorange-2-factor-authentication/handler}/twofa/two_fa_constants.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/twofa/two_fa_login.php +0 -0
- {handler → miniorange-2-factor-authentication/handler}/twofa/two_fa_pass2login.php +491 -380
- {handler → miniorange-2-factor-authentication/handler}/twofa/two_fa_settings.php +6 -4
- {handler → miniorange-2-factor-authentication/handler}/twofa/two_fa_utility.php +0 -0
- {helper → miniorange-2-factor-authentication/helper}/constants.php +0 -0
- {helper → miniorange-2-factor-authentication/helper}/curl.php +0 -0
- {helper → miniorange-2-factor-authentication/helper}/dashboard_security_notification.php +0 -0
- {helper → miniorange-2-factor-authentication/helper}/messages.php +0 -0
- {helper → miniorange-2-factor-authentication/helper}/pluginUtility.php +0 -0
- {helper → miniorange-2-factor-authentication/helper}/plugins.php +0 -0
- {helper → miniorange-2-factor-authentication/helper}/utility.php +0 -0
- {includes → miniorange-2-factor-authentication/includes}/css/bootstrap.min.css +0 -0
- {includes → miniorange-2-factor-authentication/includes}/css/button_styles.css +0 -0
- {includes → miniorange-2-factor-authentication/includes}/css/hide-login-form.css +0 -0
- {includes → miniorange-2-factor-authentication/includes}/css/hide-login.css +0 -0
- {includes → miniorange-2-factor-authentication/includes}/css/jquery.dataTables.min.css +0 -0
- {includes → miniorange-2-factor-authentication/includes}/css/phone.css +0 -0
- {includes → miniorange-2-factor-authentication/includes}/css/popup.css +0 -0
- {includes → miniorange-2-factor-authentication/includes}/css/show-login.css +0 -0
- {includes → miniorange-2-factor-authentication/includes}/css/style_settings.css +135 -21
- {includes → miniorange-2-factor-authentication/includes}/css/twofa_style_settings.css +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/61456.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/Admin_Custom_Login.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/Custom_Login_Page_Customizer_LoginPress.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/RegistrationMagic_Custom_Registration_Forms_and_User_Login.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/ajax-loader-login.gif +0 -0
- miniorange-2-factor-authentication/includes/images/amazons3.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/angry.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/appstore.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/AuthyAuthenticator.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/EmailVerification.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/GoogleAuthenticator.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/HardwareToken.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/OTPOverEmail.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/OTPOverSMS.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/OTPOverSMSandEmail.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/SecurityQuestions.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/miniOrangePushNotification.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/miniOrangeQRCodeAuthentication.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/authmethods/miniOrangeSoftToken.png +0 -0
- miniorange-2-factor-authentication/includes/images/box.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/card.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/database-backup-logo.png +0 -0
- miniorange-2-factor-authentication/includes/images/dropbox.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/error.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/flags16.png +0 -0
- miniorange-2-factor-authentication/includes/images/gdrive.jpg +0 -0
- miniorange-2-factor-authentication/includes/images/google.jpg +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/happy.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/loader.gif +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/login-protection-logo.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/malware-scanner-logo.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/miniOrange2.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/miniorange_icon.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/miniorange_logo.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/mo-waf-logo.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/mo_white_logo.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/netbanking.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/normal.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/normal1.png +0 -0
- miniorange-2-factor-authentication/includes/images/onedrive.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/paypal.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/playStore.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/restrict_content_pro.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/right-arrow.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/right.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/sad.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/smile.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/success.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/support3.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/theme_my_login.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/ultimate_member.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/user_registration.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/woocommerce.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/images/wrong.png +0 -0
- {includes → miniorange-2-factor-authentication/includes}/jquery-qrcode/README.md +0 -0
- {includes → miniorange-2-factor-authentication/includes}/jquery-qrcode/jquery-qrcode.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/jquery-qrcode/jquery-qrcode.min.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/bootstrap.min.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/jquery.dataTables.min.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/phone.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/rba/js/client.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/rba/js/device_attributes.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/rba/js/fontdetect.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/rba/js/fonts.swf +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/rba/js/jquery-1.9.1.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/rba/js/jquery.flash.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/rba/js/miniorange-fp.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/rba/js/murmurhash3.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/rba/js/swfobject.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/rba/js/ua-parser.js +0 -0
- {includes → miniorange-2-factor-authentication/includes}/js/settings_page.js +40 -19
- {lang → miniorange-2-factor-authentication/lang}/miniorange-2-factor-authentication.pot +0 -0
- miniorange_2_factor_settings.php → miniorange-2-factor-authentication/miniorange_2_factor_settings.php +7 -4
- readme.txt → miniorange-2-factor-authentication/readme.txt +7 -1
- uninstall.php → miniorange-2-factor-authentication/uninstall.php +0 -0
- {views → miniorange-2-factor-authentication/views}/account/login.php +0 -0
- {views → miniorange-2-factor-authentication/views}/account/profile.php +9 -1
- {views → miniorange-2-factor-authentication/views}/account/register.php +0 -0
- {views → miniorange-2-factor-authentication/views}/account/verify.php +0 -0
- {views → miniorange-2-factor-authentication/views}/advanced-blocking.php +5 -5
- {views → miniorange-2-factor-authentication/views}/backup/backup.php +0 -0
- {views → miniorange-2-factor-authentication/views}/backup/backup_created_report.php +0 -0
- {views → miniorange-2-factor-authentication/views}/backup/backup_schdule.php +2 -1
- {views → miniorange-2-factor-authentication/views}/backup/backup_setting_view.php +0 -0
- {views → miniorange-2-factor-authentication/views}/change-password.php +0 -0
- {views → miniorange-2-factor-authentication/views}/common-elements.php +0 -0
- {views → miniorange-2-factor-authentication/views}/content-protection.php +0 -0
- {views → miniorange-2-factor-authentication/views}/dashboard.php +0 -0
- {views → miniorange-2-factor-authentication/views}/feedback_form.php +0 -0
- {views → miniorange-2-factor-authentication/views}/ip-blocking.php +1 -1
- {views → miniorange-2-factor-authentication/views}/licensing.php +0 -0
- {views → miniorange-2-factor-authentication/views}/login-security.php +3 -3
- {views → miniorange-2-factor-authentication/views}/login_spam.php +0 -0
- {views → miniorange-2-factor-authentication/views}/malware_scanner/malware_scan.php +0 -0
- {views → miniorange-2-factor-authentication/views}/malware_scanner/scan_report_view.php +0 -0
- {views → miniorange-2-factor-authentication/views}/malware_scanner/scan_settings_view.php +3 -1
- {views → miniorange-2-factor-authentication/views}/malware_scanner/scan_summary_view.php +2 -2
- {views → miniorange-2-factor-authentication/views}/navbar.php +0 -0
- {views → miniorange-2-factor-authentication/views}/network_security_features.php +0 -0
- {views → miniorange-2-factor-authentication/views}/notification-settings.php +0 -0
- {views → miniorange-2-factor-authentication/views}/rate-limiting.php +0 -0
- {views → miniorange-2-factor-authentication/views}/registration-security.php +0 -0
- {views → miniorange-2-factor-authentication/views}/reports.php +0 -0
- {views → miniorange-2-factor-authentication/views}/request_demo.php +7 -1
- {views → miniorange-2-factor-authentication/views}/support.php +0 -0
- {views → miniorange-2-factor-authentication/views}/test/test_twofa_email_verification.php +0 -0
- {views → miniorange-2-factor-authentication/views}/test/test_twofa_google_authy_authenticator.php +0 -0
- {views → miniorange-2-factor-authentication/views}/test/test_twofa_kba_questions.php +0 -0
- {views → miniorange-2-factor-authentication/views}/test/test_twofa_miniorange_push_notification.php +0 -0
- {views → miniorange-2-factor-authentication/views}/test/test_twofa_miniorange_qrcode_authentication.php +0 -0
- {views → miniorange-2-factor-authentication/views}/test/test_twofa_miniorange_soft_token.php +0 -0
- {views → miniorange-2-factor-authentication/views}/test/test_twofa_otp_over_sms.php +0 -0
- {views → miniorange-2-factor-authentication/views}/tour-model.php +0 -0
- miniorange-2-factor-authentication/views/troubleshooting.php +167 -0
- {views → miniorange-2-factor-authentication/views}/twofa/setup/setup_authy_authenticator.php +3 -1
- {views → miniorange-2-factor-authentication/views}/twofa/setup/setup_google_authenticator.php +24 -12
- {views → miniorange-2-factor-authentication/views}/twofa/setup/setup_google_authenticator_onpremise.php +31 -56
- {views → miniorange-2-factor-authentication/views}/twofa/setup/setup_kba_questions.php +3 -1
- {views → miniorange-2-factor-authentication/views}/twofa/setup/setup_miniorange_authenticator.php +3 -1
- {views → miniorange-2-factor-authentication/views}/twofa/setup/setup_otp_over_sms.php +3 -1
- {views → miniorange-2-factor-authentication/views}/twofa/setup_twofa.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_email_verification.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_google_authy_authenticator.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_kba_questions.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_miniorange_push_notification.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_miniorange_qrcode_authentication.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_miniorange_soft_token.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_otp_over_sms.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/two_fa.php +27 -14
- {views → miniorange-2-factor-authentication/views}/twofa/two_fa_addon.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/two_fa_custom_form.php +34 -11
- {views → miniorange-2-factor-authentication/views}/twofa/two_fa_custom_login.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/two_fa_login_option.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/two_fa_rba.php +0 -0
- miniorange-2-factor-authentication/views/twofa/two_fa_session_control.php +87 -0
- {views → miniorange-2-factor-authentication/views}/twofa/two_fa_setup_notification.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/two_fa_shortcode.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/two_fa_unlimittedUser.php +0 -0
- {views → miniorange-2-factor-authentication/views}/twofa/two_fa_video_guide.php +0 -0
- {views → miniorange-2-factor-authentication/views}/upgrade.php +400 -33
- miniorange-2-factor-authentication/views/upgrade_2fa.php +603 -0
- {views → miniorange-2-factor-authentication/views}/upgrade_2fa_lite.php +275 -87
- {views → miniorange-2-factor-authentication/views}/waf-settings.php +0 -0
- {views → miniorange-2-factor-authentication/views}/waf.php +12 -9
- views/troubleshooting.php +0 -100
- views/upgrade_2fa.php +0 -347
{api → miniorange-2-factor-authentication/api}/Mo2f_OnPremRedirect.php
RENAMED
File without changes
|
{api → miniorange-2-factor-authentication/api}/class-customer-setup.php
RENAMED
File without changes
|
{api → miniorange-2-factor-authentication/api}/class-rba-attributes.php
RENAMED
File without changes
|
{api → miniorange-2-factor-authentication/api}/class-two-factor-setup.php
RENAMED
File without changes
|
{api → miniorange-2-factor-authentication/api}/mo2f_api.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/account.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/advanced-blocking.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/backup/backup.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/backup/backup_ajax.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/backup/backup_controller.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/backup/backup_created_report.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/backup/backup_created_result.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/backup/backup_schdule.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/change-password.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/content-protection.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/dashboard.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/dashboard_ajax.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/feedback_form.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/ip-blocking.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/licensing.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/login-security.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/login-spam.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/main_controller.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/malware_scan_ajax.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/malware_scan_result.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/scan_malware.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/scan_malware_report.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/scan_malware_settings.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/malware_scanner/scan_malware_summary.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/navbar.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/newtork_security_features.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/notification-settings.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/registration-security.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/reports.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/request_demo.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/support.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/tour-model.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/troubleshooting.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/mo2fa_common_login.php
RENAMED
@@ -228,6 +228,7 @@ function mo2f_get_forgotphone_form( $login_status, $login_message, $redirect_to,
|
|
228 |
<input type="hidden" name="mo2f_configured_2FA_method"/>
|
229 |
<input type="hidden" name="miniorange_challenge_forgotphone_nonce"
|
230 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-challenge-forgotphone-nonce' ); ?>"/>
|
|
|
231 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
232 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
233 |
</form>
|
@@ -314,6 +315,10 @@ function mo2f_get_kba_authentication_prompt( $login_message, $redirect_to, $sess
|
|
314 |
value="<?php echo mo2f_lt( 'Validate' ); ?>"/>
|
315 |
<input type="hidden" name="miniorange_kba_nonce"
|
316 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-kba-nonce' ); ?>"/>
|
|
|
|
|
|
|
|
|
317 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
318 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
319 |
</form>
|
@@ -435,6 +440,7 @@ function mo2f_get_push_notification_oobemail_prompt( $id, $login_status, $login_
|
|
435 |
class="mo2f_display_none_forms">
|
436 |
<input type="hidden" name="miniorange_mobile_validation_failed_nonce"
|
437 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-mobile-validation-failed-nonce' ); ?>"/>
|
|
|
438 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
439 |
<input type="hidden" name="currentMethod" value="emailVer"/>
|
440 |
|
@@ -442,6 +448,7 @@ function mo2f_get_push_notification_oobemail_prompt( $id, $login_status, $login_
|
|
442 |
<form name="f" id="mo2f_mobile_validation_form" method="post" class="mo2f_display_none_forms">
|
443 |
<input type="hidden" name="miniorange_mobile_validation_nonce"
|
444 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-mobile-validation-nonce' ); ?>"/>
|
|
|
445 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
446 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
447 |
<input type="hidden" name="TxidEmail" value="<?php echo $mo2f_EV_txid; ?>"/>
|
@@ -450,6 +457,7 @@ function mo2f_get_push_notification_oobemail_prompt( $id, $login_status, $login_
|
|
450 |
<form name="f" id="mo2f_show_softtoken_loginform" method="post" class="mo2f_display_none_forms">
|
451 |
<input type="hidden" name="miniorange_softtoken"
|
452 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-softtoken' ); ?>"/>
|
|
|
453 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
454 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
455 |
</form>
|
@@ -457,12 +465,14 @@ function mo2f_get_push_notification_oobemail_prompt( $id, $login_status, $login_
|
|
457 |
<input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>"/>
|
458 |
<input type="hidden" name="miniorange_forgotphone"
|
459 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-forgotphone' ); ?>"/>
|
|
|
460 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
461 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
462 |
</form>
|
463 |
<form name="f" id="mo2f_alternate_login_kbaform" method="post" class="mo2f_display_none_forms">
|
464 |
<input type="hidden" name="miniorange_alternate_login_kba_nonce"
|
465 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-alternate-login-kba-nonce' ); ?>"/>
|
|
|
466 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
467 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
468 |
</form>
|
@@ -629,6 +639,7 @@ function mo2f_get_qrcode_authentication_prompt( $login_status, $login_message, $
|
|
629 |
<input type="hidden" name="miniorange_mobile_validation_nonce"
|
630 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-mobile-validation-nonce' ); ?>"/>
|
631 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
|
|
632 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
633 |
</form>
|
634 |
<form name="f" id="mo2f_show_softtoken_loginform" method="post" class="mo2f_display_none_forms">
|
@@ -642,6 +653,7 @@ function mo2f_get_qrcode_authentication_prompt( $login_status, $login_message, $
|
|
642 |
<input type="hidden" name="miniorange_forgotphone"
|
643 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-forgotphone' ); ?>"/>
|
644 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
|
|
645 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
646 |
</form>
|
647 |
<script>
|
@@ -755,6 +767,7 @@ function mo2f_get_otp_authentication_prompt( $login_status, $login_message, $red
|
|
755 |
<input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>"/>
|
756 |
<input type="hidden" name="miniorange_soft_token_nonce"
|
757 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-soft-token-nonce' ); ?>"/>
|
|
|
758 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
759 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
760 |
</form>
|
@@ -789,6 +802,7 @@ function mo2f_get_otp_authentication_prompt( $login_status, $login_message, $red
|
|
789 |
<input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>"/>
|
790 |
<input type="hidden" name="miniorange_forgotphone"
|
791 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-forgotphone' ); ?>"/>
|
|
|
792 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
793 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
794 |
</form>
|
@@ -869,12 +883,16 @@ function mo2f_get_device_form( $redirect_to, $session_id_encrypt ) {
|
|
869 |
<form name="f" id="mo2f_trust_device_confirm_form" method="post" action="" class="mo2f_display_none_forms">
|
870 |
<input type="hidden" name="mo2f_trust_device_confirm_nonce"
|
871 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-trust-device-confirm-nonce' ); ?>"/>
|
|
|
|
|
872 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
873 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
874 |
</form>
|
875 |
<form name="f" id="mo2f_trust_device_cancel_form" method="post" action="" class="mo2f_display_none_forms">
|
876 |
<input type="hidden" name="mo2f_trust_device_cancel_nonce"
|
877 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-trust-device-cancel-nonce' ); ?>"/>
|
|
|
|
|
878 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
879 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
880 |
</form>
|
228 |
<input type="hidden" name="mo2f_configured_2FA_method"/>
|
229 |
<input type="hidden" name="miniorange_challenge_forgotphone_nonce"
|
230 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-challenge-forgotphone-nonce' ); ?>"/>
|
231 |
+
<input type="hidden" name="option" value="miniorange_challenge_forgotphone">
|
232 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
233 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
234 |
</form>
|
315 |
value="<?php echo mo2f_lt( 'Validate' ); ?>"/>
|
316 |
<input type="hidden" name="miniorange_kba_nonce"
|
317 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-kba-nonce' ); ?>"/>
|
318 |
+
|
319 |
+
<input type="hidden" name="option"
|
320 |
+
value="miniorange_kba_validate"/>
|
321 |
+
|
322 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
323 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
324 |
</form>
|
440 |
class="mo2f_display_none_forms">
|
441 |
<input type="hidden" name="miniorange_mobile_validation_failed_nonce"
|
442 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-mobile-validation-failed-nonce' ); ?>"/>
|
443 |
+
<input type="hidden" name="option" value="miniorange_mobile_validation_failed">
|
444 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
445 |
<input type="hidden" name="currentMethod" value="emailVer"/>
|
446 |
|
448 |
<form name="f" id="mo2f_mobile_validation_form" method="post" class="mo2f_display_none_forms">
|
449 |
<input type="hidden" name="miniorange_mobile_validation_nonce"
|
450 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-mobile-validation-nonce' ); ?>"/>
|
451 |
+
<input type="hidden" name="option" value="miniorange_mobile_validation">
|
452 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
453 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
454 |
<input type="hidden" name="TxidEmail" value="<?php echo $mo2f_EV_txid; ?>"/>
|
457 |
<form name="f" id="mo2f_show_softtoken_loginform" method="post" class="mo2f_display_none_forms">
|
458 |
<input type="hidden" name="miniorange_softtoken"
|
459 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-softtoken' ); ?>"/>
|
460 |
+
<input type="hidden" name="option" value="miniorange_softtoken">
|
461 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
462 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
463 |
</form>
|
465 |
<input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>"/>
|
466 |
<input type="hidden" name="miniorange_forgotphone"
|
467 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-forgotphone' ); ?>"/>
|
468 |
+
<input type="hidden" name="option" value="miniorange_forgotphone">
|
469 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
470 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
471 |
</form>
|
472 |
<form name="f" id="mo2f_alternate_login_kbaform" method="post" class="mo2f_display_none_forms">
|
473 |
<input type="hidden" name="miniorange_alternate_login_kba_nonce"
|
474 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-alternate-login-kba-nonce' ); ?>"/>
|
475 |
+
<input type="hidden" name="option" value="miniorange_alternate_login_kba">
|
476 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
477 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
478 |
</form>
|
639 |
<input type="hidden" name="miniorange_mobile_validation_nonce"
|
640 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-mobile-validation-nonce' ); ?>"/>
|
641 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
642 |
+
<input type="hidden" name="option" value="miniorange_mobile_validation">
|
643 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
644 |
</form>
|
645 |
<form name="f" id="mo2f_show_softtoken_loginform" method="post" class="mo2f_display_none_forms">
|
653 |
<input type="hidden" name="miniorange_forgotphone"
|
654 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-forgotphone' ); ?>"/>
|
655 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
656 |
+
<input type="hidden" name="option" value="miniorange_forgotphone">
|
657 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
658 |
</form>
|
659 |
<script>
|
767 |
<input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>"/>
|
768 |
<input type="hidden" name="miniorange_soft_token_nonce"
|
769 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-soft-token-nonce' ); ?>"/>
|
770 |
+
<input type="hidden" name="option" value="miniorange_soft_token">
|
771 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
772 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
773 |
</form>
|
802 |
<input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>"/>
|
803 |
<input type="hidden" name="miniorange_forgotphone"
|
804 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-forgotphone' ); ?>"/>
|
805 |
+
<input type="hidden" name="option" value="miniorange_forgotphone">
|
806 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
807 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
808 |
</form>
|
883 |
<form name="f" id="mo2f_trust_device_confirm_form" method="post" action="" class="mo2f_display_none_forms">
|
884 |
<input type="hidden" name="mo2f_trust_device_confirm_nonce"
|
885 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-trust-device-confirm-nonce' ); ?>"/>
|
886 |
+
<input type="hidden" name="option" value="miniorange_rba_validate">
|
887 |
+
|
888 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
889 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
890 |
</form>
|
891 |
<form name="f" id="mo2f_trust_device_cancel_form" method="post" action="" class="mo2f_display_none_forms">
|
892 |
<input type="hidden" name="mo2f_trust_device_cancel_nonce"
|
893 |
value="<?php echo wp_create_nonce( 'miniorange-2-factor-trust-device-cancel-nonce' ); ?>"/>
|
894 |
+
<input type="hidden" name="option" value="miniorange_rba_cancle">
|
895 |
+
|
896 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
897 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
898 |
</form>
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/setup_twofa.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_addon.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_custom_form.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_custom_login.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_login_option.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_rba.php
RENAMED
File without changes
|
miniorange-2-factor-authentication/controllers/twofa/two_fa_session_control.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include $mo2f_dirName . 'views'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_session_control.php';
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_shortcode.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_unlimittedUser.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_unlimittedUser_ajax.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_fa_video_guide.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/twofa/two_factor_ajax.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/upgrade.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/waf.php
RENAMED
File without changes
|
{controllers → miniorange-2-factor-authentication/controllers}/wpns-loginsecurity-ajax.php
RENAMED
File without changes
|
{database → miniorange-2-factor-authentication/database}/database_functions.php
RENAMED
File without changes
|
{database → miniorange-2-factor-authentication/database}/database_functions_2fa.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/WAF/database/mo-waf-db.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/WAF/database/mo-waf-plugin-db.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/WAF/mo-waf-plugin.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/WAF/mo-waf.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/WAF/waf-include.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/ajax.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/backup.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/feedback_form.php
RENAMED
@@ -27,36 +27,60 @@ class FeedbackHandler
|
|
27 |
|
28 |
function wpns_handle_feedback($postdata)
|
29 |
{
|
30 |
-
|
31 |
-
|
32 |
return;
|
33 |
-
|
34 |
-
|
35 |
$user = wp_get_current_user();
|
36 |
$feedback_option = $_POST['option'];
|
37 |
$message = 'Plugin Deactivated';
|
38 |
|
39 |
$deactivate_reason_message = array_key_exists('wpns_query_feedback', $_POST) ? htmlspecialchars($_POST['wpns_query_feedback']) : false;
|
40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
$reply_required = '';
|
43 |
if (isset($_POST['get_reply']))
|
44 |
$reply_required = htmlspecialchars($_POST['get_reply']);
|
45 |
if (empty($reply_required)) {
|
46 |
$reply_required = "don't reply";
|
47 |
-
$message .= '
|
48 |
} else {
|
49 |
$reply_required = "yes";
|
50 |
-
$message .= '[Reply
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
$message .= ', Feedback : ' . $deactivate_reason_message . '';
|
55 |
|
56 |
if (isset($_POST['rate']))
|
57 |
$rate_value = htmlspecialchars($_POST['rate']);
|
58 |
-
|
59 |
-
|
60 |
$message .= ', [Rating :' . $rate_value . ']';
|
61 |
|
62 |
$email = isset($_POST['query_mail'])? $_POST['query_mail']: '';
|
27 |
|
28 |
function wpns_handle_feedback($postdata)
|
29 |
{
|
30 |
+
if(MO2F_TEST_MODE){
|
31 |
+
deactivate_plugins(dirname(dirname(__FILE__ ))."\\miniorange_2_factor_settings.php");
|
32 |
return;
|
33 |
+
}
|
34 |
+
|
35 |
$user = wp_get_current_user();
|
36 |
$feedback_option = $_POST['option'];
|
37 |
$message = 'Plugin Deactivated';
|
38 |
|
39 |
$deactivate_reason_message = array_key_exists('wpns_query_feedback', $_POST) ? htmlspecialchars($_POST['wpns_query_feedback']) : false;
|
40 |
+
$activation_date = get_site_option('mo2f_activated_time');
|
41 |
+
$current_date = time();
|
42 |
+
$diff = $activation_date - $current_date;
|
43 |
+
if($activation_date == false){
|
44 |
+
$days = 'NA';
|
45 |
+
}
|
46 |
+
else{
|
47 |
+
$days = abs(round($diff / 86400));
|
48 |
+
}
|
49 |
+
//$message .= ', [D:' . $days . ']';
|
50 |
+
/*if(get_option("mo_wpns_2fa_with_network_security")){
|
51 |
+
$twofa_plus_ns_enabled = 'T';
|
52 |
+
}
|
53 |
+
else{
|
54 |
+
$twofa_plus_ns_enabled = 'F';
|
55 |
+
}
|
56 |
+
$message .= ',[2FA+NS:' .$twofa_plus_ns_enabled.']';*/
|
57 |
|
58 |
$reply_required = '';
|
59 |
if (isset($_POST['get_reply']))
|
60 |
$reply_required = htmlspecialchars($_POST['get_reply']);
|
61 |
if (empty($reply_required)) {
|
62 |
$reply_required = "don't reply";
|
63 |
+
$message .= ' [Reply:<b style="color:red";>' . $reply_required . '</b>,';
|
64 |
} else {
|
65 |
$reply_required = "yes";
|
66 |
+
$message .= '[Reply:' . $reply_required . ',';
|
67 |
}
|
68 |
|
69 |
+
$message .= 'D:' . $days . ',';
|
70 |
+
if(get_option("mo_wpns_2fa_with_network_security")){
|
71 |
+
$message .= '2FA+NS]';
|
72 |
+
}
|
73 |
+
else{
|
74 |
+
$message .= '2FA]';
|
75 |
+
}
|
76 |
+
|
77 |
|
78 |
$message .= ', Feedback : ' . $deactivate_reason_message . '';
|
79 |
|
80 |
if (isset($_POST['rate']))
|
81 |
$rate_value = htmlspecialchars($_POST['rate']);
|
82 |
+
else
|
83 |
+
$rate_value = "--";
|
84 |
$message .= ', [Rating :' . $rate_value . ']';
|
85 |
|
86 |
$email = isset($_POST['query_mail'])? $_POST['query_mail']: '';
|
{handler → miniorange-2-factor-authentication/handler}/logger.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/login.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/malware_scanner.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/malware_scanner/malware_scanner_cron.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/malware_scanner/scanner_set_cron.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/mo-block.html
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/mo-error.html
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/mo-waf-plugin.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/mo-waf.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/recaptcha.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/registration.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/security_features.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/signature/APLFI.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/signature/APSQLI.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/signature/APXSS.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/spam.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/twofa/class_miniorange_2fa_strong_password.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/twofa/encryption.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/twofa/gaonprem.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/twofa/setup_twofa.php
RENAMED
@@ -96,7 +96,34 @@
|
|
96 |
"OTP Over SMS and Email" => "Enter the One Time Passcode sent to your phone and email to login.",
|
97 |
"Hardware Token" => "Enter the One Time Passcode on your Hardware Token to login."
|
98 |
);
|
99 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
|
101 |
$two_factor_methods_EC = array_slice( $all_two_factor_methods, 0, 8 );
|
102 |
$two_factor_methods_NC = array_slice( $all_two_factor_methods, 0, 5 );
|
@@ -189,15 +216,31 @@
|
|
189 |
|
190 |
}
|
191 |
$form .= '<div>
|
192 |
-
<div class="mo2f_thumbnail_method"
|
193 |
-
<div style="width:
|
194 |
|
195 |
if($is_image){
|
196 |
-
$form .= '<img src="' . plugins_url( "includes/images/authmethods/" . $auth_method_abr . ".png", dirname(dirname(__FILE__ ))) . '" style="width: 40px;height: 40px !important;
|
197 |
}
|
198 |
|
199 |
$form .= '</div>
|
200 |
-
<div class="mo2f_thumbnail_method_desc"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
'</b><br>
|
202 |
<p style="padding:0px; padding-left:0px;"> ' . $two_factor_methods_descriptions[ $auth_method ] . '</p>
|
203 |
|
96 |
"OTP Over SMS and Email" => "Enter the One Time Passcode sent to your phone and email to login.",
|
97 |
"Hardware Token" => "Enter the One Time Passcode on your Hardware Token to login."
|
98 |
);
|
99 |
+
$two_factor_methods_doc = array(
|
100 |
+
"Security Questions" => "",
|
101 |
+
"Google Authenticator" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/google-authenticator",
|
102 |
+
"miniOrange QR Code Authentication" => "",
|
103 |
+
"Email Verification" => "",
|
104 |
+
"miniOrange Soft Token" => "",
|
105 |
+
"miniOrange Push Notification" => "",
|
106 |
+
"Authy Authenticator" => "",
|
107 |
+
"OTP Over SMS" => "",
|
108 |
+
"OTP Over Email" => "",
|
109 |
+
"OTP Over SMS and Email" => "",
|
110 |
+
"Hardware Token" => "",
|
111 |
+
"" => ""
|
112 |
+
);
|
113 |
+
$two_factor_methods_video = array(
|
114 |
+
"Security Questions" => "",
|
115 |
+
"Google Authenticator" => "https://www.youtube.com/watch?v=vVGXjedIaGs",
|
116 |
+
"miniOrange QR Code Authentication" => "",
|
117 |
+
"Email Verification" => "",
|
118 |
+
"miniOrange Soft Token" => "",
|
119 |
+
"miniOrange Push Notification" => "",
|
120 |
+
"Authy Authenticator" => "",
|
121 |
+
"OTP Over SMS" => "",
|
122 |
+
"OTP Over Email" => "",
|
123 |
+
"OTP Over SMS and Email" => "",
|
124 |
+
"Hardware Token" => "",
|
125 |
+
"" => ""
|
126 |
+
);
|
127 |
|
128 |
$two_factor_methods_EC = array_slice( $all_two_factor_methods, 0, 8 );
|
129 |
$two_factor_methods_NC = array_slice( $all_two_factor_methods, 0, 5 );
|
216 |
|
217 |
}
|
218 |
$form .= '<div>
|
219 |
+
<div class="mo2f_thumbnail_method" style="width:100%";>
|
220 |
+
<div style="width: 17%; float:left;padding-top:5px;padding-left:5px;">';
|
221 |
|
222 |
if($is_image){
|
223 |
+
$form .= '<img src="' . plugins_url( "includes/images/authmethods/" . $auth_method_abr . ".png", dirname(dirname(__FILE__ ))) . '" style="width: 40px;height: 40px !important; " line-height: 80px;" />';
|
224 |
}
|
225 |
|
226 |
$form .= '</div>
|
227 |
+
<div class="mo2f_thumbnail_method_desc" style="padding: 8px;width: 83%;">';
|
228 |
+
if($auth_method == "" || $two_factor_methods_video[$auth_method] == "" || $two_factor_methods_doc[$auth_method] == "")
|
229 |
+
{$form .= "";}
|
230 |
+
else
|
231 |
+
{
|
232 |
+
$form .=' <span style="float:right">
|
233 |
+
<a href='.$two_factor_methods_doc[$auth_method].' target="_blank">
|
234 |
+
<span class="dashicons dashicons-text-page" style="font-size:19px;color:#269eb3;float: right;"></span>
|
235 |
+
|
236 |
+
</a>
|
237 |
+
|
238 |
+
<a href='.$two_factor_methods_video[$auth_method].' target="_blank">
|
239 |
+
<span class="dashicons dashicons-video-alt3" style="font-size:18px;color:red;float: right; margin-right: 5px;"></span>
|
240 |
+
</a>
|
241 |
+
</span>';
|
242 |
+
}
|
243 |
+
$form .=' <b>' . $auth_method .
|
244 |
'</b><br>
|
245 |
<p style="padding:0px; padding-left:0px;"> ' . $two_factor_methods_descriptions[ $auth_method ] . '</p>
|
246 |
|
{handler → miniorange-2-factor-authentication/handler}/twofa/two_fa_constants.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/twofa/two_fa_login.php
RENAMED
File without changes
|
{handler → miniorange-2-factor-authentication/handler}/twofa/two_fa_pass2login.php
RENAMED
@@ -30,333 +30,166 @@ class Miniorange_Password_2Factor_Login {
|
|
30 |
private $mo2f_rbastatus;
|
31 |
private $mo2f_transactionid;
|
32 |
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
$mo2f_configured_2FA_method = $Mo2fdbQueries->get_user_detail( 'mo2f_configured_2FA_method', $user->ID );
|
74 |
-
$email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user->ID );
|
75 |
-
$mo_2factor_user_registration_status = $Mo2fdbQueries->get_user_detail( 'mo_2factor_user_registration_status', $user->ID );
|
76 |
-
$kba_configuration_status = $Mo2fdbQueries->get_user_detail( 'mo2f_SecurityQuestions_config_status', $user->ID );
|
77 |
-
|
78 |
-
if(MO2F_IS_ONPREM )
|
79 |
-
{
|
80 |
-
$configuredMethod = get_user_meta($user->ID,'currentMethod',true);
|
81 |
-
$mo2f_configured_2FA_method = empty($configuredMethod) ? 0 : 1;
|
82 |
-
$mo_2factor_user_registration_status = 'MO_2_FACTOR_PLUGIN_SETTINGS';
|
83 |
-
$email = get_user_meta($user->ID , 'email',true);
|
84 |
-
|
85 |
-
}
|
86 |
-
if ( $mo2f_configured_2FA_method ) {
|
87 |
-
if ( $email && $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS' or (MO2F_IS_ONPREM and $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS')) {
|
88 |
-
if ( MO2f_Utility::check_if_request_is_from_mobile_device( $_SERVER['HTTP_USER_AGENT'] ) && $kba_configuration_status ) {
|
89 |
-
$this->mo2f_pass2login_kba_verification( $user->ID, $redirect_to, $session_id );
|
90 |
-
} else {
|
91 |
-
$mo2f_second_factor = '';
|
92 |
-
$mo2f_second_factor = mo2f_get_user_2ndfactor( $user );
|
93 |
-
if(MO2F_IS_ONPREM)
|
94 |
-
{
|
95 |
-
//$user = get_userdatabylogin('admin');
|
96 |
-
$mo2f_second_factor = get_user_meta($user->ID,'currentMethod',true);
|
97 |
-
|
98 |
-
if($mo2f_second_factor == 'Security Questions')
|
99 |
-
{
|
100 |
-
$mo2f_second_factor = 'KBA';
|
101 |
-
}
|
102 |
-
else if($mo2f_second_factor == 'Google Authenticator')
|
103 |
-
{
|
104 |
-
$mo2f_second_factor = 'GOOGLE AUTHENTICATOR';
|
105 |
}
|
106 |
-
|
107 |
-
$mo2f_second_factor = 'NONE';
|
108 |
-
}
|
109 |
-
|
110 |
-
if ( $mo2f_second_factor == 'MOBILE AUTHENTICATION' ) {
|
111 |
-
$this->mo2f_pass2login_mobile_verification( $user, $redirect_to, $session_id );
|
112 |
-
} else if ( $mo2f_second_factor == 'PUSH NOTIFICATIONS' || $mo2f_second_factor == 'OUT OF BAND EMAIL' ) {
|
113 |
-
$this->mo2f_pass2login_push_oobemail_verification( $user, $mo2f_second_factor, $redirect_to, $session_id );
|
114 |
-
}
|
115 |
-
else if($mo2f_second_factor == 'Email Verification'){
|
116 |
-
$this->mo2f_pass2login_push_oobemail_verification( $user, $mo2f_second_factor, $redirect_to, $session_id );
|
117 |
-
}
|
118 |
-
else if ( $mo2f_second_factor == 'SOFT TOKEN' || $mo2f_second_factor == 'SMS' || $mo2f_second_factor == 'PHONE VERIFICATION' || $mo2f_second_factor == 'GOOGLE AUTHENTICATOR' ) {
|
119 |
-
$this->mo2f_pass2login_otp_verification( $user, $mo2f_second_factor, $redirect_to, $session_id );
|
120 |
-
} else if ( $mo2f_second_factor == 'KBA' ) {
|
121 |
-
$this->mo2f_pass2login_kba_verification( $user->ID, $redirect_to, $session_id );
|
122 |
} else {
|
123 |
-
$this->
|
124 |
-
MO2f_Utility::set_user_values($session_id, 'mo2f_login_message', 'Please try again or contact your admin.' );
|
125 |
-
$mobile_login->mo_auth_show_success_message();
|
126 |
}
|
127 |
-
}
|
128 |
} else {
|
129 |
-
|
130 |
-
$
|
131 |
-
|
132 |
-
$
|
133 |
}
|
134 |
-
} else {
|
135 |
-
|
136 |
-
|
137 |
-
update_user_meta($user->ID,'userMessage','Please login into your account using password.');
|
138 |
-
$mobile_login->mo2f_redirectto_wp_login();
|
139 |
}
|
140 |
-
} else {
|
141 |
-
$mobile_login->remove_current_activity($session_id);
|
142 |
-
MO2f_Utility::set_user_values( $session_id, "mo2f_login_message", 'Invalid Username.' );
|
143 |
-
$mobile_login->mo_auth_show_error_message('Invalid Username.');
|
144 |
-
}
|
145 |
-
}
|
146 |
-
}
|
147 |
-
|
148 |
-
}
|
149 |
-
if(isset($_GET['Txid'])&&isset($_GET['accessToken']))
|
150 |
-
{
|
151 |
-
$userIDGet = sanitize_text_field($_GET['userID']);
|
152 |
-
$txIdGet = sanitize_text_field($_GET['Txid']);
|
153 |
-
$otpToken = get_site_option($userIDGet);
|
154 |
-
$txidstatus = get_site_option($txIdGet);
|
155 |
-
$userIDd = $userIDGet.'D';
|
156 |
-
$otpTokenD = get_site_option($userIDd);
|
157 |
-
$mo2f_dirName = dirname(__FILE__);
|
158 |
-
$mo2f_dirName = explode('wp-content', $mo2f_dirName);
|
159 |
-
$mo2f_dirName = explode('handler', $mo2f_dirName[1]);
|
160 |
-
|
161 |
-
$head = "You are not authorized to perform this action";
|
162 |
-
$body = "Please contact to your admin";
|
163 |
-
$color = "red";
|
164 |
-
if(3 == $txidstatus)
|
165 |
-
{
|
166 |
-
$time = "time".$txIdGet;
|
167 |
-
$currentTimeInMillis = round(microtime(true) * 1000);
|
168 |
-
$generatedTimeINMillis = get_site_option($time);
|
169 |
-
$difference = ($currentTimeInMillis-$generatedTimeINMillis)/1000 ;
|
170 |
-
if($difference <= 300)
|
171 |
-
{
|
172 |
-
$accessTokenGet = sanitize_text_field($_GET['accessToken']);
|
173 |
-
if( $accessTokenGet == $otpToken)
|
174 |
-
{
|
175 |
-
update_site_option($txIdGet,1);
|
176 |
-
$body = "Transaction has been successfully validated.<br><br>Please continue with the transaction.";
|
177 |
-
$head = "TRANSACTION SUCCESSFUL";
|
178 |
-
$color = "green";
|
179 |
-
}
|
180 |
-
else if($accessTokenGet==$otpTokenD)
|
181 |
-
{
|
182 |
-
update_site_option($txIdGet,0);
|
183 |
-
$body = "Transaction has been Canceled.<br><br>Please Try Again.";
|
184 |
-
$head = "TRANSACTION DENIED";
|
185 |
-
}
|
186 |
-
}
|
187 |
-
delete_site_option($userIDGet);
|
188 |
-
delete_site_option($userIDd);
|
189 |
-
delete_site_option($time);
|
190 |
-
|
191 |
}
|
192 |
-
|
193 |
-
$this->display_email_verification($head,$body,$color);
|
194 |
-
exit;
|
195 |
-
|
196 |
-
}
|
197 |
-
else if(isset($_POST['txid']))
|
198 |
-
{
|
199 |
-
$txidpost = sanitize_text_field($_POST['txid']);
|
200 |
-
$status = get_site_option($txidpost);
|
201 |
-
update_option('optionVal1',$status); //??
|
202 |
-
if($status ==1 || $status ==0)
|
203 |
-
delete_site_option($txidpost);
|
204 |
-
echo $status;
|
205 |
-
exit();
|
206 |
}
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-trust-device-confirm-nonce' ) ) {
|
211 |
-
$session_id_encrypt = isset( $_POST['session_id'] ) ? $_POST['session_id'] : null;
|
212 |
-
$this->remove_current_activity($session_id_encrypt);
|
213 |
-
$error = new WP_Error();
|
214 |
-
$error->add( 'empty_username', '<strong>' . mo2f_lt( 'ERROR ' ) . '</strong>:' . mo2f_lt( 'Invalid Request.' ) );
|
215 |
-
return $error;
|
216 |
-
} else {
|
217 |
-
$this->miniorange_pass2login_start_session();
|
218 |
-
$session_id_encrypt = isset( $_POST['session_id'] ) ? $_POST['session_id'] : null;
|
219 |
-
try {
|
220 |
-
$user_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id', $session_id_encrypt );
|
221 |
-
$email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id );
|
222 |
-
$mo2f_rba_status = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_rba_status',$session_id_encrypt );
|
223 |
-
mo2f_register_profile( $email, 'true', $mo2f_rba_status );
|
224 |
-
} catch ( Exception $e ) {
|
225 |
-
echo $e->getMessage();
|
226 |
-
}
|
227 |
-
$redirect_to = isset( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : null;
|
228 |
-
$this->mo2fa_pass2login( $redirect_to, $session_id_encrypt );
|
229 |
-
}
|
230 |
-
}else if ( isset( $_POST['mo2f_trust_device_cancel_nonce'] ) ) { /*do not register device as rba profile */
|
231 |
-
$nonce = $_POST['mo2f_trust_device_cancel_nonce'];
|
232 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-trust-device-cancel-nonce' ) ) {
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
} else {
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
}
|
242 |
-
|
243 |
-
|
244 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
$error = new WP_Error();
|
246 |
-
$error->add( 'empty_username', '<strong>
|
247 |
return $error;
|
248 |
} else {
|
249 |
-
$
|
250 |
$session_id_encrypt = isset( $_POST['session_id'] ) ? $_POST['session_id'] : null;
|
251 |
-
$
|
252 |
-
$
|
253 |
-
$
|
254 |
-
$
|
255 |
-
$
|
256 |
-
|
257 |
-
$
|
258 |
-
$email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id );
|
259 |
$kba_configuration_status = $Mo2fdbQueries->get_user_detail( 'mo2f_SecurityQuestions_config_status', $user_id );
|
260 |
|
261 |
-
if ( $
|
262 |
-
$
|
263 |
-
$
|
264 |
-
$
|
265 |
-
|
|
|
|
|
266 |
|
267 |
if ( strcasecmp( $content['status'], 'SUCCESS' ) == 0 ) {
|
268 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
$this->mo2f_transactionid=$content['txId'];
|
270 |
-
$mo2fa_login_message = 'A one time passcode has been sent to <b>' .
|
271 |
-
$
|
272 |
-
} else {
|
273 |
-
$mo2fa_login_message = 'Error occured while sending OTP over your regsitered email. Please try again.';
|
274 |
-
$mo2f_login_status = 'MO_2_FACTOR_CHALLENGE_KBA_AND_OTP_OVER_EMAIL';
|
275 |
-
}
|
276 |
-
$this->miniorange_pass2login_form_fields( $mo2f_login_status, $mo2fa_login_message, $redirect_to,null,$session_id_encrypt );
|
277 |
-
} else if ( $forgot_phone_enable && $forgot_phone_kba_enable ) {
|
278 |
-
if ( $kba_configuration_status ) {
|
279 |
-
$this->mo2f_pass2login_kba_verification( $user_id, $redirect_to, $session_id_encrypt );
|
280 |
} else {
|
281 |
-
$mo2fa_login_message = '
|
282 |
-
$mo2f_login_status = 'MO_2_FACTOR_CHALLENGE_KBA_AND_OTP_OVER_EMAIL';
|
283 |
-
$this->miniorange_pass2login_form_fields( $mo2f_login_status, $mo2fa_login_message, $redirect_to, null,$session_id_encrypt );
|
284 |
}
|
|
|
285 |
}
|
286 |
-
|
287 |
-
|
288 |
-
|
|
|
|
|
|
|
289 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-alternate-login-kba-nonce' ) ) {
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
} else {
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
}
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
305 |
-
return $error;
|
306 |
-
}
|
307 |
-
else{
|
308 |
-
|
309 |
-
$this->miniorange_pass2login_start_session();
|
310 |
-
$session_id_encrypt = isset( $_POST['session_id'] ) ? $_POST['session_id'] : null;
|
311 |
-
$user_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
312 |
-
$redirect_to = isset( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : null;
|
313 |
-
if ( isset( $user_id ) ) {
|
314 |
-
if ( MO2f_Utility::mo2f_check_empty_or_null( $_POST['mo2f_answer_1'] ) || MO2f_Utility::mo2f_check_empty_or_null( $_POST['mo2f_answer_2'] ) ) {
|
315 |
-
$mo2fa_login_message = 'Please provide both the answers.';
|
316 |
-
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_KBA_AUTHENTICATION';
|
317 |
-
$this->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null,$session_id_encrypt );
|
318 |
-
}
|
319 |
-
$otpToken = array();
|
320 |
-
$kba_questions = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo_2_factor_kba_questions',$session_id_encrypt );
|
321 |
-
|
322 |
-
$otpToken[0] = $kba_questions[0];
|
323 |
-
$otpToken[1] = sanitize_text_field( $_POST['mo2f_answer_1'] );
|
324 |
-
$otpToken[2] = $kba_questions[1];
|
325 |
-
$otpToken[3] = sanitize_text_field( $_POST['mo2f_answer_2'] );
|
326 |
-
$check_trust_device = isset( $_POST['mo2f_trust_device'] ) ? $_POST['mo2f_trust_device'] : 'false';
|
327 |
-
//if the php session folder has insufficient permissions, cookies to be used
|
328 |
-
$mo2f_login_transaction_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_transactionId', $session_id_encrypt );
|
329 |
-
|
330 |
-
$mo2f_rba_status = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_rba_status',$session_id_encrypt );
|
331 |
-
$kba_validate = new Customer_Setup();
|
332 |
-
$kba_validate_response = json_decode( $kba_validate->validate_otp_token( 'KBA', null, $mo2f_login_transaction_id, $otpToken, get_option( 'mo2f_customerKey' ), get_option( 'mo2f_api_key' ) ), true );
|
333 |
-
$email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id );
|
334 |
-
if ( strcasecmp( $kba_validate_response['status'], 'SUCCESS' ) == 0 ) {
|
335 |
-
if ( get_option( 'mo2f_remember_device' ) && $check_trust_device == 'on' ) {
|
336 |
-
try {
|
337 |
-
mo2f_register_profile( $email, 'true', $mo2f_rba_status );
|
338 |
-
} catch ( Exception $e ) {
|
339 |
-
echo $e->getMessage();
|
340 |
-
}
|
341 |
-
$this->mo2fa_pass2login( $redirect_to, $session_id_encrypt );
|
342 |
-
} else {
|
343 |
-
$this->mo2fa_pass2login( $redirect_to, $session_id_encrypt );
|
344 |
-
}
|
345 |
-
} else {
|
346 |
-
|
347 |
-
$mo2fa_login_message = 'The answers you have provided are incorrect.';
|
348 |
-
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_KBA_AUTHENTICATION';
|
349 |
-
$this->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null,$session_id_encrypt);
|
350 |
-
}
|
351 |
-
} else {
|
352 |
-
$this->remove_current_activity($session_id_encrypt);
|
353 |
-
return new WP_Error( 'invalid_username', __( '<strong>ERROR</strong>: Please try again..' ) );
|
354 |
-
}
|
355 |
-
|
356 |
-
}
|
357 |
-
}else if ( isset( $_POST['miniorange_mobile_validation_nonce'] ) ) {
|
358 |
-
/*check mobile validation */
|
359 |
-
$nonce = $_POST['miniorange_mobile_validation_nonce'];
|
360 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-mobile-validation-nonce' ) ) {
|
361 |
$error = new WP_Error();
|
362 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
@@ -364,7 +197,7 @@ class Miniorange_Password_2Factor_Login {
|
|
364 |
} else {
|
365 |
if(MO2F_IS_ONPREM )
|
366 |
{
|
367 |
-
$txid = $
|
368 |
$status = get_option($txid);
|
369 |
if($status != '')
|
370 |
{
|
@@ -375,10 +208,10 @@ class Miniorange_Password_2Factor_Login {
|
|
375 |
}
|
376 |
}
|
377 |
$this->miniorange_pass2login_start_session();
|
378 |
-
$session_id_encrypt = isset( $
|
379 |
//if the php session folder has insufficient permissions, cookies to be used
|
380 |
$mo2f_login_transaction_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_transactionId',$session_id_encrypt );
|
381 |
-
$redirect_to = isset( $
|
382 |
$checkMobileStatus = new Two_Factor_Setup();
|
383 |
$content = $checkMobileStatus->check_mobile_status( $mo2f_login_transaction_id );
|
384 |
$response = json_decode( $content, true );
|
@@ -403,28 +236,31 @@ class Miniorange_Password_2Factor_Login {
|
|
403 |
return new WP_Error( 'invalid_username', __( '<strong>ERROR</strong>: Please try again.' ) );
|
404 |
}
|
405 |
}
|
406 |
-
|
407 |
-
|
|
|
|
|
408 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-mobile-validation-failed-nonce' ) ) {
|
409 |
$error = new WP_Error();
|
410 |
$error->add( 'empty_username', '<strong>' . mo2f_lt( 'ERROR' ) . '</strong>: ' . mo2f_lt( 'Invalid Request.' ) );
|
411 |
return $error;
|
412 |
} else {
|
413 |
$this->miniorange_pass2login_start_session();
|
414 |
-
$session_id_encrypt = isset( $
|
415 |
$this->remove_current_activity($session_id_encrypt);
|
416 |
|
417 |
}
|
418 |
-
|
419 |
-
|
|
|
420 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-forgotphone' ) ) {
|
421 |
$error = new WP_Error();
|
422 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
423 |
return $error;
|
424 |
} else {
|
425 |
-
$mo2fa_login_status = isset( $
|
426 |
-
$session_id_encrypt = isset( $
|
427 |
-
$redirect_to = isset( $
|
428 |
$mo2fa_login_message = '';
|
429 |
$this->miniorange_pass2login_start_session();
|
430 |
$customer = new Customer_Setup();
|
@@ -460,31 +296,35 @@ class Miniorange_Password_2Factor_Login {
|
|
460 |
$pass2fa_login = new Miniorange_Password_2Factor_Login();
|
461 |
$pass2fa_login->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null,$session_id_encrypt );
|
462 |
}
|
463 |
-
|
464 |
-
|
|
|
|
|
465 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-softtoken' ) ) {
|
466 |
$error = new WP_Error();
|
467 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
468 |
return $error;
|
469 |
} else {
|
470 |
$this->miniorange_pass2login_start_session();
|
471 |
-
$session_id_encrypt = isset( $
|
472 |
$session_cookie_variables = array( 'mo2f-login-qrCode', 'mo2f_transactionId' );
|
473 |
MO2f_Utility::unset_session_variables( $session_cookie_variables );
|
474 |
MO2f_Utility::unset_cookie_variables( $session_cookie_variables );
|
475 |
MO2f_Utility::unset_temp_user_details_in_table('mo2f_transactionId',$session_id_encrypt );
|
476 |
-
$redirect_to = isset( $
|
477 |
$mo2fa_login_message = 'Please enter the one time passcode shown in the miniOrange<b> Authenticator</b> app.';
|
478 |
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_SOFT_TOKEN';
|
479 |
$this->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null,$session_id_encrypt );
|
480 |
}
|
481 |
-
|
|
|
|
|
482 |
$nonce = $_POST['miniorange_soft_token_nonce'];
|
483 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-soft-token-nonce' ) ) {
|
484 |
$error = new WP_Error();
|
485 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
486 |
return $error;
|
487 |
-
}
|
488 |
$this->miniorange_pass2login_start_session();
|
489 |
$session_id_encrypt = isset( $_POST['session_id'] ) ? $_POST['session_id'] : null;
|
490 |
$mo2fa_login_status = isset( $_POST['request_origin_method'] ) ? $_POST['request_origin_method'] : null;
|
@@ -522,10 +362,8 @@ class Miniorange_Password_2Factor_Login {
|
|
522 |
}
|
523 |
}
|
524 |
}
|
525 |
-
|
526 |
-
|
527 |
$user_email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id );
|
528 |
-
|
529 |
if ( isset( $user_id ) ) {
|
530 |
$customer = new Customer_Setup();
|
531 |
$content = '';
|
@@ -575,21 +413,9 @@ class Miniorange_Password_2Factor_Login {
|
|
575 |
return new WP_Error( 'invalid_username', __( '<strong>ERROR</strong>: Please try again..' ) );
|
576 |
}
|
577 |
}
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
$error = new WP_Error();
|
582 |
-
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
583 |
-
|
584 |
-
return $error;
|
585 |
-
} else {
|
586 |
-
$this->miniorange_pass2login_start_session();
|
587 |
-
$session_id = isset( $_POST['session_id'] ) ? $_POST['session_id'] : null;
|
588 |
-
$user_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id);
|
589 |
-
$this->mo2fa_pass2login(null, $session_id );
|
590 |
-
}
|
591 |
-
}else if ( isset( $_POST['miniorange_attribute_collection_nonce'] ) ) { /*Handling Rba Attributes from other plugins */
|
592 |
-
$nonce = $_POST['miniorange_attribute_collection_nonce'];
|
593 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-login-attribute-collection-nonce' ) ) {
|
594 |
$error = new WP_Error();
|
595 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
@@ -602,13 +428,249 @@ class Miniorange_Password_2Factor_Login {
|
|
602 |
$currentuser = get_user_by( 'id', $user_id );
|
603 |
|
604 |
|
605 |
-
$attributes = isset( $
|
606 |
-
$redirect_to = isset( $
|
607 |
-
$session_id = isset( $
|
608 |
$this->miniorange_initiate_2nd_factor( $currentuser, $attributes, $redirect_to,$session_id );
|
609 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
610 |
}
|
611 |
}
|
|
|
|
|
|
|
612 |
|
613 |
function deniedMessage($message)
|
614 |
{
|
@@ -750,50 +812,98 @@ class Miniorange_Password_2Factor_Login {
|
|
750 |
|
751 |
$login_status = $mo2fa_login_status;
|
752 |
$login_message = $mo2fa_login_message;
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
} else if ( $this->miniorange_pass2login_check_otp_status( $login_status ) ) { //for soft-token,otp over email,sms,phone verification,google auth
|
758 |
-
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
759 |
-
mo2f_get_otp_authentication_prompt( $login_status, $login_message, $redirect_to, $session_id_encrypt,$user_id );
|
760 |
-
exit;
|
761 |
-
} else if ( $this->miniorange_pass2login_check_forgotphone_status( $login_status ) ) { // forgot phone page if both KBA and Email are configured.
|
762 |
-
mo2f_get_forgotphone_form( $login_status, $login_message, $redirect_to, $session_id_encrypt );
|
763 |
exit;
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
mo2f_get_push_notification_oobemail_prompt( $user_id, $login_status, $login_message, $redirect_to, $session_id_encrypt, $transactionid );
|
768 |
-
exit;
|
769 |
-
} else if ( $this->miniorange_pass2login_reconfig_google( $login_status ) ) { //MO_2_FACTOR_RECONFIG_GOOGLE
|
770 |
-
// shortcode
|
771 |
-
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
772 |
-
$this->mo2f_redirect_shortcode_addon( $user_id, $login_status, $login_message, 'reconfigure_google' );
|
773 |
-
exit;
|
774 |
-
} else if ( $this->miniorange_pass2login_reconfig_kba( $login_status ) ) { //MO_2_FACTOR_RECONFIG_KBA
|
775 |
-
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
776 |
-
$this->mo2f_redirect_shortcode_addon( $user_id, $login_status, $login_message, 'reconfigure_kba' );
|
777 |
-
exit;
|
778 |
-
} else if ( $this->miniorange_pass2login_check_kba_status( $login_status ) ) { // for Kba
|
779 |
-
$kbaquestions = $this->mo2f_kbaquestions ? $this->mo2f_kbaquestions : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo_2_factor_kba_questions',$session_id_encrypt );
|
780 |
-
if(MO2F_IS_ONPREM){
|
781 |
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
782 |
-
$
|
783 |
-
mo2f_get_kba_authentication_prompt( $login_message, $redirect_to, $session_id_encrypt, $ques[0] );
|
784 |
-
}
|
785 |
-
else{
|
786 |
-
mo2f_get_kba_authentication_prompt( $login_message, $redirect_to, $session_id_encrypt, $kbaquestions );
|
787 |
-
}
|
788 |
exit;
|
789 |
-
|
790 |
-
|
|
|
|
|
|
|
791 |
exit;
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
$this->
|
796 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
797 |
}
|
798 |
}
|
799 |
|
@@ -1089,7 +1199,8 @@ class Miniorange_Password_2Factor_Login {
|
|
1089 |
|
1090 |
function miniorange_initiate_2nd_factor( $currentuser, $attributes = null, $redirect_to = null, $otp_token = "",$session_id_encrypt=null ) {
|
1091 |
global $Mo2fdbQueries;
|
1092 |
-
|
|
|
1093 |
if(is_null($session_id_encrypt)) {
|
1094 |
$session_id_encrypt=$this->create_session();
|
1095 |
}
|
30 |
private $mo2f_rbastatus;
|
31 |
private $mo2f_transactionid;
|
32 |
|
33 |
+
function check_kba_validation($POSTED){
|
34 |
+
if ( isset( $POSTED['miniorange_kba_nonce'] ) ) { /*check kba validation*/
|
35 |
+
$nonce = $POSTED['miniorange_kba_nonce'];
|
36 |
+
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-kba-nonce' ) ) {
|
37 |
+
$error = new WP_Error();
|
38 |
+
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
39 |
+
return $error;
|
40 |
+
}else{
|
41 |
+
$this->miniorange_pass2login_start_session();
|
42 |
+
$session_id_encrypt = isset( $_POST['session_id'] ) ? $_POST['session_id'] : null;
|
43 |
+
$user_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
44 |
+
$redirect_to = isset( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : null;
|
45 |
+
if ( isset( $user_id ) ) {
|
46 |
+
if ( MO2f_Utility::mo2f_check_empty_or_null( $_POST['mo2f_answer_1'] ) || MO2f_Utility::mo2f_check_empty_or_null( $_POST['mo2f_answer_2'] ) ) {
|
47 |
+
$mo2fa_login_message = 'Please provide both the answers.';
|
48 |
+
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_KBA_AUTHENTICATION';
|
49 |
+
$this->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null,$session_id_encrypt );
|
50 |
+
}
|
51 |
+
$otpToken = array();
|
52 |
+
$kba_questions = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo_2_factor_kba_questions',$session_id_encrypt );
|
53 |
+
|
54 |
+
$otpToken[0] = $kba_questions[0];
|
55 |
+
$otpToken[1] = sanitize_text_field( $_POST['mo2f_answer_1'] );
|
56 |
+
$otpToken[2] = $kba_questions[1];
|
57 |
+
$otpToken[3] = sanitize_text_field( $_POST['mo2f_answer_2'] );
|
58 |
+
$check_trust_device = isset( $_POST['mo2f_trust_device'] ) ? $_POST['mo2f_trust_device'] : 'false';
|
59 |
+
//if the php session folder has insufficient permissions, cookies to be used
|
60 |
+
$mo2f_login_transaction_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_transactionId', $session_id_encrypt );
|
61 |
+
|
62 |
+
$mo2f_rba_status = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_rba_status',$session_id_encrypt );
|
63 |
+
$kba_validate = new Customer_Setup();
|
64 |
+
$kba_validate_response = json_decode( $kba_validate->validate_otp_token( 'KBA', null, $mo2f_login_transaction_id, $otpToken, get_option( 'mo2f_customerKey' ), get_option( 'mo2f_api_key' ) ), true );
|
65 |
+
Global $Mo2fdbQueries;
|
66 |
+
$email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id );
|
67 |
+
if ( strcasecmp( $kba_validate_response['status'], 'SUCCESS' ) == 0 ) {
|
68 |
+
if ( get_option( 'mo2f_remember_device' ) && $check_trust_device == 'on' ) {
|
69 |
+
try {
|
70 |
+
mo2f_register_profile( $email, 'true', $mo2f_rba_status );
|
71 |
+
} catch ( Exception $e ) {
|
72 |
+
echo $e->getMessage();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
}
|
74 |
+
$this->mo2fa_pass2login( $redirect_to, $session_id_encrypt );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
} else {
|
76 |
+
$this->mo2fa_pass2login( $redirect_to, $session_id_encrypt );
|
|
|
|
|
77 |
}
|
|
|
78 |
} else {
|
79 |
+
|
80 |
+
$mo2fa_login_message = 'The answers you have provided are incorrect.';
|
81 |
+
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_KBA_AUTHENTICATION';
|
82 |
+
$this->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null,$session_id_encrypt);
|
83 |
}
|
84 |
+
} else {
|
85 |
+
$this->remove_current_activity($session_id_encrypt);
|
86 |
+
return new WP_Error( 'invalid_username', __( '<strong>ERROR</strong>: Please try again..' ) );
|
|
|
|
|
87 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
}
|
90 |
+
}
|
91 |
+
function check_rba_cancalation($POSTED){
|
92 |
+
$nonce = $POSTED['mo2f_trust_device_cancel_nonce'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-trust-device-cancel-nonce' ) ) {
|
94 |
+
$error = new WP_Error();
|
95 |
+
$error->add( 'empty_username', '<strong>' . mo2f_lt( 'ERROR' ) . '</strong>: ' . mo2f_lt( 'Invalid Request.' ) );
|
96 |
+
return $error;
|
97 |
} else {
|
98 |
+
$this->miniorange_pass2login_start_session();
|
99 |
+
$session_id_encrypt = isset( $POSTED['session_id'] ) ? $POSTED['session_id'] : null;
|
100 |
+
$redirect_to = isset( $POSTED['redirect_to'] ) ? $POSTED['redirect_to'] : null;
|
101 |
+
$this->mo2fa_pass2login( $redirect_to, $session_id_encrypt );
|
102 |
}
|
103 |
+
}
|
104 |
+
function check_rba_validation($POSTED){
|
105 |
+
$nonce = $POSTED['mo2f_trust_device_confirm_nonce'];
|
106 |
+
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-trust-device-confirm-nonce' ) ) {
|
107 |
+
$session_id_encrypt = isset( $POSTED['session_id'] ) ? $POSTED['session_id'] : null;
|
108 |
+
$this->remove_current_activity($session_id_encrypt);
|
109 |
+
$error = new WP_Error();
|
110 |
+
$error->add( 'empty_username', '<strong>' . mo2f_lt( 'ERROR ' ) . '</strong>:' . mo2f_lt( 'Invalid Request.' ) );
|
111 |
+
return $error;
|
112 |
+
} else {
|
113 |
+
$this->miniorange_pass2login_start_session();
|
114 |
+
$session_id_encrypt = isset( $POSTED['session_id'] ) ? $POSTED['session_id'] : null;
|
115 |
+
try {
|
116 |
+
$user_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id', $session_id_encrypt );
|
117 |
+
Global $Mo2fdbQueries;
|
118 |
+
$email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id );
|
119 |
+
$mo2f_rba_status = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_rba_status',$session_id_encrypt );
|
120 |
+
mo2f_register_profile( $email, 'true', $mo2f_rba_status );
|
121 |
+
} catch ( Exception $e ) {
|
122 |
+
echo $e->getMessage();
|
123 |
+
}
|
124 |
+
$redirect_to = isset( $POSTED['redirect_to'] ) ? $POSTED['redirect_to'] : null;
|
125 |
+
$this->mo2fa_pass2login( $redirect_to, $session_id_encrypt );
|
126 |
+
}
|
127 |
+
|
128 |
+
}
|
129 |
+
function check_miniorange_challenge_forgotphone($POSTED){/*check kba validation*/
|
130 |
+
$nonce = $_POST['miniorange_forgotphone'];
|
131 |
+
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-forgotphone' ) ) {
|
132 |
$error = new WP_Error();
|
133 |
+
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
134 |
return $error;
|
135 |
} else {
|
136 |
+
$mo2fa_login_status = isset( $_POST['request_origin_method'] ) ? $_POST['request_origin_method'] : null;
|
137 |
$session_id_encrypt = isset( $_POST['session_id'] ) ? $_POST['session_id'] : null;
|
138 |
+
$redirect_to = isset( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : null;
|
139 |
+
$mo2fa_login_message = '';
|
140 |
+
$this->miniorange_pass2login_start_session();
|
141 |
+
$customer = new Customer_Setup();
|
142 |
+
$user_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
143 |
+
Global $Mo2fdbQueries;
|
144 |
+
$user_email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id );
|
|
|
145 |
$kba_configuration_status = $Mo2fdbQueries->get_user_detail( 'mo2f_SecurityQuestions_config_status', $user_id );
|
146 |
|
147 |
+
if ( $kba_configuration_status ) {
|
148 |
+
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_KBA_AND_OTP_OVER_EMAIL';
|
149 |
+
$pass2fa_login = new Miniorange_Password_2Factor_Login();
|
150 |
+
$pass2fa_login->mo2f_pass2login_kba_verification( $user_id, $redirect_to,$session_id_encrypt );
|
151 |
+
} else {
|
152 |
+
$hidden_user_email = MO2f_Utility::mo2f_get_hidden_email( $user_email );
|
153 |
+
$content = json_decode( $customer->send_otp_token( $user_email, 'EMAIL', get_option( 'mo2f_customerKey' ), get_option( 'mo2f_api_key' ) ), true );
|
154 |
|
155 |
if ( strcasecmp( $content['status'], 'SUCCESS' ) == 0 ) {
|
156 |
+
$session_cookie_variables = array( 'mo2f-login-qrCode', 'mo2f_transactionId' );
|
157 |
+
MO2f_Utility::unset_session_variables( $session_cookie_variables );
|
158 |
+
MO2f_Utility::unset_cookie_variables( $session_cookie_variables );
|
159 |
+
MO2f_Utility::unset_temp_user_details_in_table( 'mo2f_transactionId',$session_id_encrypt );
|
160 |
+
|
161 |
+
//if the php session folder has insufficient permissions, cookies to be used
|
162 |
+
MO2f_Utility::set_user_values( $session_id_encrypt,'mo2f_login_message', 'A one time passcode has been sent to <b>' . $hidden_user_email . '</b>. Please enter the OTP to verify your identity.' );
|
163 |
+
MO2f_Utility::set_user_values( $session_id_encrypt, 'mo2f_transactionId', $content['txId'] );
|
164 |
$this->mo2f_transactionid=$content['txId'];
|
165 |
+
$mo2fa_login_message = 'A one time passcode has been sent to <b>' . $hidden_user_email . '</b>. Please enter the OTP to verify your identity.';
|
166 |
+
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
} else {
|
168 |
+
$mo2fa_login_message = 'Error occurred while sending OTP over email. Please try again.';
|
|
|
|
|
169 |
}
|
170 |
+
$this->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to, null,$session_id_encrypt );
|
171 |
}
|
172 |
+
$pass2fa_login = new Miniorange_Password_2Factor_Login();
|
173 |
+
$pass2fa_login->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null,$session_id_encrypt );
|
174 |
+
}
|
175 |
+
}
|
176 |
+
function check_miniorange_alternate_login_kba($POSTED){
|
177 |
+
$nonce = $POSTED['miniorange_alternate_login_kba_nonce'];
|
178 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-alternate-login-kba-nonce' ) ) {
|
179 |
+
$error = new WP_Error();
|
180 |
+
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
181 |
+
return $error;
|
182 |
} else {
|
183 |
+
$this->miniorange_pass2login_start_session();
|
184 |
+
$session_id_encrypt = isset( $POSTED['session_id'] ) ? $POSTED['session_id'] : null;
|
185 |
+
$user_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
186 |
+
$redirect_to = isset( $POSTED['redirect_to'] ) ? $POSTED['redirect_to'] : null;
|
187 |
+
$this->mo2f_pass2login_kba_verification( $user_id, $redirect_to,$session_id_encrypt );
|
188 |
}
|
189 |
+
}
|
190 |
+
function check_miniorange_mobile_validation($POSTED){
|
191 |
+
/*check mobile validation */
|
192 |
+
$nonce = $POSTED['miniorange_mobile_validation_nonce'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-mobile-validation-nonce' ) ) {
|
194 |
$error = new WP_Error();
|
195 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
197 |
} else {
|
198 |
if(MO2F_IS_ONPREM )
|
199 |
{
|
200 |
+
$txid = $POSTED['TxidEmail'];
|
201 |
$status = get_option($txid);
|
202 |
if($status != '')
|
203 |
{
|
208 |
}
|
209 |
}
|
210 |
$this->miniorange_pass2login_start_session();
|
211 |
+
$session_id_encrypt = isset( $POSTED['session_id'] ) ? $POSTED['session_id'] : null;
|
212 |
//if the php session folder has insufficient permissions, cookies to be used
|
213 |
$mo2f_login_transaction_id = MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_transactionId',$session_id_encrypt );
|
214 |
+
$redirect_to = isset( $POSTED['redirect_to'] ) ? $POSTED['redirect_to'] : null;
|
215 |
$checkMobileStatus = new Two_Factor_Setup();
|
216 |
$content = $checkMobileStatus->check_mobile_status( $mo2f_login_transaction_id );
|
217 |
$response = json_decode( $content, true );
|
236 |
return new WP_Error( 'invalid_username', __( '<strong>ERROR</strong>: Please try again.' ) );
|
237 |
}
|
238 |
}
|
239 |
+
}
|
240 |
+
function check_miniorange_mobile_validation_failed($POSTED){
|
241 |
+
/*Back to miniOrange Login Page if mobile validation failed and from back button of mobile challenge, soft token and default login*/
|
242 |
+
$nonce = $POSTED['miniorange_mobile_validation_failed_nonce'];
|
243 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-mobile-validation-failed-nonce' ) ) {
|
244 |
$error = new WP_Error();
|
245 |
$error->add( 'empty_username', '<strong>' . mo2f_lt( 'ERROR' ) . '</strong>: ' . mo2f_lt( 'Invalid Request.' ) );
|
246 |
return $error;
|
247 |
} else {
|
248 |
$this->miniorange_pass2login_start_session();
|
249 |
+
$session_id_encrypt = isset( $POSTED['session_id'] ) ? $POSTED['session_id'] : null;
|
250 |
$this->remove_current_activity($session_id_encrypt);
|
251 |
|
252 |
}
|
253 |
+
}
|
254 |
+
function check_miniorange_forgotphone($POSTED){
|
255 |
+
$nonce = $POSTED['miniorange_forgotphone'];
|
256 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-forgotphone' ) ) {
|
257 |
$error = new WP_Error();
|
258 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
259 |
return $error;
|
260 |
} else {
|
261 |
+
$mo2fa_login_status = isset( $POSTED['request_origin_method'] ) ? $POSTED['request_origin_method'] : null;
|
262 |
+
$session_id_encrypt = isset( $POSTED['session_id'] ) ? $POSTED['session_id'] : null;
|
263 |
+
$redirect_to = isset( $POSTED['redirect_to'] ) ? $POSTED['redirect_to'] : null;
|
264 |
$mo2fa_login_message = '';
|
265 |
$this->miniorange_pass2login_start_session();
|
266 |
$customer = new Customer_Setup();
|
296 |
$pass2fa_login = new Miniorange_Password_2Factor_Login();
|
297 |
$pass2fa_login->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null,$session_id_encrypt );
|
298 |
}
|
299 |
+
}
|
300 |
+
function check_miniorange_softtoken($POSTED){
|
301 |
+
/*Click on the link of phone is offline */
|
302 |
+
$nonce = $POSTED['miniorange_softtoken'];
|
303 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-softtoken' ) ) {
|
304 |
$error = new WP_Error();
|
305 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
306 |
return $error;
|
307 |
} else {
|
308 |
$this->miniorange_pass2login_start_session();
|
309 |
+
$session_id_encrypt = isset( $POSTED['session_id'] ) ? $POSTED['session_id'] : null;
|
310 |
$session_cookie_variables = array( 'mo2f-login-qrCode', 'mo2f_transactionId' );
|
311 |
MO2f_Utility::unset_session_variables( $session_cookie_variables );
|
312 |
MO2f_Utility::unset_cookie_variables( $session_cookie_variables );
|
313 |
MO2f_Utility::unset_temp_user_details_in_table('mo2f_transactionId',$session_id_encrypt );
|
314 |
+
$redirect_to = isset( $POSTED['redirect_to'] ) ? $POSTED['redirect_to'] : null;
|
315 |
$mo2fa_login_message = 'Please enter the one time passcode shown in the miniOrange<b> Authenticator</b> app.';
|
316 |
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_SOFT_TOKEN';
|
317 |
$this->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null,$session_id_encrypt );
|
318 |
}
|
319 |
+
}
|
320 |
+
function check_miniorange_soft_token($POSTED){
|
321 |
+
/*Validate Soft Token,OTP over SMS,OTP over EMAIL,Phone verification */
|
322 |
$nonce = $_POST['miniorange_soft_token_nonce'];
|
323 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-soft-token-nonce' ) ) {
|
324 |
$error = new WP_Error();
|
325 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
326 |
return $error;
|
327 |
+
}else {
|
328 |
$this->miniorange_pass2login_start_session();
|
329 |
$session_id_encrypt = isset( $_POST['session_id'] ) ? $_POST['session_id'] : null;
|
330 |
$mo2fa_login_status = isset( $_POST['request_origin_method'] ) ? $_POST['request_origin_method'] : null;
|
362 |
}
|
363 |
}
|
364 |
}
|
365 |
+
Global $Mo2fdbQueries;
|
|
|
366 |
$user_email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id );
|
|
|
367 |
if ( isset( $user_id ) ) {
|
368 |
$customer = new Customer_Setup();
|
369 |
$content = '';
|
413 |
return new WP_Error( 'invalid_username', __( '<strong>ERROR</strong>: Please try again..' ) );
|
414 |
}
|
415 |
}
|
416 |
+
}
|
417 |
+
function check_miniorange_attribute_collection($POSTED){
|
418 |
+
$nonce = $POSTED['miniorange_attribute_collection_nonce'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
419 |
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-login-attribute-collection-nonce' ) ) {
|
420 |
$error = new WP_Error();
|
421 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
428 |
$currentuser = get_user_by( 'id', $user_id );
|
429 |
|
430 |
|
431 |
+
$attributes = isset( $POSTED['miniorange_rba_attribures'] ) ? $POSTED['miniorange_rba_attribures'] : null;
|
432 |
+
$redirect_to = isset( $POSTED['redirect_to'] ) ? $POSTED['redirect_to'] : null;
|
433 |
+
$session_id = isset( $POSTED['session_id'] ) ? $POSTED['session_id'] : null;
|
434 |
$this->miniorange_initiate_2nd_factor( $currentuser, $attributes, $redirect_to,$session_id );
|
435 |
}
|
436 |
+
}
|
437 |
+
function check_miniorange_inline_skip_registration($POSTED){
|
438 |
+
$error = new WP_Error();
|
439 |
+
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
440 |
+
}
|
441 |
+
function miniorange_pass2login_redirect() {
|
442 |
+
do_action('mo2f_network_init');
|
443 |
+
global $Mo2fdbQueries;
|
444 |
+
|
445 |
+
if ( ! get_option( 'mo2f_login_option' ) ) {
|
446 |
+
if ( isset( $_POST['miniorange_login_nonce'] ) ) {
|
447 |
+
$nonce = $_POST['miniorange_login_nonce'];
|
448 |
+
$session_id = isset( $_POST['session_id'] ) ? $_POST['session_id'] : null;
|
449 |
+
|
450 |
+
if(is_null($session_id)) {
|
451 |
+
$session_id=$this->create_session();
|
452 |
+
}
|
453 |
+
|
454 |
+
|
455 |
+
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-login-nonce' ) ) {
|
456 |
+
$this->remove_current_activity($session_id);
|
457 |
+
$error = new WP_Error();
|
458 |
+
$error->add( 'empty_username', '<strong>' . mo2f_lt( 'ERROR' ) . '</strong>: ' . mo2f_lt( 'Invalid Request.' ) );
|
459 |
+
return $error;
|
460 |
+
} else {
|
461 |
+
$this->miniorange_pass2login_start_session();
|
462 |
+
$mobile_login = new Miniorange_Mobile_Login();
|
463 |
+
//validation and sanitization
|
464 |
+
$username = '';
|
465 |
+
if ( MO2f_Utility::mo2f_check_empty_or_null( $_POST['mo2fa_username'] ) ) {
|
466 |
+
MO2f_Utility::set_user_values($session_id, 'mo2f_login_message', 'Please enter username to proceed' );
|
467 |
+
$mobile_login->mo_auth_show_error_message();
|
468 |
+
return;
|
469 |
+
} else {
|
470 |
+
$username = sanitize_text_field( $_POST['mo2fa_username'] );
|
471 |
+
}
|
472 |
+
if ( username_exists( $username ) ) { /*if username exists in wp site */
|
473 |
+
$user = new WP_User( $username );
|
474 |
+
$redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : null;
|
475 |
+
MO2f_Utility::set_user_values($session_id, 'mo2f_current_user_id', $user->ID );
|
476 |
+
MO2f_Utility::set_user_values($session_id, 'mo2f_1stfactor_status', 'VALIDATE_SUCCESS' );
|
477 |
+
$this->mo2f_userId=$user->ID;
|
478 |
+
$this->fstfactor='VALIDATE_SUCCESS';
|
479 |
+
$current_roles = miniorange_get_user_role( $user );
|
480 |
+
$mo2f_configured_2FA_method = $Mo2fdbQueries->get_user_detail( 'mo2f_configured_2FA_method', $user->ID );
|
481 |
+
$email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user->ID );
|
482 |
+
$mo_2factor_user_registration_status = $Mo2fdbQueries->get_user_detail( 'mo_2factor_user_registration_status', $user->ID );
|
483 |
+
$kba_configuration_status = $Mo2fdbQueries->get_user_detail( 'mo2f_SecurityQuestions_config_status', $user->ID );
|
484 |
+
|
485 |
+
if(MO2F_IS_ONPREM )
|
486 |
+
{
|
487 |
+
$configuredMethod = get_user_meta($user->ID,'currentMethod',true);
|
488 |
+
$mo2f_configured_2FA_method = empty($configuredMethod) ? 0 : 1;
|
489 |
+
$mo_2factor_user_registration_status = 'MO_2_FACTOR_PLUGIN_SETTINGS';
|
490 |
+
$email = get_user_meta($user->ID , 'email',true);
|
491 |
+
|
492 |
+
}
|
493 |
+
if ( $mo2f_configured_2FA_method ) {
|
494 |
+
if ( $email && $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS' or (MO2F_IS_ONPREM and $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS')) {
|
495 |
+
if ( MO2f_Utility::check_if_request_is_from_mobile_device( $_SERVER['HTTP_USER_AGENT'] ) && $kba_configuration_status ) {
|
496 |
+
$this->mo2f_pass2login_kba_verification( $user->ID, $redirect_to, $session_id );
|
497 |
+
} else {
|
498 |
+
$mo2f_second_factor = '';
|
499 |
+
$mo2f_second_factor = mo2f_get_user_2ndfactor( $user );
|
500 |
+
if(MO2F_IS_ONPREM)
|
501 |
+
{
|
502 |
+
//$user = get_userdatabylogin('admin');
|
503 |
+
$mo2f_second_factor = get_user_meta($user->ID,'currentMethod',true);
|
504 |
+
|
505 |
+
if($mo2f_second_factor == 'Security Questions')
|
506 |
+
{
|
507 |
+
$mo2f_second_factor = 'KBA';
|
508 |
+
}
|
509 |
+
else if($mo2f_second_factor == 'Google Authenticator')
|
510 |
+
{
|
511 |
+
$mo2f_second_factor = 'GOOGLE AUTHENTICATOR';
|
512 |
+
}
|
513 |
+
else if($mo2f_second_factor != 'Email Verification')
|
514 |
+
$mo2f_second_factor = 'NONE';
|
515 |
+
}
|
516 |
+
|
517 |
+
if ( $mo2f_second_factor == 'MOBILE AUTHENTICATION' ) {
|
518 |
+
$this->mo2f_pass2login_mobile_verification( $user, $redirect_to, $session_id );
|
519 |
+
} else if ( $mo2f_second_factor == 'PUSH NOTIFICATIONS' || $mo2f_second_factor == 'OUT OF BAND EMAIL' ) {
|
520 |
+
$this->mo2f_pass2login_push_oobemail_verification( $user, $mo2f_second_factor, $redirect_to, $session_id );
|
521 |
+
}
|
522 |
+
else if($mo2f_second_factor == 'Email Verification'){
|
523 |
+
$this->mo2f_pass2login_push_oobemail_verification( $user, $mo2f_second_factor, $redirect_to, $session_id );
|
524 |
+
}
|
525 |
+
else if ( $mo2f_second_factor == 'SOFT TOKEN' || $mo2f_second_factor == 'SMS' || $mo2f_second_factor == 'PHONE VERIFICATION' || $mo2f_second_factor == 'GOOGLE AUTHENTICATOR' ) {
|
526 |
+
$this->mo2f_pass2login_otp_verification( $user, $mo2f_second_factor, $redirect_to, $session_id );
|
527 |
+
} else if ( $mo2f_second_factor == 'KBA' ) {
|
528 |
+
$this->mo2f_pass2login_kba_verification( $user->ID, $redirect_to, $session_id );
|
529 |
+
} else {
|
530 |
+
$this->remove_current_activity($session_id);
|
531 |
+
MO2f_Utility::set_user_values($session_id, 'mo2f_login_message', 'Please try again or contact your admin.' );
|
532 |
+
$mobile_login->mo_auth_show_success_message();
|
533 |
+
}
|
534 |
+
}
|
535 |
+
} else {
|
536 |
+
MO2f_Utility::set_user_values($session_id, 'mo2f_login_message', 'Please login into your account using password.' );
|
537 |
+
$mobile_login->mo_auth_show_success_message('Please login into your account using password.');
|
538 |
+
update_user_meta($user->ID,'userMessage','Please login into your account using password.');
|
539 |
+
$mobile_login->mo2f_redirectto_wp_login();
|
540 |
+
}
|
541 |
+
} else {
|
542 |
+
MO2f_Utility::set_user_values( $session_id, "mo2f_login_message", 'Please login into your account using password.' );
|
543 |
+
$mobile_login->mo_auth_show_success_message('Please login into your account using password.');
|
544 |
+
update_user_meta($user->ID,'userMessage','Please login into your account using password.');
|
545 |
+
$mobile_login->mo2f_redirectto_wp_login();
|
546 |
+
}
|
547 |
+
} else {
|
548 |
+
$mobile_login->remove_current_activity($session_id);
|
549 |
+
MO2f_Utility::set_user_values( $session_id, "mo2f_login_message", 'Invalid Username.' );
|
550 |
+
$mobile_login->mo_auth_show_error_message('Invalid Username.');
|
551 |
+
}
|
552 |
+
}
|
553 |
+
}
|
554 |
+
|
555 |
+
}
|
556 |
+
if(isset($_GET['Txid'])&&isset($_GET['accessToken']))
|
557 |
+
{
|
558 |
+
$userIDGet = sanitize_text_field($_GET['userID']);
|
559 |
+
$txIdGet = sanitize_text_field($_GET['Txid']);
|
560 |
+
$otpToken = get_site_option($userIDGet);
|
561 |
+
$txidstatus = get_site_option($txIdGet);
|
562 |
+
$userIDd = $userIDGet.'D';
|
563 |
+
$otpTokenD = get_site_option($userIDd);
|
564 |
+
$mo2f_dirName = dirname(__FILE__);
|
565 |
+
$mo2f_dirName = explode('wp-content', $mo2f_dirName);
|
566 |
+
$mo2f_dirName = explode('handler', $mo2f_dirName[1]);
|
567 |
+
|
568 |
+
$head = "You are not authorized to perform this action";
|
569 |
+
$body = "Please contact to your admin";
|
570 |
+
$color = "red";
|
571 |
+
if(3 == $txidstatus)
|
572 |
+
{
|
573 |
+
$time = "time".$txIdGet;
|
574 |
+
$currentTimeInMillis = round(microtime(true) * 1000);
|
575 |
+
$generatedTimeINMillis = get_site_option($time);
|
576 |
+
$difference = ($currentTimeInMillis-$generatedTimeINMillis)/1000 ;
|
577 |
+
if($difference <= 300)
|
578 |
+
{
|
579 |
+
$accessTokenGet = sanitize_text_field($_GET['accessToken']);
|
580 |
+
if( $accessTokenGet == $otpToken)
|
581 |
+
{
|
582 |
+
update_site_option($txIdGet,1);
|
583 |
+
$body = "Transaction has been successfully validated.<br><br>Please continue with the transaction.";
|
584 |
+
$head = "TRANSACTION SUCCESSFUL";
|
585 |
+
$color = "green";
|
586 |
+
}
|
587 |
+
else if($accessTokenGet==$otpTokenD)
|
588 |
+
{
|
589 |
+
update_site_option($txIdGet,0);
|
590 |
+
$body = "Transaction has been Canceled.<br><br>Please Try Again.";
|
591 |
+
$head = "TRANSACTION DENIED";
|
592 |
+
}
|
593 |
+
}
|
594 |
+
delete_site_option($userIDGet);
|
595 |
+
delete_site_option($userIDd);
|
596 |
+
delete_site_option($time);
|
597 |
+
|
598 |
+
}
|
599 |
+
|
600 |
+
$this->display_email_verification($head,$body,$color);
|
601 |
+
exit;
|
602 |
+
|
603 |
+
}
|
604 |
+
else if(isset($_POST['txid']))
|
605 |
+
{
|
606 |
+
$txidpost = sanitize_text_field($_POST['txid']);
|
607 |
+
$status = get_site_option($txidpost);
|
608 |
+
update_option('optionVal1',$status); //??
|
609 |
+
if($status ==1 || $status ==0)
|
610 |
+
delete_site_option($txidpost);
|
611 |
+
echo $status;
|
612 |
+
exit();
|
613 |
+
}
|
614 |
+
else{
|
615 |
+
$value=isset($_POST['option'])?$_POST['option']:false;
|
616 |
+
|
617 |
+
switch ($value) {
|
618 |
+
case 'miniorange_rba_validate':
|
619 |
+
$this->check_rba_validation($_POST);
|
620 |
+
break;
|
621 |
+
|
622 |
+
case 'miniorange_rba_cancle':
|
623 |
+
$this->check_rba_cancalation($_POST);
|
624 |
+
break;
|
625 |
+
|
626 |
+
case 'miniorange_forgotphone':
|
627 |
+
$this->check_miniorange_challenge_forgotphone($_POST);
|
628 |
+
break;
|
629 |
+
|
630 |
+
case 'miniorange_alternate_login_kba':
|
631 |
+
$this->check_miniorange_alternate_login_kba($_POST);
|
632 |
+
break;
|
633 |
+
|
634 |
+
case 'miniorange_kba_validate':
|
635 |
+
$this->check_kba_validation($_POST);
|
636 |
+
|
637 |
+
break;
|
638 |
+
|
639 |
+
case 'miniorange_mobile_validation':
|
640 |
+
$this->check_miniorange_mobile_validation($_POST);
|
641 |
+
break;
|
642 |
+
|
643 |
+
case 'miniorange_mobile_validation_failed':
|
644 |
+
$this->check_miniorange_mobile_validation_failed($_POST);
|
645 |
+
break;
|
646 |
+
|
647 |
+
case 'miniorange_softtoken':
|
648 |
+
$this->check_miniorange_softtoken($_POST);
|
649 |
+
break;
|
650 |
+
|
651 |
+
case 'miniorange_soft_token':
|
652 |
+
$this->check_miniorange_soft_token($_POST);
|
653 |
+
break;
|
654 |
+
|
655 |
+
case 'miniorange_inline_skip_registration':
|
656 |
+
$this->check_miniorange_inline_skip_registration($_POST);
|
657 |
+
break;
|
658 |
+
|
659 |
+
case 'miniorange_attribute_collection':
|
660 |
+
$this->check_miniorange_attribute_collection($_POST);
|
661 |
+
break;
|
662 |
+
|
663 |
+
default:
|
664 |
+
$error = new WP_Error();
|
665 |
+
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
666 |
+
|
667 |
+
return $error;
|
668 |
+
break;
|
669 |
}
|
670 |
}
|
671 |
+
}
|
672 |
+
|
673 |
+
|
674 |
|
675 |
function deniedMessage($message)
|
676 |
{
|
812 |
|
813 |
$login_status = $mo2fa_login_status;
|
814 |
$login_message = $mo2fa_login_message;
|
815 |
+
switch ($login_status) {
|
816 |
+
case 'MO_2_FACTOR_CHALLENGE_MOBILE_AUTHENTICATION':
|
817 |
+
$transactionid = $this->mo2f_transactionid ? $this->mo2f_transactionid : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_transactionId',$session_id_encrypt );
|
818 |
+
mo2f_get_qrcode_authentication_prompt( $login_status, $login_message, $redirect_to, $qrCode, $session_id_encrypt, $transactionid );
|
|
|
|
|
|
|
|
|
|
|
|
|
819 |
exit;
|
820 |
+
break;
|
821 |
+
|
822 |
+
case 'MO_2_FACTOR_CHALLENGE_SOFT_TOKEN':
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
823 |
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
824 |
+
mo2f_get_otp_authentication_prompt( $login_status, $login_message, $redirect_to, $session_id_encrypt,$user_id );
|
|
|
|
|
|
|
|
|
|
|
825 |
exit;
|
826 |
+
break;
|
827 |
+
|
828 |
+
case 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL':
|
829 |
+
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
830 |
+
mo2f_get_otp_authentication_prompt( $login_status, $login_message, $redirect_to, $session_id_encrypt,$user_id );
|
831 |
exit;
|
832 |
+
break;
|
833 |
+
|
834 |
+
case 'MO_2_FACTOR_CHALLENGE_OTP_OVER_SMS':
|
835 |
+
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
836 |
+
mo2f_get_otp_authentication_prompt( $login_status, $login_message, $redirect_to, $session_id_encrypt,$user_id );
|
837 |
+
exit;
|
838 |
+
break;
|
839 |
+
|
840 |
+
case 'MO_2_FACTOR_CHALLENGE_PHONE_VERIFICATION':
|
841 |
+
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
842 |
+
mo2f_get_otp_authentication_prompt( $login_status, $login_message, $redirect_to, $session_id_encrypt,$user_id );
|
843 |
+
exit;
|
844 |
+
break;
|
845 |
+
|
846 |
+
case 'MO_2_FACTOR_CHALLENGE_GOOGLE_AUTHENTICATION':
|
847 |
+
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
848 |
+
mo2f_get_otp_authentication_prompt( $login_status, $login_message, $redirect_to, $session_id_encrypt,$user_id );
|
849 |
+
exit;
|
850 |
+
break;
|
851 |
+
|
852 |
+
case 'MO_2_FACTOR_CHALLENGE_KBA_AND_OTP_OVER_EMAIL':
|
853 |
+
mo2f_get_forgotphone_form( $login_status, $login_message, $redirect_to, $session_id_encrypt );
|
854 |
+
exit;
|
855 |
+
break;
|
856 |
+
|
857 |
+
case 'MO_2_FACTOR_CHALLENGE_PUSH_NOTIFICATIONS':
|
858 |
+
$transactionid = $this->mo2f_transactionid ? $this->mo2f_transactionid : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_transactionId',$session_id_encrypt );
|
859 |
+
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
860 |
+
mo2f_get_push_notification_oobemail_prompt( $user_id, $login_status, $login_message, $redirect_to, $session_id_encrypt, $transactionid );
|
861 |
+
exit;
|
862 |
+
break;
|
863 |
+
|
864 |
+
case 'MO_2_FACTOR_CHALLENGE_OOB_EMAIL':
|
865 |
+
$transactionid = $this->mo2f_transactionid ? $this->mo2f_transactionid : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_transactionId',$session_id_encrypt );
|
866 |
+
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
867 |
+
mo2f_get_push_notification_oobemail_prompt( $user_id, $login_status, $login_message, $redirect_to, $session_id_encrypt, $transactionid );
|
868 |
+
exit;
|
869 |
+
break;
|
870 |
+
|
871 |
+
case 'MO_2_FACTOR_RECONFIG_GOOGLE':
|
872 |
+
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
873 |
+
$this->mo2f_redirect_shortcode_addon( $user_id, $login_status, $login_message, 'reconfigure_google' );
|
874 |
+
exit;
|
875 |
+
break;
|
876 |
+
|
877 |
+
case 'MO_2_FACTOR_RECONFIG_KBA':
|
878 |
+
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
879 |
+
$this->mo2f_redirect_shortcode_addon( $user_id, $login_status, $login_message, 'reconfigure_kba' );
|
880 |
+
exit;
|
881 |
+
break;
|
882 |
+
|
883 |
+
case 'MO_2_FACTOR_CHALLENGE_KBA_AUTHENTICATION':
|
884 |
+
$kbaquestions = $this->mo2f_kbaquestions ? $this->mo2f_kbaquestions : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo_2_factor_kba_questions',$session_id_encrypt );
|
885 |
+
if(MO2F_IS_ONPREM){
|
886 |
+
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_retrieve_user_temp_values( 'mo2f_current_user_id',$session_id_encrypt );
|
887 |
+
$ques = get_user_meta( $user_id, 'kba_questions_user');
|
888 |
+
mo2f_get_kba_authentication_prompt( $login_message, $redirect_to, $session_id_encrypt, $ques[0] );
|
889 |
+
}
|
890 |
+
else{
|
891 |
+
mo2f_get_kba_authentication_prompt( $login_message, $redirect_to, $session_id_encrypt, $kbaquestions );
|
892 |
+
}
|
893 |
+
exit;
|
894 |
+
break;
|
895 |
+
|
896 |
+
case 'MO_2_FACTOR_REMEMBER_TRUSTED_DEVICE':
|
897 |
+
mo2f_get_device_form( $redirect_to, $session_id_encrypt );
|
898 |
+
exit;
|
899 |
+
break;
|
900 |
+
|
901 |
+
default:
|
902 |
+
$this->mo_2_factor_pass2login_show_wp_login_form();
|
903 |
+
if(MO2F_IS_ONPREM){
|
904 |
+
$this->mo_2_factor_pass2login_show_wp_login_form();
|
905 |
+
}
|
906 |
+
break;
|
907 |
}
|
908 |
}
|
909 |
|
1199 |
|
1200 |
function miniorange_initiate_2nd_factor( $currentuser, $attributes = null, $redirect_to = null, $otp_token = "",$session_id_encrypt=null ) {
|
1201 |
global $Mo2fdbQueries;
|
1202 |
+
|
1203 |
+
$this->miniorange_pass2login_start_session();
|
1204 |
if(is_null($session_id_encrypt)) {
|
1205 |
$session_id_encrypt=$this->create_session();
|
1206 |
}
|
{handler → miniorange-2-factor-authentication/handler}/twofa/two_fa_settings.php
RENAMED
@@ -1879,10 +1879,12 @@ class Miniorange_Authentication {
|
|
1879 |
$kba_questions = isset( $_SESSION['mo_2_factor_kba_questions'] ) && ! empty( $_SESSION['mo_2_factor_kba_questions'] ) ? $_SESSION['mo_2_factor_kba_questions'] : get_option( 'kba_questions' );
|
1880 |
|
1881 |
$kbaAns = array();
|
1882 |
-
|
1883 |
-
|
1884 |
-
|
1885 |
-
|
|
|
|
|
1886 |
|
1887 |
//if the php session folder has insufficient permissions, temporary options to be used
|
1888 |
$mo2f_transactionId = isset( $_SESSION['mo2f_transactionId'] ) && ! empty( $_SESSION['mo2f_transactionId'] ) ? $_SESSION['mo2f_transactionId'] : get_option( 'mo2f_transactionId' );
|
1879 |
$kba_questions = isset( $_SESSION['mo_2_factor_kba_questions'] ) && ! empty( $_SESSION['mo_2_factor_kba_questions'] ) ? $_SESSION['mo_2_factor_kba_questions'] : get_option( 'kba_questions' );
|
1880 |
|
1881 |
$kbaAns = array();
|
1882 |
+
if(!MO2F_IS_ONPREM){
|
1883 |
+
$kbaAns[0] = $kba_questions[0];
|
1884 |
+
$kbaAns[1] = $kba_ans_1;
|
1885 |
+
$kbaAns[2] = $kba_questions[1];
|
1886 |
+
$kbaAns[3] = $kba_ans_2;
|
1887 |
+
}
|
1888 |
|
1889 |
//if the php session folder has insufficient permissions, temporary options to be used
|
1890 |
$mo2f_transactionId = isset( $_SESSION['mo2f_transactionId'] ) && ! empty( $_SESSION['mo2f_transactionId'] ) ? $_SESSION['mo2f_transactionId'] : get_option( 'mo2f_transactionId' );
|
{handler → miniorange-2-factor-authentication/handler}/twofa/two_fa_utility.php
RENAMED
File without changes
|
{helper → miniorange-2-factor-authentication/helper}/constants.php
RENAMED
File without changes
|
{helper → miniorange-2-factor-authentication/helper}/curl.php
RENAMED
File without changes
|
{helper → miniorange-2-factor-authentication/helper}/dashboard_security_notification.php
RENAMED
File without changes
|
{helper → miniorange-2-factor-authentication/helper}/messages.php
RENAMED
File without changes
|
{helper → miniorange-2-factor-authentication/helper}/pluginUtility.php
RENAMED
File without changes
|
{helper → miniorange-2-factor-authentication/helper}/plugins.php
RENAMED
File without changes
|
{helper → miniorange-2-factor-authentication/helper}/utility.php
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/css/bootstrap.min.css
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/css/button_styles.css
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/css/hide-login-form.css
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/css/hide-login.css
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/css/jquery.dataTables.min.css
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/css/phone.css
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/css/popup.css
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/css/show-login.css
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/css/style_settings.css
RENAMED
@@ -1,3 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
.mo_upgrade_toggle
|
2 |
{
|
3 |
text-align: center;
|
@@ -61,10 +146,11 @@
|
|
61 |
}
|
62 |
.mo_2fa_card
|
63 |
{
|
64 |
-
margin:
|
65 |
margin-top:16px;
|
66 |
border-radius:2%;
|
67 |
-
|
|
|
68 |
width:25%;
|
69 |
border:1px solid #ecebeb;
|
70 |
box-sizing:border-box;
|
@@ -102,14 +188,22 @@
|
|
102 |
.mo_wpns_upgrade_title11
|
103 |
{
|
104 |
width: 23%;
|
105 |
-
min-height:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
background-color: white;
|
107 |
float: left;
|
108 |
border: 2px solid black;
|
109 |
}
|
110 |
.mo_wpns_upgrade_title_2fa_lite
|
111 |
{
|
112 |
-
width:
|
113 |
min-height: 500px;
|
114 |
background-color: white;
|
115 |
float: left;
|
@@ -120,6 +214,7 @@
|
|
120 |
text-align: center;
|
121 |
background-color: black;
|
122 |
text-shadow: 3px 2px 2px black;
|
|
|
123 |
|
124 |
}
|
125 |
.mo_wpns_upgrade_page_2fa_plan_name
|
@@ -128,6 +223,13 @@
|
|
128 |
padding: 6% 0% 0% 0%;
|
129 |
color: white;
|
130 |
font-size: 280%;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
}
|
132 |
.mo_wpns_upgrade_page_hr
|
133 |
{
|
@@ -136,13 +238,13 @@
|
|
136 |
.mo_wpns_upgrade_page_2fa_background
|
137 |
{
|
138 |
width: 100%;
|
139 |
-
min-height:
|
140 |
background-color: #4dbfb9;
|
141 |
}
|
142 |
.mo_wpns_upgrade_page_2fa_lite_background
|
143 |
{
|
144 |
width: 100%;
|
145 |
-
min-height:
|
146 |
background-color: #4dbfb9;
|
147 |
}
|
148 |
.mo_wpns_upgrade_page_show_feature_arrow
|
@@ -176,7 +278,7 @@
|
|
176 |
.mo_wpns_upgrade_pade_pricing
|
177 |
{
|
178 |
color: white;
|
179 |
-
font-size:
|
180 |
}
|
181 |
.mo_wpns_upgrade_page_starting_price
|
182 |
{
|
@@ -215,7 +317,7 @@
|
|
215 |
.mo_wpns_upgrade_page_ns_background
|
216 |
{
|
217 |
width: 100%;
|
218 |
-
min-height:
|
219 |
background-color: #4dbfb9;
|
220 |
}
|
221 |
.mo_wpns_button_info_tab {
|
@@ -314,18 +416,20 @@
|
|
314 |
}
|
315 |
|
316 |
.mo_wpns_help_title {
|
317 |
-
font-size:17px;
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
}
|
323 |
.mo_wpns_help_desc {
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
|
|
|
|
329 |
}
|
330 |
.mo_wpns_help {
|
331 |
width: 95%;
|
@@ -2827,7 +2931,7 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
2827 |
|
2828 |
}
|
2829 |
.mo_table-bordered, .mo_table-bordered > tbody > tr > td {
|
2830 |
-
border: 1px solid #ddd
|
2831 |
}
|
2832 |
.mo_align-center > tr > td {
|
2833 |
text-align: center !important;
|
@@ -2978,7 +3082,7 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
2978 |
font-size: 120%;
|
2979 |
}
|
2980 |
.customloginform td {
|
2981 |
-
width:80
|
2982 |
text-align:left;
|
2983 |
border:1px solid #20b2aa;
|
2984 |
padding:1%;
|
@@ -2988,4 +3092,14 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
2988 |
text-align:left;
|
2989 |
border:1px solid black;
|
2990 |
padding:1%;
|
2991 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.mo2f_black_background
|
2 |
+
{
|
3 |
+
background: gainsboro;
|
4 |
+
}
|
5 |
+
.mo2f_2fa_plan_title
|
6 |
+
{
|
7 |
+
background-color: #20b2aa;
|
8 |
+
border: 2px solid #20b2aa;
|
9 |
+
}
|
10 |
+
.mo2f_padding_style
|
11 |
+
{
|
12 |
+
padding: 2px 0px;
|
13 |
+
}
|
14 |
+
.mo2f_white_color_style
|
15 |
+
{
|
16 |
+
color: white;
|
17 |
+
}
|
18 |
+
.mo2f_2fa_lite_plan_title
|
19 |
+
{
|
20 |
+
background-color: #20b2aa;
|
21 |
+
border: 2px solid #20b2aa;
|
22 |
+
width: 25%
|
23 |
+
}
|
24 |
+
.mo2f_tooltip {
|
25 |
+
position: relative;
|
26 |
+
display: inline-block;
|
27 |
+
/*border-bottom: 1px dotted black;*/
|
28 |
+
}
|
29 |
+
|
30 |
+
.mo2f_tooltip .mo2f_tooltiptext {
|
31 |
+
visibility: hidden;
|
32 |
+
width: 200px;
|
33 |
+
background-color: #20b2aa;
|
34 |
+
color: white;
|
35 |
+
text-align: center;
|
36 |
+
border-radius: 6px;
|
37 |
+
font-size: 14px;
|
38 |
+
padding: 7px;
|
39 |
+
|
40 |
+
/* Position the tooltip */
|
41 |
+
position: absolute;
|
42 |
+
z-index: 1;
|
43 |
+
}
|
44 |
+
.mo2f_tooltip_addon {
|
45 |
+
position: relative;
|
46 |
+
display: inline-block;
|
47 |
+
/*border-bottom: 1px dotted black;*/
|
48 |
+
}
|
49 |
+
.mo2f_tooltip_addon .mo2f_tooltiptext_addon {
|
50 |
+
visibility: hidden;
|
51 |
+
width: 175px;
|
52 |
+
background-color: #20b2aa;
|
53 |
+
color: white;
|
54 |
+
text-align: center;
|
55 |
+
border-radius: 6px;
|
56 |
+
font-size: 14px;
|
57 |
+
padding: 7px;
|
58 |
+
|
59 |
+
/* Position the tooltip */
|
60 |
+
position: absolute;
|
61 |
+
z-index: 1;
|
62 |
+
}
|
63 |
+
/*.mo2f_addon_info_margin
|
64 |
+
{
|
65 |
+
width: 175px;
|
66 |
+
}*/
|
67 |
+
.mo2f_info_tab
|
68 |
+
{
|
69 |
+
font-size:16px;
|
70 |
+
color:#20b2aa;
|
71 |
+
cursor: pointer;
|
72 |
+
}
|
73 |
+
.mo2f_info_tab:hover
|
74 |
+
{
|
75 |
+
/*font-size:16px;*/
|
76 |
+
color:red;
|
77 |
+
/*cursor: pointer;*/
|
78 |
+
}
|
79 |
+
|
80 |
+
.mo2f_tooltip:hover .mo2f_tooltiptext {
|
81 |
+
visibility: visible;
|
82 |
+
}
|
83 |
+
.mo2f_tooltip_addon:hover .mo2f_tooltiptext_addon {
|
84 |
+
visibility: visible;
|
85 |
+
}
|
86 |
.mo_upgrade_toggle
|
87 |
{
|
88 |
text-align: center;
|
146 |
}
|
147 |
.mo_2fa_card
|
148 |
{
|
149 |
+
margin:3px;
|
150 |
margin-top:16px;
|
151 |
border-radius:2%;
|
152 |
+
/* height:463px;
|
153 |
+
overflow: hidden;*/
|
154 |
width:25%;
|
155 |
border:1px solid #ecebeb;
|
156 |
box-sizing:border-box;
|
188 |
.mo_wpns_upgrade_title11
|
189 |
{
|
190 |
width: 23%;
|
191 |
+
min-height: 633px;
|
192 |
+
background-color: white;
|
193 |
+
float: left;
|
194 |
+
border: 2px solid black;
|
195 |
+
}
|
196 |
+
.mo_wpns_upgrade_security_title
|
197 |
+
{
|
198 |
+
width: 23%;
|
199 |
+
min-height: 511px;
|
200 |
background-color: white;
|
201 |
float: left;
|
202 |
border: 2px solid black;
|
203 |
}
|
204 |
.mo_wpns_upgrade_title_2fa_lite
|
205 |
{
|
206 |
+
width: 23%;
|
207 |
min-height: 500px;
|
208 |
background-color: white;
|
209 |
float: left;
|
214 |
text-align: center;
|
215 |
background-color: black;
|
216 |
text-shadow: 3px 2px 2px black;
|
217 |
+
min-height: 62px;
|
218 |
|
219 |
}
|
220 |
.mo_wpns_upgrade_page_2fa_plan_name
|
223 |
padding: 6% 0% 0% 0%;
|
224 |
color: white;
|
225 |
font-size: 280%;
|
226 |
+
}
|
227 |
+
.mo_wpns_upgrade_page_2fa_integration_plan_name
|
228 |
+
{
|
229 |
+
margin-top: 0%;
|
230 |
+
padding: 6% 0% 0% 0%;
|
231 |
+
color: white;
|
232 |
+
font-size: 200%;
|
233 |
}
|
234 |
.mo_wpns_upgrade_page_hr
|
235 |
{
|
238 |
.mo_wpns_upgrade_page_2fa_background
|
239 |
{
|
240 |
width: 100%;
|
241 |
+
min-height: 448px;
|
242 |
background-color: #4dbfb9;
|
243 |
}
|
244 |
.mo_wpns_upgrade_page_2fa_lite_background
|
245 |
{
|
246 |
width: 100%;
|
247 |
+
min-height: 379px;
|
248 |
background-color: #4dbfb9;
|
249 |
}
|
250 |
.mo_wpns_upgrade_page_show_feature_arrow
|
278 |
.mo_wpns_upgrade_pade_pricing
|
279 |
{
|
280 |
color: white;
|
281 |
+
font-size: 350%;
|
282 |
}
|
283 |
.mo_wpns_upgrade_page_starting_price
|
284 |
{
|
317 |
.mo_wpns_upgrade_page_ns_background
|
318 |
{
|
319 |
width: 100%;
|
320 |
+
min-height: 277px;
|
321 |
background-color: #4dbfb9;
|
322 |
}
|
323 |
.mo_wpns_button_info_tab {
|
416 |
}
|
417 |
|
418 |
.mo_wpns_help_title {
|
419 |
+
font-size: 17px;
|
420 |
+
width: 100%;
|
421 |
+
color: #1b5778;
|
422 |
+
cursor: pointer;
|
423 |
+
font-weight: bold;
|
424 |
}
|
425 |
.mo_wpns_help_desc {
|
426 |
+
font-size: 16px;
|
427 |
+
border-left: solid 2px rgba(128, 128, 128, 0.65);
|
428 |
+
margin-top: 10px;
|
429 |
+
font-weight: 600;
|
430 |
+
line-height: 1.5em;
|
431 |
+
padding-left: 10px;
|
432 |
+
margin-bottom: 20px;
|
433 |
}
|
434 |
.mo_wpns_help {
|
435 |
width: 95%;
|
2931 |
|
2932 |
}
|
2933 |
.mo_table-bordered, .mo_table-bordered > tbody > tr > td {
|
2934 |
+
/*border: 1px solid #ddd;*/
|
2935 |
}
|
2936 |
.mo_align-center > tr > td {
|
2937 |
text-align: center !important;
|
3082 |
font-size: 120%;
|
3083 |
}
|
3084 |
.customloginform td {
|
3085 |
+
/*width:80%;*/
|
3086 |
text-align:left;
|
3087 |
border:1px solid #20b2aa;
|
3088 |
padding:1%;
|
3092 |
text-align:left;
|
3093 |
border:1px solid black;
|
3094 |
padding:1%;
|
3095 |
+
}
|
3096 |
+
.mo2f_doc_icon_style
|
3097 |
+
{
|
3098 |
+
font-size:25px;
|
3099 |
+
color:#269eb3;
|
3100 |
+
}
|
3101 |
+
.mo2f_doc_font_size
|
3102 |
+
{
|
3103 |
+
font-size: 112%;
|
3104 |
+
width: 30%;
|
3105 |
+
}
|
{includes → miniorange-2-factor-authentication/includes}/css/twofa_style_settings.css
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/61456.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/Admin_Custom_Login.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/Custom_Login_Page_Customizer_LoginPress.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/RegistrationMagic_Custom_Registration_Forms_and_User_Login.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/ajax-loader-login.gif
RENAMED
File without changes
|
miniorange-2-factor-authentication/includes/images/amazons3.png
ADDED
Binary file
|
{includes → miniorange-2-factor-authentication/includes}/images/angry.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/appstore.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/AuthyAuthenticator.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/EmailVerification.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/GoogleAuthenticator.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/HardwareToken.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/OTPOverEmail.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/OTPOverSMS.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/OTPOverSMSandEmail.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/SecurityQuestions.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/miniOrangePushNotification.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/miniOrangeQRCodeAuthentication.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/authmethods/miniOrangeSoftToken.png
RENAMED
File without changes
|
miniorange-2-factor-authentication/includes/images/box.png
ADDED
Binary file
|
{includes → miniorange-2-factor-authentication/includes}/images/card.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/database-backup-logo.png
RENAMED
File without changes
|
miniorange-2-factor-authentication/includes/images/dropbox.png
ADDED
Binary file
|
{includes → miniorange-2-factor-authentication/includes}/images/error.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/flags16.png
RENAMED
File without changes
|
miniorange-2-factor-authentication/includes/images/gdrive.jpg
ADDED
Binary file
|
miniorange-2-factor-authentication/includes/images/google.jpg
ADDED
Binary file
|
{includes → miniorange-2-factor-authentication/includes}/images/happy.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/loader.gif
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/login-protection-logo.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/malware-scanner-logo.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/miniOrange2.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/miniorange_icon.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/miniorange_logo.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/mo-waf-logo.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/mo_white_logo.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/netbanking.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/normal.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/normal1.png
RENAMED
File without changes
|
miniorange-2-factor-authentication/includes/images/onedrive.png
ADDED
Binary file
|
{includes → miniorange-2-factor-authentication/includes}/images/paypal.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/playStore.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/restrict_content_pro.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/right-arrow.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/right.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/sad.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/smile.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/success.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/support3.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/theme_my_login.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/ultimate_member.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/user_registration.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/woocommerce.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/images/wrong.png
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/jquery-qrcode/README.md
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/jquery-qrcode/jquery-qrcode.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/jquery-qrcode/jquery-qrcode.min.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/bootstrap.min.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/jquery.dataTables.min.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/phone.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/rba/js/client.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/rba/js/device_attributes.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/rba/js/fontdetect.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/rba/js/fonts.swf
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/rba/js/jquery-1.9.1.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/rba/js/jquery.flash.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/rba/js/miniorange-fp.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/rba/js/murmurhash3.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/rba/js/swfobject.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/rba/js/ua-parser.js
RENAMED
File without changes
|
{includes → miniorange-2-factor-authentication/includes}/js/settings_page.js
RENAMED
@@ -21,33 +21,54 @@ jQuery(document).ready(function () {
|
|
21 |
|
22 |
//Instructions
|
23 |
$("#mo_wpns_help_curl_title").click(function () {
|
24 |
-
|
25 |
});
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
});
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
});
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
});
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
});
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
});
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
});
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
$(".feedback").click(function(){
|
52 |
ajaxCall("dissmissfeedback",".feedback-notice",true);
|
53 |
});
|
21 |
|
22 |
//Instructions
|
23 |
$("#mo_wpns_help_curl_title").click(function () {
|
24 |
+
$("#mo_wpns_help_curl_desc").slideToggle(600);
|
25 |
});
|
26 |
+
|
27 |
+
$("#mo_wpns_issue_in_scanning_QR").click(function () {
|
28 |
+
$("#mo_wpns_issue_in_scanning_QR_solution").slideToggle(600);
|
29 |
});
|
30 |
+
|
31 |
+
$("#mo_wpns_help_get_back_to_account").click(function () {
|
32 |
+
$("#mo_wpns_help_get_back_to_account_solution").slideToggle(600);
|
33 |
});
|
34 |
+
|
35 |
+
$("#mo_wpns_help_multisite").click(function () {
|
36 |
+
$("#mo_wpns_help_multisite_solution").slideToggle(600);
|
37 |
});
|
38 |
+
|
39 |
+
$("#mo_wpns_help_adv_user_ver_title").click(function () {
|
40 |
+
$("#mo_wpns_help_adv_user_ver_desc").slideToggle(600);
|
41 |
});
|
42 |
+
|
43 |
+
$("#mo_wpns_help_forgot_password").click(function () {
|
44 |
+
$("#mo_wpns_help_forgot_password_solution").slideToggle(600);
|
45 |
});
|
46 |
+
|
47 |
+
$("#mo_wpns_help_MFA_propmted").click(function () {
|
48 |
+
$("#mo_wpns_help_MFA_propmted_solution").slideToggle(600);
|
49 |
});
|
50 |
|
51 |
+
$("#mo_wpns_help_redirect_back").click(function () {
|
52 |
+
$("#mo_wpns_help_redirect_back_solution").slideToggle(600);
|
53 |
+
});
|
54 |
+
$("#mo_wpns_help_alternet_login").click(function () {
|
55 |
+
$("#mo_wpns_help_alternet_login_solution").slideToggle(600);
|
56 |
+
});
|
57 |
+
$("#mo_wpns_help_lost_ability").click(function () {
|
58 |
+
$("#mo_wpns_help_lost_ability_solution").slideToggle(600);
|
59 |
+
});
|
60 |
+
$("#mo_wpns_help_translate").click(function () {
|
61 |
+
$("#mo_wpns_help_translate_solution").slideToggle(600);
|
62 |
+
});
|
63 |
+
$("#mo_wpns_help_particular_use_role").click(function () {
|
64 |
+
$("#mo_wpns_help_particular_use_role_solution").slideToggle(600);
|
65 |
+
});
|
66 |
+
$("#mo_wpns_help_enforce_MFA").click(function () {
|
67 |
+
$("#mo_wpns_help_enforce_MFA_solution").slideToggle(600);
|
68 |
+
});
|
69 |
+
$("#mo_wpns_help_reset_MFA").click(function () {
|
70 |
+
$("#mo_wpns_help_reset_MFA_solution").slideToggle(600);
|
71 |
+
});
|
72 |
$(".feedback").click(function(){
|
73 |
ajaxCall("dissmissfeedback",".feedback-notice",true);
|
74 |
});
|
{lang → miniorange-2-factor-authentication/lang}/miniorange-2-factor-authentication.pot
RENAMED
File without changes
|
miniorange_2_factor_settings.php → miniorange-2-factor-authentication/miniorange_2_factor_settings.php
RENAMED
@@ -3,14 +3,14 @@
|
|
3 |
* Plugin Name: miniOrange 2 Factor Authentication
|
4 |
* Plugin URI: https://miniorange.com
|
5 |
* Description: This plugin provides various two-factor authentication methods as an additional layer of security after the default wordpress login. We Support Google/Authy/LastPass Authenticator, QR Code, Push Notification, Soft Token and Security Questions(KBA) for 1 User in the free version of the plugin.
|
6 |
-
* Version: 5.4.
|
7 |
* Author: miniOrange
|
8 |
* Author URI: https://miniorange.com
|
9 |
* License: GPL2
|
10 |
*/
|
11 |
define( 'MO_HOST_NAME', 'https://login.xecurify.com' );
|
12 |
-
define( 'MO2F_VERSION', '5.4.
|
13 |
-
define( 'MO2F_TEST_MODE',
|
14 |
define( 'MO2F_IS_ONPREM', get_option('is_onprem'));
|
15 |
class Miniorange_twoFactor{
|
16 |
|
@@ -259,7 +259,9 @@
|
|
259 |
|
260 |
add_option( 'mo_wpns_2fa_with_network_security' , 1);
|
261 |
add_option( 'mo_wpns_2fa_with_network_security_popup_visible', 1);
|
262 |
-
|
|
|
|
|
263 |
|
264 |
}
|
265 |
|
@@ -288,6 +290,7 @@
|
|
288 |
wp_enqueue_style( 'mo_wpns_admin_settings_datatable_style' , plugins_url('includes/css/jquery.dataTables.min.css', __FILE__));
|
289 |
wp_enqueue_style( 'mo_wpns_button_settings_style' , plugins_url('includes/css/button_styles.css',__FILE__));
|
290 |
wp_enqueue_style( 'mo_wpns_popup_settings_style' , plugins_url('includes/css/popup.css',__FILE__));
|
|
|
291 |
}
|
292 |
|
293 |
}
|
3 |
* Plugin Name: miniOrange 2 Factor Authentication
|
4 |
* Plugin URI: https://miniorange.com
|
5 |
* Description: This plugin provides various two-factor authentication methods as an additional layer of security after the default wordpress login. We Support Google/Authy/LastPass Authenticator, QR Code, Push Notification, Soft Token and Security Questions(KBA) for 1 User in the free version of the plugin.
|
6 |
+
* Version: 5.4.8
|
7 |
* Author: miniOrange
|
8 |
* Author URI: https://miniorange.com
|
9 |
* License: GPL2
|
10 |
*/
|
11 |
define( 'MO_HOST_NAME', 'https://login.xecurify.com' );
|
12 |
+
define( 'MO2F_VERSION', '5.4.8' );
|
13 |
+
define( 'MO2F_TEST_MODE', false );
|
14 |
define( 'MO2F_IS_ONPREM', get_option('is_onprem'));
|
15 |
class Miniorange_twoFactor{
|
16 |
|
259 |
|
260 |
add_option( 'mo_wpns_2fa_with_network_security' , 1);
|
261 |
add_option( 'mo_wpns_2fa_with_network_security_popup_visible', 1);
|
262 |
+
if(get_site_option('mo2f_activated_time') == null){
|
263 |
+
add_site_option('mo2f_activated_time', time());
|
264 |
+
}
|
265 |
|
266 |
}
|
267 |
|
290 |
wp_enqueue_style( 'mo_wpns_admin_settings_datatable_style' , plugins_url('includes/css/jquery.dataTables.min.css', __FILE__));
|
291 |
wp_enqueue_style( 'mo_wpns_button_settings_style' , plugins_url('includes/css/button_styles.css',__FILE__));
|
292 |
wp_enqueue_style( 'mo_wpns_popup_settings_style' , plugins_url('includes/css/popup.css',__FILE__));
|
293 |
+
|
294 |
}
|
295 |
|
296 |
}
|
readme.txt → miniorange-2-factor-authentication/readme.txt
RENAMED
@@ -6,7 +6,7 @@ Donate link: https://miniorange.com/
|
|
6 |
Requires at least: 3.0.1
|
7 |
Tested up to: 5.4
|
8 |
Requires PHP: 5.3.0
|
9 |
-
Stable tag: 5.4.
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
|
@@ -307,6 +307,9 @@ miniOrange authentication service has 15+ authentication methods.One time passco
|
|
307 |
|
308 |
== Changelog ==
|
309 |
|
|
|
|
|
|
|
310 |
= 5.4.7 =
|
311 |
* Google Authenticator-Two Factor Authentication (2FA) : Fixing warnings and adding minor changes in the plans.
|
312 |
|
@@ -803,6 +806,9 @@ More descriptive setup messages and UI changes.
|
|
803 |
|
804 |
== Upgrade Notice ==
|
805 |
|
|
|
|
|
|
|
806 |
= 5.4.7 =
|
807 |
* Google Authenticator-Two Factor Authentication (2FA) : Fixing warnings and adding minor changes in the plans.
|
808 |
|
6 |
Requires at least: 3.0.1
|
7 |
Tested up to: 5.4
|
8 |
Requires PHP: 5.3.0
|
9 |
+
Stable tag: 5.4.8
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
|
307 |
|
308 |
== Changelog ==
|
309 |
|
310 |
+
= 5.4.8 =
|
311 |
+
* Google Authenticator-Two Factor Authentication (2FA) : Learning Management System support, Microsoft Authenticator and Duo Authenticator support and restrict account sharing add-on.
|
312 |
+
|
313 |
= 5.4.7 =
|
314 |
* Google Authenticator-Two Factor Authentication (2FA) : Fixing warnings and adding minor changes in the plans.
|
315 |
|
806 |
|
807 |
== Upgrade Notice ==
|
808 |
|
809 |
+
= 5.4.8 =
|
810 |
+
* Google Authenticator-Two Factor Authentication (2FA) : Learning Management System support, Microsoft Authenticator and Duo Authenticator support and restrict account sharing add-on.
|
811 |
+
|
812 |
= 5.4.7 =
|
813 |
* Google Authenticator-Two Factor Authentication (2FA) : Fixing warnings and adding minor changes in the plans.
|
814 |
|
uninstall.php → miniorange-2-factor-authentication/uninstall.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/account/login.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/account/profile.php
RENAMED
@@ -4,7 +4,15 @@ echo'
|
|
4 |
<div class="mo_wpns_divided_layout">
|
5 |
<div class="mo_wpns_setting_layout" >
|
6 |
<div>
|
7 |
-
<h4>Thank You for registering with miniOrange
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
<h3>Your Profile</h3>
|
9 |
<table border="1" style="background-color:#FFFFFF; border:1px solid #CCCCCC; border-collapse: collapse; padding:0px 0px 0px 10px; margin:2px; width:85%">
|
10 |
<tr>
|
4 |
<div class="mo_wpns_divided_layout">
|
5 |
<div class="mo_wpns_setting_layout" >
|
6 |
<div>
|
7 |
+
<h4>Thank You for registering with miniOrange.
|
8 |
+
<div style="float: right;">';
|
9 |
+
if (isset( $two_fa )) {
|
10 |
+
|
11 |
+
echo '<a class="mo_wpns_button mo_wpns_button1" href="'.$two_fa.'">Back</a> ';
|
12 |
+
}
|
13 |
+
|
14 |
+
echo '</div>
|
15 |
+
</h4>
|
16 |
<h3>Your Profile</h3>
|
17 |
<table border="1" style="background-color:#FFFFFF; border:1px solid #CCCCCC; border-collapse: collapse; padding:0px 0px 0px 10px; margin:2px; width:85%">
|
18 |
<tr>
|
{views → miniorange-2-factor-authentication/views}/account/register.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/account/verify.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/advanced-blocking.php
RENAMED
@@ -12,7 +12,7 @@
|
|
12 |
|
13 |
<div class="mo_wpns_divided_layout">
|
14 |
<div class="mo_wpns_setting_layout">
|
15 |
-
<h2>Manual IP Blocking
|
16 |
|
17 |
<h4 class="mo_wpns_setting_layout_inside">Manually block an IP address here:  
|
18 |
<input type="text" name="ManuallyBlockIP" id="ManuallyBlockIP" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 35%; height: 41px" />  
|
@@ -50,7 +50,7 @@ echo "</td><td>".date("M j, Y, g:i:s a",$blockedip->created_timestamp)."</td>
|
|
50 |
</h4>
|
51 |
</div>
|
52 |
<div class="mo_wpns_setting_layout">
|
53 |
-
<h2>IP Whitelisting
|
54 |
<h4 class="mo_wpns_setting_layout_inside">Add new IP address to whitelist:  
|
55 |
<input type="text" name="IPWhitelist" id="IPWhitelist" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 40%; height: 41px"/>  
|
56 |
<input type="button" name="WhiteListIP" id="WhiteListIP" value="Whitelist IP" class="mo_wpsn_button mo_wpsn_button1" />
|
@@ -80,7 +80,7 @@ echo' </tbody>
|
|
80 |
|
81 |
|
82 |
<div class="mo_wpns_setting_layout">
|
83 |
-
<h2>IP LookUp
|
84 |
<h4 class="mo_wpns_setting_layout_inside">Enter IP address you Want to check:  
|
85 |
<input type="text" name="ipAddresslookup" id="ipAddresslookup" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 40%; height: 41px"/>  
|
86 |
<input type="button" name="LookupIP" id="LookupIP" value="LookUp IP" class="mo_wpsn_button mo_wpsn_button1" />
|
@@ -99,7 +99,7 @@ echo '<div id="adv_block" class="tabcontent">';
|
|
99 |
echo'<div class="mo_wpns_divided_layout">
|
100 |
<div class="mo_wpns_setting_layout">';
|
101 |
|
102 |
-
echo' <h2>IP Address Range Blocking
|
103 |
You can block range of IP addresses here ( Examples: 192.168.0.100 - 192.168.0.190 )
|
104 |
<form name="f" method="post" action="" id="iprangeblockingform" >
|
105 |
<input type="hidden" name="option" value="mo_wpns_block_ip_range" />
|
@@ -152,7 +152,7 @@ echo '
|
|
152 |
|
153 |
|
154 |
<div class="mo_wpns_setting_layout">
|
155 |
-
<h3>Browser Blocking
|
156 |
<!-- <div class="mo_wpns_subheading">This protects your site from robots and other automated scripts.</div> -->
|
157 |
<form id="mo_wpns_enable_user_agent_blocking" method="post" action="">
|
158 |
<input type="hidden" name="option" value="mo_wpns_enable_user_agent_blocking">
|
12 |
|
13 |
<div class="mo_wpns_divided_layout">
|
14 |
<div class="mo_wpns_setting_layout">
|
15 |
+
<h2>Manual IP Blocking <a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/IP-blocking-whitelisting-lookup#wordpress-ip-blocking" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#269eb3;float: right;"></span></a></h2>
|
16 |
|
17 |
<h4 class="mo_wpns_setting_layout_inside">Manually block an IP address here:  
|
18 |
<input type="text" name="ManuallyBlockIP" id="ManuallyBlockIP" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 35%; height: 41px" />  
|
50 |
</h4>
|
51 |
</div>
|
52 |
<div class="mo_wpns_setting_layout">
|
53 |
+
<h2>IP Whitelisting<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/IP-blocking-whitelisting-lookup#wp-ip-whitelisting" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#269eb3;float: right;"></span></a></h2>
|
54 |
<h4 class="mo_wpns_setting_layout_inside">Add new IP address to whitelist:  
|
55 |
<input type="text" name="IPWhitelist" id="IPWhitelist" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 40%; height: 41px"/>  
|
56 |
<input type="button" name="WhiteListIP" id="WhiteListIP" value="Whitelist IP" class="mo_wpsn_button mo_wpsn_button1" />
|
80 |
|
81 |
|
82 |
<div class="mo_wpns_setting_layout">
|
83 |
+
<h2>IP LookUp<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/IP-blocking-whitelisting-lookup#wp-ip-lookup" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#269eb3;float: right;"></span></a></h2>
|
84 |
<h4 class="mo_wpns_setting_layout_inside">Enter IP address you Want to check:  
|
85 |
<input type="text" name="ipAddresslookup" id="ipAddresslookup" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 40%; height: 41px"/>  
|
86 |
<input type="button" name="LookupIP" id="LookupIP" value="LookUp IP" class="mo_wpsn_button mo_wpsn_button1" />
|
99 |
echo'<div class="mo_wpns_divided_layout">
|
100 |
<div class="mo_wpns_setting_layout">';
|
101 |
|
102 |
+
echo' <h2>IP Address Range Blocking<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/range-blocking#ip-range-blocking" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></h2>
|
103 |
You can block range of IP addresses here ( Examples: 192.168.0.100 - 192.168.0.190 )
|
104 |
<form name="f" method="post" action="" id="iprangeblockingform" >
|
105 |
<input type="hidden" name="option" value="mo_wpns_block_ip_range" />
|
152 |
|
153 |
|
154 |
<div class="mo_wpns_setting_layout">
|
155 |
+
<h3>Browser Blocking<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/browser-blocking#wp-browser-blocking" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#269eb3;float: right;"></span></a></h3>
|
156 |
<!-- <div class="mo_wpns_subheading">This protects your site from robots and other automated scripts.</div> -->
|
157 |
<form id="mo_wpns_enable_user_agent_blocking" method="post" action="">
|
158 |
<input type="hidden" name="option" value="mo_wpns_enable_user_agent_blocking">
|
{views → miniorange-2-factor-authentication/views}/backup/backup.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/backup/backup_created_report.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/backup/backup_schdule.php
RENAMED
@@ -5,11 +5,12 @@ add_action('admin_footer','mo_wpns_schedule_backup');
|
|
5 |
|
6 |
|
7 |
<div class="mo_wpns_setting_layout">
|
8 |
-
|
9 |
<table class="mo_wpns_settings_table font_class">
|
10 |
<tr>
|
11 |
<th>Scheduled file backup </th>
|
12 |
<th>Scheduled database backup </th>
|
|
|
13 |
</tr>
|
14 |
<tr><td> </td><td></td></tr>
|
15 |
<tr>
|
5 |
|
6 |
|
7 |
<div class="mo_wpns_setting_layout">
|
8 |
+
|
9 |
<table class="mo_wpns_settings_table font_class">
|
10 |
<tr>
|
11 |
<th>Scheduled file backup </th>
|
12 |
<th>Scheduled database backup </th>
|
13 |
+
<th><a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/backup-restore/#schedule-backup" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;margin-top: 0.5em;float: right;"></span></a></th>
|
14 |
</tr>
|
15 |
<tr><td> </td><td></td></tr>
|
16 |
<tr>
|
{views → miniorange-2-factor-authentication/views}/backup/backup_setting_view.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/change-password.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/common-elements.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/content-protection.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/dashboard.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/feedback_form.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/ip-blocking.php
RENAMED
@@ -3,7 +3,7 @@
|
|
3 |
echo'<div class="mo_wpns_divided_layout">
|
4 |
<div class="mo_wpns_setting_layout">';
|
5 |
|
6 |
-
echo' <h2>IP LookUP
|
7 |
<form name="f" method="post" action="" id="iplookup">
|
8 |
<input type="hidden" name="option" value="mo_wpns_ip_lookup" />
|
9 |
<table style="width:100%;">
|
3 |
echo'<div class="mo_wpns_divided_layout">
|
4 |
<div class="mo_wpns_setting_layout">';
|
5 |
|
6 |
+
echo' <h2>IP LookUP<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/IP-blocking-whitelisting-lookup#wp-ip-lookup" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#269eb3;float: right;"></span></a></h2>
|
7 |
<form name="f" method="post" action="" id="iplookup">
|
8 |
<input type="hidden" name="option" value="mo_wpns_ip_lookup" />
|
9 |
<table style="width:100%;">
|
{views → miniorange-2-factor-authentication/views}/licensing.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/login-security.php
RENAMED
@@ -6,7 +6,7 @@ echo '
|
|
6 |
<div class="mo_wpns_setting_layout">';
|
7 |
|
8 |
|
9 |
-
echo ' <h3>Brute Force Protection ( Login Protection )
|
10 |
<div class="mo_wpns_subheading">This protects your site from attacks which tries to gain access / login to a site with random usernames and passwords.</div>
|
11 |
|
12 |
<input id="mo_bf_button" type="checkbox" name="enable_brute_force_protection" '.$brute_force_enabled.'> Enable Brute force protection
|
@@ -54,7 +54,7 @@ echo' <form id="mo_wpns_enable_brute_force_form" method="post" action="">
|
|
54 |
echo'
|
55 |
</div>
|
56 |
<div class="mo_wpns_setting_layout">
|
57 |
-
<h3>Google reCAPTCHA
|
58 |
<div class="mo_wpns_subheading">Google reCAPTCHA protects your website from spam and abuse. reCAPTCHA uses an advanced risk analysis engine and adaptive CAPTCHAs to keep automated software from engaging in abusive activities on your site. It does this while letting your valid users pass through with ease.</div>
|
59 |
<form id="mo_wpns_activate_recaptcha" method="post" action="">
|
60 |
<input type="hidden" name="option" value="mo_wpns_activate_recaptcha">
|
@@ -92,7 +92,7 @@ echo '<br>
|
|
92 |
</div>
|
93 |
|
94 |
<div class="mo_wpns_setting_layout">
|
95 |
-
<h3>Enforce Strong Passwords
|
96 |
<div class="mo_wpns_subheading">Checks the password strength of admin and other users to enhance login security</div>
|
97 |
|
98 |
<form id="mo_wpns_enable_brute_force_form" method="post" action="">
|
6 |
<div class="mo_wpns_setting_layout">';
|
7 |
|
8 |
|
9 |
+
echo ' <h3>Brute Force Protection ( Login Protection )<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/brute-force#Brute-Force-protection" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></h3>
|
10 |
<div class="mo_wpns_subheading">This protects your site from attacks which tries to gain access / login to a site with random usernames and passwords.</div>
|
11 |
|
12 |
<input id="mo_bf_button" type="checkbox" name="enable_brute_force_protection" '.$brute_force_enabled.'> Enable Brute force protection
|
54 |
echo'
|
55 |
</div>
|
56 |
<div class="mo_wpns_setting_layout">
|
57 |
+
<h3>Google reCAPTCHA<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/brute-force#Google-recaptcha" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></h3>
|
58 |
<div class="mo_wpns_subheading">Google reCAPTCHA protects your website from spam and abuse. reCAPTCHA uses an advanced risk analysis engine and adaptive CAPTCHAs to keep automated software from engaging in abusive activities on your site. It does this while letting your valid users pass through with ease.</div>
|
59 |
<form id="mo_wpns_activate_recaptcha" method="post" action="">
|
60 |
<input type="hidden" name="option" value="mo_wpns_activate_recaptcha">
|
92 |
</div>
|
93 |
|
94 |
<div class="mo_wpns_setting_layout">
|
95 |
+
<h3>Enforce Strong Passwords <a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/brute-force#Enforce-strong-password" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></h3>
|
96 |
<div class="mo_wpns_subheading">Checks the password strength of admin and other users to enhance login security</div>
|
97 |
|
98 |
<form id="mo_wpns_enable_brute_force_form" method="post" action="">
|
{views → miniorange-2-factor-authentication/views}/login_spam.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/malware_scanner/malware_scan.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/malware_scanner/scan_report_view.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/malware_scanner/scan_settings_view.php
RENAMED
@@ -1,7 +1,8 @@
|
|
1 |
|
2 |
<div class="mo_wpns_setting_layout">
|
3 |
<div class="mo_wpns_subheading"></div>
|
4 |
-
<
|
|
|
5 |
<form id="" method="post" action="">
|
6 |
<input type="hidden" name="option" value="mo_wpns_scan_configuration">
|
7 |
<table class="mo_wpns_settings_table">
|
@@ -12,6 +13,7 @@
|
|
12 |
<input type="checkbox" name="mo_wpns_scan_themes" id="mo_wpns_scan_themes" value="1" <?php checked($mo_wpns_scan_themes == 1);?>> WordPress Themes folder<br>
|
13 |
<input type="checkbox" name="mo_wpns_scan_wp_files" id="mo_wpns_scan_wp_files" value="1" <?php checked($mo_wpns_core_scan == 1);?>> WordPress files
|
14 |
</td>
|
|
|
15 |
</tr>
|
16 |
<tr><td> </td><td></td></tr>
|
17 |
<tr>
|
1 |
|
2 |
<div class="mo_wpns_setting_layout">
|
3 |
<div class="mo_wpns_subheading"></div>
|
4 |
+
<h3>Custom Scan Settings<span style="text-align: right;"><a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/scanner#custom-scan" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></span></h3>
|
5 |
+
<hr>
|
6 |
<form id="" method="post" action="">
|
7 |
<input type="hidden" name="option" value="mo_wpns_scan_configuration">
|
8 |
<table class="mo_wpns_settings_table">
|
13 |
<input type="checkbox" name="mo_wpns_scan_themes" id="mo_wpns_scan_themes" value="1" <?php checked($mo_wpns_scan_themes == 1);?>> WordPress Themes folder<br>
|
14 |
<input type="checkbox" name="mo_wpns_scan_wp_files" id="mo_wpns_scan_wp_files" value="1" <?php checked($mo_wpns_core_scan == 1);?>> WordPress files
|
15 |
</td>
|
16 |
+
<!-- <td> <a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/scanner#custom-scan" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;margin-top: -1.5em;"></span></a></td> -->
|
17 |
</tr>
|
18 |
<tr><td> </td><td></td></tr>
|
19 |
<tr>
|
{views → miniorange-2-factor-authentication/views}/malware_scanner/scan_summary_view.php
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
add_action('admin_footer','mo_wpns_start_scan');
|
3 |
?>
|
4 |
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
5 |
|
6 |
<div class="mo_wpns_dashboard_layout">
|
7 |
<div class="malwaresummarydiv">
|
@@ -10,7 +10,7 @@ add_action('admin_footer','mo_wpns_start_scan');
|
|
10 |
</div>
|
11 |
<div class="mo_wpns_setting_layout" id="scan_status_table">
|
12 |
<div>
|
13 |
-
<p class="hmdiv">Scan Modes
|
14 |
</div>
|
15 |
<div style="float: left;">
|
16 |
<p id="scanstatus"></p>
|
1 |
<?php
|
2 |
add_action('admin_footer','mo_wpns_start_scan');
|
3 |
?>
|
4 |
+
<!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> -->
|
5 |
|
6 |
<div class="mo_wpns_dashboard_layout">
|
7 |
<div class="malwaresummarydiv">
|
10 |
</div>
|
11 |
<div class="mo_wpns_setting_layout" id="scan_status_table">
|
12 |
<div>
|
13 |
+
<p class="hmdiv">Scan Modes<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/scanner#wp-malware-scanner" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></p>
|
14 |
</div>
|
15 |
<div style="float: left;">
|
16 |
<p id="scanstatus"></p>
|
{views → miniorange-2-factor-authentication/views}/navbar.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/network_security_features.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/notification-settings.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/rate-limiting.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/registration-security.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/reports.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/request_demo.php
RENAMED
@@ -1,6 +1,12 @@
|
|
1 |
<div class="mo_wpns_divided_layout">
|
2 |
<div class="mo_wpns_setting_layout">
|
3 |
-
<h3> Demo Request Form :
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
<form method="post">
|
5 |
<input type="hidden" name="option" value="mo_2FA_demo_request_form" />
|
6 |
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('mo2f-Request-demo')?>">
|
1 |
<div class="mo_wpns_divided_layout">
|
2 |
<div class="mo_wpns_setting_layout">
|
3 |
+
<h3> Demo Request Form : <div style="float: right;">
|
4 |
+
<?php
|
5 |
+
echo '<a class="mo_wpns_button mo_wpns_button1" href="'.$two_fa.'">Back</a>';
|
6 |
+
|
7 |
+
?>
|
8 |
+
</div></h3>
|
9 |
+
|
10 |
<form method="post">
|
11 |
<input type="hidden" name="option" value="mo_2FA_demo_request_form" />
|
12 |
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('mo2f-Request-demo')?>">
|
{views → miniorange-2-factor-authentication/views}/support.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/test/test_twofa_email_verification.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/test/test_twofa_google_authy_authenticator.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/test/test_twofa_kba_questions.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/test/test_twofa_miniorange_push_notification.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/test/test_twofa_miniorange_qrcode_authentication.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/test/test_twofa_miniorange_soft_token.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/test/test_twofa_otp_over_sms.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/tour-model.php
RENAMED
File without changes
|
miniorange-2-factor-authentication/views/troubleshooting.php
ADDED
@@ -0,0 +1,167 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
echo'<div class="mo_wpns_divided_layout">
|
4 |
+
<div class="mo_wpns_setting_layout">
|
5 |
+
<h3>
|
6 |
+
Frequenty Asked Questions
|
7 |
+
<div style="float: right;">
|
8 |
+
<a class="mo_wpns_button mo_wpns_button1" href="'.$two_fa.'">Back</a>
|
9 |
+
</div>
|
10 |
+
</h3><br><hr>
|
11 |
+
<table class="mo_wpns_help">
|
12 |
+
<tbody><tr>
|
13 |
+
<td class="mo_wpns_help_cell">
|
14 |
+
<div id="mo_wpns_help_curl_title" class="mo_wpns_title_panel">
|
15 |
+
<div class="mo_wpns_help_title">How to enable PHP cURL extension? (Pre-requisite)</div>
|
16 |
+
</div>
|
17 |
+
<span hidden="" id="mo_wpns_help_curl_desc" class="mo_wpns_help_desc" style="display: none;">
|
18 |
+
<ol>
|
19 |
+
<li>Open php.ini file located under the PHP installation folder.</li>
|
20 |
+
<li>Search for extension=php_curl.dll.</li>
|
21 |
+
<li>Uncomment it by removing the semi-colon(;) in front of it.
|
22 |
+
Restart the Apache Server.</li></ol>
|
23 |
+
For any further queries, please <a href="mailto:2fasupport@xecurify.com" target="blank">contact us</a>.
|
24 |
+
</span>
|
25 |
+
</td>
|
26 |
+
</tr><tr>
|
27 |
+
<td class="mo_wpns_help_cell">
|
28 |
+
<div id="mo_wpns_issue_in_scanning_QR" class="mo_wpns_title_panel">
|
29 |
+
<div class="mo_wpns_help_title">I am facing issue in scanning QR code, what is the reason behind the error?</div>
|
30 |
+
</div>
|
31 |
+
<span hidden="" id="mo_wpns_issue_in_scanning_QR_solution" class="mo_wpns_help_desc" style="display: none;">
|
32 |
+
<ol><li>Make sure that the bar-code you are scanning and the bar-code scanning app that you are using is suitable.</li>
|
33 |
+
<li>If you are configuring the Google Authenticator method, you will need the Google Authenticator App.</li>
|
34 |
+
<li>If you are configuring miniOrange authentication methods that are Push Notifications, Qr Code Authentication, or Soft Token you will need the miniOrange app and accordingly.</li><ul>
|
35 |
+
</span>
|
36 |
+
</td>
|
37 |
+
</tr>
|
38 |
+
<tr>
|
39 |
+
<td class="mo_wpns_help_cell">
|
40 |
+
<div id="mo_wpns_help_particular_use_role" class="mo_wpns_title_panel">
|
41 |
+
<div class="mo_wpns_help_title">I want to enable 2-factor for particular user roles in WordPress, how do I do that?</div>
|
42 |
+
</div>
|
43 |
+
<div hidden="" id="mo_wpns_help_particular_use_role_solution" class="mo_wpns_help_desc" style="display: none;">
|
44 |
+
We are providing 2-factor authentication for 3 admin users in the free version if you want to add it for more user roles, please upgrade to the paid version.</br> You can check our pricing from here: <a href="https://plugins.miniorange.com/2-factor-authentication-for-wordpress">https://plugins.miniorange.com/2-factor-authentication-for-wordpress</a>.</br>
|
45 |
+
OR </br>If you have paid version of the plugin, your solution is right here: <a href="https://docs.miniorange.com/documentation/enable-two-factor-based-roles" target="blank">click here</a>.</div>
|
46 |
+
</td>
|
47 |
+
</tr>
|
48 |
+
<tr>
|
49 |
+
<td class="mo_wpns_help_cell">
|
50 |
+
<div id="mo_wpns_help_enforce_MFA" class="mo_wpns_title_panel">
|
51 |
+
<div class="mo_wpns_help_title">I want to Enforce my users to configure the Two-factor authentication method how I do that?</div>
|
52 |
+
</div>
|
53 |
+
<div hidden="" id="mo_wpns_help_enforce_MFA_solution" class="mo_wpns_help_desc" style="display: none;">
|
54 |
+
This feature is supported in paid plugin. Please checkout out pricing from here: <a href="https://plugins.miniorange.com/2-factor-authentication-for-wordpress" target="blank">https://plugins.miniorange.com/2-factor-authentication-for-wordpress</a>
|
55 |
+
</br>OR</br>If you have paid version of the plugin, your solution is right here: <a href="https://docs.miniorange.com/documentation/enforce-2fa-users" target="blank">click here</a>.
|
56 |
+
</div>
|
57 |
+
</td>
|
58 |
+
</tr>
|
59 |
+
<tr>
|
60 |
+
<td class="mo_wpns_help_cell">
|
61 |
+
<div id="mo_wpns_help_reset_MFA" class="mo_wpns_title_panel">
|
62 |
+
<div class="mo_wpns_help_title">I want to reset Two Factor for my users, how I do that?</div>
|
63 |
+
</div>
|
64 |
+
<div hidden="" id="mo_wpns_help_reset_MFA_solution" class="mo_wpns_help_desc" style="display: none;">
|
65 |
+
<ol><li>Go to the WordPress <b>Users</b> tab.</li>
|
66 |
+
<li>Hover over the Username of which you want to reset two-factor. You will see �Reset 2 Factor� option, Click on that.</li>
|
67 |
+
<li>Now, whenever your user logs in again to their account user will able to reconfigure Two Factor.</li>
|
68 |
+
</div>
|
69 |
+
</td>
|
70 |
+
</tr>
|
71 |
+
<tr>
|
72 |
+
<td class="mo_wpns_help_cell">
|
73 |
+
<div id="mo_wpns_help_get_back_to_account" class="mo_wpns_title_panel">
|
74 |
+
<div class="mo_wpns_help_title">How do I gain access to my website if I get locked out?</div>
|
75 |
+
</div>
|
76 |
+
<div hidden="" id="mo_wpns_help_get_back_to_account_solution" class="mo_wpns_help_desc" style="display: none;">
|
77 |
+
We provides many alternet solutions to get back to account, <a href="https://faq.miniorange.com/knowledgebase/how-to-gain-access-to-my-website-if-i-get-locked-out/" tager="blank">click here</a>.
|
78 |
+
</div>
|
79 |
+
</td>
|
80 |
+
</tr>
|
81 |
+
<tr>
|
82 |
+
<td class="mo_wpns_help_cell">
|
83 |
+
<div id="mo_wpns_help_multisite" class="mo_wpns_title_panel">
|
84 |
+
<div class="mo_wpns_help_title">Does the miniOrange 2FA plugin support multi-site support?</div>
|
85 |
+
</div>
|
86 |
+
<div hidden="" id="mo_wpns_help_multisite_solution" class="mo_wpns_help_desc" style="display: none;">
|
87 |
+
The miniOrange Two-factor free plugin does not provide Multisite support. Please upgrade to the premium plan for the multi-site support.
|
88 |
+
|
89 |
+
|
90 |
+
</div>
|
91 |
+
</td>
|
92 |
+
</tr>
|
93 |
+
<tr>
|
94 |
+
<td class="mo_wpns_help_cell">
|
95 |
+
<div id="mo_wpns_help_forgot_password" class="mo_wpns_title_panel">
|
96 |
+
<div class="mo_wpns_help_title">I forgot the password of my miniOrange account. How can I reset it?</div>
|
97 |
+
</div>
|
98 |
+
<div hidden="" id="mo_wpns_help_forgot_password_solution" class="mo_wpns_help_desc" style="display: none;">
|
99 |
+
To reset the password of your miniOrange account, please <a href="https://login.xecurify.com/moas/idp/resetpassword" target="blank">click here</a> and reset your password using the email address registered with miniOrange.
|
100 |
+
|
101 |
+
|
102 |
+
</div>
|
103 |
+
</td>
|
104 |
+
</tr>
|
105 |
+
<tr>
|
106 |
+
<td class="mo_wpns_help_cell">
|
107 |
+
<div id="mo_wpns_help_MFA_propmted" class="mo_wpns_title_panel">
|
108 |
+
<div class="mo_wpns_help_title">My Users are not being prompted for 2-factor during login. Why?</div>
|
109 |
+
</div>
|
110 |
+
<div hidden="" id="mo_wpns_help_MFA_propmted_solution" class="mo_wpns_help_desc" style="display: none;">
|
111 |
+
The miniOrange Two-Factor free plugin provides the 2-factor for three users (Administrator) forever. To enable 2FA for more users, please upgrade to the Premium plan. for more details <a href="https://faq.miniorange.com/knowledgebase/users-are-not-prompted-for-2-factor-during-login/" target="blank">click here</a>.
|
112 |
+
|
113 |
+
</div>
|
114 |
+
</td>
|
115 |
+
</tr><tr>
|
116 |
+
<td class="mo_wpns_help_cell">
|
117 |
+
<div id="mo_wpns_help_redirect_back" class="mo_wpns_title_panel">
|
118 |
+
<div class="mo_wpns_help_title">When I enter my authentication code and click on Validate, I got redirected back to the login page, Why is this happening?</div>
|
119 |
+
</div>
|
120 |
+
<div hidden="" id="mo_wpns_help_redirect_back_solution" class="mo_wpns_help_desc" style="display: none;">
|
121 |
+
It might be the case that the plugin is not able to write the PHP session info (into the /var/lib/php/sessions directory ) because of permission issues, and hence it is failing at the authentication step. Please update to the latest plugin version (5.0.0) which has the bug fix for this.
|
122 |
+
</div>
|
123 |
+
</td>
|
124 |
+
</tr>
|
125 |
+
<tr>
|
126 |
+
<td class="mo_wpns_help_cell">
|
127 |
+
<div id="mo_wpns_help_alternet_login" class="mo_wpns_title_panel">
|
128 |
+
<div class="mo_wpns_help_title">I had setup QR Code Authentication/Push Notification as my 2-factor method. My phone has no internet connectivity, how can I login?</div>
|
129 |
+
</div>
|
130 |
+
<div hidden="" id="mo_wpns_help_alternet_login_solution" class="mo_wpns_help_desc" style="display: none;">
|
131 |
+
You can login using our alternate login method. Please <a href="https://faq.miniorange.com/knowledgebase/login-issue-for-two-factor/" target="blank">Click here</a>.
|
132 |
+
</div>
|
133 |
+
</td>
|
134 |
+
</tr>
|
135 |
+
<tr>
|
136 |
+
<td class="mo_wpns_help_cell">
|
137 |
+
<div id="mo_wpns_help_lost_ability" class="mo_wpns_title_panel">
|
138 |
+
<div class="mo_wpns_help_title">My phone is lost, stolen or discharged. How can I login?</div>
|
139 |
+
</div>
|
140 |
+
<div hidden="" id="mo_wpns_help_lost_ability_solution" class="mo_wpns_help_desc" style="display: none;">
|
141 |
+
To login and reconfigure authentication method <a href="" target="blank">click here</a>.
|
142 |
+
|
143 |
+
</div>
|
144 |
+
</td>
|
145 |
+
</tr>
|
146 |
+
<tr>
|
147 |
+
<td class="mo_wpns_help_cell">
|
148 |
+
<div id="mo_wpns_help_translate" class="mo_wpns_title_panel">
|
149 |
+
<div class="mo_wpns_help_title">How do I translate the plugin in a language of my choice?</div>
|
150 |
+
</div>
|
151 |
+
<div hidden="" id="mo_wpns_help_translate_solution" class="mo_wpns_help_desc" style="display: none;">
|
152 |
+
Please follow the below steps:
|
153 |
+
<ol><li>Download & open POEDIT software.</li>
|
154 |
+
<li>Click on Create New Translation.</li>
|
155 |
+
<li>In the plugin, you have a lang folder. You can find the .pot file in it. Import the file.</li>
|
156 |
+
<li>It will ask you for the translation language. Select it as Germany.</li>
|
157 |
+
<li>In the top navigation bar, Click on Update <i class="fa fa-fw fa-arrow-right"></i> Save.
|
158 |
+
Do the translations and Save them.</li>
|
159 |
+
<li>Select the WordPress site language as the same you selected in the software. ( Germany )</li></ol>
|
160 |
+
|
161 |
+
</div>
|
162 |
+
</td>
|
163 |
+
</tr>
|
164 |
+
</tbody></table>
|
165 |
+
<h4>If you have any other queries, Contact us at <a href="mailto:2fasupport@xecurify.com" target="blank">2fasupport@xecurify.com</a></h4>
|
166 |
+
</div>
|
167 |
+
</div>';
|
{views → miniorange-2-factor-authentication/views}/twofa/setup/setup_authy_authenticator.php
RENAMED
@@ -8,7 +8,9 @@ function mo2f_configure_authy_authenticator( $user ) {
|
|
8 |
<table>
|
9 |
<tr>
|
10 |
<td class="mo2f_authy_step1">
|
11 |
-
<h3><?php echo mo2f_lt( 'Step-1: Configure Authy Authenticator App.' );
|
|
|
|
|
12 |
<hr/>
|
13 |
<form name="f" method="post" id="mo2f_configure_google_authy_form1" action="">
|
14 |
<input type="submit" name="mo2f_authy_configure" class="mo_wpns_button mo_wpns_button1"
|
8 |
<table>
|
9 |
<tr>
|
10 |
<td class="mo2f_authy_step1">
|
11 |
+
<h3><?php echo mo2f_lt( 'Step-1: Configure Authy Authenticator App.' ); ?>
|
12 |
+
|
13 |
+
</h3>
|
14 |
<hr/>
|
15 |
<form name="f" method="post" id="mo2f_configure_google_authy_form1" action="">
|
16 |
<input type="submit" name="mo2f_authy_configure" class="mo_wpns_button mo_wpns_button1"
|
{views → miniorange-2-factor-authentication/views}/twofa/setup/setup_google_authenticator.php
RENAMED
@@ -11,7 +11,11 @@ function mo2f_configure_google_authenticator( $user ) {
|
|
11 |
<table>
|
12 |
<tr>
|
13 |
<td class="mo2f_google_authy_step2">
|
14 |
-
<?php echo '<' . $h_size . '>' . mo2f_lt( 'Step-1: Set up Google/Authy/LastPass Authenticator' ) . '
|
|
|
|
|
|
|
|
|
15 |
|
16 |
<hr>
|
17 |
|
@@ -19,9 +23,12 @@ function mo2f_configure_google_authenticator( $user ) {
|
|
19 |
<label for="authenticator_type"><b>1. Choose an Authenticator app:</b></label>
|
20 |
|
21 |
<select id="authenticator_type">
|
22 |
-
|
|
|
23 |
<option value="authy_authenticator">Authy Authenticator</option>
|
24 |
<option value="last_pass_auth">LastPass Authenticator</option>
|
|
|
|
|
25 |
</select>
|
26 |
</div>
|
27 |
|
@@ -148,28 +155,33 @@ function mo2f_configure_google_authenticator( $user ) {
|
|
148 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
149 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
150 |
'<a href="http://itunes.apple.com/us/app/google-authenticator/id388497605" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
151 |
-
// jQuery('#step_number').html('3. ');
|
152 |
-
// jQuery("input[type=radio][name=authy]").prop("checked", false);
|
153 |
-
// jQuery("input[type=radio][name=lastpass]").prop("checked", false);
|
154 |
jQuery('#mo2f_change_app_name').show();
|
155 |
jQuery('#links_to_apps').show();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
}else if(auth_type == 'authy_authenticator'){
|
157 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
158 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.authy.authy" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
159 |
'<a href="https://itunes.apple.com/in/app/authy/id494168017" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
160 |
-
// jQuery("input[type=radio][name=google]").prop("checked", false);
|
161 |
-
// jQuery("input[type=radio][name=lastpass]").prop("checked", false);
|
162 |
-
// jQuery('#mo2f_change_app_name').hide();
|
163 |
-
jQuery('#step_number').html('2. ');
|
164 |
jQuery('#links_to_apps').show();
|
165 |
}else{
|
166 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
167 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.lastpass.authenticator" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
168 |
'<a href="https://itunes.apple.com/in/app/lastpass-authenticator/id1079110004" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
169 |
-
// jQuery("input[type=radio][name=authy]").prop("checked", false);
|
170 |
-
// jQuery("input[type=radio][name=google]").prop("checked", false);
|
171 |
jQuery('#mo2f_change_app_name').show();
|
172 |
-
jQuery('#step_number').html('3. ');
|
173 |
jQuery('#links_to_apps').show();
|
174 |
}
|
175 |
});
|
11 |
<table>
|
12 |
<tr>
|
13 |
<td class="mo2f_google_authy_step2">
|
14 |
+
<?php echo '<' . $h_size . '>' . mo2f_lt( 'Step-1: Set up Google/Authy/LastPass Authenticator' ) . '<span style="float:right">
|
15 |
+
<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/google-authenticator" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:26px;color:#269eb3;float: right;"></span></a>
|
16 |
+
|
17 |
+
<a href="https://www.youtube.com/watch?v=vVGXjedIaGs" target="_blank"><span class="dashicons dashicons-video-alt3" style="font-size:30px;color:red;float: right; margin-right: 16px;margin-top: -3px;"></span></a>
|
18 |
+
</span></' . $h_size . '>'; ?>
|
19 |
|
20 |
<hr>
|
21 |
|
23 |
<label for="authenticator_type"><b>1. Choose an Authenticator app:</b></label>
|
24 |
|
25 |
<select id="authenticator_type">
|
26 |
+
<option value="google_authenticator">Google Authenticator</option>
|
27 |
+
<option value="msft_authenticator">Microsoft Authenticator</option>
|
28 |
<option value="authy_authenticator">Authy Authenticator</option>
|
29 |
<option value="last_pass_auth">LastPass Authenticator</option>
|
30 |
+
<option value="free_otp_auth">FreeOTP Authenticator</option>
|
31 |
+
<option value="duo_auth">Duo Mobile Authenticator</option>
|
32 |
</select>
|
33 |
</div>
|
34 |
|
155 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
156 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
157 |
'<a href="http://itunes.apple.com/us/app/google-authenticator/id388497605" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
|
|
|
|
|
|
158 |
jQuery('#mo2f_change_app_name').show();
|
159 |
jQuery('#links_to_apps').show();
|
160 |
+
}else if(auth_type == 'msft_authenticator'){
|
161 |
+
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
162 |
+
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.azure.authenticator" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
163 |
+
'<a href="https://apps.apple.com/us/app/microsoft-authenticator/id983156458" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
164 |
+
jQuery('#links_to_apps').show();
|
165 |
+
}else if(auth_type == 'free_otp_auth'){
|
166 |
+
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
167 |
+
'Get the App - <a href="https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
168 |
+
'<a href="https://apps.apple.com/us/app/freeotp-authenticator/id872559395" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
169 |
+
jQuery('#links_to_apps').show();
|
170 |
+
}else if(auth_type == 'duo_auth'){
|
171 |
+
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
172 |
+
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.duosecurity.duomobile" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
173 |
+
'<a href="https://apps.apple.com/in/app/duo-mobile/id422663827" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
174 |
+
jQuery('#links_to_apps').show();
|
175 |
}else if(auth_type == 'authy_authenticator'){
|
176 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
177 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.authy.authy" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
178 |
'<a href="https://itunes.apple.com/in/app/authy/id494168017" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
|
|
|
|
|
|
|
|
179 |
jQuery('#links_to_apps').show();
|
180 |
}else{
|
181 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
182 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.lastpass.authenticator" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
183 |
'<a href="https://itunes.apple.com/in/app/lastpass-authenticator/id1079110004" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
|
|
|
|
184 |
jQuery('#mo2f_change_app_name').show();
|
|
|
185 |
jQuery('#links_to_apps').show();
|
186 |
}
|
187 |
});
|
{views → miniorange-2-factor-authentication/views}/twofa/setup/setup_google_authenticator_onpremise.php
RENAMED
@@ -9,7 +9,11 @@ function mo2f_configure_google_authenticator_onprem( $secret,$url,$otpcode ) {
|
|
9 |
<table>
|
10 |
<tr>
|
11 |
<td class="mo2f_google_authy_step2">
|
12 |
-
<?php echo '<' . $h_size . '>' . mo2f_lt( 'Step-1: Set up Google/Authy/LastPass Authenticator' ) . '
|
|
|
|
|
|
|
|
|
13 |
|
14 |
<hr>
|
15 |
|
@@ -19,8 +23,11 @@ function mo2f_configure_google_authenticator_onprem( $secret,$url,$otpcode ) {
|
|
19 |
|
20 |
<select id="authenticator_type">
|
21 |
<option value="google_authenticator">Google Authenticator</option>
|
|
|
22 |
<option value="authy_authenticator">Authy Authenticator</option>
|
23 |
<option value="last_pass_auth">LastPass Authenticator</option>
|
|
|
|
|
24 |
</select>
|
25 |
</div>
|
26 |
|
@@ -154,11 +161,11 @@ $q = $_SERVER['REQUEST_TIME']*1000;
|
|
154 |
|
155 |
jQuery(this).scrollTop(0);
|
156 |
// if(jQuery('input[type=radio][name=google]').is(':checked')){
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
// }
|
163 |
});
|
164 |
|
@@ -166,9 +173,9 @@ $q = $_SERVER['REQUEST_TIME']*1000;
|
|
166 |
jQuery('#mo2f_configure_google_authy_form1').submit();
|
167 |
});
|
168 |
|
169 |
-
jQuery('#links_to_apps').show();
|
170 |
-
jQuery('#mo2f_change_app_name').hide();
|
171 |
-
jQuery('#step_number').html('2. ');
|
172 |
|
173 |
|
174 |
jQuery('#authenticator_type').change(function(){
|
@@ -177,69 +184,37 @@ $q = $_SERVER['REQUEST_TIME']*1000;
|
|
177 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
178 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
179 |
'<a href="http://itunes.apple.com/us/app/google-authenticator/id388497605" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
180 |
-
// jQuery('#step_number').html('3. ');
|
181 |
-
// jQuery("input[type=radio][name=authy]").prop("checked", false);
|
182 |
-
// jQuery("input[type=radio][name=lastpass]").prop("checked", false);
|
183 |
jQuery('#mo2f_change_app_name').show();
|
184 |
jQuery('#links_to_apps').show();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
}else if(auth_type == 'authy_authenticator'){
|
186 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
187 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.authy.authy" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
188 |
'<a href="https://itunes.apple.com/in/app/authy/id494168017" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
189 |
-
// jQuery("input[type=radio][name=google]").prop("checked", false);
|
190 |
-
// jQuery("input[type=radio][name=lastpass]").prop("checked", false);
|
191 |
-
// jQuery('#mo2f_change_app_name').hide();
|
192 |
-
jQuery('#step_number').html('2. ');
|
193 |
jQuery('#links_to_apps').show();
|
194 |
}else{
|
195 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
196 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.lastpass.authenticator" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
197 |
'<a href="https://itunes.apple.com/in/app/lastpass-authenticator/id1079110004" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
198 |
-
// jQuery("input[type=radio][name=authy]").prop("checked", false);
|
199 |
-
// jQuery("input[type=radio][name=google]").prop("checked", false);
|
200 |
jQuery('#mo2f_change_app_name').show();
|
201 |
-
jQuery('#step_number').html('3. ');
|
202 |
jQuery('#links_to_apps').show();
|
203 |
}
|
204 |
});
|
205 |
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
// jQuery('input[type=radio][name=google]').click(function(){
|
212 |
-
// jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
213 |
-
// 'Get the Google Authenticator App - <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2" target="_blank"><b><?php //echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
214 |
-
// '<a href="http://itunes.apple.com/us/app/google-authenticator/id388497605" target="_blank"><b><?php //echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
215 |
-
// jQuery('#step_number').html('3. ');
|
216 |
-
// jQuery("input[type=radio][name=authy]").prop("checked", false);
|
217 |
-
// jQuery("input[type=radio][name=lastpass]").prop("checked", false);
|
218 |
-
// jQuery('#mo2f_change_app_name').show();
|
219 |
-
// jQuery('#links_to_apps').show();
|
220 |
-
// });
|
221 |
-
|
222 |
-
// jQuery('input[type=radio][name=authy]').click(function(){
|
223 |
-
// jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
224 |
-
// 'Get the Authy Authenticator App - <a href="https://play.google.com/store/apps/details?id=com.authy.authy" target="_blank"><b><?php //echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
225 |
-
// '<a href="https://itunes.apple.com/in/app/authy/id494168017" target="_blank"><b><?php// echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
226 |
-
// jQuery("input[type=radio][name=google]").prop("checked", false);
|
227 |
-
// jQuery("input[type=radio][name=lastpass]").prop("checked", false);
|
228 |
-
// jQuery('#mo2f_change_app_name').hide();
|
229 |
-
// jQuery('#step_number').html('2. ');
|
230 |
-
// jQuery('#links_to_apps').show();
|
231 |
-
// });
|
232 |
-
|
233 |
-
// jQuery('input[type=radio][name=lastpass]').click(function(){
|
234 |
-
// jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
235 |
-
// 'Get the LastPass Authenticator App - <a href="https://play.google.com/store/apps/details?id=com.lastpass.authenticator" target="_blank"><b><?php //echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
236 |
-
// '<a href="https://itunes.apple.com/in/app/lastpass-authenticator/id1079110004" target="_blank"><b><?php //echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
237 |
-
// jQuery("input[type=radio][name=authy]").prop("checked", false);
|
238 |
-
// jQuery("input[type=radio][name=google]").prop("checked", false);
|
239 |
-
// jQuery('#mo2f_change_app_name').show();
|
240 |
-
// jQuery('#step_number').html('3. ');
|
241 |
-
// jQuery('#links_to_apps').show();
|
242 |
-
// });
|
243 |
</script>
|
244 |
<?php
|
245 |
}
|
9 |
<table>
|
10 |
<tr>
|
11 |
<td class="mo2f_google_authy_step2">
|
12 |
+
<?php echo '<' . $h_size . '>' . mo2f_lt( 'Step-1: Set up Google/Authy/LastPass Authenticator' ) . '<span style="float:right">
|
13 |
+
<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/google-authenticator" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:26px;color:#269eb3;float: right;"></span></a>
|
14 |
+
|
15 |
+
<a href="https://www.youtube.com/watch?v=vVGXjedIaGs" target="_blank"><span class="dashicons dashicons-video-alt3" style="font-size:30px;color:red;float: right; margin-right: 16px;margin-top: -3px;"></span></a>
|
16 |
+
</span></' . $h_size . '>'; ?>
|
17 |
|
18 |
<hr>
|
19 |
|
23 |
|
24 |
<select id="authenticator_type">
|
25 |
<option value="google_authenticator">Google Authenticator</option>
|
26 |
+
<option value="msft_authenticator">Microsoft Authenticator</option>
|
27 |
<option value="authy_authenticator">Authy Authenticator</option>
|
28 |
<option value="last_pass_auth">LastPass Authenticator</option>
|
29 |
+
<option value="free_otp_auth">FreeOTP Authenticator</option>
|
30 |
+
<option value="duo_auth">Duo Mobile Authenticator</option>
|
31 |
</select>
|
32 |
</div>
|
33 |
|
161 |
|
162 |
jQuery(this).scrollTop(0);
|
163 |
// if(jQuery('input[type=radio][name=google]').is(':checked')){
|
164 |
+
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
165 |
+
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
166 |
+
'<a href="http://itunes.apple.com/us/app/google-authenticator/id388497605" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
167 |
+
jQuery('#mo2f_change_app_name').show();
|
168 |
+
jQuery('#links_to_apps').show();
|
169 |
// }
|
170 |
});
|
171 |
|
173 |
jQuery('#mo2f_configure_google_authy_form1').submit();
|
174 |
});
|
175 |
|
176 |
+
// jQuery('#links_to_apps').show();
|
177 |
+
// jQuery('#mo2f_change_app_name').hide();
|
178 |
+
// jQuery('#step_number').html('2. ');
|
179 |
|
180 |
|
181 |
jQuery('#authenticator_type').change(function(){
|
184 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
185 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
186 |
'<a href="http://itunes.apple.com/us/app/google-authenticator/id388497605" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
|
|
|
|
|
|
187 |
jQuery('#mo2f_change_app_name').show();
|
188 |
jQuery('#links_to_apps').show();
|
189 |
+
}else if(auth_type == 'msft_authenticator'){
|
190 |
+
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
191 |
+
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.azure.authenticator" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
192 |
+
'<a href="https://apps.apple.com/us/app/microsoft-authenticator/id983156458" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
193 |
+
jQuery('#links_to_apps').show();
|
194 |
+
}else if(auth_type == 'free_otp_auth'){
|
195 |
+
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
196 |
+
'Get the App - <a href="https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
197 |
+
'<a href="https://apps.apple.com/us/app/freeotp-authenticator/id872559395" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
198 |
+
jQuery('#links_to_apps').show();
|
199 |
+
}else if(auth_type == 'duo_auth'){
|
200 |
+
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
201 |
+
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.duosecurity.duomobile" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
202 |
+
'<a href="https://apps.apple.com/in/app/duo-mobile/id422663827" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
203 |
+
jQuery('#links_to_apps').show();
|
204 |
}else if(auth_type == 'authy_authenticator'){
|
205 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
206 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.authy.authy" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
207 |
'<a href="https://itunes.apple.com/in/app/authy/id494168017" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
|
|
|
|
|
|
|
|
208 |
jQuery('#links_to_apps').show();
|
209 |
}else{
|
210 |
jQuery('#links_to_apps').html('<p style="background-color:#e8e4e4;padding:5px;margin-left:40px;width:65%">' +
|
211 |
'Get the App - <a href="https://play.google.com/store/apps/details?id=com.lastpass.authenticator" target="_blank"><b><?php echo mo2f_lt( "Android Play Store" ); ?></b></a>, ' +
|
212 |
'<a href="https://itunes.apple.com/in/app/lastpass-authenticator/id1079110004" target="_blank"><b><?php echo mo2f_lt( "iOS App Store" ); ?>.</b> </p>');
|
|
|
|
|
213 |
jQuery('#mo2f_change_app_name').show();
|
|
|
214 |
jQuery('#links_to_apps').show();
|
215 |
}
|
216 |
});
|
217 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
</script>
|
219 |
<?php
|
220 |
}
|
{views → miniorange-2-factor-authentication/views}/twofa/setup/setup_kba_questions.php
RENAMED
@@ -156,7 +156,9 @@ function mo2f_configure_for_mobile_suppport_kba( $user ) {
|
|
156 |
|
157 |
?>
|
158 |
|
159 |
-
<h3><?php echo mo2f_lt( 'Configure Second Factor - KBA (Security Questions)' );
|
|
|
|
|
160 |
<hr/>
|
161 |
<form name="f" method="post" action="" id="mo2f_kba_setup_form">
|
162 |
<?php mo2f_configure_kba_questions(); ?>
|
156 |
|
157 |
?>
|
158 |
|
159 |
+
<h3><?php echo mo2f_lt( 'Configure Second Factor - KBA (Security Questions)' ); ?>
|
160 |
+
|
161 |
+
</h3>
|
162 |
<hr/>
|
163 |
<form name="f" method="post" action="" id="mo2f_kba_setup_form">
|
164 |
<?php mo2f_configure_kba_questions(); ?>
|
{views → miniorange-2-factor-authentication/views}/twofa/setup/setup_miniorange_authenticator.php
RENAMED
@@ -64,7 +64,9 @@ function mo2f_configure_miniorange_authenticator($user){?>
|
|
64 |
function download_instruction_for_mobile_app( $mobile_reg_status){ ?>
|
65 |
<div id="mo2f_app_div" class="mo_margin_left">
|
66 |
<a class="mo_app_link" data-toggle="collapse" href="#mo2f_sub_header_app" aria-expanded="false">
|
67 |
-
<h3 class="mo2f_authn_header"><?php echo mo2f_lt('Step-1 : Download the miniOrange');?> <span style="color: #F78701;"> <?php echo mo2f_lt('Authenticator');?></span> <?php echo mo2f_lt('App')
|
|
|
|
|
68 |
</a>
|
69 |
<hr class="mo_hr">
|
70 |
<div class="mo2f_collapse in" id="mo2f_sub_header_app">
|
64 |
function download_instruction_for_mobile_app( $mobile_reg_status){ ?>
|
65 |
<div id="mo2f_app_div" class="mo_margin_left">
|
66 |
<a class="mo_app_link" data-toggle="collapse" href="#mo2f_sub_header_app" aria-expanded="false">
|
67 |
+
<h3 class="mo2f_authn_header"><?php echo mo2f_lt('Step-1 : Download the miniOrange');?> <span style="color: #F78701;"> <?php echo mo2f_lt('Authenticator');?></span> <?php echo mo2f_lt('App');?>
|
68 |
+
|
69 |
+
</h3>
|
70 |
</a>
|
71 |
<hr class="mo_hr">
|
72 |
<div class="mo2f_collapse in" id="mo2f_sub_header_app">
|
{views → miniorange-2-factor-authentication/views}/twofa/setup/setup_otp_over_sms.php
RENAMED
@@ -7,7 +7,9 @@ function mo2f_configure_otp_over_sms( $user ) {
|
|
7 |
|
8 |
?>
|
9 |
|
10 |
-
<h3><?php echo mo2f_lt( 'Configure OTP over SMS' );
|
|
|
|
|
11 |
<hr>
|
12 |
<form name="f" method="post" action="" id="mo2f_verifyphone_form">
|
13 |
<input type="hidden" name="option" value="mo2f_configure_otp_over_sms_send_otp"/>
|
7 |
|
8 |
?>
|
9 |
|
10 |
+
<h3><?php echo mo2f_lt( 'Configure OTP over SMS' ); ?>
|
11 |
+
|
12 |
+
</h3>
|
13 |
<hr>
|
14 |
<form name="f" method="post" action="" id="mo2f_verifyphone_form">
|
15 |
<input type="hidden" name="option" value="mo2f_configure_otp_over_sms_send_otp"/>
|
{views → miniorange-2-factor-authentication/views}/twofa/setup_twofa.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_email_verification.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_google_authy_authenticator.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_kba_questions.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_miniorange_push_notification.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_miniorange_qrcode_authentication.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_miniorange_soft_token.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/test/test_twofa_otp_over_sms.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/two_fa.php
RENAMED
@@ -21,19 +21,22 @@ else
|
|
21 |
}
|
22 |
if(current_user_can('administrator'))
|
23 |
{
|
|
|
|
|
|
|
24 |
if( !get_option( 'mo2f_is_NC' ))
|
25 |
{
|
26 |
?>
|
|
|
27 |
<button class="tablinks" onclick="openTab2fa(this)" id="login_option_2fa">Login Option</button>
|
28 |
-
<button class="tablinks" onclick="openTab2fa(this)" id="custom_form_2fa">Login Form Integration</button>
|
29 |
<?php
|
30 |
}
|
31 |
else
|
32 |
{
|
33 |
?>
|
|
|
34 |
<button class="tablinks" onclick="openTab2fa(this)" id="rba_2fa">Remember Device</button>
|
35 |
<button class="tablinks" onclick="openTab2fa(this)" id="custom_login_2fa">Personalization</button>
|
36 |
-
<button class="tablinks" onclick="openTab2fa(this)" id="custom_form_2fa">Login Form Integration</button>
|
37 |
<button class="tablinks" onclick="openTab2fa(this)" id="shortcode_2fa">Shortcode</button>
|
38 |
<?php
|
39 |
}
|
@@ -65,8 +68,13 @@ else
|
|
65 |
mo2f_rba_description($mo2f_user_email);
|
66 |
else
|
67 |
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_rba.php';
|
68 |
-
?>
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
70 |
<div class="mo_wpns_divided_layout" id="custom_login_2fa_div">
|
71 |
<?php
|
72 |
if ( get_option( 'mo2f_personalization_installed' ) )
|
@@ -102,6 +110,7 @@ else
|
|
102 |
jQuery("#setup_2fa_div").css("display", "block");
|
103 |
jQuery("#upgrade_2fa_div").css("display" , "none");
|
104 |
jQuery("#rba_2fa_div").css("display", "none");
|
|
|
105 |
jQuery("#custom_login_2fa_div").css("display", "none");
|
106 |
jQuery("#shortcode_2fa_div").css("display", "none");
|
107 |
jQuery("#login_option_2fa_div").css("display", "none");
|
@@ -111,7 +120,7 @@ else
|
|
111 |
jQuery("#setup_2fa").addClass("active");
|
112 |
function openTab2fa(elmt){
|
113 |
var tabname = elmt.id;
|
114 |
-
var tabarray = ["setup_2fa","rba_2fa","custom_login_2fa","shortcode_2fa","login_option_2fa", "custom_form_2fa", "video_guide_2fa","unlimittedUser_2fa","upgrade_2fa"];
|
115 |
for (var i = 0; i < tabarray.length; i++) {
|
116 |
if(tabarray[i] == tabname){
|
117 |
jQuery("#"+tabarray[i]).addClass("active");
|
@@ -127,15 +136,19 @@ else
|
|
127 |
var is_onprem = '<?php echo MO2F_IS_ONPREM;?>';
|
128 |
if(tab == "setup_twofa"){
|
129 |
document.getElementById("setup_2fa").click();
|
130 |
-
}
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
|
|
|
|
|
|
|
|
139 |
else if(tab == "login_option_2fa"){
|
140 |
document.getElementById("login_option_2fa").click();
|
141 |
}
|
21 |
}
|
22 |
if(current_user_can('administrator'))
|
23 |
{
|
24 |
+
?>
|
25 |
+
<button class="tablinks" onclick="openTab2fa(this)" id="session_2fa">Session Control</button>
|
26 |
+
<?php
|
27 |
if( !get_option( 'mo2f_is_NC' ))
|
28 |
{
|
29 |
?>
|
30 |
+
<button class="tablinks" onclick="openTab2fa(this)" id="custom_form_2fa">Form Integration</button>
|
31 |
<button class="tablinks" onclick="openTab2fa(this)" id="login_option_2fa">Login Option</button>
|
|
|
32 |
<?php
|
33 |
}
|
34 |
else
|
35 |
{
|
36 |
?>
|
37 |
+
<button class="tablinks" onclick="openTab2fa(this)" id="custom_form_2fa">Form Integration</button>
|
38 |
<button class="tablinks" onclick="openTab2fa(this)" id="rba_2fa">Remember Device</button>
|
39 |
<button class="tablinks" onclick="openTab2fa(this)" id="custom_login_2fa">Personalization</button>
|
|
|
40 |
<button class="tablinks" onclick="openTab2fa(this)" id="shortcode_2fa">Shortcode</button>
|
41 |
<?php
|
42 |
}
|
68 |
mo2f_rba_description($mo2f_user_email);
|
69 |
else
|
70 |
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_rba.php';
|
71 |
+
?>
|
72 |
+
</div>
|
73 |
+
<div class="mo_wpns_divided_layout" id="session_2fa_div">
|
74 |
+
<?php
|
75 |
+
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_session_control.php';
|
76 |
+
?>
|
77 |
+
</div>
|
78 |
<div class="mo_wpns_divided_layout" id="custom_login_2fa_div">
|
79 |
<?php
|
80 |
if ( get_option( 'mo2f_personalization_installed' ) )
|
110 |
jQuery("#setup_2fa_div").css("display", "block");
|
111 |
jQuery("#upgrade_2fa_div").css("display" , "none");
|
112 |
jQuery("#rba_2fa_div").css("display", "none");
|
113 |
+
jQuery("#session_2fa_div").css("display", "none");
|
114 |
jQuery("#custom_login_2fa_div").css("display", "none");
|
115 |
jQuery("#shortcode_2fa_div").css("display", "none");
|
116 |
jQuery("#login_option_2fa_div").css("display", "none");
|
120 |
jQuery("#setup_2fa").addClass("active");
|
121 |
function openTab2fa(elmt){
|
122 |
var tabname = elmt.id;
|
123 |
+
var tabarray = ["setup_2fa","rba_2fa","session_2fa","custom_login_2fa","shortcode_2fa","login_option_2fa", "custom_form_2fa", "video_guide_2fa","unlimittedUser_2fa","upgrade_2fa"];
|
124 |
for (var i = 0; i < tabarray.length; i++) {
|
125 |
if(tabarray[i] == tabname){
|
126 |
jQuery("#"+tabarray[i]).addClass("active");
|
136 |
var is_onprem = '<?php echo MO2F_IS_ONPREM;?>';
|
137 |
if(tab == "setup_twofa"){
|
138 |
document.getElementById("setup_2fa").click();
|
139 |
+
}
|
140 |
+
else if(tab == "session_2fa"){
|
141 |
+
document.getElementById("session_2fa").click();
|
142 |
+
}
|
143 |
+
else if(tab == "rba_2fa"){
|
144 |
+
document.getElementById("rba_2fa").click();
|
145 |
+
}
|
146 |
+
else if(tab == "custom_login_2fa"){
|
147 |
+
document.getElementById("custom_login_2fa").click();
|
148 |
+
}
|
149 |
+
else if(tab == "shortcode_2fa"){
|
150 |
+
document.getElementById("shortcode_2fa").click();
|
151 |
+
}
|
152 |
else if(tab == "login_option_2fa"){
|
153 |
document.getElementById("login_option_2fa").click();
|
154 |
}
|
{views → miniorange-2-factor-authentication/views}/twofa/two_fa_addon.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/two_fa_custom_form.php
RENAMED
@@ -5,34 +5,45 @@
|
|
5 |
<div>
|
6 |
<table class="customloginform" style="width: 100%;" align="left">
|
7 |
<tr>
|
8 |
-
<th
|
9 |
Custom Login form
|
10 |
</th>
|
11 |
-
<th style="width:
|
12 |
Show 2FA prompt on Custom login
|
13 |
|
14 |
</th>
|
|
|
|
|
|
|
|
|
15 |
</tr>
|
16 |
<tr>
|
17 |
<td>
|
18 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/woocommerce.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit; padding-right: 50px;">Woocommerce</h3>
|
19 |
</td>
|
20 |
-
<td style="align-items: right;
|
21 |
<form id="woocommerce_login_prompt_form" method="post">
|
22 |
<div align="center">
|
23 |
-
<input type="checkbox" name="woocommerce_login_prompt" onchange="document.getElementById('woocommerce_login_prompt_form').submit();" <?php if(get_site_option('mo2f_woocommerce_login_prompt')){?> checked <?php } ?> <?php if(!get_site_option('mo2f_enable_2fa_prompt_on_login_page')){?>
|
24 |
</div>
|
25 |
<input type="hidden" name="option" value="woocommerce_disable_login_prompt">
|
26 |
|
27 |
</form>
|
28 |
</td>
|
|
|
|
|
|
|
|
|
|
|
29 |
</tr>
|
30 |
<tr>
|
31 |
<td>
|
32 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/ultimate_member.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Ultimate Member</h3>
|
33 |
</td>
|
34 |
<td style="text-align: center;">
|
35 |
-
<input type="checkbox" name=""
|
|
|
|
|
36 |
</td>
|
37 |
</tr>
|
38 |
<tr>
|
@@ -40,7 +51,9 @@
|
|
40 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/restrict_content_pro.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Restrict Content Pro</h3>
|
41 |
</td>
|
42 |
<td style="text-align: center;">
|
43 |
-
<input type="checkbox" name=""
|
|
|
|
|
44 |
</td>
|
45 |
</tr>
|
46 |
<tr>
|
@@ -48,7 +61,9 @@
|
|
48 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/theme_my_login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">My Theme Login</h3>
|
49 |
</td>
|
50 |
<td style="text-align: center;">
|
51 |
-
<input type="checkbox" name=""
|
|
|
|
|
52 |
</td>
|
53 |
</tr>
|
54 |
<tr>
|
@@ -56,7 +71,9 @@
|
|
56 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/user_registration.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">User Registration</h3>
|
57 |
</td>
|
58 |
<td style="text-align: center;">
|
59 |
-
<input type="checkbox" name=""
|
|
|
|
|
60 |
</td>
|
61 |
</tr>
|
62 |
<tr>
|
@@ -64,7 +81,9 @@
|
|
64 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/Custom_Login_Page_Customizer_LoginPress.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Custom Login Page Customizer | LoginPress</h3>
|
65 |
</td>
|
66 |
<td style="text-align: center;">
|
67 |
-
<input type="checkbox" name=""
|
|
|
|
|
68 |
</td>
|
69 |
</tr>
|
70 |
<tr>
|
@@ -72,7 +91,9 @@
|
|
72 |
<?php echo '<img style="width:30px; height:30px;display: inline;float: left;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/Admin_Custom_Login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Admin Custom Login</h3>
|
73 |
</td>
|
74 |
<td style="text-align: center;">
|
75 |
-
<input type="checkbox" name=""
|
|
|
|
|
76 |
</td>
|
77 |
</tr>
|
78 |
<tr>
|
@@ -80,7 +101,9 @@
|
|
80 |
<?php echo '<img style="width:30px; height:30px;display: inline;float: left;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/RegistrationMagic_Custom_Registration_Forms_and_User_Login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">RegistrationMagic – Custom Registration Forms and User Login</h3>
|
81 |
</td>
|
82 |
<td style="text-align: center; ">
|
83 |
-
<input type="checkbox" name=""
|
|
|
|
|
84 |
</td>
|
85 |
</tr>
|
86 |
|
5 |
<div>
|
6 |
<table class="customloginform" style="width: 100%;" align="left">
|
7 |
<tr>
|
8 |
+
<th style="width: 65%">
|
9 |
Custom Login form
|
10 |
</th>
|
11 |
+
<th style="width: 22%">
|
12 |
Show 2FA prompt on Custom login
|
13 |
|
14 |
</th>
|
15 |
+
<th style="width: 13%">
|
16 |
+
Documents
|
17 |
+
|
18 |
+
</th>
|
19 |
</tr>
|
20 |
<tr>
|
21 |
<td>
|
22 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/woocommerce.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit; padding-right: 50px;">Woocommerce</h3>
|
23 |
</td>
|
24 |
+
<td style="align-items: right;">
|
25 |
<form id="woocommerce_login_prompt_form" method="post">
|
26 |
<div align="center">
|
27 |
+
<input type="checkbox" name="woocommerce_login_prompt" onchange="document.getElementById('woocommerce_login_prompt_form').submit();" <?php if(get_site_option('mo2f_woocommerce_login_prompt')){?> checked <?php } ?> <?php if(!get_site_option('mo2f_enable_2fa_prompt_on_login_page')){?> checked <?php } ?>/>
|
28 |
</div>
|
29 |
<input type="hidden" name="option" value="woocommerce_disable_login_prompt">
|
30 |
|
31 |
</form>
|
32 |
</td>
|
33 |
+
<td>
|
34 |
+
<div style="text-align: center;">
|
35 |
+
<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/setup-custom-login-form" target="blank"><span class="dashicons dashicons-text-page mo2f_doc_icon_style" style="font-size: 25px;color: #199C95"></span></a>
|
36 |
+
</div>
|
37 |
+
</td>
|
38 |
</tr>
|
39 |
<tr>
|
40 |
<td>
|
41 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/ultimate_member.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Ultimate Member</h3>
|
42 |
</td>
|
43 |
<td style="text-align: center;">
|
44 |
+
<input type="checkbox" name="" checked>
|
45 |
+
</td>
|
46 |
+
<td>
|
47 |
</td>
|
48 |
</tr>
|
49 |
<tr>
|
51 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/restrict_content_pro.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Restrict Content Pro</h3>
|
52 |
</td>
|
53 |
<td style="text-align: center;">
|
54 |
+
<input type="checkbox" name="" checked>
|
55 |
+
</td>
|
56 |
+
<td>
|
57 |
</td>
|
58 |
</tr>
|
59 |
<tr>
|
61 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/theme_my_login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">My Theme Login</h3>
|
62 |
</td>
|
63 |
<td style="text-align: center;">
|
64 |
+
<input type="checkbox" name="" checked>
|
65 |
+
</td>
|
66 |
+
<td>
|
67 |
</td>
|
68 |
</tr>
|
69 |
<tr>
|
71 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/user_registration.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">User Registration</h3>
|
72 |
</td>
|
73 |
<td style="text-align: center;">
|
74 |
+
<input type="checkbox" name="" checked>
|
75 |
+
</td>
|
76 |
+
<td>
|
77 |
</td>
|
78 |
</tr>
|
79 |
<tr>
|
81 |
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/Custom_Login_Page_Customizer_LoginPress.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Custom Login Page Customizer | LoginPress</h3>
|
82 |
</td>
|
83 |
<td style="text-align: center;">
|
84 |
+
<input type="checkbox" name="" checked>
|
85 |
+
</td>
|
86 |
+
<td>
|
87 |
</td>
|
88 |
</tr>
|
89 |
<tr>
|
91 |
<?php echo '<img style="width:30px; height:30px;display: inline;float: left;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/Admin_Custom_Login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Admin Custom Login</h3>
|
92 |
</td>
|
93 |
<td style="text-align: center;">
|
94 |
+
<input type="checkbox" name="" checked>
|
95 |
+
</td>
|
96 |
+
<td>
|
97 |
</td>
|
98 |
</tr>
|
99 |
<tr>
|
101 |
<?php echo '<img style="width:30px; height:30px;display: inline;float: left;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/RegistrationMagic_Custom_Registration_Forms_and_User_Login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">RegistrationMagic – Custom Registration Forms and User Login</h3>
|
102 |
</td>
|
103 |
<td style="text-align: center; ">
|
104 |
+
<input type="checkbox" name="" checked>
|
105 |
+
</td>
|
106 |
+
<td>
|
107 |
</td>
|
108 |
</tr>
|
109 |
|
{views → miniorange-2-factor-authentication/views}/twofa/two_fa_custom_login.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/two_fa_login_option.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/two_fa_rba.php
RENAMED
File without changes
|
miniorange-2-factor-authentication/views/twofa/two_fa_session_control.php
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="mo_wpns_setting_layout">
|
2 |
+
<div>
|
3 |
+
<table style="width:100%">
|
4 |
+
<tr>
|
5 |
+
<th align="left">
|
6 |
+
<h3>User Session Control: <?php echo '<a href="'.$upgrade_url .'" style="color: red">'; ?>[ PREMIUM ]</a>
|
7 |
+
<br>
|
8 |
+
<p><i class="mo_wpns_not_bold">This will help you limit the number of simultaneous sessions for your users. You can decide to allow access to the new session after limit is reached and destroy all other sessions or block access to the new session when the limit is reached.</i></p>
|
9 |
+
</h3>
|
10 |
+
</th>
|
11 |
+
<th align="right">
|
12 |
+
<label class='mo_wpns_switch'>
|
13 |
+
<input type=checkbox/>
|
14 |
+
<span class='mo_wpns_slider mo_wpns_round'></span>
|
15 |
+
</label>
|
16 |
+
</th>
|
17 |
+
</tr>
|
18 |
+
</table>
|
19 |
+
</div>
|
20 |
+
<br>
|
21 |
+
<div>
|
22 |
+
<h3>Number of Sessions
|
23 |
+
<input type="text" name="">
|
24 |
+
</h3>
|
25 |
+
</div>
|
26 |
+
<br>
|
27 |
+
<div>
|
28 |
+
<input type="radio" name="mo2f_allow_access" id="mo2f_allow_access" value="allow" checked>Allow access
|
29 |
+
<input type="radio" name="mo2f_allow_access" id="mo2f_block_access" value="block">Block Access
|
30 |
+
</div>
|
31 |
+
|
32 |
+
<hr>
|
33 |
+
<div>
|
34 |
+
<table style="width:100%">
|
35 |
+
<tr>
|
36 |
+
<th align="left">
|
37 |
+
<h3>Idle Session: <?php echo '<a href="'.$upgrade_url .'" style="color: red">'; ?>[ PREMIUM ]</a>
|
38 |
+
<br>
|
39 |
+
<p><i class="mo_wpns_not_bold">This will allow you to logout a Wordpress user who was inactive for a period of time. You can set the amount of hours after which you want to logout the inactive user.</i></p>
|
40 |
+
</h3>
|
41 |
+
</th>
|
42 |
+
<th align="right">
|
43 |
+
<label class='mo_wpns_switch'>
|
44 |
+
<input type=checkbox/>
|
45 |
+
<span class='mo_wpns_slider mo_wpns_round'></span>
|
46 |
+
</label>
|
47 |
+
</th>
|
48 |
+
</tr>
|
49 |
+
</table>
|
50 |
+
</div>
|
51 |
+
<br>
|
52 |
+
<div>
|
53 |
+
<h3>Number of Hours
|
54 |
+
<input type="text" name="">
|
55 |
+
</h3>
|
56 |
+
</div>
|
57 |
+
|
58 |
+
<hr>
|
59 |
+
<div>
|
60 |
+
<table style="width:100%">
|
61 |
+
<tr>
|
62 |
+
<th align="left">
|
63 |
+
<h3>Set Session TIme: <?php echo '<a href="'.$upgrade_url .'" style="color: red">'; ?>[ PREMIUM ]</a>
|
64 |
+
<br>
|
65 |
+
<p><i class="mo_wpns_not_bold">This will allow you to set a time limit on the user's session. After that time, the user would be logged out and will be required to login again.</i></p>
|
66 |
+
</h3>
|
67 |
+
</th>
|
68 |
+
<th align="right">
|
69 |
+
<label class='mo_wpns_switch'>
|
70 |
+
<input type=checkbox/>
|
71 |
+
<span class='mo_wpns_slider mo_wpns_round'></span>
|
72 |
+
</label>
|
73 |
+
</th>
|
74 |
+
</tr>
|
75 |
+
</table>
|
76 |
+
</div>
|
77 |
+
<br>
|
78 |
+
<div>
|
79 |
+
<h3>Number of Hours
|
80 |
+
<input type="text" name="">
|
81 |
+
</h3>
|
82 |
+
</div>
|
83 |
+
<hr>
|
84 |
+
<center>
|
85 |
+
<button type="submit" class="mo_wpns_button mo_wpns_button1">Save Settings</button>
|
86 |
+
</center>
|
87 |
+
</div>
|
{views → miniorange-2-factor-authentication/views}/twofa/two_fa_setup_notification.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/two_fa_shortcode.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/two_fa_unlimittedUser.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/twofa/two_fa_video_guide.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/upgrade.php
RENAMED
@@ -7,6 +7,17 @@
|
|
7 |
if ($_GET['page'] == 'mo_2fa_upgrade') {
|
8 |
?><br><br><?php
|
9 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
?>
|
11 |
<div class="mo_upgrade_toggle">
|
12 |
<p class="mo_upgrade_toggle_2fa">
|
@@ -26,6 +37,11 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
26 |
<label for="Recharge" class="mo_upgrade_toggle_2fa_lable" id="mo_ns_licensing_plans_title">Website Security</label>
|
27 |
<label for="Recharge" class="mo_upgrade_toggle_2fa_lable" id="mo_ns_licensing_plans_title1" style="background-color: #20b2aa;border-radius: 50em;display: none;">Website Security</label>
|
28 |
|
|
|
|
|
|
|
|
|
|
|
29 |
<span class="cd-switch"></span>
|
30 |
</p>
|
31 |
</div>
|
@@ -83,9 +99,8 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
83 |
|
84 |
<?php echo mo2f_yearly_standard_pricing_plan(); ?>
|
85 |
<?php echo mo2f_sms_cost();?>
|
|
|
86 |
</center>
|
87 |
-
|
88 |
-
<br>
|
89 |
<div style="text-align: center;">
|
90 |
<?php if( $is_customer_registered) {
|
91 |
?>
|
@@ -123,8 +138,8 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
123 |
|
124 |
<?php echo mo2f_yearly_premium_pricing_plan(); ?>
|
125 |
<?php echo mo2f_sms_cost();?>
|
|
|
126 |
</center>
|
127 |
-
<br>
|
128 |
<div style="text-align: center;">
|
129 |
<?php if( $is_customer_registered) {
|
130 |
?>
|
@@ -154,7 +169,7 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
154 |
Multi-Site Support<br>
|
155 |
Additional 2FA methods<br>
|
156 |
Prevent Account Sharing<br>
|
157 |
-
Login and File Protection
|
158 |
</h4>
|
159 |
</center>
|
160 |
<div class="mo_wpns_upgrade_page_2fa_background">
|
@@ -163,9 +178,9 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
163 |
<h1 class="mo_wpns_upgrade_pade_pricing">$59</h1>
|
164 |
<?php echo mo2f_yearly_all_inclusive_pricing_plan(); ?>
|
165 |
<?php echo mo2f_sms_cost();?>
|
|
|
166 |
</center>
|
167 |
|
168 |
-
<br>
|
169 |
<div style="text-align: center;">
|
170 |
<?php if( $is_customer_registered) {
|
171 |
?>
|
@@ -239,10 +254,9 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
239 |
<h1 class="mo_wpns_upgrade_pade_pricing">$49</h1>
|
240 |
|
241 |
<?php echo mo2f_yearly_standard_pricing_onpremise(); ?>
|
242 |
-
<?php echo
|
243 |
</center>
|
244 |
|
245 |
-
<br>
|
246 |
<div style="text-align: center;">
|
247 |
<?php if( $is_customer_registered) {
|
248 |
?>
|
@@ -279,9 +293,8 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
279 |
<h1 class="mo_wpns_upgrade_pade_pricing">$99</h1>
|
280 |
|
281 |
<?php echo mo2f_yearly_premium_pricing_onpremise(); ?>
|
282 |
-
<?php echo
|
283 |
</center>
|
284 |
-
<br>
|
285 |
<div style="text-align: center;">
|
286 |
<?php if( $is_customer_registered) {
|
287 |
?>
|
@@ -298,10 +311,45 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
298 |
</div>
|
299 |
</div>
|
300 |
<div class="mo_wpns_upgrade_page_space_in_div"></div>
|
301 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
302 |
<div class="mo_wpns_upgrade_page_space_in_div"></div>
|
303 |
<div style="width: 96%; min-height: 60px;background-color: white;float: left;border-bottom: 2px solid #2ba29b; text-align: center;">
|
304 |
-
<
|
|
|
|
|
|
|
305 |
</div>
|
306 |
</div>
|
307 |
|
@@ -345,9 +393,9 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
345 |
?>
|
346 |
</div>
|
347 |
<h1 class="mo_wpns_upgrade_page_2fa_ns_1"> Website Security Plans</h1></div>
|
348 |
-
<div class="
|
349 |
<div class="mo_wpns_upgrade_page_title_name">
|
350 |
-
<h1 style="margin-top: 0%;padding: 10% 0% 0% 0%; color: white;font-size:
|
351 |
WAF</h1><hr class="mo_wpns_upgrade_page_hr"></div>
|
352 |
<div><center><b>
|
353 |
<ul>
|
@@ -383,9 +431,9 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
383 |
</div></div>
|
384 |
</div>
|
385 |
<div class="mo_wpns_upgrade_page_space_in_div"></div>
|
386 |
-
<div class="
|
387 |
<div class="mo_wpns_upgrade_page_title_name">
|
388 |
-
<h1 style="margin-top: 0%;padding: 10% 0% 0% 0%; color: white;font-size:
|
389 |
Login and Spam</h1><hr class="mo_wpns_upgrade_page_hr"></div>
|
390 |
<div><center><b>
|
391 |
<ul>
|
@@ -423,9 +471,9 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
423 |
|
424 |
</div>
|
425 |
<div class="mo_wpns_upgrade_page_space_in_div"></div>
|
426 |
-
<div class="
|
427 |
<div class="mo_wpns_upgrade_page_title_name">
|
428 |
-
<h1 style="margin-top: 0%;padding: 10% 0% 0% 0%; color: white;font-size:
|
429 |
Malware Scanner</h1><hr class="mo_wpns_upgrade_page_hr"></div>
|
430 |
<div><center><b>
|
431 |
<ul>
|
@@ -462,9 +510,9 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
462 |
</div>
|
463 |
</div>
|
464 |
<div class="mo_wpns_upgrade_page_space_in_div"></div>
|
465 |
-
<div class="
|
466 |
<div class="mo_wpns_upgrade_page_title_name">
|
467 |
-
<h1 style="margin-top: 0%;padding: 10% 0% 0% 0%; color: white;font-size:
|
468 |
Encrypted Backup</h1><hr class="mo_wpns_upgrade_page_hr"></div>
|
469 |
<div><center><b>
|
470 |
<ul>
|
@@ -499,6 +547,233 @@ if ($_GET['page'] == 'mo_2fa_upgrade') {
|
|
499 |
?>
|
500 |
|
501 |
</div></div></div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
502 |
</div>
|
503 |
<div id="mo2f_payment_option" class="mo_wpns_setting_layout" style="margin-top: 1%;width: 93.5%;margin-left: 0%;">
|
504 |
<div>
|
@@ -629,6 +904,30 @@ function mo2f_sms_cost() {
|
|
629 |
|
630 |
<?php
|
631 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
632 |
function mo2f_yearly_standard_pricing_plan() {
|
633 |
?>
|
634 |
|
@@ -718,6 +1017,19 @@ function mo2f_yearly_standard_pricing_onpremise() {
|
|
718 |
</p>
|
719 |
<?php
|
720 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
721 |
function mo2f_waf_yearly_standard_pricing() {
|
722 |
?>
|
723 |
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
@@ -778,6 +1090,14 @@ function mo2f_scanner_yearly_standard_pricing() {
|
|
778 |
<div><br></div>
|
779 |
<?php
|
780 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
781 |
?>
|
782 |
|
783 |
<script type="text/javascript">
|
@@ -790,23 +1110,40 @@ function wpns_pricing()
|
|
790 |
|
791 |
<script type="text/javascript">
|
792 |
|
793 |
-
|
794 |
-
|
795 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
796 |
|
797 |
-
|
798 |
-
|
|
|
|
|
799 |
|
800 |
-
|
|
|
|
|
|
|
801 |
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
|
806 |
-
|
807 |
-
|
808 |
|
809 |
-
|
810 |
function mo2f_payment_option()
|
811 |
{
|
812 |
document.getElementById('mo2f_payment_option').scrollIntoView();
|
@@ -838,19 +1175,24 @@ function wpns_pricing()
|
|
838 |
document.getElementById('mo_2fa_features_only').style.display = "none";
|
839 |
document.getElementById('mo_ns_features_only').style.display = "none";
|
840 |
document.getElementById('mo2f_features_id').style.display = "none";
|
|
|
841 |
document.getElementById('mo2f_2fa_lite_features_id').style.display = "block";
|
842 |
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "none";
|
843 |
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "block";
|
844 |
document.getElementById('mo_ns_licensing_plans_title').style.display = "block";
|
845 |
document.getElementById('mo_ns_licensing_plans_title1').style.display = "none";
|
846 |
document.getElementById('mo_2fa_licensing_plans_title').style.display = "block";
|
847 |
-
document.getElementById('mo_2fa_licensing_plans_title1').style.display = "none";
|
|
|
|
|
|
|
848 |
}
|
849 |
function mo_2fa_show_plans()
|
850 |
{
|
851 |
document.getElementById('mo_2fa_features_only').style.display = "block";
|
852 |
document.getElementById('mo_ns_features_only').style.display = "none";
|
853 |
document.getElementById('mo2f_features_id').style.display = "block";
|
|
|
854 |
document.getElementById('mo2f_2fa_lite_features_id').style.display = "none";
|
855 |
document.getElementById('mo_2fa_lite_features_only').style.display = "none";
|
856 |
document.getElementById('mo_ns_licensing_plans_title').style.display = "block";
|
@@ -858,13 +1200,17 @@ function wpns_pricing()
|
|
858 |
document.getElementById('mo_2fa_licensing_plans_title').style.display = "none";
|
859 |
document.getElementById('mo_2fa_licensing_plans_title1').style.display = "block";
|
860 |
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "block";
|
861 |
-
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "none";
|
|
|
|
|
|
|
862 |
}
|
863 |
function mo_ns_show_plans()
|
864 |
{
|
865 |
document.getElementById('mo_2fa_features_only').style.display = "none";
|
866 |
document.getElementById('mo_ns_features_only').style.display = "block";
|
867 |
document.getElementById('mo2f_features_id').style.display = "none";
|
|
|
868 |
document.getElementById('mo2f_2fa_lite_features_id').style.display = "none";
|
869 |
document.getElementById('mo_2fa_lite_features_only').style.display = "none";
|
870 |
document.getElementById('mo_2fa_licensing_plans_title').style.display = "block";
|
@@ -873,5 +1219,26 @@ function wpns_pricing()
|
|
873 |
document.getElementById('mo_ns_licensing_plans_title').style.display = "none";
|
874 |
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "block";
|
875 |
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "none";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
876 |
}
|
877 |
</script>
|
7 |
if ($_GET['page'] == 'mo_2fa_upgrade') {
|
8 |
?><br><br><?php
|
9 |
}
|
10 |
+
$mo2f_feature_description_set_addon = array(
|
11 |
+
"This will allow you to set a time limit on the user's session. After that time, the user would be logged out.",
|
12 |
+
"Sharing passwords will not work. Only one user will be able to login from one account.",
|
13 |
+
"Admin can set the number of allowed deivces per user to login.",
|
14 |
+
"This will allow you to logout a Wordpress user who was inactive for a period of time.",
|
15 |
+
"Set a fixed time per user session and force log out after that time irrespective of user activity.",
|
16 |
+
"Admins can decide the number of active sessions for a particular account. Limiting active sessions prevents friends and family share and access website at the same time.",
|
17 |
+
"Users login with Email without worrying for passwords. It only works with 2fa.",
|
18 |
+
"You can login with your phone number, OTP will send on your mobile phone, you can skip password for login.",
|
19 |
+
"You can login with your username, you can skip password for login.",
|
20 |
+
);
|
21 |
?>
|
22 |
<div class="mo_upgrade_toggle">
|
23 |
<p class="mo_upgrade_toggle_2fa">
|
37 |
<label for="Recharge" class="mo_upgrade_toggle_2fa_lable" id="mo_ns_licensing_plans_title">Website Security</label>
|
38 |
<label for="Recharge" class="mo_upgrade_toggle_2fa_lable" id="mo_ns_licensing_plans_title1" style="background-color: #20b2aa;border-radius: 50em;display: none;">Website Security</label>
|
39 |
|
40 |
+
<input type="radio" name="sitetype" value="mo_addon" id="mo_addon" onclick="mo_addon_show_plans(); " style="display: none;" >
|
41 |
+
|
42 |
+
<label for="mo_addon" class="mo_upgrade_toggle_2fa_lable" id="mo_addon_licensing_plans_title" style="background-color: #20b2aa;border-radius: 50em;display: none;">Addons</label>
|
43 |
+
<label for="mo_addon" class="mo_upgrade_toggle_2fa_lable" id="mo_addon_licensing_plans_title1">Addons</label>
|
44 |
+
|
45 |
<span class="cd-switch"></span>
|
46 |
</p>
|
47 |
</div>
|
99 |
|
100 |
<?php echo mo2f_yearly_standard_pricing_plan(); ?>
|
101 |
<?php echo mo2f_sms_cost();?>
|
102 |
+
<?php echo mo2f_supported_forms();?>
|
103 |
</center>
|
|
|
|
|
104 |
<div style="text-align: center;">
|
105 |
<?php if( $is_customer_registered) {
|
106 |
?>
|
138 |
|
139 |
<?php echo mo2f_yearly_premium_pricing_plan(); ?>
|
140 |
<?php echo mo2f_sms_cost();?>
|
141 |
+
<?php echo mo2f_supported_forms();?>
|
142 |
</center>
|
|
|
143 |
<div style="text-align: center;">
|
144 |
<?php if( $is_customer_registered) {
|
145 |
?>
|
169 |
Multi-Site Support<br>
|
170 |
Additional 2FA methods<br>
|
171 |
Prevent Account Sharing<br>
|
172 |
+
Login and File Protection<br>
|
173 |
</h4>
|
174 |
</center>
|
175 |
<div class="mo_wpns_upgrade_page_2fa_background">
|
178 |
<h1 class="mo_wpns_upgrade_pade_pricing">$59</h1>
|
179 |
<?php echo mo2f_yearly_all_inclusive_pricing_plan(); ?>
|
180 |
<?php echo mo2f_sms_cost();?>
|
181 |
+
<?php echo mo2f_supported_forms();?>
|
182 |
</center>
|
183 |
|
|
|
184 |
<div style="text-align: center;">
|
185 |
<?php if( $is_customer_registered) {
|
186 |
?>
|
254 |
<h1 class="mo_wpns_upgrade_pade_pricing">$49</h1>
|
255 |
|
256 |
<?php echo mo2f_yearly_standard_pricing_onpremise(); ?>
|
257 |
+
<?php echo mo2f_supported_forms();?>
|
258 |
</center>
|
259 |
|
|
|
260 |
<div style="text-align: center;">
|
261 |
<?php if( $is_customer_registered) {
|
262 |
?>
|
293 |
<h1 class="mo_wpns_upgrade_pade_pricing">$99</h1>
|
294 |
|
295 |
<?php echo mo2f_yearly_premium_pricing_onpremise(); ?>
|
296 |
+
<?php echo mo2f_supported_forms();?>
|
297 |
</center>
|
|
|
298 |
<div style="text-align: center;">
|
299 |
<?php if( $is_customer_registered) {
|
300 |
?>
|
311 |
</div>
|
312 |
</div>
|
313 |
<div class="mo_wpns_upgrade_page_space_in_div"></div>
|
314 |
+
<div class="mo_wpns_upgrade_title_2fa_lite" >
|
315 |
+
<div class="mo_wpns_upgrade_page_title_name">
|
316 |
+
<h1 class="mo_wpns_upgrade_page_2fa_integration_plan_name">Custom Forms</h1>
|
317 |
+
<hr class="mo_wpns_upgrade_page_hr">
|
318 |
+
</div>
|
319 |
+
<center>
|
320 |
+
<h4>
|
321 |
+
Unlimited Users<br>
|
322 |
+
Multi-Site Support<br>
|
323 |
+
2FA on login page<br>
|
324 |
+
2FA on registration page<br>
|
325 |
+
|
326 |
+
</h4>
|
327 |
+
</center>
|
328 |
+
<div class="mo_wpns_upgrade_page_2fa_lite_background">
|
329 |
+
<center>
|
330 |
+
<h4 class="mo_wpns_upgrade_page_starting_price">Starting From</h4>
|
331 |
+
<h1 class="mo_wpns_upgrade_pade_pricing">$120</h1>
|
332 |
+
|
333 |
+
<?php echo mo2f_yearly_custom_login_forms_pricing(); ?>
|
334 |
+
<?php echo mo2f_supported_forms();?>
|
335 |
+
</center>
|
336 |
+
<div style="text-align: center;">
|
337 |
+
<button class="mo_wpns_button mo_wpns_button1 mo_wpns_upgrade_page_button" href="mailto:2fasupport@xecurify.com">Contact Us</button>
|
338 |
+
|
339 |
+
<?php
|
340 |
+
mo2f_payment_option_ui();
|
341 |
+
?>
|
342 |
+
|
343 |
+
|
344 |
+
</div>
|
345 |
+
</div>
|
346 |
+
</div>
|
347 |
<div class="mo_wpns_upgrade_page_space_in_div"></div>
|
348 |
<div style="width: 96%; min-height: 60px;background-color: white;float: left;border-bottom: 2px solid #2ba29b; text-align: center;">
|
349 |
+
<br>
|
350 |
+
<a id= "mo2f_show_2fa_lite_features" class="mo_wpns_upgrade_page_show_feature" onclick="mo2fa_show_2fa_lite_detail_features()"><span style="font-size: 63%;"><u>Hide Features</u></span></a>
|
351 |
+
<a id= "mo2f_hide_2fa_lite_features" class="mo_wpns_upgrade_page_hide_feature" onclick="mo2fa_show_hide_lite_detail_features()"><span style="font-size: 63%;"><u>Show more Features</u></span></a>
|
352 |
+
<br>
|
353 |
</div>
|
354 |
</div>
|
355 |
|
393 |
?>
|
394 |
</div>
|
395 |
<h1 class="mo_wpns_upgrade_page_2fa_ns_1"> Website Security Plans</h1></div>
|
396 |
+
<div class="mo_wpns_upgrade_security_title" >
|
397 |
<div class="mo_wpns_upgrade_page_title_name">
|
398 |
+
<h1 style="margin-top: 0%;padding: 10% 0% 0% 0%; color: white;font-size: 200%;">
|
399 |
WAF</h1><hr class="mo_wpns_upgrade_page_hr"></div>
|
400 |
<div><center><b>
|
401 |
<ul>
|
431 |
</div></div>
|
432 |
</div>
|
433 |
<div class="mo_wpns_upgrade_page_space_in_div"></div>
|
434 |
+
<div class="mo_wpns_upgrade_security_title" >
|
435 |
<div class="mo_wpns_upgrade_page_title_name">
|
436 |
+
<h1 style="margin-top: 0%;padding: 10% 0% 0% 0%; color: white;font-size: 200%;">
|
437 |
Login and Spam</h1><hr class="mo_wpns_upgrade_page_hr"></div>
|
438 |
<div><center><b>
|
439 |
<ul>
|
471 |
|
472 |
</div>
|
473 |
<div class="mo_wpns_upgrade_page_space_in_div"></div>
|
474 |
+
<div class="mo_wpns_upgrade_security_title" >
|
475 |
<div class="mo_wpns_upgrade_page_title_name">
|
476 |
+
<h1 style="margin-top: 0%;padding: 10% 0% 0% 0%; color: white;font-size: 200%;">
|
477 |
Malware Scanner</h1><hr class="mo_wpns_upgrade_page_hr"></div>
|
478 |
<div><center><b>
|
479 |
<ul>
|
510 |
</div>
|
511 |
</div>
|
512 |
<div class="mo_wpns_upgrade_page_space_in_div"></div>
|
513 |
+
<div class="mo_wpns_upgrade_security_title" >
|
514 |
<div class="mo_wpns_upgrade_page_title_name">
|
515 |
+
<h1 style="margin-top: 0%;padding: 10% 0% 0% 0%; color: white;font-size: 200%;">
|
516 |
Encrypted Backup</h1><hr class="mo_wpns_upgrade_page_hr"></div>
|
517 |
<div><center><b>
|
518 |
<ul>
|
547 |
?>
|
548 |
|
549 |
</div></div></div>
|
550 |
+
</div>
|
551 |
+
<div id="mo_addon_features_only" style="display: none;">
|
552 |
+
<div id="mo2f_payment_option" style="margin-top: -2%;width: 93.5%;margin-left: 0%;border: none;box-shadow: none;background: none; padding: 5px 20px 30px 20px;">
|
553 |
+
<div>
|
554 |
+
<div class="mo_2fa_container">
|
555 |
+
<div class="mo_2fa_card-deck">
|
556 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;
|
557 |
+
background-color: white;width: 30%;margin: 10px;">
|
558 |
+
<div class="mo_2fa_Card-header">
|
559 |
+
<h3>Learning Management System / Online Courses</h3>
|
560 |
+
</div>
|
561 |
+
<hr>
|
562 |
+
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
563 |
+
<h4>
|
564 |
+
<span>Session Handling</span>
|
565 |
+
<?php echo mo2f_addon_features_on_hover($mo2f_feature_description_set_addon[0]);?>
|
566 |
+
|
567 |
+
<br>
|
568 |
+
<span>Prevent Account Sharing</span>
|
569 |
+
<?php echo mo2f_addon_features_on_hover($mo2f_feature_description_set_addon[1]);?>
|
570 |
+
<br>
|
571 |
+
<span>Restrict no of device per user</span>
|
572 |
+
<?php echo mo2f_addon_features_on_hover($mo2f_feature_description_set_addon[2]);?>
|
573 |
+
</h4>
|
574 |
+
</div>
|
575 |
+
<hr>
|
576 |
+
<div style="text-align: center;">
|
577 |
+
<b><a href="mailto:2fasupport@xecurify.com" class = "mo_wpns_button mo_wpns_button1 "><i>Contact Us</i></a></b>
|
578 |
+
</div><br>
|
579 |
+
</div>
|
580 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;
|
581 |
+
background-color: white;width: 30%;margin: 10px;">
|
582 |
+
<div class="mo_2fa_Card-header">
|
583 |
+
<h3>User Session Control</h3>
|
584 |
+
</div>
|
585 |
+
<hr>
|
586 |
+
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
587 |
+
|
588 |
+
<h4>
|
589 |
+
<span>Idle Session Control</span>
|
590 |
+
<?php echo mo2f_addon_features_on_hover($mo2f_feature_description_set_addon[3]);?>
|
591 |
+
<br>
|
592 |
+
<span>User Session Timeout</span>
|
593 |
+
<?php echo mo2f_addon_features_on_hover($mo2f_feature_description_set_addon[4]);?>
|
594 |
+
<br>
|
595 |
+
<span>Limit Simultaneous Session</span>
|
596 |
+
<?php echo mo2f_addon_features_on_hover($mo2f_feature_description_set_addon[5]);?>
|
597 |
+
</h4>
|
598 |
+
</div>
|
599 |
+
<hr>
|
600 |
+
<div style="text-align: center;">
|
601 |
+
<b><a href="mailto:2fasupport@xecurify.com" class = "mo_wpns_button mo_wpns_button1 "><i>Contact Us</i></a></b>
|
602 |
+
</div><br>
|
603 |
+
</div>
|
604 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;background-color: white;width: 30%;margin: 10px;">
|
605 |
+
<div class="mo_2fa_Card-header">
|
606 |
+
<h3>Password-Less Login</h3>
|
607 |
+
</div>
|
608 |
+
<hr>
|
609 |
+
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
610 |
+
<h4>
|
611 |
+
<span>Login with email only</span>
|
612 |
+
<?php echo mo2f_addon_features_on_hover($mo2f_feature_description_set_addon[6]);?>
|
613 |
+
<br>
|
614 |
+
<span>Login with Phone only</span>
|
615 |
+
<?php echo mo2f_addon_features_on_hover($mo2f_feature_description_set_addon[7]);?>
|
616 |
+
<br>
|
617 |
+
<span>Login with username only</span>
|
618 |
+
<?php echo mo2f_addon_features_on_hover($mo2f_feature_description_set_addon[8]);?>
|
619 |
+
</h4>
|
620 |
+
</div><hr>
|
621 |
+
<div style="text-align: center;">
|
622 |
+
<b><a href="mailto:2fasupport@xecurify.com" class = "mo_wpns_button mo_wpns_button1 "><i>Contact Us</i></a></b>
|
623 |
+
</div><br>
|
624 |
+
</div>
|
625 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;background-color: white;width: 30%;margin: 10px;">
|
626 |
+
<div class="mo_2fa_Card-header">
|
627 |
+
<h3>WooCommerce</h3>
|
628 |
+
</div>
|
629 |
+
<hr>
|
630 |
+
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
631 |
+
<h4>
|
632 |
+
<span>OTP on Login Page</span>
|
633 |
+
<br>
|
634 |
+
<span>OTP on Registration</span>
|
635 |
+
<br><br>
|
636 |
+
</h4>
|
637 |
+
</div><hr>
|
638 |
+
<div style="text-align: center;">
|
639 |
+
<b><a href="mailto:2fasupport@xecurify.com" class = "mo_wpns_button mo_wpns_button1 "><i>Contact Us</i></a></b>
|
640 |
+
</div><br>
|
641 |
+
</div>
|
642 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;background-color: white;width: 30%;margin: 10px;">
|
643 |
+
<div class="mo_2fa_Card-header">
|
644 |
+
<h3>User Registration</h3>
|
645 |
+
</div>
|
646 |
+
<hr>
|
647 |
+
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
648 |
+
<h4>
|
649 |
+
<span>OTP on Login Page</span>
|
650 |
+
<br>
|
651 |
+
<span>OTP on Registration</span>
|
652 |
+
<br><br>
|
653 |
+
</h4>
|
654 |
+
</div><hr>
|
655 |
+
<div style="text-align: center;">
|
656 |
+
<b><a href="mailto:2fasupport@xecurify.com" class = "mo_wpns_button mo_wpns_button1 "><i>Contact Us</i></a></b>
|
657 |
+
</div><br>
|
658 |
+
</div>
|
659 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;background-color: white;width: 30%;margin: 10px;">
|
660 |
+
<div class="mo_2fa_Card-header">
|
661 |
+
<h3>Ultimate Member</h3>
|
662 |
+
</div>
|
663 |
+
<hr>
|
664 |
+
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
665 |
+
<h4>
|
666 |
+
<span>OTP on Login Page</span>
|
667 |
+
<br>
|
668 |
+
<span>OTP on Registration</span>
|
669 |
+
<br>
|
670 |
+
<span>OTP on Reset Password</span>
|
671 |
+
</h4>
|
672 |
+
</div><hr>
|
673 |
+
<div style="text-align: center;">
|
674 |
+
<b><a href="mailto:2fasupport@xecurify.com" class = "mo_wpns_button mo_wpns_button1 "><i>Contact Us</i></a></b>
|
675 |
+
</div><br>
|
676 |
+
</div>
|
677 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;
|
678 |
+
background-color: white;width: 30%;margin: 10px">
|
679 |
+
<div class="mo_2fa_Card-header">
|
680 |
+
<h3>RBA & Trusted Devices Management</h3>
|
681 |
+
</div>
|
682 |
+
<hr>
|
683 |
+
<h1 class="mo_wpns_upgrade_pade_pricing" style="color: #20b2aa">$49</h1>
|
684 |
+
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
685 |
+
<h3>Features</h3>
|
686 |
+
<h4>
|
687 |
+
Remember Device<br>
|
688 |
+
Limit users to login from specific IPs<br>
|
689 |
+
Set Device Limit for the users to login<br><br><br>
|
690 |
+
|
691 |
+
</h4>
|
692 |
+
</div>
|
693 |
+
<hr>
|
694 |
+
<div style="text-align: center;">
|
695 |
+
<?php if( $is_customer_registered)
|
696 |
+
{
|
697 |
+
?>
|
698 |
+
<button class="mo_wpns_button mo_wpns_button1 " onclick="mo2f_upgradeform('wp_2fa_addon_rba')" >Purchase</button>
|
699 |
+
<?php
|
700 |
+
}else
|
701 |
+
{ ?>
|
702 |
+
<button class="mo_wpns_button mo_wpns_button1 " onclick="mo2f_register_and_upgradeform('wp_2fa_addon_rba')" >Purchase</button>
|
703 |
+
<?php
|
704 |
+
}
|
705 |
+
?>
|
706 |
+
</div>
|
707 |
+
<br>
|
708 |
+
</div>
|
709 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;
|
710 |
+
background-color: white;width: 30%;margin: 10px">
|
711 |
+
<div class="mo_2fa_Card-header">
|
712 |
+
<h3>Personalization Add-on Features</h3>
|
713 |
+
</div>
|
714 |
+
<hr>
|
715 |
+
<h1 class="mo_wpns_upgrade_pade_pricing" style="color: #20b2aa">$199</h1>
|
716 |
+
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
717 |
+
<h3>Features</h3>
|
718 |
+
<h4>
|
719 |
+
Custom UI of 2FA popups<br>
|
720 |
+
Customize 'powered by' Logo<br>
|
721 |
+
Custom Email and SMS Templates<br>
|
722 |
+
Customize Plugin Icon and Plugin Name<br><br>
|
723 |
+
</h4>
|
724 |
+
</div>
|
725 |
+
<hr>
|
726 |
+
<div style="text-align: center;">
|
727 |
+
<?php if( $is_customer_registered)
|
728 |
+
{
|
729 |
+
?>
|
730 |
+
<button class="mo_wpns_button mo_wpns_button1 " onclick="mo2f_upgradeform('wp_2fa_addon_personalization')" >Purchase</button>
|
731 |
+
<?php
|
732 |
+
}else
|
733 |
+
{ ?>
|
734 |
+
<button class="mo_wpns_button mo_wpns_button1 " onclick="mo2f_register_and_upgradeform('wp_2fa_addon_personalization')" >Purchase</button>
|
735 |
+
<?php }
|
736 |
+
?>
|
737 |
+
</div>
|
738 |
+
<br>
|
739 |
+
</div>
|
740 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;
|
741 |
+
background-color: white;width: 30%;margin: 10px">
|
742 |
+
<div class="mo_2fa_Card-header">
|
743 |
+
<h3>Short Codes Add-on Features</h3>
|
744 |
+
</div>
|
745 |
+
<hr>
|
746 |
+
<h1 class="mo_wpns_upgrade_pade_pricing" style="color: #20b2aa">$99</h1>
|
747 |
+
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
748 |
+
<h3>Features</h3>
|
749 |
+
<h4>
|
750 |
+
Turn on/off 2-factor by user<br>
|
751 |
+
Configure Security Questions by user<br>
|
752 |
+
Remember Device from custom forms<br>
|
753 |
+
Configure Google Authenticator by user<br>
|
754 |
+
On-Demand ShortCodes for specific fuctionalities
|
755 |
+
|
756 |
+
</h4>
|
757 |
+
|
758 |
+
</div><hr>
|
759 |
+
<div style="text-align: center;">
|
760 |
+
<?php if( $is_customer_registered) {
|
761 |
+
?>
|
762 |
+
<button class="mo_wpns_button mo_wpns_button1 " onclick="mo2f_upgradeform('wp_2fa_addon_shortcode')" >Purchase</button>
|
763 |
+
<?php
|
764 |
+
}else
|
765 |
+
{ ?>
|
766 |
+
<button class="mo_wpns_button mo_wpns_button1 " onclick="mo2f_register_and_upgradeform('wp_2fa_addon_shortcode')" >Purchase</button>
|
767 |
+
<?php }
|
768 |
+
?>
|
769 |
+
</div>
|
770 |
+
<br>
|
771 |
+
</div>
|
772 |
+
</div>
|
773 |
+
</div>
|
774 |
+
</div>
|
775 |
+
</div>
|
776 |
+
|
777 |
</div>
|
778 |
<div id="mo2f_payment_option" class="mo_wpns_setting_layout" style="margin-top: 1%;width: 93.5%;margin-left: 0%;">
|
779 |
<div>
|
904 |
|
905 |
<?php
|
906 |
}
|
907 |
+
function mo2f_supported_forms() {
|
908 |
+
?>
|
909 |
+
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price" id="mo2f_sms_cost"><?php echo mo2f_lt( 'Popular Supported Forms' ); ?>
|
910 |
+
<br/>
|
911 |
+
<select id="mo2f_sms" class="form-control" style="border-radius:5px;width:200px;">
|
912 |
+
<option><?php echo mo2f_lt( 'Woocommerce' ); ?></option>
|
913 |
+
<option><?php echo mo2f_lt( 'Ultimate member' ); ?></option>
|
914 |
+
<option><?php echo mo2f_lt( 'Restrict Content Pro' ); ?></option>
|
915 |
+
<option><?php echo mo2f_lt( 'User Registration' ); ?></option>
|
916 |
+
<option><?php echo mo2f_lt( 'BBPress' ); ?></option>
|
917 |
+
<option><?php echo mo2f_lt( 'Member Press' ); ?></option>
|
918 |
+
<option><?php echo mo2f_lt( 'DigiMember' ); ?></option>
|
919 |
+
<option><?php echo mo2f_lt( 'Theme My Login' ); ?></option>
|
920 |
+
<option><?php echo mo2f_lt( 'Admin Custom Login' ); ?></option>
|
921 |
+
<option><?php echo mo2f_lt( 'Registrationmagic | Custom Registration Form and User Login' ); ?></option>
|
922 |
+
<option><?php echo mo2f_lt( 'Users Ultra registration form' ); ?></option>
|
923 |
+
<option style="color: red;"><?php echo mo2f_lt( 'If your forms are not included, this does not mean that they are not supported' ); ?></option>
|
924 |
+
|
925 |
+
</select><br>
|
926 |
+
<span style="color: black;"><b>[ Contact Us for Custom Forms ]</b></span>
|
927 |
+
</p>
|
928 |
+
|
929 |
+
<?php
|
930 |
+
}
|
931 |
function mo2f_yearly_standard_pricing_plan() {
|
932 |
?>
|
933 |
|
1017 |
</p>
|
1018 |
<?php
|
1019 |
}
|
1020 |
+
function mo2f_yearly_custom_login_forms_pricing() {
|
1021 |
+
?>
|
1022 |
+
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
1023 |
+
id="mo2f_yearly_sub"><?php echo __( 'Yearly Subscription Fees', 'miniorange-2-factor-authentication' ); ?><br>
|
1024 |
+
<select id="mo2f_yearly" class="form-control" style="border-radius:5px;width:200px;">
|
1025 |
+
<option> <?php echo mo2f_lt( '1 site - $120 per year' ); ?> </option>
|
1026 |
+
<option> <?php echo mo2f_lt( 'Upto 5 sites - $249 per year' ); ?> </option>
|
1027 |
+
<option> <?php echo mo2f_lt( 'Upto 10 sites - $379 per year' ); ?> </option>
|
1028 |
+
<option> <?php echo mo2f_lt( '10+ sites - contact us' ); ?> </option>
|
1029 |
+
</select>
|
1030 |
+
</p>
|
1031 |
+
<?php
|
1032 |
+
}
|
1033 |
function mo2f_waf_yearly_standard_pricing() {
|
1034 |
?>
|
1035 |
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
1090 |
<div><br></div>
|
1091 |
<?php
|
1092 |
}
|
1093 |
+
function mo2f_addon_features_on_hover($mo2f_addon_feature)
|
1094 |
+
{
|
1095 |
+
return '<div class="mo2f_tooltip_addon">
|
1096 |
+
<span class="dashicons dashicons-info mo2f_info_tab"></span>
|
1097 |
+
<span class="mo2f_tooltiptext_addon" >'. $mo2f_addon_feature .'
|
1098 |
+
</span>
|
1099 |
+
</div>';
|
1100 |
+
}
|
1101 |
?>
|
1102 |
|
1103 |
<script type="text/javascript">
|
1110 |
|
1111 |
<script type="text/javascript">
|
1112 |
|
1113 |
+
function mo2fa_show_detail_features()
|
1114 |
+
{
|
1115 |
+
jQuery("#mo2f_features_id").hide(1500);
|
1116 |
+
|
1117 |
+
document.getElementById("mo2f_show_features").style.display = "none";
|
1118 |
+
document.getElementById("mo2f_hide_features").style.display = "block";
|
1119 |
+
|
1120 |
+
}
|
1121 |
+
|
1122 |
+
function mo2fa_hide_detail_features()
|
1123 |
+
{
|
1124 |
+
jQuery("#mo2f_features_id").show(1500);
|
1125 |
+
|
1126 |
+
document.getElementById("mo2f_show_features").style.display = "block";
|
1127 |
+
document.getElementById("mo2f_hide_features").style.display = "none";
|
1128 |
|
1129 |
+
}
|
1130 |
+
function mo2fa_show_2fa_lite_detail_features()
|
1131 |
+
{
|
1132 |
+
jQuery("#mo2f_2fa_lite_features_id").hide(1500);
|
1133 |
|
1134 |
+
document.getElementById("mo2f_show_2fa_lite_features").style.display = "none";
|
1135 |
+
document.getElementById("mo2f_hide_2fa_lite_features").style.display = "block";
|
1136 |
+
|
1137 |
+
}
|
1138 |
|
1139 |
+
function mo2fa_hide_2fa_lite_detail_features()
|
1140 |
+
{
|
1141 |
+
jQuery("#mo2f_2fa_lite_features_id").show(1500);
|
1142 |
|
1143 |
+
document.getElementById("mo2f_show_2fa_lite_features").style.display = "block";
|
1144 |
+
document.getElementById("mo2f_hide_2fa_lite_features").style.display = "none";
|
1145 |
|
1146 |
+
}
|
1147 |
function mo2f_payment_option()
|
1148 |
{
|
1149 |
document.getElementById('mo2f_payment_option').scrollIntoView();
|
1175 |
document.getElementById('mo_2fa_features_only').style.display = "none";
|
1176 |
document.getElementById('mo_ns_features_only').style.display = "none";
|
1177 |
document.getElementById('mo2f_features_id').style.display = "none";
|
1178 |
+
document.getElementById('mo_addon_features_only').style.display = "none";
|
1179 |
document.getElementById('mo2f_2fa_lite_features_id').style.display = "block";
|
1180 |
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "none";
|
1181 |
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "block";
|
1182 |
document.getElementById('mo_ns_licensing_plans_title').style.display = "block";
|
1183 |
document.getElementById('mo_ns_licensing_plans_title1').style.display = "none";
|
1184 |
document.getElementById('mo_2fa_licensing_plans_title').style.display = "block";
|
1185 |
+
document.getElementById('mo_2fa_licensing_plans_title1').style.display = "none";
|
1186 |
+
document.getElementById('mo_addon_licensing_plans_title').style.display = "none";
|
1187 |
+
document.getElementById('mo_addon_licensing_plans_title1').style.display = "block";
|
1188 |
+
|
1189 |
}
|
1190 |
function mo_2fa_show_plans()
|
1191 |
{
|
1192 |
document.getElementById('mo_2fa_features_only').style.display = "block";
|
1193 |
document.getElementById('mo_ns_features_only').style.display = "none";
|
1194 |
document.getElementById('mo2f_features_id').style.display = "block";
|
1195 |
+
document.getElementById('mo_addon_features_only').style.display = "none";
|
1196 |
document.getElementById('mo2f_2fa_lite_features_id').style.display = "none";
|
1197 |
document.getElementById('mo_2fa_lite_features_only').style.display = "none";
|
1198 |
document.getElementById('mo_ns_licensing_plans_title').style.display = "block";
|
1200 |
document.getElementById('mo_2fa_licensing_plans_title').style.display = "none";
|
1201 |
document.getElementById('mo_2fa_licensing_plans_title1').style.display = "block";
|
1202 |
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "block";
|
1203 |
+
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "none";
|
1204 |
+
document.getElementById('mo_addon_licensing_plans_title').style.display = "none";
|
1205 |
+
document.getElementById('mo_addon_licensing_plans_title1').style.display = "block";
|
1206 |
+
|
1207 |
}
|
1208 |
function mo_ns_show_plans()
|
1209 |
{
|
1210 |
document.getElementById('mo_2fa_features_only').style.display = "none";
|
1211 |
document.getElementById('mo_ns_features_only').style.display = "block";
|
1212 |
document.getElementById('mo2f_features_id').style.display = "none";
|
1213 |
+
document.getElementById('mo_addon_features_only').style.display = "none";
|
1214 |
document.getElementById('mo2f_2fa_lite_features_id').style.display = "none";
|
1215 |
document.getElementById('mo_2fa_lite_features_only').style.display = "none";
|
1216 |
document.getElementById('mo_2fa_licensing_plans_title').style.display = "block";
|
1219 |
document.getElementById('mo_ns_licensing_plans_title').style.display = "none";
|
1220 |
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "block";
|
1221 |
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "none";
|
1222 |
+
document.getElementById('mo_addon_licensing_plans_title').style.display = "none";
|
1223 |
+
document.getElementById('mo_addon_licensing_plans_title1').style.display = "block";
|
1224 |
+
|
1225 |
+
}
|
1226 |
+
function mo_addon_show_plans()
|
1227 |
+
{
|
1228 |
+
document.getElementById('mo_addon_features_only').style.display = "block";
|
1229 |
+
document.getElementById('mo_2fa_features_only').style.display = "none";
|
1230 |
+
document.getElementById('mo_ns_features_only').style.display = "none";
|
1231 |
+
document.getElementById('mo2f_features_id').style.display = "none";
|
1232 |
+
document.getElementById('mo_addon_licensing_plans_title').style.display = "block";
|
1233 |
+
document.getElementById('mo_addon_licensing_plans_title1').style.display = "none";
|
1234 |
+
document.getElementById('mo_ns_licensing_plans_title').style.display = "block";
|
1235 |
+
document.getElementById('mo_ns_licensing_plans_title1').style.display = "none";
|
1236 |
+
document.getElementById('mo_2fa_licensing_plans_title').style.display = "block";
|
1237 |
+
document.getElementById('mo_2fa_licensing_plans_title1').style.display = "none";
|
1238 |
+
document.getElementById('mo2f_2fa_lite_features_id').style.display = "none";
|
1239 |
+
document.getElementById('mo_2fa_lite_features_only').style.display = "none";
|
1240 |
+
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "block";
|
1241 |
+
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "none";
|
1242 |
+
|
1243 |
}
|
1244 |
</script>
|
miniorange-2-factor-authentication/views/upgrade_2fa.php
ADDED
@@ -0,0 +1,603 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
global $Mo2fdbQueries;
|
3 |
+
$user = wp_get_current_user();
|
4 |
+
$is_NC = get_option( 'mo2f_is_NC' );
|
5 |
+
|
6 |
+
$is_customer_registered = $Mo2fdbQueries->get_user_detail( 'user_registration_with_miniorange', $user->ID ) == 'SUCCESS' ? true : false;
|
7 |
+
|
8 |
+
$mo2f_feature_set = array(
|
9 |
+
"Authentication Methods",
|
10 |
+
"Language Translation Support",
|
11 |
+
"Password Less Login",
|
12 |
+
"Backup",
|
13 |
+
"Multi-Site Support",
|
14 |
+
"User role based redirection after Login",
|
15 |
+
"Add custom Security Questions (KBA)",
|
16 |
+
"Customize name in Google Authenticator app",
|
17 |
+
"Brute Force Protection",
|
18 |
+
"Blocking IP",
|
19 |
+
"Monitoring",
|
20 |
+
"Strong Password",
|
21 |
+
"File Protection",
|
22 |
+
"2FA for specific User Roles",
|
23 |
+
"2FA for specific Users",
|
24 |
+
"Choose specific authentication methods",
|
25 |
+
"Force Two Factor for users",
|
26 |
+
"Email Verification during 2FA Registration",
|
27 |
+
"Enable Security Questions as backup",
|
28 |
+
"App Specific Password from mobile Apps",
|
29 |
+
"Support"
|
30 |
+
);
|
31 |
+
|
32 |
+
$mo2f_feature_description_set = array(
|
33 |
+
"You can translate the plugin in a language of your choice",
|
34 |
+
"After a valid username is entered, the 2FA prompt will be directly displayed",
|
35 |
+
"By using backup you can restore the plugin settings",
|
36 |
+
"Two Factor premium plugin works on both single site and multisite environment",
|
37 |
+
"According to user's role the particular user will be redirected to specific location",
|
38 |
+
"Add your own questions for your users.",
|
39 |
+
"You can customize the account name in Google Authenticator app on mobile",
|
40 |
+
"This protects your site from attacks which tries to gain access / login to a site with random usernames and passwords.",
|
41 |
+
"Allows you to manually/automatically block any IP address that seems malicious from accessing your website. ",
|
42 |
+
"Monitor activity of your users. For ex:- login activity, error report",
|
43 |
+
"Increase security by enforcing users to set a strong password.",
|
44 |
+
"Allows you to protect sensitive files through the malware scanner and other security features.",
|
45 |
+
"Enable and disable 2fa for users based on roles(Like Administrator, Editor and others). It works for custom roles too.",
|
46 |
+
"Enable or disable 2fa for a particular user.",
|
47 |
+
"You can choose specific authentication methods for specific user roles",
|
48 |
+
"Enforce user to setup 2nd factor during registration",
|
49 |
+
"One time Email Verification for Users during 2FA Registration",
|
50 |
+
"Allows for login using security questions in cases where physical access to the mobile isn’t possible",
|
51 |
+
"For login into WordPress sites through mobile, a mobile specific password can be set",
|
52 |
+
"24/7 support is available."
|
53 |
+
);
|
54 |
+
$two_factor_methods = array(
|
55 |
+
"miniOrange QR Code Authentication",
|
56 |
+
"miniOrange Soft Token",
|
57 |
+
"miniOrange Push Notification",
|
58 |
+
"Google Authenticator",
|
59 |
+
"Security Questions",
|
60 |
+
"Authy Authenticator",
|
61 |
+
"Email Verification",
|
62 |
+
"OTP Over SMS",
|
63 |
+
"OTP Over Email",
|
64 |
+
"OTP Over SMS and Email",
|
65 |
+
"Hardware Token"
|
66 |
+
);
|
67 |
+
|
68 |
+
$two_factor_methods_EC = array_slice( $two_factor_methods, 0, 7 );
|
69 |
+
|
70 |
+
$mo2f_feature_set_with_plans_NC = array(
|
71 |
+
"Authentication Methods" => array(
|
72 |
+
array_slice( $two_factor_methods, 0, 5 ),
|
73 |
+
array_slice( $two_factor_methods, 0, 10 ),
|
74 |
+
array_slice( $two_factor_methods, 0, 11 ),
|
75 |
+
array_slice( $two_factor_methods, 0, 11 )
|
76 |
+
),
|
77 |
+
|
78 |
+
|
79 |
+
"Language Translation Support" => array( true, true, true, true ),
|
80 |
+
"Password Less Login" => array( false, true, true, true ),
|
81 |
+
"Backup" => array( false, true, true, true),
|
82 |
+
"Multi-Site Support" => array( false, true, true, true ),
|
83 |
+
"User role based redirection after Login" => array( false, true, true, true ),
|
84 |
+
"Add custom Security Questions (KBA)" => array( false, true, true, true ),
|
85 |
+
"Add custom Security Questions (KBA)" => array( false, true, true, true ),
|
86 |
+
"Customize name in Google Authenticator app" => array( false, true, true, true ),
|
87 |
+
"Brute Force Protection" => array( true, false, false, true ),
|
88 |
+
"Blocking IP" => array( true, false, false, true ),
|
89 |
+
"Monitoring" => array( true, false, false, true ),
|
90 |
+
"Strong Password" => array( true, false, false, true ),
|
91 |
+
"File Protection" => array( true, false, false, true ),
|
92 |
+
"2FA for specific User Roles" => array( false, true, true, true ),
|
93 |
+
"2FA for specific Users" => array( false, false, true, true ),
|
94 |
+
"Choose specific authentication methods" => array( false, true, true, true ),
|
95 |
+
"Force Two Factor for users" => array( false, false, true, true ),
|
96 |
+
"Email Verification during 2FA Registration" => array( false, false, true, true ),
|
97 |
+
"Enable Security Questions as backup" => array( false, false, true, true ),
|
98 |
+
"App Specific Password from mobile Apps" => array( false, false, true, true ),
|
99 |
+
"Support" => array(
|
100 |
+
array("Basic Support by Email"),
|
101 |
+
array("Priority Support by Email"),
|
102 |
+
array( "Priority Support by Email", "Priority Support with GoTo meetings" ),
|
103 |
+
array( "Priority Support by Email", "Priority Support with GoTo meetings" )
|
104 |
+
),
|
105 |
+
|
106 |
+
);
|
107 |
+
|
108 |
+
$mo2f_feature_set_with_plans_EC = array(
|
109 |
+
"Authentication Methods" => array(
|
110 |
+
array_slice( $two_factor_methods, 0, 8 ),
|
111 |
+
array_slice( $two_factor_methods, 0, 10 ),
|
112 |
+
array_slice( $two_factor_methods, 0, 11 ),
|
113 |
+
array_slice( $two_factor_methods, 0, 11 )
|
114 |
+
),
|
115 |
+
|
116 |
+
"Language Translation Support" => array( true, true, true, true ),
|
117 |
+
"Password Less Login" => array( true, true, true, true ),
|
118 |
+
"Backup" => array( false, true, true, true),
|
119 |
+
"Multi-Site Support" => array( false, true, true, true ),
|
120 |
+
"Brute Force Protection" => array( true, false, false, true ),
|
121 |
+
"Blocking IP" => array( true, false, false, true ),
|
122 |
+
"Monitoring" => array( true, false, false, true ),
|
123 |
+
"Strong Password" => array( true, false, false, true ),
|
124 |
+
"File Protection" => array( true, false, false, true ),
|
125 |
+
"User role based redirection after Login" => array( false, true, true, true ),
|
126 |
+
"Add custom Security Questions (KBA)" => array( false, true, true, true ),
|
127 |
+
"Customize name in Google Authenticator app" => array( false, true, true, true ),
|
128 |
+
"2FA for specific User Roles" => array( false, false, true, true ),
|
129 |
+
"2FA for specific Users" => array( false, false, true, true ),
|
130 |
+
"Choose specific authentication methods" => array( false, false, true, true ),
|
131 |
+
"Force Two Factor for users" => array( false, true, true, true ),
|
132 |
+
"Email Verification during 2FA Registration" => array( false, false, true, true ),
|
133 |
+
"Enable Security Questions as backup" => array( false, false, true, true ),
|
134 |
+
"App Specific Password from mobile Apps" => array( false, false, true, true ),
|
135 |
+
"Support" => array(
|
136 |
+
array("Basic Support by Email"),
|
137 |
+
array("Priority Support by Email"),
|
138 |
+
array( "Priority Support by Email", "Priority Support with GoTo meetings" ),
|
139 |
+
array( "Priority Support by Email", "Priority Support with GoTo meetings" )
|
140 |
+
),
|
141 |
+
|
142 |
+
);
|
143 |
+
|
144 |
+
$mo2f_addons = array(
|
145 |
+
"RBA & Trusted Devices Management Add-on",
|
146 |
+
"Personalization Add-on",
|
147 |
+
"Short Codes Add-on"
|
148 |
+
);
|
149 |
+
$mo2f_addons_plan_name = array(
|
150 |
+
"RBA & Trusted Devices Management Add-on" => "wp_2fa_addon_rba",
|
151 |
+
"Personalization Add-on" => "wp_2fa_addon_personalization",
|
152 |
+
"Short Codes Add-on" => "wp_2fa_addon_shortcode"
|
153 |
+
);
|
154 |
+
|
155 |
+
|
156 |
+
$mo2f_addons_with_features = array(
|
157 |
+
"Personalization Add-on" => array(
|
158 |
+
"Custom UI of 2FA popups",
|
159 |
+
"Custom Email and SMS Templates",
|
160 |
+
"Customize 'powered by' Logo",
|
161 |
+
"Customize Plugin Icon",
|
162 |
+
"Customize Plugin Name",
|
163 |
+
|
164 |
+
),
|
165 |
+
"RBA & Trusted Devices Management Add-on" => array(
|
166 |
+
"Remember Device",
|
167 |
+
"Set Device Limit for the users to login",
|
168 |
+
"IP Restriction: Limit users to login from specific IPs"
|
169 |
+
),
|
170 |
+
"Short Codes Add-on" => array(
|
171 |
+
"Option to turn on/off 2-factor by user",
|
172 |
+
"Option to configure the Google Authenticator and Security Questions by user",
|
173 |
+
"Option to 'Enable Remember Device' from a custom login form",
|
174 |
+
"On-Demand ShortCodes for specific fuctionalities ( like for enabling 2FA for specific pages)"
|
175 |
+
)
|
176 |
+
);
|
177 |
+
?>
|
178 |
+
<div class="mo2f_licensing_plans" style="border:0px;width: 98%">
|
179 |
+
|
180 |
+
<table class="table mo_table-bordered mo_table-striped" style="width: 100%">
|
181 |
+
<thead>
|
182 |
+
<tr>
|
183 |
+
<th class="mo2f_2fa_lite_plan_title"><h1 class="mo2f_white_color_style">Free</h1></th>
|
184 |
+
<th></th>
|
185 |
+
<th class="mo2f_2fa_lite_plan_title"><h1 class="mo2f_white_color_style">Standard</h1></th>
|
186 |
+
<th></th>
|
187 |
+
<th class="mo2f_2fa_lite_plan_title"><h1 class="mo2f_white_color_style">Premium</h1></th>
|
188 |
+
<th></th>
|
189 |
+
<th class="mo2f_2fa_lite_plan_title"><h1 class="mo2f_white_color_style">Enterprise</h1></th>
|
190 |
+
</tr>
|
191 |
+
|
192 |
+
|
193 |
+
</thead>
|
194 |
+
<tbody class="mo_align-center mo-fa-icon">
|
195 |
+
<?php for ( $i = 0; $i < count( $mo2f_feature_set ); $i ++ ) { ?>
|
196 |
+
<tr>
|
197 |
+
<?php
|
198 |
+
$feature_set = $mo2f_feature_set[ $i ];
|
199 |
+
|
200 |
+
if ( $is_NC ) {
|
201 |
+
$f_feature_set_with_plan = $mo2f_feature_set_with_plans_NC[ $feature_set ];
|
202 |
+
} else {
|
203 |
+
$f_feature_set_with_plan = $mo2f_feature_set_with_plans_EC[ $feature_set ];
|
204 |
+
}
|
205 |
+
?>
|
206 |
+
<td class="mo2f_padding_style"><?php
|
207 |
+
if ($feature_set == "Authentication Methods" || $feature_set == "Support") {
|
208 |
+
?>
|
209 |
+
<div>
|
210 |
+
<?php
|
211 |
+
}
|
212 |
+
else
|
213 |
+
{
|
214 |
+
?>
|
215 |
+
<div style="float: left;">
|
216 |
+
<?php
|
217 |
+
}
|
218 |
+
if ( is_array( $f_feature_set_with_plan[0] ) ) {
|
219 |
+
echo mo2f_create_li( $f_feature_set_with_plan[0] );
|
220 |
+
} else {
|
221 |
+
?>
|
222 |
+
<div>
|
223 |
+
<?php
|
224 |
+
if ( gettype( $f_feature_set_with_plan[0] ) == "boolean" ) {
|
225 |
+
echo mo2f_get_binary_equivalent( $f_feature_set_with_plan[0] );
|
226 |
+
} else {
|
227 |
+
echo $f_feature_set_with_plan[0];
|
228 |
+
}
|
229 |
+
echo $feature_set;
|
230 |
+
?>
|
231 |
+
</div></div>
|
232 |
+
<?php
|
233 |
+
if ($feature_set == "Backup") {
|
234 |
+
?>
|
235 |
+
<span style="float: left;"> method</span>
|
236 |
+
<?php
|
237 |
+
}
|
238 |
+
?>
|
239 |
+
<div style="float: right;">
|
240 |
+
<?php
|
241 |
+
if ($feature_set == "Backup") {
|
242 |
+
|
243 |
+
echo mo2f_features_on_hover("Use Security Questions, OTP Over Email, Backup Codes as a backup method");
|
244 |
+
}
|
245 |
+
else
|
246 |
+
{
|
247 |
+
echo mo2f_features_on_hover($mo2f_feature_description_set[$i-1]);
|
248 |
+
}
|
249 |
+
?></div><?php
|
250 |
+
} ?>
|
251 |
+
</td>
|
252 |
+
<td class="mo2f_black_background"></td>
|
253 |
+
<td class="mo2f_padding_style"><?php
|
254 |
+
if ($feature_set == "Authentication Methods" || $feature_set == "Support") {
|
255 |
+
?>
|
256 |
+
<div>
|
257 |
+
<?php
|
258 |
+
}
|
259 |
+
else
|
260 |
+
{
|
261 |
+
?>
|
262 |
+
<div style="float: left;">
|
263 |
+
<?php
|
264 |
+
}
|
265 |
+
if($feature_set != "Authentication Methods")
|
266 |
+
{
|
267 |
+
if ( is_array( $f_feature_set_with_plan[1] ) ) {
|
268 |
+
echo mo2f_create_li( $f_feature_set_with_plan[1] );
|
269 |
+
} else {
|
270 |
+
if ( gettype( $f_feature_set_with_plan[1] ) == "boolean" ) {
|
271 |
+
echo mo2f_get_binary_equivalent( $f_feature_set_with_plan[1] );
|
272 |
+
} else {
|
273 |
+
echo $f_feature_set_with_plan[1];
|
274 |
+
}
|
275 |
+
echo $feature_set;
|
276 |
+
?>
|
277 |
+
</div>
|
278 |
+
<?php
|
279 |
+
if ($feature_set == "Backup") {
|
280 |
+
?>
|
281 |
+
<span style="float: left;">:- Security Questions (KBA)</span>
|
282 |
+
<?php
|
283 |
+
}
|
284 |
+
?>
|
285 |
+
<div style="float: right;">
|
286 |
+
<?php
|
287 |
+
if ($feature_set == "Backup") {
|
288 |
+
echo mo2f_features_on_hover("Security Questions is available as a backup method");
|
289 |
+
}
|
290 |
+
else
|
291 |
+
{
|
292 |
+
echo mo2f_features_on_hover($mo2f_feature_description_set[$i-1]);
|
293 |
+
}
|
294 |
+
?></div><?php
|
295 |
+
}
|
296 |
+
}
|
297 |
+
if ($feature_set == "Authentication Methods") {
|
298 |
+
$feature_array_1[] = array_slice( $two_factor_methods, 0, 10 );
|
299 |
+
for ($k=0; $k < 10 ; $k++)
|
300 |
+
{
|
301 |
+
if($is_NC)
|
302 |
+
{
|
303 |
+
if ($k<5)
|
304 |
+
{
|
305 |
+
echo $feature_array_1[0][$k];
|
306 |
+
?><br><?php
|
307 |
+
}
|
308 |
+
else
|
309 |
+
{
|
310 |
+
?><b><?php
|
311 |
+
echo $feature_array_1[0][$k];
|
312 |
+
?></b><br><?php
|
313 |
+
}
|
314 |
+
}
|
315 |
+
else
|
316 |
+
{
|
317 |
+
if ($k<8)
|
318 |
+
{
|
319 |
+
echo $feature_array_1[0][$k];
|
320 |
+
?><br><?php
|
321 |
+
}
|
322 |
+
else
|
323 |
+
{
|
324 |
+
?><b><?php
|
325 |
+
echo $feature_array_1[0][$k];
|
326 |
+
?></b><br><?php
|
327 |
+
}
|
328 |
+
}
|
329 |
+
}
|
330 |
+
?>
|
331 |
+
<?php
|
332 |
+
}
|
333 |
+
?>
|
334 |
+
</div>
|
335 |
+
</td>
|
336 |
+
<td class="mo2f_black_background"></td>
|
337 |
+
<td class="mo2f_padding_style"><?php
|
338 |
+
if ($feature_set == "Authentication Methods" || $feature_set == "Support") {
|
339 |
+
?>
|
340 |
+
<div>
|
341 |
+
<?php
|
342 |
+
}
|
343 |
+
else
|
344 |
+
{
|
345 |
+
?>
|
346 |
+
<div style="float: left;">
|
347 |
+
<?php
|
348 |
+
}
|
349 |
+
if($feature_set != "Authentication Methods")
|
350 |
+
{
|
351 |
+
if ( is_array( $f_feature_set_with_plan[2] ) ) {
|
352 |
+
echo mo2f_create_li( $f_feature_set_with_plan[2] );
|
353 |
+
} else {
|
354 |
+
if ( gettype( $f_feature_set_with_plan[2] ) == "boolean" ) {
|
355 |
+
echo mo2f_get_binary_equivalent( $f_feature_set_with_plan[2] );
|
356 |
+
} else {
|
357 |
+
echo $f_feature_set_with_plan[2];
|
358 |
+
}
|
359 |
+
echo $feature_set;
|
360 |
+
?>
|
361 |
+
</div>
|
362 |
+
<?php
|
363 |
+
if ($feature_set == "Backup") {
|
364 |
+
?>
|
365 |
+
<span style="float: left;">:- KBA, OTP Over Email, Backup Codes</span>
|
366 |
+
<?php
|
367 |
+
}
|
368 |
+
?>
|
369 |
+
<div style="float: right;">
|
370 |
+
<?php
|
371 |
+
if ($feature_set == "Backup") {
|
372 |
+
echo mo2f_features_on_hover("Security Questions, OTP Over Email, Backup Codes are available as a backup method");
|
373 |
+
}
|
374 |
+
else
|
375 |
+
{
|
376 |
+
echo mo2f_features_on_hover($mo2f_feature_description_set[$i-1]);
|
377 |
+
}
|
378 |
+
?></div><?php
|
379 |
+
}
|
380 |
+
}
|
381 |
+
if ($feature_set == "Authentication Methods") {
|
382 |
+
$feature_array_3[] = array_slice( $two_factor_methods, 0, 11 );
|
383 |
+
for ($k=0; $k < 11 ; $k++)
|
384 |
+
{
|
385 |
+
if ($is_NC)
|
386 |
+
{
|
387 |
+
if ($k<5)
|
388 |
+
{
|
389 |
+
echo $feature_array_3[0][$k];
|
390 |
+
?><br><?php
|
391 |
+
}
|
392 |
+
else
|
393 |
+
{
|
394 |
+
?><b><?php
|
395 |
+
echo $feature_array_3[0][$k];
|
396 |
+
?></b><br><?php
|
397 |
+
}
|
398 |
+
}
|
399 |
+
else
|
400 |
+
{
|
401 |
+
if ($k<8)
|
402 |
+
{
|
403 |
+
echo $feature_array_3[0][$k];
|
404 |
+
?><br><?php
|
405 |
+
}
|
406 |
+
else
|
407 |
+
{
|
408 |
+
?><b><?php
|
409 |
+
echo $feature_array_3[0][$k];
|
410 |
+
?></b><br><?php
|
411 |
+
}
|
412 |
+
}
|
413 |
+
}
|
414 |
+
?>
|
415 |
+
<?php
|
416 |
+
}?></div>
|
417 |
+
</td>
|
418 |
+
<td class="mo2f_black_background"></td>
|
419 |
+
<td class="mo2f_padding_style"><?php
|
420 |
+
if ($feature_set == "Authentication Methods" || $feature_set == "Support") {
|
421 |
+
?>
|
422 |
+
<div>
|
423 |
+
<?php
|
424 |
+
}
|
425 |
+
else
|
426 |
+
{
|
427 |
+
?>
|
428 |
+
<div style="float: left;">
|
429 |
+
<?php
|
430 |
+
}
|
431 |
+
if($feature_set != "Authentication Methods")
|
432 |
+
{
|
433 |
+
if ( is_array( $f_feature_set_with_plan[3] ) ) {
|
434 |
+
echo mo2f_create_li( $f_feature_set_with_plan[3] );
|
435 |
+
} else {
|
436 |
+
if ( gettype( $f_feature_set_with_plan[3] ) == "boolean" ) {
|
437 |
+
echo mo2f_get_binary_equivalent( $f_feature_set_with_plan[3] );
|
438 |
+
} else {
|
439 |
+
echo $f_feature_set_with_plan[3];
|
440 |
+
}
|
441 |
+
echo $feature_set;
|
442 |
+
?>
|
443 |
+
</div>
|
444 |
+
<?php
|
445 |
+
if ($feature_set == "Backup") {
|
446 |
+
?>
|
447 |
+
<span style="float: left;">:- KBA, OTP Over Email, Backup Codes</span>
|
448 |
+
<?php
|
449 |
+
}
|
450 |
+
?>
|
451 |
+
<div style="float: right;">
|
452 |
+
<?php
|
453 |
+
if ($feature_set == "Backup") {
|
454 |
+
echo mo2f_features_on_hover("Security Questions, OTP Over Email, Backup Codes are available as a backup method");
|
455 |
+
}
|
456 |
+
else
|
457 |
+
{
|
458 |
+
echo mo2f_features_on_hover($mo2f_feature_description_set[$i-1]);
|
459 |
+
}
|
460 |
+
?></div><?php
|
461 |
+
}
|
462 |
+
}
|
463 |
+
if ($feature_set == "Authentication Methods") {
|
464 |
+
$feature_array_4[] = array_slice( $two_factor_methods, 0, 11 );
|
465 |
+
for ($k=0; $k < 11 ; $k++)
|
466 |
+
{
|
467 |
+
if ($is_NC)
|
468 |
+
{
|
469 |
+
if ($k<5)
|
470 |
+
{
|
471 |
+
echo $feature_array_4[0][$k];
|
472 |
+
?><br><?php
|
473 |
+
}
|
474 |
+
else
|
475 |
+
{
|
476 |
+
?><b><?php
|
477 |
+
echo $feature_array_4[0][$k];
|
478 |
+
?></b><br><?php
|
479 |
+
}
|
480 |
+
}
|
481 |
+
else
|
482 |
+
{
|
483 |
+
if ($k<8)
|
484 |
+
{
|
485 |
+
echo $feature_array_4[0][$k];
|
486 |
+
?><br><?php
|
487 |
+
}
|
488 |
+
else
|
489 |
+
{
|
490 |
+
?><b><?php
|
491 |
+
echo $feature_array_4[0][$k];
|
492 |
+
?></b><br><?php
|
493 |
+
}
|
494 |
+
}
|
495 |
+
}
|
496 |
+
?>
|
497 |
+
<?php
|
498 |
+
}?></div>
|
499 |
+
</td>
|
500 |
+
</tr>
|
501 |
+
<?php } ?>
|
502 |
+
|
503 |
+
<tr>
|
504 |
+
<td><b>Add-Ons</b></td><td class="mo2f_black_background"></td>
|
505 |
+
<?php if ( $is_NC ) { ?>
|
506 |
+
<td><b>Purchase Separately</b></td><td class="mo2f_black_background"></td>
|
507 |
+
<?php } else { ?>
|
508 |
+
<td><b>Purchase Separately</b></td><td class="mo2f_black_background"></td>
|
509 |
+
<?php } ?>
|
510 |
+
<td><b>Included</b></td><td class="mo2f_black_background"></td>
|
511 |
+
<td><b>Included</b></td>
|
512 |
+
</tr>
|
513 |
+
<?php for ( $i = 0; $i < count( $mo2f_addons ); $i ++ ) { ?>
|
514 |
+
<tr>
|
515 |
+
<td><?php echo $mo2f_addons[ $i ]; ?> <?php for ( $j = 0; $j < $i + 1; $j ++ ) { ?>*<?php } ?>
|
516 |
+
</td><td class="mo2f_black_background"></td>
|
517 |
+
<?php if ( $is_NC ) { ?>
|
518 |
+
<td>
|
519 |
+
<button class="mo_wpns_button mo_wpns_button1" style="cursor:pointer"
|
520 |
+
onclick="mo2f_upgradeform('<?php echo $mo2f_addons_plan_name[ $mo2f_addons[ $i ] ]; ?>')" <?php echo $is_customer_registered ? "" : " disabled " ?> >
|
521 |
+
Purchase
|
522 |
+
</button>
|
523 |
+
|
524 |
+
</td><td class="mo2f_black_background"></td>
|
525 |
+
<?php } else { ?>
|
526 |
+
<td>Contact Us</td><td class="mo2f_black_background"></td>
|
527 |
+
<?php } ?>
|
528 |
+
|
529 |
+
<td><div style="color:#20b2aa;font-size: large;">✔</div></td><td class="mo2f_black_background"></td>
|
530 |
+
<td><div style="color:#20b2aa;font-size: large;">✔</div></td>
|
531 |
+
</tr>
|
532 |
+
<?php } ?>
|
533 |
+
|
534 |
+
</tbody>
|
535 |
+
</table>
|
536 |
+
<hr><br>
|
537 |
+
<div style="padding:10px;">
|
538 |
+
<?php for ( $i = 0; $i < count( $mo2f_addons ); $i ++ ) {
|
539 |
+
$f_feature_set_of_addons = $mo2f_addons_with_features[ $mo2f_addons[ $i ] ];
|
540 |
+
for ( $j = 0; $j < $i + 1; $j ++ ) { ?>*<?php } ?>
|
541 |
+
<b><?php echo $mo2f_addons[ $i ]; ?> Features</b>
|
542 |
+
<br>
|
543 |
+
<ol>
|
544 |
+
<?php for ( $k = 0; $k < count( $f_feature_set_of_addons ); $k ++ ) { ?>
|
545 |
+
<li><?php echo $f_feature_set_of_addons[ $k ]; ?></li>
|
546 |
+
<?php } ?>
|
547 |
+
</ol>
|
548 |
+
|
549 |
+
<hr><br>
|
550 |
+
<?php } ?>
|
551 |
+
<b>**** SMS Charges</b>
|
552 |
+
<p><?php echo mo2f_lt( 'If you wish to choose OTP Over SMS / OTP Over SMS and Email as your authentication method,
|
553 |
+
SMS transaction prices & SMS delivery charges apply and they depend on country. SMS validity is for lifetime.' ); ?></p>
|
554 |
+
<hr>
|
555 |
+
<br>
|
556 |
+
<div>
|
557 |
+
<h2>Note</h2>
|
558 |
+
<ol class="mo2f_licensing_plans_ol">
|
559 |
+
<li><?php echo mo2f_lt( 'The plugin works with many of the default custom login forms (like Woocommerce / Theme My Login), however if you face any issues with your custom login form, contact us and we will help you with it.' ); ?></li>
|
560 |
+
<li><?php echo mo2f_lt( 'There is no license key required to activate the Standard/Premium Plugins. You will have to just login with the miniOrange Account you used to make the purchase.' ); ?>
|
561 |
+
|
562 |
+
</li>
|
563 |
+
</ol>
|
564 |
+
</div>
|
565 |
+
|
566 |
+
<br>
|
567 |
+
<hr>
|
568 |
+
|
569 |
+
|
570 |
+
|
571 |
+
<style>#mo2f_support_table {
|
572 |
+
display: none;
|
573 |
+
}
|
574 |
+
|
575 |
+
</style>
|
576 |
+
</div>
|
577 |
+
</div>
|
578 |
+
|
579 |
+
<?php
|
580 |
+
function mo2f_create_li( $mo2f_array ) {
|
581 |
+
$html_ol = '<ul>';
|
582 |
+
foreach ( $mo2f_array as $element ) {
|
583 |
+
$html_ol .= "<li>" . $element . "</li>";
|
584 |
+
}
|
585 |
+
$html_ol .= '</ul>';
|
586 |
+
|
587 |
+
return $html_ol;
|
588 |
+
}
|
589 |
+
function mo2f_get_binary_equivalent( $mo2f_var ) {
|
590 |
+
switch ( $mo2f_var ) {
|
591 |
+
case 1:
|
592 |
+
return "<div style='color: #20b2aa;font-size: large;float:left;margin:0px 5px;'>✔</div>";
|
593 |
+
case 0:
|
594 |
+
return "<div style='color: red;font-size: x-large;float:left;margin:0px 5px;'>×</div>";
|
595 |
+
default:
|
596 |
+
return $mo2f_var;
|
597 |
+
}
|
598 |
+
}
|
599 |
+
|
600 |
+
function mo2f_features_on_hover( $mo2f_var ) {
|
601 |
+
|
602 |
+
return '<div class="mo2f_tooltip"><span class="dashicons dashicons-info mo2f_info_tab"></span><br><span class="mo2f_tooltiptext" style="margin-left: -1089%;">'. $mo2f_var .'</span>';
|
603 |
+
}
|
{views → miniorange-2-factor-authentication/views}/upgrade_2fa_lite.php
RENAMED
@@ -9,11 +9,11 @@
|
|
9 |
"Authentication Methods",
|
10 |
"Language Translation Support",
|
11 |
"Password Less Login",
|
12 |
-
"Backup
|
13 |
"Multi-Site Support",
|
14 |
"User role based redirection after Login",
|
15 |
"Add custom Security Questions (KBA)",
|
16 |
-
"Customize
|
17 |
"Brute Force Protection",
|
18 |
"Blocking IP",
|
19 |
"Monitoring",
|
@@ -23,8 +23,8 @@
|
|
23 |
"2FA for specific Users",
|
24 |
"Choose specific authentication methods",
|
25 |
"Force Two Factor for users",
|
26 |
-
"
|
27 |
-
"
|
28 |
"App Specific Password from mobile Apps",
|
29 |
"Support"
|
30 |
);
|
@@ -50,37 +50,35 @@
|
|
50 |
"Authentication Methods" => array(
|
51 |
array_slice( $two_factor_methods, 3, 3 ),
|
52 |
array_slice( $two_factor_methods, 3, 5 ),
|
|
|
53 |
array_slice( $two_factor_methods, 3, 5 )
|
54 |
),
|
55 |
|
56 |
|
57 |
-
"Language Translation Support" => array( true, true, true ),
|
58 |
-
"Password Less Login" => array( false, true, true ),
|
59 |
-
"Backup
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
),
|
64 |
-
"
|
65 |
-
"
|
66 |
-
"
|
67 |
-
"
|
68 |
-
"
|
69 |
-
"
|
70 |
-
"
|
71 |
-
"
|
72 |
-
"
|
73 |
-
"
|
74 |
-
"
|
75 |
-
"
|
76 |
-
"
|
77 |
-
"Force Two Factor for users" => array( false, false, true ),
|
78 |
-
"One Time Email Verification for Users during 2FA Registration" => array( false, false, true ),
|
79 |
-
"Enable Security Questions as backup" => array( false, false, true ),
|
80 |
-
"App Specific Password from mobile Apps" => array( false, false, true ),
|
81 |
"Support" => array(
|
82 |
array("Basic Support by Email"),
|
83 |
array("Priority Support by Email"),
|
|
|
84 |
array( "Priority Support by Email", "Priority Support with GoTo meetings" )
|
85 |
),
|
86 |
|
@@ -93,37 +91,55 @@
|
|
93 |
array_slice( $two_factor_methods, 3, 5 )
|
94 |
),
|
95 |
|
96 |
-
"Language Translation Support" => array( true, true, true ),
|
97 |
-
"Password Less Login" => array( true, true, true ),
|
98 |
-
"Backup
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
),
|
103 |
-
"
|
104 |
-
"
|
105 |
-
"
|
106 |
-
"
|
107 |
-
"
|
108 |
-
"
|
109 |
-
"
|
110 |
-
"
|
111 |
-
"
|
112 |
-
"
|
113 |
-
"
|
114 |
-
"
|
115 |
-
"Force Two Factor for users" => array( false, false, true ),
|
116 |
-
"One Time Email Verification for Users during 2FA Registration" => array( false, false, true ),
|
117 |
-
"Enable Security Questions as backup" => array( false, false, true ),
|
118 |
-
"App Specific Password from mobile Apps" => array( false, false, true ),
|
119 |
"Support" => array(
|
120 |
array("Basic Support by Email"),
|
121 |
array("Priority Support by Email"),
|
|
|
122 |
array( "Priority Support by Email", "Priority Support with GoTo meetings" )
|
123 |
),
|
124 |
|
125 |
);
|
126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
$mo2f_addons = array(
|
128 |
"RBA & Trusted Devices Management Add-on",
|
129 |
"Personalization Add-on",
|
@@ -160,13 +176,17 @@
|
|
160 |
?>
|
161 |
<div class="mo2f_licensing_plans" style="border:0px;width: 98%">
|
162 |
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
|
|
|
|
|
|
|
|
170 |
|
171 |
|
172 |
</thead>
|
@@ -182,8 +202,8 @@
|
|
182 |
$f_feature_set_with_plan = $mo2f_feature_set_with_plans_EC[ $feature_set ];
|
183 |
}
|
184 |
?>
|
185 |
-
<td><?php
|
186 |
-
if ($feature_set == "Authentication Methods" || $feature_set == "
|
187 |
?>
|
188 |
<div>
|
189 |
<?php
|
@@ -195,18 +215,42 @@
|
|
195 |
<?php
|
196 |
}
|
197 |
if ( is_array( $f_feature_set_with_plan[0] ) ) {
|
198 |
-
echo
|
199 |
} else {
|
|
|
|
|
|
|
200 |
if ( gettype( $f_feature_set_with_plan[0] ) == "boolean" ) {
|
201 |
echo mo2f_get_binary_equivalent_2fa_lite( $f_feature_set_with_plan[0] );
|
202 |
} else {
|
203 |
echo $f_feature_set_with_plan[0];
|
204 |
}
|
205 |
echo $feature_set;
|
206 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
</td>
|
208 |
-
<td
|
209 |
-
|
|
|
210 |
?>
|
211 |
<div>
|
212 |
<?php
|
@@ -220,7 +264,7 @@
|
|
220 |
if($feature_set != "Authentication Methods")
|
221 |
{
|
222 |
if ( is_array( $f_feature_set_with_plan[1] ) ) {
|
223 |
-
echo
|
224 |
} else {
|
225 |
if ( gettype( $f_feature_set_with_plan[1] ) == "boolean" ) {
|
226 |
echo mo2f_get_binary_equivalent_2fa_lite( $f_feature_set_with_plan[1] );
|
@@ -228,37 +272,57 @@
|
|
228 |
echo $f_feature_set_with_plan[1];
|
229 |
}
|
230 |
echo $feature_set;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
}
|
232 |
}
|
233 |
if ($feature_set == "Authentication Methods") {
|
234 |
-
$
|
235 |
for ($k=0; $k < 5 ; $k++)
|
236 |
{
|
237 |
if($is_NC)
|
238 |
{
|
239 |
if ($k<3)
|
240 |
{
|
241 |
-
|
242 |
-
|
|
|
243 |
}
|
244 |
else
|
245 |
{
|
246 |
-
|
247 |
-
echo $
|
248 |
-
?></b><br><?php
|
249 |
}
|
250 |
}
|
251 |
else
|
252 |
{
|
253 |
if ($k<4)
|
254 |
{
|
255 |
-
echo $
|
256 |
?><br><?php
|
257 |
}
|
258 |
else
|
259 |
{
|
260 |
?><b><?php
|
261 |
-
echo $
|
262 |
?></b><br><?php
|
263 |
}
|
264 |
}
|
@@ -269,8 +333,9 @@
|
|
269 |
?>
|
270 |
</div>
|
271 |
</td>
|
272 |
-
<td
|
273 |
-
|
|
|
274 |
?>
|
275 |
<div>
|
276 |
<?php
|
@@ -284,7 +349,7 @@
|
|
284 |
if($feature_set != "Authentication Methods")
|
285 |
{
|
286 |
if ( is_array( $f_feature_set_with_plan[2] ) ) {
|
287 |
-
echo
|
288 |
} else {
|
289 |
if ( gettype( $f_feature_set_with_plan[2] ) == "boolean" ) {
|
290 |
echo mo2f_get_binary_equivalent_2fa_lite( $f_feature_set_with_plan[2] );
|
@@ -292,23 +357,42 @@
|
|
292 |
echo $f_feature_set_with_plan[2];
|
293 |
}
|
294 |
echo $feature_set;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
}
|
296 |
}
|
297 |
if ($feature_set == "Authentication Methods") {
|
298 |
-
$
|
299 |
for ($k=0; $k < 5 ; $k++)
|
300 |
{
|
301 |
if ($is_NC)
|
302 |
{
|
303 |
if ($k<3)
|
304 |
{
|
305 |
-
echo $
|
306 |
?><br><?php
|
307 |
}
|
308 |
else
|
309 |
{
|
310 |
?><b><?php
|
311 |
-
echo $
|
312 |
?></b><br><?php
|
313 |
}
|
314 |
}
|
@@ -316,13 +400,95 @@
|
|
316 |
{
|
317 |
if ($k<4)
|
318 |
{
|
319 |
-
echo $
|
320 |
?><br><?php
|
321 |
}
|
322 |
else
|
323 |
{
|
324 |
?><b><?php
|
325 |
-
echo $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
?></b><br><?php
|
327 |
}
|
328 |
}
|
@@ -331,39 +497,48 @@
|
|
331 |
<?php
|
332 |
}?></div>
|
333 |
</td>
|
334 |
-
|
335 |
</tr>
|
336 |
<?php } ?>
|
337 |
|
338 |
<tr>
|
339 |
<td><b>Add-Ons</b></td>
|
|
|
340 |
<?php if ( $is_NC ) { ?>
|
341 |
<td><b>Purchase Separately</b></td>
|
|
|
342 |
<?php } else { ?>
|
343 |
<td><b>Purchase Separately</b></td>
|
|
|
344 |
<?php } ?>
|
345 |
<td><b>Included</b></td>
|
|
|
|
|
346 |
</tr>
|
347 |
<?php for ( $i = 0; $i < count( $mo2f_addons ); $i ++ ) { ?>
|
348 |
<tr>
|
349 |
<td><?php echo $mo2f_addons[ $i ]; ?> <?php for ( $j = 0; $j < $i + 1; $j ++ ) { ?>*<?php } ?>
|
350 |
</td>
|
|
|
351 |
<?php if ( $is_NC ) { ?>
|
352 |
<td>
|
353 |
Contact Us
|
354 |
|
355 |
</td>
|
|
|
356 |
<?php } else { ?>
|
357 |
<td>Contact Us</td>
|
|
|
358 |
<?php } ?>
|
359 |
|
360 |
<td><div>Contact Us</div></td>
|
|
|
|
|
361 |
</tr>
|
362 |
<?php } ?>
|
363 |
|
364 |
</tbody>
|
365 |
</table>
|
366 |
-
<br>
|
367 |
<div style="padding:10px;">
|
368 |
<?php for ( $i = 0; $i < count( $mo2f_addons ); $i ++ ) {
|
369 |
$f_feature_set_of_addons = $mo2f_addons_with_features[ $mo2f_addons[ $i ] ];
|
@@ -407,14 +582,27 @@
|
|
407 |
</div>
|
408 |
|
409 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
410 |
|
|
|
|
|
411 |
function mo2f_get_binary_equivalent_2fa_lite( $mo2f_var ) {
|
412 |
switch ( $mo2f_var ) {
|
413 |
case 1:
|
414 |
-
return "<div style='color: #
|
415 |
case 0:
|
416 |
-
return "<div style='color: red;font-size: large;float:left;margin:0px 5px;'>×</div>";
|
417 |
default:
|
418 |
return $mo2f_var;
|
419 |
}
|
420 |
-
}
|
|
|
|
|
|
|
|
|
|
9 |
"Authentication Methods",
|
10 |
"Language Translation Support",
|
11 |
"Password Less Login",
|
12 |
+
"Backup",
|
13 |
"Multi-Site Support",
|
14 |
"User role based redirection after Login",
|
15 |
"Add custom Security Questions (KBA)",
|
16 |
+
"Customize name in Google Authenticator app",
|
17 |
"Brute Force Protection",
|
18 |
"Blocking IP",
|
19 |
"Monitoring",
|
23 |
"2FA for specific Users",
|
24 |
"Choose specific authentication methods",
|
25 |
"Force Two Factor for users",
|
26 |
+
"Email Verification during 2FA Registration",
|
27 |
+
"Security Questions as backup",
|
28 |
"App Specific Password from mobile Apps",
|
29 |
"Support"
|
30 |
);
|
50 |
"Authentication Methods" => array(
|
51 |
array_slice( $two_factor_methods, 3, 3 ),
|
52 |
array_slice( $two_factor_methods, 3, 5 ),
|
53 |
+
array_slice( $two_factor_methods, 3, 5 ),
|
54 |
array_slice( $two_factor_methods, 3, 5 )
|
55 |
),
|
56 |
|
57 |
|
58 |
+
"Language Translation Support" => array( true, true, true, true ),
|
59 |
+
"Password Less Login" => array( false, true, true, true ),
|
60 |
+
"Backup" => array( false, true, true, true),
|
61 |
+
"Multi-Site Support" => array( false, true, true, true ),
|
62 |
+
"User role based redirection after Login" => array( false, true, true, true ),
|
63 |
+
"Add custom Security Questions (KBA)" => array( false, true, true, true ),
|
64 |
+
"Add custom Security Questions (KBA)" => array( false, true, true, true ),
|
65 |
+
"Customize name in Google Authenticator app" => array( false, true, true, true ),
|
66 |
+
"Brute Force Protection" => array( true, false, false, false ),
|
67 |
+
"Blocking IP" => array( true, false, false, false ),
|
68 |
+
"Monitoring" => array( true, false, false, false ),
|
69 |
+
"Strong Password" => array( true, false, false, false ),
|
70 |
+
"File Protection" => array( true, false, false, false ),
|
71 |
+
"2FA for specific User Roles" => array( false, true, true, true ),
|
72 |
+
"2FA for specific Users" => array( false, false, true, true ),
|
73 |
+
"Choose specific authentication methods" => array( false, false, true, true ),
|
74 |
+
"Force Two Factor for users" => array( false, true, true, true ),
|
75 |
+
"Email Verification during 2FA Registration" => array( false, false, true, true ),
|
76 |
+
"Security Questions as backup" => array( false, false, true, true ),
|
77 |
+
"App Specific Password from mobile Apps" => array( false, false, true, true ),
|
|
|
|
|
|
|
|
|
78 |
"Support" => array(
|
79 |
array("Basic Support by Email"),
|
80 |
array("Priority Support by Email"),
|
81 |
+
array( "Priority Support by Email", "Priority Support with GoTo meetings" ),
|
82 |
array( "Priority Support by Email", "Priority Support with GoTo meetings" )
|
83 |
),
|
84 |
|
91 |
array_slice( $two_factor_methods, 3, 5 )
|
92 |
),
|
93 |
|
94 |
+
"Language Translation Support" => array( true, true, true, true ),
|
95 |
+
"Password Less Login" => array( true, true, true, true ),
|
96 |
+
"Backup" => array( false, true, true, true),
|
97 |
+
"Multi-Site Support" => array( false, true, true, true ),
|
98 |
+
"Brute Force Protection" => array( true, false, false, false ),
|
99 |
+
"Blocking IP" => array( true, false, false, false ),
|
100 |
+
"Monitoring" => array( true, false, false, false ),
|
101 |
+
"Strong Password" => array( true, false, false, false ),
|
102 |
+
"File Protection" => array( true, false, false, false ),
|
103 |
+
"User role based redirection after Login" => array( false, true, true, true ),
|
104 |
+
"Add custom Security Questions (KBA)" => array( false, true, true, true ),
|
105 |
+
"Customize name in Google Authenticator app" => array( false, true, true, true ),
|
106 |
+
"2FA for specific User Roles" => array( false, true, true, true ),
|
107 |
+
"2FA for specific Users" => array( false, false, true, true ),
|
108 |
+
"Choose specific authentication methods" => array( false, false, true, true ),
|
109 |
+
"Force Two Factor for users" => array( false, true, true, true ),
|
110 |
+
"Email Verification during 2FA Registration" => array( false, false, true, true ),
|
111 |
+
"Security Questions as backup" => array( false, false, true, true ),
|
112 |
+
"App Specific Password from mobile Apps" => array( false, false, true, true ),
|
|
|
|
|
|
|
|
|
113 |
"Support" => array(
|
114 |
array("Basic Support by Email"),
|
115 |
array("Priority Support by Email"),
|
116 |
+
array( "Priority Support by Email", "Priority Support with GoTo meetings" ),
|
117 |
array( "Priority Support by Email", "Priority Support with GoTo meetings" )
|
118 |
),
|
119 |
|
120 |
);
|
121 |
+
$mo2f_feature_description_set = array(
|
122 |
+
"You can translate the plugin in a language of your choice",
|
123 |
+
"After a valid username is entered, the 2FA prompt will be directly displayed",
|
124 |
+
"By using backup you can restore the plugin settings",
|
125 |
+
"All features including 2FA can be enabled for all subsites",
|
126 |
+
"According to user's role the particular user will be redirected to specific location",
|
127 |
+
"Custom questions can be added for the Security Questions Method",
|
128 |
+
"You can customize the account name in Google Authenticator app on mobile",
|
129 |
+
"This protects your site from attacks which tries to gain access / login to a site with random usernames and passwords.",
|
130 |
+
"Allows you to manually/automatically block any IP address that seems malicious from accessing your website. ",
|
131 |
+
"Monitor activity of your users. For ex:- login activity, error report",
|
132 |
+
"Enforce users to set a strong password.",
|
133 |
+
"Allows you to protect sensitive files through the malware scanner and other security features.",
|
134 |
+
"Enable and disable 2fa for users based on roles(Like Administrator, Editor and others). It works for custom roles too.",
|
135 |
+
"Enable or disable 2fa for a particular user.",
|
136 |
+
"You can choose specific authentication methods for specific user roles",
|
137 |
+
"Enforce user to setup 2nd factor during registration",
|
138 |
+
"One time Email Verification for Users during 2FA Registration",
|
139 |
+
"Allows for login using security questions in cases where physical access to the mobile isn’t possible",
|
140 |
+
"For login into WordPress sites through mobile, a mobile specific password can be set",
|
141 |
+
"24/7 support is available."
|
142 |
+
);
|
143 |
$mo2f_addons = array(
|
144 |
"RBA & Trusted Devices Management Add-on",
|
145 |
"Personalization Add-on",
|
176 |
?>
|
177 |
<div class="mo2f_licensing_plans" style="border:0px;width: 98%">
|
178 |
|
179 |
+
<table class="table mo_table-bordered mo_table-striped" style="width: 100%">
|
180 |
+
<thead>
|
181 |
+
<tr>
|
182 |
+
<th class="mo2f_2fa_lite_plan_title"><h1 class="mo2f_white_color_style">Free</h1></th>
|
183 |
+
<th></th>
|
184 |
+
<th class="mo2f_2fa_lite_plan_title"><h1 class="mo2f_white_color_style">Standard</h1></th>
|
185 |
+
<th></th>
|
186 |
+
<th class="mo2f_2fa_lite_plan_title"><h1 class="mo2f_white_color_style">Premium</h1></th>
|
187 |
+
<th></th>
|
188 |
+
<th class="mo2f_2fa_lite_plan_title"><h1 class="mo2f_white_color_style">Custom Forms</h1></th>
|
189 |
+
</tr>
|
190 |
|
191 |
|
192 |
</thead>
|
202 |
$f_feature_set_with_plan = $mo2f_feature_set_with_plans_EC[ $feature_set ];
|
203 |
}
|
204 |
?>
|
205 |
+
<td class="mo2f_padding_style"><?php
|
206 |
+
if ($feature_set == "Authentication Methods" || $feature_set == "Support") {
|
207 |
?>
|
208 |
<div>
|
209 |
<?php
|
215 |
<?php
|
216 |
}
|
217 |
if ( is_array( $f_feature_set_with_plan[0] ) ) {
|
218 |
+
echo mo2f_create_li_2fa_lite( $f_feature_set_with_plan[0] );
|
219 |
} else {
|
220 |
+
?>
|
221 |
+
<div>
|
222 |
+
<?php
|
223 |
if ( gettype( $f_feature_set_with_plan[0] ) == "boolean" ) {
|
224 |
echo mo2f_get_binary_equivalent_2fa_lite( $f_feature_set_with_plan[0] );
|
225 |
} else {
|
226 |
echo $f_feature_set_with_plan[0];
|
227 |
}
|
228 |
echo $feature_set;
|
229 |
+
?>
|
230 |
+
</div></div>
|
231 |
+
<?php
|
232 |
+
if ($feature_set == "Backup") {
|
233 |
+
?>
|
234 |
+
<span style="float: left;"> method is not available</span>
|
235 |
+
<?php
|
236 |
+
}
|
237 |
+
?>
|
238 |
+
<div style="float: right;">
|
239 |
+
<?php
|
240 |
+
if ($feature_set == "Backup") {
|
241 |
+
|
242 |
+
echo mo2f_features_on_hover_2fa_lite("Backup Method is not available in free plugin.");
|
243 |
+
}
|
244 |
+
else
|
245 |
+
{
|
246 |
+
echo mo2f_features_on_hover_2fa_lite($mo2f_feature_description_set[$i-1]);
|
247 |
+
}
|
248 |
+
?></div><?php
|
249 |
+
} ?>
|
250 |
</td>
|
251 |
+
<td class="mo2f_black_background"></td>
|
252 |
+
<td class="mo2f_padding_style"><?php
|
253 |
+
if ($feature_set == "Authentication Methods" || $feature_set == "Support") {
|
254 |
?>
|
255 |
<div>
|
256 |
<?php
|
264 |
if($feature_set != "Authentication Methods")
|
265 |
{
|
266 |
if ( is_array( $f_feature_set_with_plan[1] ) ) {
|
267 |
+
echo mo2f_create_li_2fa_lite( $f_feature_set_with_plan[1] );
|
268 |
} else {
|
269 |
if ( gettype( $f_feature_set_with_plan[1] ) == "boolean" ) {
|
270 |
echo mo2f_get_binary_equivalent_2fa_lite( $f_feature_set_with_plan[1] );
|
272 |
echo $f_feature_set_with_plan[1];
|
273 |
}
|
274 |
echo $feature_set;
|
275 |
+
?>
|
276 |
+
</div>
|
277 |
+
<?php
|
278 |
+
if ($feature_set == "Backup") {
|
279 |
+
?>
|
280 |
+
<span style="float: left;">:- Security Questions (KBA)</span>
|
281 |
+
<?php
|
282 |
+
}
|
283 |
+
?>
|
284 |
+
<div style="float: right;">
|
285 |
+
<?php
|
286 |
+
if ($feature_set == "Backup") {
|
287 |
+
echo mo2f_features_on_hover_2fa_lite("Security Questions is available as a backup method");
|
288 |
+
}
|
289 |
+
else
|
290 |
+
{
|
291 |
+
echo mo2f_features_on_hover_2fa_lite($mo2f_feature_description_set[$i-1]);
|
292 |
+
}
|
293 |
+
?></div><?php
|
294 |
}
|
295 |
}
|
296 |
if ($feature_set == "Authentication Methods") {
|
297 |
+
$feature_array_5[] = array_slice( $two_factor_methods, 3, 5 );
|
298 |
for ($k=0; $k < 5 ; $k++)
|
299 |
{
|
300 |
if($is_NC)
|
301 |
{
|
302 |
if ($k<3)
|
303 |
{
|
304 |
+
|
305 |
+
echo $feature_array_5[0][$k];
|
306 |
+
?><br><?php
|
307 |
}
|
308 |
else
|
309 |
{
|
310 |
+
?><b><?php
|
311 |
+
echo $feature_array_5[0][$k];
|
312 |
+
?></b><br><?php
|
313 |
}
|
314 |
}
|
315 |
else
|
316 |
{
|
317 |
if ($k<4)
|
318 |
{
|
319 |
+
echo $feature_array_5[0][$k];
|
320 |
?><br><?php
|
321 |
}
|
322 |
else
|
323 |
{
|
324 |
?><b><?php
|
325 |
+
echo $feature_array_5[0][$k];
|
326 |
?></b><br><?php
|
327 |
}
|
328 |
}
|
333 |
?>
|
334 |
</div>
|
335 |
</td>
|
336 |
+
<td class="mo2f_black_background"></td>
|
337 |
+
<td class="mo2f_padding_style"><?php
|
338 |
+
if ($feature_set == "Authentication Methods" || $feature_set == "Support") {
|
339 |
?>
|
340 |
<div>
|
341 |
<?php
|
349 |
if($feature_set != "Authentication Methods")
|
350 |
{
|
351 |
if ( is_array( $f_feature_set_with_plan[2] ) ) {
|
352 |
+
echo mo2f_create_li_2fa_lite( $f_feature_set_with_plan[2] );
|
353 |
} else {
|
354 |
if ( gettype( $f_feature_set_with_plan[2] ) == "boolean" ) {
|
355 |
echo mo2f_get_binary_equivalent_2fa_lite( $f_feature_set_with_plan[2] );
|
357 |
echo $f_feature_set_with_plan[2];
|
358 |
}
|
359 |
echo $feature_set;
|
360 |
+
?>
|
361 |
+
</div>
|
362 |
+
<?php
|
363 |
+
if ($feature_set == "Backup") {
|
364 |
+
?>
|
365 |
+
<span style="float: left;">:- KBA, OTP Over Email, Backup Codes</span>
|
366 |
+
<?php
|
367 |
+
}
|
368 |
+
?>
|
369 |
+
<div style="float: right;">
|
370 |
+
<?php
|
371 |
+
if ($feature_set == "Backup") {
|
372 |
+
echo mo2f_features_on_hover_2fa_lite("Security Questions, OTP Over Email, Backup Codes are available as a backup method");
|
373 |
+
}
|
374 |
+
else
|
375 |
+
{
|
376 |
+
echo mo2f_features_on_hover_2fa_lite($mo2f_feature_description_set[$i-1]);
|
377 |
+
}
|
378 |
+
?></div><?php
|
379 |
}
|
380 |
}
|
381 |
if ($feature_set == "Authentication Methods") {
|
382 |
+
$feature_array_6[] = array_slice( $two_factor_methods, 3, 5 );
|
383 |
for ($k=0; $k < 5 ; $k++)
|
384 |
{
|
385 |
if ($is_NC)
|
386 |
{
|
387 |
if ($k<3)
|
388 |
{
|
389 |
+
echo $feature_array_6[0][$k];
|
390 |
?><br><?php
|
391 |
}
|
392 |
else
|
393 |
{
|
394 |
?><b><?php
|
395 |
+
echo $feature_array_6[0][$k];
|
396 |
?></b><br><?php
|
397 |
}
|
398 |
}
|
400 |
{
|
401 |
if ($k<4)
|
402 |
{
|
403 |
+
echo $feature_array_6[0][$k];
|
404 |
?><br><?php
|
405 |
}
|
406 |
else
|
407 |
{
|
408 |
?><b><?php
|
409 |
+
echo $feature_array_6[0][$k];
|
410 |
+
?></b><br><?php
|
411 |
+
}
|
412 |
+
}
|
413 |
+
}
|
414 |
+
?>
|
415 |
+
<?php
|
416 |
+
}?></div>
|
417 |
+
</td>
|
418 |
+
<td class="mo2f_black_background"></td>
|
419 |
+
<td class="mo2f_padding_style"><?php
|
420 |
+
if ($feature_set == "Authentication Methods" || $feature_set == "Support") {
|
421 |
+
?>
|
422 |
+
<div>
|
423 |
+
<?php
|
424 |
+
}
|
425 |
+
else
|
426 |
+
{
|
427 |
+
?>
|
428 |
+
<div style="float: left;">
|
429 |
+
<?php
|
430 |
+
}
|
431 |
+
if($feature_set != "Authentication Methods")
|
432 |
+
{
|
433 |
+
if ( is_array( $f_feature_set_with_plan[3] ) ) {
|
434 |
+
echo mo2f_create_li_2fa_lite( $f_feature_set_with_plan[3] );
|
435 |
+
} else {
|
436 |
+
if ( gettype( $f_feature_set_with_plan[3] ) == "boolean" ) {
|
437 |
+
echo mo2f_get_binary_equivalent_2fa_lite( $f_feature_set_with_plan[3] );
|
438 |
+
} else {
|
439 |
+
echo $f_feature_set_with_plan[3];
|
440 |
+
}
|
441 |
+
echo $feature_set;
|
442 |
+
?>
|
443 |
+
</div>
|
444 |
+
<?php
|
445 |
+
if ($feature_set == "Backup") {
|
446 |
+
?>
|
447 |
+
<span style="float: left;">:- KBA, OTP Over Email, Backup Codes</span>
|
448 |
+
<?php
|
449 |
+
}
|
450 |
+
?>
|
451 |
+
<div style="float: right;">
|
452 |
+
<?php
|
453 |
+
if ($feature_set == "Backup") {
|
454 |
+
echo mo2f_features_on_hover_2fa_lite("Security Questions, OTP Over Email, Backup Codes are available as a backup method");
|
455 |
+
}
|
456 |
+
else
|
457 |
+
{
|
458 |
+
echo mo2f_features_on_hover_2fa_lite($mo2f_feature_description_set[$i-1]);
|
459 |
+
}
|
460 |
+
?></div><?php
|
461 |
+
}
|
462 |
+
}
|
463 |
+
if ($feature_set == "Authentication Methods") {
|
464 |
+
$feature_array_7[] = array_slice( $two_factor_methods, 3, 5 );
|
465 |
+
for ($k=0; $k < 5 ; $k++)
|
466 |
+
{
|
467 |
+
if ($is_NC)
|
468 |
+
{
|
469 |
+
if ($k<3)
|
470 |
+
{
|
471 |
+
echo $feature_array_7[0][$k];
|
472 |
+
?><br><?php
|
473 |
+
}
|
474 |
+
else
|
475 |
+
{
|
476 |
+
?><b><?php
|
477 |
+
echo $feature_array_7[0][$k];
|
478 |
+
?></b><br><?php
|
479 |
+
}
|
480 |
+
}
|
481 |
+
else
|
482 |
+
{
|
483 |
+
if ($k<4)
|
484 |
+
{
|
485 |
+
echo $feature_array_7[0][$k];
|
486 |
+
?><br><?php
|
487 |
+
}
|
488 |
+
else
|
489 |
+
{
|
490 |
+
?><b><?php
|
491 |
+
echo $feature_array_7[0][$k];
|
492 |
?></b><br><?php
|
493 |
}
|
494 |
}
|
497 |
<?php
|
498 |
}?></div>
|
499 |
</td>
|
|
|
500 |
</tr>
|
501 |
<?php } ?>
|
502 |
|
503 |
<tr>
|
504 |
<td><b>Add-Ons</b></td>
|
505 |
+
<td class="mo2f_black_background"></td>
|
506 |
<?php if ( $is_NC ) { ?>
|
507 |
<td><b>Purchase Separately</b></td>
|
508 |
+
<td class="mo2f_black_background"></td>
|
509 |
<?php } else { ?>
|
510 |
<td><b>Purchase Separately</b></td>
|
511 |
+
<td class="mo2f_black_background"></td>
|
512 |
<?php } ?>
|
513 |
<td><b>Included</b></td>
|
514 |
+
<td class="mo2f_black_background"></td>
|
515 |
+
<td><b>Included</b></td>
|
516 |
</tr>
|
517 |
<?php for ( $i = 0; $i < count( $mo2f_addons ); $i ++ ) { ?>
|
518 |
<tr>
|
519 |
<td><?php echo $mo2f_addons[ $i ]; ?> <?php for ( $j = 0; $j < $i + 1; $j ++ ) { ?>*<?php } ?>
|
520 |
</td>
|
521 |
+
<td class="mo2f_black_background"></td>
|
522 |
<?php if ( $is_NC ) { ?>
|
523 |
<td>
|
524 |
Contact Us
|
525 |
|
526 |
</td>
|
527 |
+
<td class="mo2f_black_background"></td>
|
528 |
<?php } else { ?>
|
529 |
<td>Contact Us</td>
|
530 |
+
<td class="mo2f_black_background"></td>
|
531 |
<?php } ?>
|
532 |
|
533 |
<td><div>Contact Us</div></td>
|
534 |
+
<td class="mo2f_black_background"></td>
|
535 |
+
<td><div>Contact Us</div></td>
|
536 |
</tr>
|
537 |
<?php } ?>
|
538 |
|
539 |
</tbody>
|
540 |
</table>
|
541 |
+
<hr><br>
|
542 |
<div style="padding:10px;">
|
543 |
<?php for ( $i = 0; $i < count( $mo2f_addons ); $i ++ ) {
|
544 |
$f_feature_set_of_addons = $mo2f_addons_with_features[ $mo2f_addons[ $i ] ];
|
582 |
</div>
|
583 |
|
584 |
<?php
|
585 |
+
function mo2f_create_li_2fa_lite( $mo2f_array ) {
|
586 |
+
$html_ol = '<ul>';
|
587 |
+
foreach ( $mo2f_array as $element ) {
|
588 |
+
$html_ol .= "<li>" . $element . "</li>";
|
589 |
+
}
|
590 |
+
$html_ol .= '</ul>';
|
591 |
|
592 |
+
return $html_ol;
|
593 |
+
}
|
594 |
function mo2f_get_binary_equivalent_2fa_lite( $mo2f_var ) {
|
595 |
switch ( $mo2f_var ) {
|
596 |
case 1:
|
597 |
+
return "<div style='color: #20b2aa;font-size: large;float:left;margin:0px 5px;'>✔</div>";
|
598 |
case 0:
|
599 |
+
return "<div style='color: red;font-size: x-large;float:left;margin:0px 5px;'>×</div>";
|
600 |
default:
|
601 |
return $mo2f_var;
|
602 |
}
|
603 |
+
}
|
604 |
+
|
605 |
+
function mo2f_features_on_hover_2fa_lite( $mo2f_var ) {
|
606 |
+
|
607 |
+
return '<div class="mo2f_tooltip"><span class="dashicons dashicons-info mo2f_info_tab"></span><br><span class="mo2f_tooltiptext" style="margin-left: -1089%;">'. $mo2f_var .'</span>';
|
608 |
+
}
|
{views → miniorange-2-factor-authentication/views}/waf-settings.php
RENAMED
File without changes
|
{views → miniorange-2-factor-authentication/views}/waf.php
RENAMED
@@ -82,16 +82,17 @@
|
|
82 |
|
83 |
<table style="width:100%">
|
84 |
<tr><th align="left">
|
85 |
-
<h3>Real Time IP Blocking <strong style="color: red"><a href="admin.php?page=mo_2fa_upgrade"> [Premium Feature] </a></strong
|
86 |
<br>
|
87 |
<p><i class="mo_wpns_not_bold">Blocking those malicious IPs Which has been detected by miniOrange WAF. This feature contains a list of malicious IPs which is mantained in real time. By enabling this option if any attack has been detected on miniOrange WAF on others wbsite then that IP will be blocked from your site also.</i></p>
|
88 |
</th><th align="right">
|
|
|
89 |
<label class='mo_wpns_switch'>
|
90 |
<input type=checkbox id='RealTimeIP' name='RealTimeIP' disabled/>
|
91 |
<span class='mo_wpns_slider mo_wpns_round'></span>
|
92 |
</label>
|
93 |
</tr></th>
|
94 |
-
|
95 |
</table>
|
96 |
</div>
|
97 |
</div>
|
@@ -108,11 +109,11 @@
|
|
108 |
<table style="width:100%">
|
109 |
<tr>
|
110 |
<th align="left">
|
111 |
-
<h3>Rate Limiting
|
112 |
-
<br>
|
113 |
<p><i class="mo_wpns_not_bold">This will protect your Website from Dos attack and block request after a limit exceed.</i></p>
|
114 |
</th>
|
115 |
<th align="right">
|
|
|
116 |
<label class='mo_wpns_switch'>
|
117 |
<input type=checkbox id='rateL' name='rateL' />
|
118 |
<span class='mo_wpns_slider mo_wpns_round'></span>
|
@@ -230,18 +231,20 @@
|
|
230 |
<div class="mo_wpns_setting_layout">
|
231 |
<table style="width:100%">
|
232 |
<tr><th align="left">
|
233 |
-
<h3>Website Firewall on Plugin Level:
|
234 |
-
|
235 |
<p><i class="mo_wpns_not_bold">This will activate WAF after the WordPress load. This will block illegitimate requests after making connection to WordPress. This will check Every Request in plugin itself.</i></p>
|
236 |
</th><th align="right">
|
|
|
237 |
<label class='mo_wpns_switch'>
|
238 |
<input type=checkbox id='pluginWAF' name='pluginWAF' />
|
239 |
<span class='mo_wpns_slider mo_wpns_round'></span>
|
240 |
</label>
|
241 |
</tr></th>
|
242 |
-
|
243 |
<tr><th align="left">
|
244 |
-
<h3>Website Firewall on .htaccess Level <strong style="color: #20b2aa">[Recommended] </strong>:
|
|
|
245 |
<br>
|
246 |
<p><i class="mo_wpns_not_bold">This will activate WAF before the WordPress load. This will block illegitimate request before any connection to WordPress. This level doesnot allow illegal requests to before any page gets loaded.</i></p>
|
247 |
</th><th align="right">
|
@@ -249,7 +252,7 @@
|
|
249 |
<input type=checkbox id='htaccessWAF' name='htaccessWAF' />
|
250 |
<span class='mo_wpns_slider mo_wpns_round'></span>
|
251 |
</label>
|
252 |
-
|
253 |
</table>
|
254 |
<div id ='htaccessChange' name ='htaccessChange'>
|
255 |
<p><i class="mo_wpns_not_bold"> This feature will make changes to .htaccess file, Please confirm before the changes<br>
|
82 |
|
83 |
<table style="width:100%">
|
84 |
<tr><th align="left">
|
85 |
+
<h3>Real Time IP Blocking <strong style="color: red"><a href="admin.php?page=mo_2fa_upgrade"> [Premium Feature] </a></strong> :</h3>
|
86 |
<br>
|
87 |
<p><i class="mo_wpns_not_bold">Blocking those malicious IPs Which has been detected by miniOrange WAF. This feature contains a list of malicious IPs which is mantained in real time. By enabling this option if any attack has been detected on miniOrange WAF on others wbsite then that IP will be blocked from your site also.</i></p>
|
88 |
</th><th align="right">
|
89 |
+
|
90 |
<label class='mo_wpns_switch'>
|
91 |
<input type=checkbox id='RealTimeIP' name='RealTimeIP' disabled/>
|
92 |
<span class='mo_wpns_slider mo_wpns_round'></span>
|
93 |
</label>
|
94 |
</tr></th>
|
95 |
+
|
96 |
</table>
|
97 |
</div>
|
98 |
</div>
|
109 |
<table style="width:100%">
|
110 |
<tr>
|
111 |
<th align="left">
|
112 |
+
<h3>Rate Limiting : <a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/web-firewall#dos-proctection" target="_blank"><span class=" dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;"></span></a></h3>
|
|
|
113 |
<p><i class="mo_wpns_not_bold">This will protect your Website from Dos attack and block request after a limit exceed.</i></p>
|
114 |
</th>
|
115 |
<th align="right">
|
116 |
+
|
117 |
<label class='mo_wpns_switch'>
|
118 |
<input type=checkbox id='rateL' name='rateL' />
|
119 |
<span class='mo_wpns_slider mo_wpns_round'></span>
|
231 |
<div class="mo_wpns_setting_layout">
|
232 |
<table style="width:100%">
|
233 |
<tr><th align="left">
|
234 |
+
<h3>Website Firewall on Plugin Level : <a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/web-firewall/#firewall-level" target="_blank">
|
235 |
+
<span class=" dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;"></span></a></h3>
|
236 |
<p><i class="mo_wpns_not_bold">This will activate WAF after the WordPress load. This will block illegitimate requests after making connection to WordPress. This will check Every Request in plugin itself.</i></p>
|
237 |
</th><th align="right">
|
238 |
+
|
239 |
<label class='mo_wpns_switch'>
|
240 |
<input type=checkbox id='pluginWAF' name='pluginWAF' />
|
241 |
<span class='mo_wpns_slider mo_wpns_round'></span>
|
242 |
</label>
|
243 |
</tr></th>
|
244 |
+
|
245 |
<tr><th align="left">
|
246 |
+
<h3>Website Firewall on .htaccess Level <strong style="color: #20b2aa">[Recommended] </strong>: <a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/web-firewall/#firewall-level" target="_blank">
|
247 |
+
<span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;"></span></a></h3>
|
248 |
<br>
|
249 |
<p><i class="mo_wpns_not_bold">This will activate WAF before the WordPress load. This will block illegitimate request before any connection to WordPress. This level doesnot allow illegal requests to before any page gets loaded.</i></p>
|
250 |
</th><th align="right">
|
252 |
<input type=checkbox id='htaccessWAF' name='htaccessWAF' />
|
253 |
<span class='mo_wpns_slider mo_wpns_round'></span>
|
254 |
</label>
|
255 |
+
</th></tr>
|
256 |
</table>
|
257 |
<div id ='htaccessChange' name ='htaccessChange'>
|
258 |
<p><i class="mo_wpns_not_bold"> This feature will make changes to .htaccess file, Please confirm before the changes<br>
|
views/troubleshooting.php
DELETED
@@ -1,100 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
echo'<div class="mo_wpns_divided_layout">
|
4 |
-
<div class="mo_wpns_setting_layout">
|
5 |
-
<table class="mo_wpns_help">
|
6 |
-
<tbody><tr>
|
7 |
-
<td class="mo_wpns_help_cell">
|
8 |
-
<div id="mo_wpns_help_curl_title" class="mo_wpns_title_panel">
|
9 |
-
<div class="mo_wpns_help_title">How to enable PHP cURL extension? (Pre-requisite)</div>
|
10 |
-
</div>
|
11 |
-
<div hidden="" id="mo_wpns_help_curl_desc" class="mo_wpns_help_desc" style="display: none;">
|
12 |
-
<ul>
|
13 |
-
<li>Step 1: Open php.ini file located under php installation folder.</li>
|
14 |
-
<li>Step 2: Search for <b>extension=php_curl.dll</b>. </li>
|
15 |
-
<li>Step 3: Uncomment it by removing the semi-colon(<b>;</b>) in front of it.</li>
|
16 |
-
<li>Step 4: Restart the Apache Server.</li>
|
17 |
-
</ul>
|
18 |
-
For any further queries, please contact us.
|
19 |
-
</div>
|
20 |
-
</td>
|
21 |
-
</tr><tr>
|
22 |
-
<td class="mo_wpns_help_cell">
|
23 |
-
<div id="mo_wpns_help_mobile_auth_title" class="mo_wpns_title_panel">
|
24 |
-
<div class="mo_wpns_help_title">How to enable Mobile authentication ( 2 Factor ) ?</div>
|
25 |
-
</div>
|
26 |
-
<div hidden="" id="mo_wpns_help_mobile_auth_desc" class="mo_wpns_help_desc" style="display: none;">
|
27 |
-
<ul>
|
28 |
-
<li>Step 1: Go to <b>Login Security</b> Tab and go to <b>Mobile Authentication</b> section.</li>
|
29 |
-
<li>Step 2: If you have not installed 2 factor plugin you wil see link <b>"Install 2 Factor Plugin"</b>. Click this link and activate miniOrange 2 factor plugin.</li>
|
30 |
-
<li>Step 3: If you already have 2 factor plugin installed and its disable you wil see link <b>"Click here to activate 2 Factor Plugin"</b>. Click this link and activate miniOrange 2 factor plugin.</li>
|
31 |
-
<li>Step 4: Go to <b>"miniOrange 2-Factor"</b> tab from wordpress sidebar</li>
|
32 |
-
<li>Step 5: Click on <b>"Setup Two-Factor"</b> tab and configure your 2nd factor method which you want to use during login.</li>
|
33 |
-
</ul>
|
34 |
-
For any further queries, please contact us.
|
35 |
-
</div>
|
36 |
-
</td>
|
37 |
-
</tr>
|
38 |
-
<tr>
|
39 |
-
<td class="mo_wpns_help_cell">
|
40 |
-
<div id="mo_wpns_help_disposable_title" class="mo_wpns_title_panel">
|
41 |
-
<div class="mo_wpns_help_title">What "Block Registerations from fake users" does ? (Premium Feature)</div>
|
42 |
-
</div>
|
43 |
-
<div hidden="" id="mo_wpns_help_disposable_desc" class="mo_wpns_help_desc" style="display: none;">
|
44 |
-
There are many fake email provides which provides dispsable or temporary email address to users which expires in few minutes or few hours. You can block registrations from those email addresses.<br><br>
|
45 |
-
|
46 |
-
For any further queries, please contact us.
|
47 |
-
</div>
|
48 |
-
</td>
|
49 |
-
</tr>
|
50 |
-
<tr>
|
51 |
-
<td class="mo_wpns_help_cell">
|
52 |
-
<div id="mo_wpns_help_strong_pass_title" class="mo_wpns_title_panel">
|
53 |
-
<div class="mo_wpns_help_title">What "Enforce Strong Passwords" does ?</div>
|
54 |
-
</div>
|
55 |
-
<div hidden="" id="mo_wpns_help_strong_pass_desc" class="mo_wpns_help_desc" style="display: none;">
|
56 |
-
This feature check if users are having strong passwords for their account. If No, we force users to change their passwords to strong passwords during their login to wordpress.<br><br>
|
57 |
-
|
58 |
-
For any further queries, please contact us.
|
59 |
-
</div>
|
60 |
-
</td>
|
61 |
-
</tr>
|
62 |
-
<tr>
|
63 |
-
<td class="mo_wpns_help_cell">
|
64 |
-
<div id="mo_wpns_help_adv_user_ver_title" class="mo_wpns_title_panel">
|
65 |
-
<div class="mo_wpns_help_title">What "Advanced User Verification" does ? (Premium Feature)</div>
|
66 |
-
</div>
|
67 |
-
<div hidden="" id="mo_wpns_help_adv_user_ver_desc" class="mo_wpns_help_desc" style="display: none;">
|
68 |
-
This verifies users phone number or email address before registering users by sending One Time Password ( OTP ) on his phone number or email address. You can avoid fake registrations with it.<br><br>
|
69 |
-
|
70 |
-
For any further queries, please contact us.
|
71 |
-
</div>
|
72 |
-
</td>
|
73 |
-
</tr>
|
74 |
-
<tr>
|
75 |
-
<td class="mo_wpns_help_cell">
|
76 |
-
<div id="mo_wpns_help_social_login_title" class="mo_wpns_title_panel">
|
77 |
-
<div class="mo_wpns_help_title">What "Social Login Integration" does ? (Premium Feature)</div>
|
78 |
-
</div>
|
79 |
-
<div hidden="" id="mo_wpns_help_social_login_desc" class="mo_wpns_help_desc" style="display: none;">
|
80 |
-
You can allow your users to login or register to your site with their existing account with supported social networks like Google, Twitter, Facebook, Vkontakte, LinkedIn, Instagram, Amazon, Salesforce, Windows Live. No need to remember multiple account credentials for users.<br><br>
|
81 |
-
|
82 |
-
For any further queries, please contact us.
|
83 |
-
</div>
|
84 |
-
</td>
|
85 |
-
</tr><tr>
|
86 |
-
<td class="mo_wpns_help_cell">
|
87 |
-
<div id="mo_wpns_help_custom_template_title" class="mo_wpns_title_panel">
|
88 |
-
<div class="mo_wpns_help_title">What "Customized Email Templates" does ? (Premium Feature)</div>
|
89 |
-
</div>
|
90 |
-
<div hidden="" id="mo_wpns_help_custom_template_desc" class="mo_wpns_help_desc" style="display: none;">
|
91 |
-
You can customize email templates for emails that are sent to users for unusual activities and also Administrator for blocked IP\'s. You can add your own subject, from name and email content. Also we support HTML content for email body.<br><br>
|
92 |
-
|
93 |
-
For any further queries, please contact us.
|
94 |
-
</div>
|
95 |
-
</td>
|
96 |
-
</tr>
|
97 |
-
|
98 |
-
</tbody></table>
|
99 |
-
</div>
|
100 |
-
</div>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
views/upgrade_2fa.php
DELETED
@@ -1,347 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
global $Mo2fdbQueries;
|
3 |
-
$user = wp_get_current_user();
|
4 |
-
$is_NC = get_option( 'mo2f_is_NC' );
|
5 |
-
|
6 |
-
$is_customer_registered = $Mo2fdbQueries->get_user_detail( 'user_registration_with_miniorange', $user->ID ) == 'SUCCESS' ? true : false;
|
7 |
-
|
8 |
-
$mo2f_feature_set = array(
|
9 |
-
"Authentication Methods",
|
10 |
-
"Language Translation Support",
|
11 |
-
"Password Less Login",
|
12 |
-
"Backup Methods",
|
13 |
-
"Multi-Site Support",
|
14 |
-
"User role based redirection after Login",
|
15 |
-
"Add custom Security Questions (KBA)",
|
16 |
-
"Customize account name in Google Authenticator app",
|
17 |
-
"Brute Force Protection",
|
18 |
-
"Blocking IP",
|
19 |
-
"Monitoring",
|
20 |
-
"Strong Password",
|
21 |
-
"File Protection",
|
22 |
-
"2FA for specific User Roles",
|
23 |
-
"2FA for specific Users",
|
24 |
-
"Choose specific authentication methods",
|
25 |
-
"Force Two Factor for users",
|
26 |
-
"One Time Email Verification for Users during 2FA Registration",
|
27 |
-
"Enable Security Questions as backup",
|
28 |
-
"App Specific Password from mobile Apps",
|
29 |
-
"Support"
|
30 |
-
);
|
31 |
-
|
32 |
-
|
33 |
-
$two_factor_methods = array(
|
34 |
-
"miniOrange QR Code Authentication",
|
35 |
-
"miniOrange Soft Token",
|
36 |
-
"miniOrange Push Notification",
|
37 |
-
"Google Authenticator",
|
38 |
-
"Security Questions",
|
39 |
-
"Authy Authenticator",
|
40 |
-
"Email Verification",
|
41 |
-
"OTP Over SMS",
|
42 |
-
"OTP Over Email",
|
43 |
-
"OTP Over SMS and Email",
|
44 |
-
"Hardware Token"
|
45 |
-
);
|
46 |
-
|
47 |
-
$two_factor_methods_EC = array_slice( $two_factor_methods, 0, 7 );
|
48 |
-
|
49 |
-
$mo2f_feature_set_with_plans_NC = array(
|
50 |
-
"Authentication Methods" => array(
|
51 |
-
array_slice( $two_factor_methods, 0, 5 ),
|
52 |
-
array_slice( $two_factor_methods, 0, 10 ),
|
53 |
-
array_slice( $two_factor_methods, 0, 11 ),
|
54 |
-
array_slice( $two_factor_methods, 0, 11 )
|
55 |
-
),
|
56 |
-
|
57 |
-
|
58 |
-
"Language Translation Support" => array( true, true, true, true ),
|
59 |
-
"Password Less Login" => array( false, true, true, true ),
|
60 |
-
"Backup Methods" => array(
|
61 |
-
false,
|
62 |
-
"Security Questions",
|
63 |
-
array( "Security Questions", "OTP Over Email", "Backup Codes" ),
|
64 |
-
array( "Security Questions", "OTP Over Email", "Backup Codes" )
|
65 |
-
),
|
66 |
-
"Multi-Site Support" => array( false, true, true, true ),
|
67 |
-
"User role based redirection after Login" => array( false, true, true, true ),
|
68 |
-
"Add custom Security Questions (KBA)" => array( false, true, true, true ),
|
69 |
-
"Add custom Security Questions (KBA)" => array( false, true, true, true ),
|
70 |
-
"Customize account name in Google Authenticator app" => array( false, true, true, true ),
|
71 |
-
"Brute Force Protection" => array( true, false, false, true ),
|
72 |
-
"Blocking IP" => array( true, false, false, true ),
|
73 |
-
"Monitoring" => array( true, false, false, true ),
|
74 |
-
"Strong Password" => array( true, false, false, true ),
|
75 |
-
"File Protection" => array( true, false, false, true ),
|
76 |
-
"2FA for specific User Roles" => array( false, false, true, true ),
|
77 |
-
"2FA for specific Users" => array( false, false, true, true ),
|
78 |
-
"Choose specific authentication methods" => array( false, false, true, true ),
|
79 |
-
"Force Two Factor for users" => array( false, false, true, true ),
|
80 |
-
"One Time Email Verification for Users during 2FA Registration" => array( false, false, true, true ),
|
81 |
-
"Enable Security Questions as backup" => array( false, false, true, true ),
|
82 |
-
"App Specific Password from mobile Apps" => array( false, false, true, true ),
|
83 |
-
"Support" => array(
|
84 |
-
"Basic Support by Email",
|
85 |
-
"Priority Support by Email",
|
86 |
-
array( "Priority Support by Email", "Priority Support with GoTo meetings" ),
|
87 |
-
array( "Priority Support by Email", "Priority Support with GoTo meetings" )
|
88 |
-
),
|
89 |
-
|
90 |
-
);
|
91 |
-
|
92 |
-
$mo2f_feature_set_with_plans_EC = array(
|
93 |
-
"Authentication Methods" => array(
|
94 |
-
array_slice( $two_factor_methods, 0, 8 ),
|
95 |
-
array_slice( $two_factor_methods, 0, 10 ),
|
96 |
-
array_slice( $two_factor_methods, 0, 11 ),
|
97 |
-
array_slice( $two_factor_methods, 0, 11 )
|
98 |
-
),
|
99 |
-
|
100 |
-
"Language Translation Support" => array( true, true, true, true ),
|
101 |
-
"Password Less Login" => array( true, true, true, true ),
|
102 |
-
"Backup Methods" => array(
|
103 |
-
"Security Questions",
|
104 |
-
"Security Questions",
|
105 |
-
array( "Security Questions", "OTP Over Email", "Backup Codes" ),
|
106 |
-
array( "Security Questions", "OTP Over Email", "Backup Codes" )
|
107 |
-
),
|
108 |
-
"Multi-Site Support" => array( false, true, true, true ),
|
109 |
-
"Brute Force Protection" => array( true, false, false, true ),
|
110 |
-
"Blocking IP" => array( true, false, false, true ),
|
111 |
-
"Monitoring" => array( true, false, false, true ),
|
112 |
-
"Strong Password" => array( true, false, false, true ),
|
113 |
-
"File Protection" => array( true, false, false, true ),
|
114 |
-
"User role based redirection after Login" => array( false, true, true, true ),
|
115 |
-
"Add custom Security Questions (KBA)" => array( false, true, true, true ),
|
116 |
-
"Customize account name in Google Authenticator app" => array( false, true, true, true ),
|
117 |
-
"2FA for specific User Roles" => array( false, false, true, true ),
|
118 |
-
"2FA for specific Users" => array( false, false, true, true ),
|
119 |
-
"Choose specific authentication methods" => array( false, false, true, true ),
|
120 |
-
"Force Two Factor for users" => array( false, false, true, true ),
|
121 |
-
"One Time Email Verification for Users during 2FA Registration" => array( false, false, true, true ),
|
122 |
-
"Enable Security Questions as backup" => array( false, false, true, true ),
|
123 |
-
"App Specific Password from mobile Apps" => array( false, false, true, true ),
|
124 |
-
"Support" => array(
|
125 |
-
"Basic Support by Email",
|
126 |
-
"Priority Support by Email",
|
127 |
-
array( "Priority Support by Email", "Priority Support with GoTo meetings" ),
|
128 |
-
array( "Priority Support by Email", "Priority Support with GoTo meetings" )
|
129 |
-
),
|
130 |
-
|
131 |
-
);
|
132 |
-
|
133 |
-
$mo2f_addons = array(
|
134 |
-
"RBA & Trusted Devices Management Add-on",
|
135 |
-
"Personalization Add-on",
|
136 |
-
"Short Codes Add-on"
|
137 |
-
);
|
138 |
-
$mo2f_addons_plan_name = array(
|
139 |
-
"RBA & Trusted Devices Management Add-on" => "wp_2fa_addon_rba",
|
140 |
-
"Personalization Add-on" => "wp_2fa_addon_personalization",
|
141 |
-
"Short Codes Add-on" => "wp_2fa_addon_shortcode"
|
142 |
-
);
|
143 |
-
|
144 |
-
|
145 |
-
$mo2f_addons_with_features = array(
|
146 |
-
"Personalization Add-on" => array(
|
147 |
-
"Custom UI of 2FA popups",
|
148 |
-
"Custom Email and SMS Templates",
|
149 |
-
"Customize 'powered by' Logo",
|
150 |
-
"Customize Plugin Icon",
|
151 |
-
"Customize Plugin Name",
|
152 |
-
|
153 |
-
),
|
154 |
-
"RBA & Trusted Devices Management Add-on" => array(
|
155 |
-
"Remember Device",
|
156 |
-
"Set Device Limit for the users to login",
|
157 |
-
"IP Restriction: Limit users to login from specific IPs"
|
158 |
-
),
|
159 |
-
"Short Codes Add-on" => array(
|
160 |
-
"Option to turn on/off 2-factor by user",
|
161 |
-
"Option to configure the Google Authenticator and Security Questions by user",
|
162 |
-
"Option to 'Enable Remember Device' from a custom login form",
|
163 |
-
"On-Demand ShortCodes for specific fuctionalities ( like for enabling 2FA for specific pages)"
|
164 |
-
)
|
165 |
-
);
|
166 |
-
?>
|
167 |
-
<div class="mo2f_licensing_plans" style="border:0px;">
|
168 |
-
|
169 |
-
<table class="table mo_table-bordered mo_table-striped">
|
170 |
-
<thead>
|
171 |
-
<tr>
|
172 |
-
<th style="background-color: #20b2aa;border: 2px solid #20b2aa;width: 21%;"><h1 style="color: white;">Features</h1></th>
|
173 |
-
<th style="background-color: #20b2aa;border: 2px solid #20b2aa;"><h1 style="color: white;">Free</h1></th>
|
174 |
-
<th style="background-color: #20b2aa;border: 2px solid #20b2aa;"><h1 style="color: white;">Standard</h1></th>
|
175 |
-
<th style="background-color: #20b2aa;border: 2px solid #20b2aa;"><h1 style="color: white;">Premium</h1></th>
|
176 |
-
<th style="background-color: #20b2aa;border: 2px solid #20b2aa;"><h1 style="color: white;">Enterprise</h1></th>
|
177 |
-
</tr>
|
178 |
-
|
179 |
-
|
180 |
-
</thead>
|
181 |
-
<tbody class="mo_align-center mo-fa-icon">
|
182 |
-
<?php for ( $i = 0; $i < count( $mo2f_feature_set ); $i ++ ) { ?>
|
183 |
-
<tr>
|
184 |
-
<td><?php
|
185 |
-
$feature_set = $mo2f_feature_set[ $i ];
|
186 |
-
|
187 |
-
echo $feature_set;
|
188 |
-
?>
|
189 |
-
</td>
|
190 |
-
<?php if ( $is_NC ) {
|
191 |
-
$f_feature_set_with_plan = $mo2f_feature_set_with_plans_NC[ $feature_set ];
|
192 |
-
} else {
|
193 |
-
$f_feature_set_with_plan = $mo2f_feature_set_with_plans_EC[ $feature_set ];
|
194 |
-
}
|
195 |
-
?>
|
196 |
-
<td><?php
|
197 |
-
if ( is_array( $f_feature_set_with_plan[0] ) ) {
|
198 |
-
echo mo2f_create_li( $f_feature_set_with_plan[0] );
|
199 |
-
} else {
|
200 |
-
if ( gettype( $f_feature_set_with_plan[0] ) == "boolean" ) {
|
201 |
-
echo mo2f_get_binary_equivalent( $f_feature_set_with_plan[0] );
|
202 |
-
} else {
|
203 |
-
echo $f_feature_set_with_plan[0];
|
204 |
-
}
|
205 |
-
} ?>
|
206 |
-
</td>
|
207 |
-
<td><?php
|
208 |
-
if ( is_array( $f_feature_set_with_plan[1] ) ) {
|
209 |
-
echo mo2f_create_li( $f_feature_set_with_plan[1] );
|
210 |
-
} else {
|
211 |
-
if ( gettype( $f_feature_set_with_plan[1] ) == "boolean" ) {
|
212 |
-
echo mo2f_get_binary_equivalent( $f_feature_set_with_plan[1] );
|
213 |
-
} else {
|
214 |
-
echo $f_feature_set_with_plan[1];
|
215 |
-
}
|
216 |
-
} ?>
|
217 |
-
</td>
|
218 |
-
<td><?php
|
219 |
-
if ( is_array( $f_feature_set_with_plan[2] ) ) {
|
220 |
-
echo mo2f_create_li( $f_feature_set_with_plan[2] );
|
221 |
-
} else {
|
222 |
-
if ( gettype( $f_feature_set_with_plan[2] ) == "boolean" ) {
|
223 |
-
echo mo2f_get_binary_equivalent( $f_feature_set_with_plan[2] );
|
224 |
-
} else {
|
225 |
-
echo $f_feature_set_with_plan[2];
|
226 |
-
}
|
227 |
-
} ?>
|
228 |
-
</td>
|
229 |
-
<td><?php
|
230 |
-
if ( is_array( $f_feature_set_with_plan[3] ) ) {
|
231 |
-
echo mo2f_create_li( $f_feature_set_with_plan[3] );
|
232 |
-
} else {
|
233 |
-
if ( gettype( $f_feature_set_with_plan[3] ) == "boolean" ) {
|
234 |
-
echo mo2f_get_binary_equivalent( $f_feature_set_with_plan[3] );
|
235 |
-
} else {
|
236 |
-
echo $f_feature_set_with_plan[3];
|
237 |
-
}
|
238 |
-
} ?>
|
239 |
-
</td>
|
240 |
-
</tr>
|
241 |
-
<?php } ?>
|
242 |
-
|
243 |
-
<tr>
|
244 |
-
<td><b>Add-Ons</b></td>
|
245 |
-
<?php if ( $is_NC ) { ?>
|
246 |
-
<td><b>Purchase Separately</b></td>
|
247 |
-
<?php } else { ?>
|
248 |
-
<td><b>NA</b></td>
|
249 |
-
<?php } ?>
|
250 |
-
<td><b>Purchase Separately</b></td>
|
251 |
-
<td><b>Included</b></td>
|
252 |
-
<td><b>Included</b></td>
|
253 |
-
</tr>
|
254 |
-
<?php for ( $i = 0; $i < count( $mo2f_addons ); $i ++ ) { ?>
|
255 |
-
<tr>
|
256 |
-
<td><?php echo $mo2f_addons[ $i ]; ?> <?php for ( $j = 0; $j < $i + 1; $j ++ ) { ?>*<?php } ?>
|
257 |
-
</td>
|
258 |
-
<?php if ( $is_NC ) { ?>
|
259 |
-
<td>
|
260 |
-
<button class="mo_wpns_button mo_wpns_button1" style="cursor:pointer"
|
261 |
-
onclick="mo2f_upgradeform('<?php echo $mo2f_addons_plan_name[ $mo2f_addons[ $i ] ]; ?>')" <?php echo $is_customer_registered ? "" : " disabled " ?> >
|
262 |
-
Purchase
|
263 |
-
</button>
|
264 |
-
|
265 |
-
</td>
|
266 |
-
<?php } else { ?>
|
267 |
-
<td><b>NA</b></td>
|
268 |
-
<?php } ?>
|
269 |
-
<td>
|
270 |
-
<button class="mo_wpns_button mo_wpns_button1" style="cursor:pointer"
|
271 |
-
onclick="mo2f_upgradeform('<?php echo $mo2f_addons_plan_name[ $mo2f_addons[ $i ] ]; ?>')" <?php echo $is_customer_registered ? "" : " disabled " ?> >
|
272 |
-
Purchase
|
273 |
-
</button>
|
274 |
-
</td>
|
275 |
-
<td><div style="color:#20b2aa;font-size: large;">✔</div></td>
|
276 |
-
<td><div style="color:#20b2aa;font-size: large;">✔</div></td>
|
277 |
-
</tr>
|
278 |
-
<?php } ?>
|
279 |
-
|
280 |
-
</tbody>
|
281 |
-
</table>
|
282 |
-
<br>
|
283 |
-
<div style="padding:10px;">
|
284 |
-
<?php for ( $i = 0; $i < count( $mo2f_addons ); $i ++ ) {
|
285 |
-
$f_feature_set_of_addons = $mo2f_addons_with_features[ $mo2f_addons[ $i ] ];
|
286 |
-
for ( $j = 0; $j < $i + 1; $j ++ ) { ?>*<?php } ?>
|
287 |
-
<b><?php echo $mo2f_addons[ $i ]; ?> Features</b>
|
288 |
-
<br>
|
289 |
-
<ol>
|
290 |
-
<?php for ( $k = 0; $k < count( $f_feature_set_of_addons ); $k ++ ) { ?>
|
291 |
-
<li><?php echo $f_feature_set_of_addons[ $k ]; ?></li>
|
292 |
-
<?php } ?>
|
293 |
-
</ol>
|
294 |
-
|
295 |
-
<hr><br>
|
296 |
-
<?php } ?>
|
297 |
-
<b>**** SMS Charges</b>
|
298 |
-
<p><?php echo mo2f_lt( 'If you wish to choose OTP Over SMS / OTP Over SMS and Email as your authentication method,
|
299 |
-
SMS transaction prices & SMS delivery charges apply and they depend on country. SMS validity is for lifetime.' ); ?></p>
|
300 |
-
<hr>
|
301 |
-
<br>
|
302 |
-
<div>
|
303 |
-
<h2>Note</h2>
|
304 |
-
<ol class="mo2f_licensing_plans_ol">
|
305 |
-
<li><?php echo mo2f_lt( 'The plugin works with many of the default custom login forms (like Woocommerce / Theme My Login), however if you face any issues with your custom login form, contact us and we will help you with it.' ); ?></li>
|
306 |
-
<li><?php echo mo2f_lt( 'There is no license key required to activate the Standard/Premium Plugins. You will have to just login with the miniOrange Account you used to make the purchase.' ); ?>
|
307 |
-
|
308 |
-
</li>
|
309 |
-
</ol>
|
310 |
-
</div>
|
311 |
-
|
312 |
-
<br>
|
313 |
-
<hr>
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
<style>#mo2f_support_table {
|
318 |
-
display: none;
|
319 |
-
}
|
320 |
-
|
321 |
-
</style>
|
322 |
-
</div>
|
323 |
-
</div>
|
324 |
-
|
325 |
-
<?php
|
326 |
-
function mo2f_create_li( $mo2f_array ) {
|
327 |
-
$html_ol = '<ul>';
|
328 |
-
foreach ( $mo2f_array as $element ) {
|
329 |
-
$html_ol .= "<li>" . $element . "</li>";
|
330 |
-
}
|
331 |
-
$html_ol .= '</ul>';
|
332 |
-
|
333 |
-
return $html_ol;
|
334 |
-
}
|
335 |
-
|
336 |
-
|
337 |
-
function mo2f_get_binary_equivalent( $mo2f_var ) {
|
338 |
-
|
339 |
-
switch ( $mo2f_var ) {
|
340 |
-
case 1:
|
341 |
-
return "<div style='color:#20b2aa;font-size: large;'>✔</div>";
|
342 |
-
case 0:
|
343 |
-
return "<div style='color:red;font-size: large;'>×</div>";
|
344 |
-
default:
|
345 |
-
return $mo2f_var;
|
346 |
-
}
|
347 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|