Google Authenticator – WordPress Two Factor Authentication (2FA) - Version 4.5.3

Version Description

  • Google Authenticator (2FA) : Changed UI of the Login Pages, Redirect to Login Page bug fixes.
Download this release

Release Info

Developer cyberlord92
Plugin Icon 128x128 Google Authenticator – WordPress Two Factor Authentication (2FA)
Version 4.5.3
Comparing to
See all releases

Code changes from version 4.5.2 to 4.5.3

class-customer-setup.php CHANGED
@@ -478,4 +478,4 @@ class Customer_Setup{
478
  }
479
 
480
 
481
- }?>
478
  }
479
 
480
 
481
+ }?>
class-miniorange-2-factor-login.php CHANGED
@@ -117,8 +117,8 @@ class Miniorange_Mobile_Login{
117
  }
118
 
119
  function mo_2_factor_hide_login() {
120
- wp_register_style( 'hide-login', plugins_url( 'includes/css/hide-login.css?version=4.4.1', __FILE__ ) );
121
- wp_register_style( 'bootstrap', plugins_url( 'includes/css/bootstrap.min.css?version=4.4.1', __FILE__ ) );
122
 
123
  wp_enqueue_style( 'hide-login' );
124
  wp_enqueue_style( 'bootstrap' );
@@ -127,15 +127,15 @@ class Miniorange_Mobile_Login{
127
 
128
  function mo_2_factor_show_login() {
129
  if(get_option('mo2f_show_loginwith_phone')){
130
- wp_register_style( 'show-login', plugins_url( 'includes/css/hide-login-form.css?version=4.4.1', __FILE__ ) );
131
  }else{
132
- wp_register_style( 'show-login', plugins_url( 'includes/css/show-login.css?version=4.4.1', __FILE__ ) );
133
  }
134
  wp_enqueue_style( 'show-login' );
135
  }
136
 
137
  function mo_2_factor_show_login_with_password_when_phonelogin_enabled(){
138
- wp_register_style( 'show-login', plugins_url( 'includes/css/show-login.css?version=4.4.1', __FILE__ ) );
139
  wp_enqueue_style( 'show-login' );
140
  }
141
 
@@ -233,7 +233,7 @@ class Miniorange_Mobile_Login{
233
  <div class="mo2f-button-container" id="mo2f_button_container">
234
  <input type="text" name="mo2fa_usernamekey" id="mo2fa_usernamekey" autofocus="true" placeholder="Username"/>
235
  <p>
236
- <input type="button" name="miniorange_login_submit" style="width:100% !important;" onclick="mouserloginsubmit();" id="miniorange_login_submit" class="miniorange-button button-add" value="Login with your phone" />
237
  </p>
238
  <?php if(!get_option('mo2f_show_loginwith_phone')){ ?><br /><br /><?php } ?>
239
  </div>
117
  }
118
 
119
  function mo_2_factor_hide_login() {
120
+ wp_register_style( 'hide-login', plugins_url( 'includes/css/hide-login.css?version=4.5.3', __FILE__ ) );
121
+ wp_register_style( 'bootstrap', plugins_url( 'includes/css/bootstrap.min.css?version=4.5.3', __FILE__ ) );
122
 
123
  wp_enqueue_style( 'hide-login' );
124
  wp_enqueue_style( 'bootstrap' );
127
 
128
  function mo_2_factor_show_login() {
129
  if(get_option('mo2f_show_loginwith_phone')){
130
+ wp_register_style( 'show-login', plugins_url( 'includes/css/hide-login-form.css?version=4.5.3', __FILE__ ) );
131
  }else{
132
+ wp_register_style( 'show-login', plugins_url( 'includes/css/show-login.css?version=4.5.3', __FILE__ ) );
133
  }
134
  wp_enqueue_style( 'show-login' );
135
  }
136
 
137
  function mo_2_factor_show_login_with_password_when_phonelogin_enabled(){
138
+ wp_register_style( 'show-login', plugins_url( 'includes/css/show-login.css?version=4.5.3', __FILE__ ) );
139
  wp_enqueue_style( 'show-login' );
140
  }
141
 
233
  <div class="mo2f-button-container" id="mo2f_button_container">
234
  <input type="text" name="mo2fa_usernamekey" id="mo2fa_usernamekey" autofocus="true" placeholder="Username"/>
235
  <p>
236
+ <input type="button" name="miniorange_login_submit" style="width:100% !important;" onclick="mouserloginsubmit();" id="miniorange_login_submit" class="miniorange-button button-add" value="Login with 2nd factor" />
237
  </p>
238
  <?php if(!get_option('mo2f_show_loginwith_phone')){ ?><br /><br /><?php } ?>
239
  </div>
class-miniorange-2-factor-pass2fa-login.php CHANGED
@@ -442,7 +442,7 @@ class Miniorange_Password_2Factor_Login{
442
  }
443
  }else{
444
 
445
- $message = $mo2fa_login_status == 'MO_2_FACTOR_CHALLENGE_SOFT_TOKEN' ? 'Invalid OTP ...Possible causes <br />1. You mis-typed the OTP, find the OTP again and type it. <br /> 2. Your phone time is not in sync with miniOrange servers. <br /><b>How to sync?</b> In the app,tap on Settings icon and then press Sync button.' : 'Invalid OTP. Please try again';
446
  $this->miniorange_pass2login_form_fields($mo2fa_login_status, $message, $redirect_to);
447
  }
448
 
@@ -500,7 +500,37 @@ class Miniorange_Password_2Factor_Login{
500
  if(is_a($user, 'WP_Error') && !empty($user)){
501
  return $user;
502
  }
 
 
503
  if ( defined('XMLRPC_REQUEST') && XMLRPC_REQUEST && get_option('mo2f_enable_xmlrpc')){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
504
  $currentuser = wp_authenticate_username_password($user, $username, $password);
505
  if (is_wp_error($currentuser)) {
506
  $this->error = new IXR_Error(403, __('Bad login/pass combination.'));
442
  }
443
  }else{
444
 
445
+ $message = $mo2fa_login_status == 'MO_2_FACTOR_CHALLENGE_SOFT_TOKEN' ? 'You have entered an invalid OTP.<br>Please click on <b>Sync Time</b> in the miniOrange Authenticator app to sync your phone time with the miniOrange servers and try again.' : 'Invalid OTP. Please try again.';
446
  $this->miniorange_pass2login_form_fields($mo2fa_login_status, $message, $redirect_to);
447
  }
448
 
500
  if(is_a($user, 'WP_Error') && !empty($user)){
501
  return $user;
502
  }
503
+
504
+ // if an app password is enabled, this is an XMLRPC / APP login ?
505
  if ( defined('XMLRPC_REQUEST') && XMLRPC_REQUEST && get_option('mo2f_enable_xmlrpc')){
506
+
507
+ /* App Specific Password
508
+ // Get information on user
509
+ if ( get_user_by( 'email', $username ) === false ) {
510
+ $user = get_user_by( 'login', $username );
511
+ } else {
512
+ $user = get_user_by( 'email', $username );
513
+ }
514
+
515
+ // checking if password was generated by user
516
+ if(!get_user_option( 'mo2f_app_password', $user->ID )){
517
+ $this->error = new IXR_Error(403, __('Bad login/pass combination.'));
518
+ return false;
519
+ }
520
+
521
+ // Verifying the passwords
522
+ $app_password = get_user_option( 'mo2f_app_password', $user->ID );
523
+ $usersha1 = sha1($password );
524
+
525
+ // if passwords match
526
+ if ( $app_password == $usersha1 ) {
527
+ return new WP_User( $user->ID );
528
+ } else {
529
+ // Wrong XMLRPC/APP password !
530
+ $this->error = new IXR_Error(403, __('Bad login/pass combination.'));
531
+ return false;
532
+ }*/
533
+
534
  $currentuser = wp_authenticate_username_password($user, $username, $password);
535
  if (is_wp_error($currentuser)) {
536
  $this->error = new IXR_Error(403, __('Bad login/pass combination.'));
class-miniorange-2-factor-user-registration.php CHANGED
@@ -30,7 +30,7 @@ class Miniorange_User_Register{
30
  }
31
 
32
  function plugin_settings_style() {
33
- wp_enqueue_style( 'mo_2_factor_admin_settings_style', plugins_url('includes/css/style_settings.css?version=4.4.1', __FILE__));
34
  }
35
 
36
  function mo_auth_success_message() {
@@ -106,14 +106,14 @@ class Miniorange_User_Register{
106
  <h2 class="nav-tab-wrapper">
107
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=2factor_setup" class="nav-tab <?php echo $mo2f_active_tab == '2factor_setup' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab1"><?php if(get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_INITIALIZE_TWO_FACTOR' || get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_INITIALIZE_MOBILE_REGISTRATION' || get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS'){ ?>User Profile <?php }else{ ?> Account Setup <?php } ?></a>
108
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mobile_configure" class="nav-tab <?php echo $mo2f_active_tab == 'mobile_configure' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab2">Setup Two-Factor</a>
109
- <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_demo' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab4">How It Works</a>
110
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_help" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_help' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab3">Help & Troubleshooting</a>
111
  </h2>
112
  </div>
113
 
114
  <div class="mo2f_container">
115
  <div id="messages"></div>
116
- <table style="width:100%;">
117
  <tr>
118
  <td style="width:60%;vertical-align:top;">
119
  <?php
30
  }
31
 
32
  function plugin_settings_style() {
33
+ wp_enqueue_style( 'mo_2_factor_admin_settings_style', plugins_url('includes/css/style_settings.css?version=4.5.3', __FILE__));
34
  }
35
 
36
  function mo_auth_success_message() {
106
  <h2 class="nav-tab-wrapper">
107
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=2factor_setup" class="nav-tab <?php echo $mo2f_active_tab == '2factor_setup' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab1"><?php if(get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_INITIALIZE_TWO_FACTOR' || get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_INITIALIZE_MOBILE_REGISTRATION' || get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS'){ ?>User Profile <?php }else{ ?> Account Setup <?php } ?></a>
108
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mobile_configure" class="nav-tab <?php echo $mo2f_active_tab == 'mobile_configure' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab2">Setup Two-Factor</a>
109
+ <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_demo' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab4">How To Setup</a>
110
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_help" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_help' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab3">Help & Troubleshooting</a>
111
  </h2>
112
  </div>
113
 
114
  <div class="mo2f_container">
115
  <div id="messages"></div>
116
+ <table style="width:100%;padding:10px;">
117
  <tr>
118
  <td style="width:60%;vertical-align:top;">
119
  <?php
includes/css/bootstrap.min.css CHANGED
@@ -404,7 +404,7 @@ button.mo2f_close {
404
 
405
  }
406
 
407
- .mo2f_modal-content {
408
  position: relative !important;
409
  background-color: #fff !important;
410
  -webkit-background-clip: padding-box !important;
@@ -424,14 +424,18 @@ button.mo2f_close {
424
  top: 0;
425
  right: 0;
426
  left: 0;
427
- background-color: #000 !important;
428
  filter: alpha(opacity = 50)!important;
429
  opacity: 0.8 !important;
430
  height: 100% !important;
431
  }
432
 
433
 
434
-
 
 
 
 
435
 
436
 
437
  .mo2f_modal-header {
@@ -486,7 +490,7 @@ button.mo2f_close {
486
  width: 373px;
487
  margin: 0px auto
488
  }
489
- .mo2f_modal-content {
490
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
491
  box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
492
  }
@@ -511,8 +515,211 @@ button.mo2f_close {
511
 
512
  text-align: center !important;
513
  }
 
514
  #otpMessage{
515
  border-radius: 4px;
516
  padding: 1px 5px;
517
- background: rgba(1, 145, 191, 0.117647);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
518
  }
404
 
405
  }
406
 
407
+ .login mo_customer_validation-modal-content {
408
  position: relative !important;
409
  background-color: #fff !important;
410
  -webkit-background-clip: padding-box !important;
424
  top: 0;
425
  right: 0;
426
  left: 0;
427
+ background-color: #f1f1f1 !important;
428
  filter: alpha(opacity = 50)!important;
429
  opacity: 0.8 !important;
430
  height: 100% !important;
431
  }
432
 
433
 
434
+ #smsAlertModal{
435
+ background-color: black !important;
436
+ opacity: 0.8 !important;
437
+ filter: alpha(opacity = 50)!important;
438
+ }
439
 
440
 
441
  .mo2f_modal-header {
490
  width: 373px;
491
  margin: 0px auto
492
  }
493
+ .login mo_customer_validation-modal-content {
494
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
495
  box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
496
  }
515
 
516
  text-align: center !important;
517
  }
518
+
519
  #otpMessage{
520
  border-radius: 4px;
521
  padding: 1px 5px;
522
+ background: #f1f1f1;
523
+ }
524
+
525
+ .mo2f_carousel-indicators {
526
+ position: absolute;
527
+ bottom: -20px;
528
+ z-index: 15;
529
+ width: 60%;
530
+ list-style: none;
531
+ text-align: center;
532
+ }
533
+
534
+ .miniorange_kba_validate:hover, .miniorange_validate_otp:hover, .miniorange_login_forgotphone:hover,
535
+ .miniorange_login_offline:hover, .miniorange_login_forgotphone:hover, .miniorange_otp_token_submit:hover
536
+ {
537
+ background-color:#0073AA!important
538
+ }
539
+ .miniorange_kba_validate, .miniorange_validate_otp, .miniorange_login_forgotphone,
540
+ .miniorange_login_offline, .miniorange_login_forgotphone , .miniorange_otp_token_submit{
541
+ background:#00A0D2!important;
542
+ border-color:#0073AA!important;
543
+ box-shadow:0 1px 0 rgba(120,200,230,.5) inset,0 1px 0 rgba(0,0,0,.15)!important;
544
+ color:#FFF!important;
545
+ text-decoration:none!important;
546
+ cursor:pointer!important;
547
+ border-width:1px!important;
548
+ border-style:solid!important;
549
+ border-radius:3px!important;
550
+ white-space:nowrap!important;
551
+ box-sizing:border-box!important;
552
+ line-height:28px!important;
553
+ padding:0 12px!important;
554
+ font-size:13px!important
555
+ }
556
+
557
+
558
+ .mo_customer_validation-modal.fade .mo_customer_validation-modal-dialog {
559
+ -webkit-transition: -webkit-transform .3s ease-out;
560
+ -o-transition: -o-transform .3s ease-out;
561
+ transition: transform .3s ease-out;
562
+ -webkit-transform: translate(0, -25%);
563
+ -ms-transform: translate(0, -25%);
564
+ -o-transform: translate(0, -25%);
565
+ transform: translate(0, -25%)
566
+ }
567
+ .mo_customer_validation-modal.in .mo_customer_validation-modal-dialog {
568
+ -webkit-transform: translate(0, 80px)!important;
569
+ -ms-transform: translate(0, 80px)!important;
570
+ -o-transform: translate(0, 80px)!important;
571
+ transform: translate(0, 80px)!important
572
+ }
573
+ .mo_customer_validation-modal-open .mo_customer_validation-modal {
574
+ overflow-x: hidden;
575
+ overflow-y: hidden
576
+ }
577
+ .mo_customer_validation-modal-dialog {
578
+ position: relative;
579
+ width: auto;
580
+ margin: 10px
581
+ }
582
+ .mo_customer_validation-modal-content {
583
+ position: relative;
584
+ -webkit-background-clip: padding-box;
585
+ border: 1px solid #999;
586
+ border: 1px solid rgba(0, 0, 0, .2);
587
+ outline: 0;
588
+ margin-top: 8%;
589
+ margin-left: 0;
590
+ padding: 15px 20px 0;
591
+ font-family: "Open Sans", sans-serif;
592
+ color: #777;
593
+ font-size: 14px;
594
+ line-height: 1.4em;
595
+ background: #FFF;
596
+ box-shadow: 0 1px 3px rgba(0, 0, 0, .13)
597
+ }
598
+ .mo_customer_validation-modal-backdrop {
599
+ position: absolute;
600
+ top: 0;
601
+ right: 0;
602
+ left: 0;
603
+ background-color: #000!important;
604
+ filter: alpha(opacity=50)!important;
605
+ opacity: .9!important;
606
+ height: 100%!important
607
+ }
608
+ .mo_customer_validation-modal-header {
609
+ min-height: 14px;
610
+ padding: 10px 10px 20px;
611
+ border-bottom: 1px solid #e5e5e5
612
+ }
613
+ .mo_customer_validation-modal-title {
614
+ margin: 0!important;
615
+ line-height: 1!important
616
+ }
617
+ .mo_customer_validation-modal-body {
618
+ position: relative;
619
+ padding: 5%;
620
+ overflow: hidden!important;
621
+ max-height: 550px!important
622
+ }
623
+ .mo_customer_validation-modal-footer {
624
+ padding: 15px;
625
+ text-align: right;
626
+ border-top: 1px solid #e5e5e5
627
+ }
628
+ .mo_customer_validation-modal-footer .btn+.btn {
629
+ margin-bottom: 0;
630
+ margin-left: 5px
631
+ }
632
+ .mo_customer_validation-modal-footer .btn-group .btn+.btn {
633
+ margin-left: -1px
634
+ }
635
+ .mo_customer_validation-modal-footer .btn-block+.btn-block {
636
+ margin-left: 0
637
+ }
638
+ .mo_customer_validation-modal-scrollbar-measure {
639
+ position: absolute;
640
+ top: -9999px;
641
+ width: 50px;
642
+ height: 50px;
643
+ overflow: scroll
644
+ }
645
+ @media (min-width: 768px) {
646
+ .mo_customer_validation-modal-dialog {
647
+ width: auto;
648
+ margin: 0 auto
649
+ }
650
+ .mo_customer_validation-modal-content {
651
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
652
+ box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
653
+ }
654
+ .mo_customer_validation-modal-sm {
655
+ width: 300px
656
+ }
657
+ .mo_customer_validation-modal-md {
658
+ width: 532px
659
+ }
660
+ .mo_customer_validation-modal-lg {
661
+ width: 50%
662
+ }
663
+ }
664
+ @media (min-width: 992px) {
665
+ .mo_customer_validation-modal-dialog {
666
+ width: auto;
667
+ margin: 0 auto
668
+ }
669
+ .mo_customer_validation-modal-lg {
670
+ width: 490px
671
+ }
672
+ .mo_customer_validation-modal-md {
673
+ width: 532px
674
+ }
675
+ }
676
+ .mo_customer_validation-textbox {
677
+ background: #FBFBFB;
678
+ font-family: "Open Sans", sans-serif;
679
+ font-size: 24px;
680
+ width: 100%;
681
+ border: 1px solid #DDD;
682
+ padding: 3px;
683
+ margin: 2px 6px 16px 0
684
+ }
685
+ .mo_customer_validation-textbox:focus {
686
+ border-color: #5B9DD9;
687
+ box-shadow: 0 0 2px rgba(30, 140, 190, .8)
688
+ }
689
+ .button-primary,
690
+ .button-secondary {
691
+ background: #00A0D2;
692
+ border-color: #0073AA;
693
+ box-shadow: 0 1px 0 rgba(120, 200, 230, .5) inset, 0 1px 0 rgba(0, 0, 0, .15);
694
+ color: #FFF;
695
+ text-decoration: none;
696
+ cursor: pointer;
697
+ border-width: 1px;
698
+ border-style: solid;
699
+ border-radius: 3px;
700
+ white-space: nowrap;
701
+ box-sizing: border-box;
702
+ line-height: 28px;
703
+ padding: 0 12px;
704
+ font-size: 13px
705
+ }
706
+ .button:hover {
707
+ background-color: #0073AA
708
+ }
709
+ .close {
710
+ float: right;
711
+ transition: color .1s ease-in-out, background .1s ease-in-out;
712
+ text-decoration: none;
713
+ color: #999;
714
+ font-size: 13px
715
+ }
716
+ .mo_validate_close:focus,
717
+ .mo_validate_close:hover {
718
+ color: #0085ba
719
+ }
720
+
721
+ .mo_registration_pricing_text{
722
+ font-size:15px!important;
723
+ color:#fff!important;
724
+ font-weight:700!important
725
  }
includes/css/front_end_login.css CHANGED
@@ -25,7 +25,7 @@
25
 
26
  }
27
  .mo2f-textbox{
28
- //width: 100% !important;
29
  margin: 15px 0px !important;
30
  background-color: rgba(123, 110, 110, 0.06) !important;
31
  border-radius: 4px !important;
@@ -50,7 +50,7 @@
50
 
51
  .mo2fa_display_message_frontend{
52
  text-align:center !important;
53
- font-size: 15px !important;
54
  }
55
 
56
  .mo2f-link{
@@ -60,8 +60,8 @@
60
  cursor: pointer !important;
61
  }
62
  .mo_green{
63
- background:green !important;
64
- border-color:green !important;
65
  width:26% !important;
66
  border-width: 1px;
67
  vertical-align: middle !important;
@@ -71,8 +71,8 @@
71
  cursor:pointer;
72
  }
73
  .mo_red{
74
- background:rgb(247, 38, 38) !important;
75
- border-color:rgb(247, 38, 38) !important;
76
  width:26% !important;
77
  border-width: 1px;
78
  vertical-align: middle !important;
@@ -84,7 +84,6 @@
84
 
85
 
86
  .showQRHelp, .showOTPHelp{
87
- background-color: rgba(215, 217, 218, 0.78) !important;
88
  text-align:center !important;
89
 
90
  }
25
 
26
  }
27
  .mo2f-textbox{
28
+ width: 160px;
29
  margin: 15px 0px !important;
30
  background-color: rgba(123, 110, 110, 0.06) !important;
31
  border-radius: 4px !important;
50
 
51
  .mo2fa_display_message_frontend{
52
  text-align:center !important;
53
+ font-size: 13px !important;
54
  }
55
 
56
  .mo2f-link{
60
  cursor: pointer !important;
61
  }
62
  .mo_green{
63
+ background:#2ECC71 !important;
64
+ border-color:#2ECC71 !important;
65
  width:26% !important;
66
  border-width: 1px;
67
  vertical-align: middle !important;
71
  cursor:pointer;
72
  }
73
  .mo_red{
74
+ background:#E74C3C !important;
75
+ border-color:#E74C3C !important;
76
  width:26% !important;
77
  border-width: 1px;
78
  vertical-align: middle !important;
84
 
85
 
86
  .showQRHelp, .showOTPHelp{
 
87
  text-align:center !important;
88
 
89
  }
includes/css/hide-login.css CHANGED
@@ -172,17 +172,17 @@ body.login-action-login div#login div#login_error1{
172
  cursor:pointer;
173
  }
174
  .mo_green{
175
- background:green;
176
- border-color:green;
177
  width:37%;
178
  }
179
  .mo_red{
180
- background:rgb(247, 38, 38);
181
- border-color:rgb(247, 38, 38);
182
  width:37%;
183
  }
184
  .showQRHelp, .showOTPHelp{
185
- background-color: rgba(215, 217, 218, 0.78) !important;
186
  }
187
 
188
  .mo_email_textbox{
172
  cursor:pointer;
173
  }
174
  .mo_green{
175
+ background:#2ECC71;
176
+ border-color:#2ECC71;
177
  width:37%;
178
  }
179
  .mo_red{
180
+ background:#E74C3C;
181
+ border-color:#E74C3C;
182
  width:37%;
183
  }
184
  .showQRHelp, .showOTPHelp{
185
+ text-align:center !important;
186
  }
187
 
188
  .mo_email_textbox{
includes/css/style_settings.css CHANGED
@@ -99,7 +99,7 @@ margin-right:5px !important;
99
  }
100
  .mo2f_faqs>div{
101
  padding: 5px 20px !important;
102
- border-left: 2px solid grey !important;
103
  }
104
 
105
  .mo2f_faqs>hr{
@@ -295,4 +295,11 @@ margin-left:20.5%;
295
  background-color: white;
296
  z-index:1002;
297
  overflow: auto;
 
 
 
 
 
 
 
298
  }
99
  }
100
  .mo2f_faqs>div{
101
  padding: 5px 20px !important;
102
+ border-left: 2px solid grey;
103
  }
104
 
105
  .mo2f_faqs>hr{
295
  background-color: white;
296
  z-index:1002;
297
  overflow: auto;
298
+ }
299
+
300
+ .mo_faq_blocks{
301
+ border-style: solid;
302
+ border-width: 2px;
303
+ border-color: #CACFD2 !important;
304
+ padding: 1px;
305
  }
miniorange_2_factor_common_login.php CHANGED
@@ -187,17 +187,17 @@
187
  <?php
188
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
189
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
190
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.4.1', __FILE__) . '" />';
191
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.4.1', __FILE__) . '" />';
192
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.4.1', __FILE__) . '" />';
193
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.4.1', __FILE__) . '" />';
194
  ?>
195
  </head>
196
  <body>
197
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
198
  <div class="mo2f-modal-backdrop"></div>
199
- <div class="mo2f_modal-dialog mo2f_modal-md">
200
- <div class="mo2f_modal-content">
201
  <div class="mo2f_modal-header">
202
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
203
  How would you like to authenticate yourself?
@@ -220,7 +220,7 @@
220
  <input type="radio" name="mo2f_selected_forgotphone_option" value="KBA" />Answer your Security Questions (KBA)
221
  <?php } ?>
222
  <br /><br />
223
- <input type="button" name="miniorange_validtae_otp" value="Continue" class="miniorange-button" onclick="mo2fselectforgotphoneoption();" />
224
  </div>
225
  <?php mo2f_customize_logo();
226
  }
@@ -232,7 +232,7 @@
232
  <form name="f" id="mo2f_backto_mo_loginform" method="post" action="<?php echo wp_login_url(); ?>" style="display:none;">
233
  <input type="hidden" name="miniorange_mobile_validation_failed_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-failed-nonce'); ?>" />
234
  </form>
235
- <form name="f" id="mo2f_challenge_forgotphone_form" method="post" action="" style="display:none;">
236
  <input type="hidden" name="mo2f_selected_2factor_method" />
237
  <input type="hidden" name="miniorange_challenge_forgotphone_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-challenge-forgotphone-nonce'); ?>" />
238
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
@@ -259,17 +259,17 @@
259
  <?php
260
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
261
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
262
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.4.1', __FILE__) . '" />';
263
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.4.1', __FILE__) . '" />';
264
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.4.1', __FILE__) . '" />';
265
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.4.1', __FILE__) . '" />';
266
  ?>
267
  </head>
268
  <body>
269
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
270
  <div class="mo2f-modal-backdrop"></div>
271
- <div class="mo2f_modal-dialog mo2f_modal-md">
272
- <div class="mo2f_modal-content">
273
  <div class="mo2f_modal-header">
274
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
275
  Validate Security Questions
@@ -278,9 +278,9 @@
278
  <div class="mo2f_modal-body">
279
  <div id="kbaSection" style="padding-left:10px;padding-right:10px;">
280
  <div id="otpMessage">
281
- <p style="font-size:15px;"><?php echo (isset($login_message) && !empty($login_message)) ? $login_message : 'Please answer the following questions:'; ?></p>
282
  </div>
283
- <form name="f" id="mo2f_submitkba_loginform" method="post" action="">
284
  <div id="mo2f_kba_content">
285
  <p style="font-size:15px;">
286
  <?php if(isset($_SESSION['mo_2_factor_kba_questions'])){
@@ -304,10 +304,11 @@
304
  }
305
  }
306
  ?>
307
- <input type="submit" name="miniorange_kba_validate" id="miniorange_kba_validate" class="miniorange-button" style="float:left;" value="Validate" />
308
  <input type="hidden" name="miniorange_kba_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-kba-nonce'); ?>" />
309
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
310
  </form>
 
311
  </div>
312
  <?php mo2f_customize_logo() ?>
313
  </div>
@@ -337,17 +338,17 @@
337
  <?php
338
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
339
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
340
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.4.1', __FILE__) . '" />';
341
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.4.1', __FILE__) . '" />';
342
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.4.1', __FILE__) . '" />';
343
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.4.1', __FILE__) . '" />';
344
  ?>
345
  </head>
346
  <body>
347
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
348
  <div class="mo2f-modal-backdrop"></div>
349
- <div class="mo2f_modal-dialog mo2f_modal-md">
350
- <div class="mo2f_modal-content">
351
  <div class="mo2f_modal-header">
352
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
353
  Accept Your Transaction
@@ -360,14 +361,10 @@
360
  </div>
361
  <?php } ?>
362
  <div id="pushSection">
363
- <center>
364
- <a href="#showPushHelp" id="pushHelpLink">
365
- <h3>See How It Works ?</h3>
366
- </a>
367
- </center>
368
  <div>
369
  <center>
370
- <h3>Waiting for your approval...</h3>
371
  </center>
372
  </div>
373
  <div id="showPushImage">
@@ -375,18 +372,26 @@
375
  <img src="<?php echo plugins_url( 'includes/images/ajax-loader-login.gif' , __FILE__ );?>" />
376
  </center>
377
  </div>
 
 
 
 
 
 
 
378
  <span style="padding-right:2%;">
379
  <?php if(isset($login_status) && $login_status == 'MO_2_FACTOR_CHALLENGE_PUSH_NOTIFICATIONS'){ ?>
380
  <center>
381
  <?php if(get_option('mo2f_enable_forgotphone')){ ?>
382
- <input type="button" name="miniorange_login_forgotphone" onclick="mologinforgotphone();" id="miniorange_login_forgotphone" class="miniorange-button" value="Forgot Phone?" />
383
  <?php } ?>
384
- <input type="button" name="miniorange_login_offline" onclick="mologinoffline();" id="miniorange_login_offline" class="miniorange-button" value="Phone is Offline?" />
 
385
  </center>
386
  <?php }else if(isset($login_status) && $login_status == 'MO_2_FACTOR_CHALLENGE_OOB_EMAIL' && get_option('mo2f_enable_forgotphone') && get_user_meta($id,'mo2f_kba_registration_status',true)){ ?>
387
  <center>
388
  <a href="#mo2f_alternate_login_kba" >
389
- <h3>Didn't receive mail?</h3>
390
  </a>
391
  </center>
392
  <?php }?>
@@ -394,10 +399,6 @@
394
  </div>
395
  <div id="showPushHelp" class="showPushHelp" hidden>
396
  <center>
397
- <a href="#showPushHelp" id="pushLink">
398
- <h3>←Go Back.</h3>
399
- </a>
400
- <br>
401
  <div id="myCarousel" class="mo2f_carousel slide" data-ride="carousel" data-interval="15000" >
402
  <ol class="mo2f_carousel-indicators">
403
  <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
@@ -407,37 +408,43 @@
407
  <div class="mo2f_carousel-inner" role="listbox">
408
  <?php if($login_status == 'MO_2_FACTOR_CHALLENGE_OOB_EMAIL') { ?>
409
  <div class="item active">
410
- <p><b>A verification email has been sent to your registered email id.</b></p>
411
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/email-with-link-login-flow-1.png" alt="First slide">
 
412
  </div>
413
  <div class="item">
414
- <p><b>Click on <b style="color:red">Accept Transaction</b> link to verify your email .</b></p>
415
  <br>
416
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/email-with-link-login-flow-2.png" alt="First slide">
417
  </div>
418
  <div class="item">
419
- <p><b>You have been validated. You will be logged in to your website now.</b></p>
420
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/email-with-link-login-flow-3.png" alt="First slide">
 
421
  </div>
422
  <?php } else { ?>
423
  <!-- Indicators -->
424
  <div class="item active">
425
- <p><b>You will receive a notification on your phone.</b></p>
426
  <br>
427
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/push-login-flow.png" alt="First slide">
428
  </div>
429
  <div class="item">
430
- <p><b>Click on <b style="color:red">Approve</b> button.</b></p>
431
  <br>
432
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/push-login-flow-1.jpg" alt="First slide">
433
  </div>
434
  <div class="item">
435
- <p><b>You are successfully authenticated.</b></p>
436
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/mo2f_softtoken_5.jpg" alt="First slide">
 
437
  </div>
438
  <?php } ?>
439
  </div>
440
  </div>
 
 
 
441
  </center>
442
  </div>
443
  <?php mo2f_customize_logo() ?>
@@ -448,20 +455,20 @@
448
  <form name="f" id="mo2f_backto_mo_loginform" method="post" action="<?php echo wp_login_url(); ?>" style="display:none;">
449
  <input type="hidden" name="miniorange_mobile_validation_failed_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-failed-nonce'); ?>" />
450
  </form>
451
- <form name="f" id="mo2f_mobile_validation_form" method="post" action="" style="display:none;">
452
  <input type="hidden" name="miniorange_mobile_validation_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-nonce'); ?>" />
453
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
454
  </form>
455
- <form name="f" id="mo2f_show_softtoken_loginform" method="post" action="" style="display:none;">
456
  <input type="hidden" name="miniorange_softtoken" value="<?php echo wp_create_nonce('miniorange-2-factor-softtoken'); ?>" />
457
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
458
  </form>
459
- <form name="f" id="mo2f_show_forgotphone_loginform" method="post" action="" style="display:none;">
460
  <input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>" />
461
  <input type="hidden" name="miniorange_forgotphone" value="<?php echo wp_create_nonce('miniorange-2-factor-forgotphone'); ?>" />
462
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
463
  </form>
464
- <form name="f" id="mo2f_alternate_login_kbaform" method="post" action="" style="display:none;">
465
  <input type="hidden" name="miniorange_alternate_login_kba_nonce" 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
  </form>
@@ -533,17 +540,17 @@
533
  <?php
534
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
535
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
536
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.4.1', __FILE__) . '" />';
537
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.4.1', __FILE__) . '" />';
538
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.4.1', __FILE__) . '" />';
539
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.4.1', __FILE__) . '" />';
540
  ?>
541
  </head>
542
  <body>
543
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
544
  <div class="mo2f-modal-backdrop"></div>
545
- <div class="mo2f_modal-dialog mo2f_modal-md">
546
- <div class="mo2f_modal-content">
547
  <div class="mo2f_modal-header">
548
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
549
  Scan QR Code
@@ -559,12 +566,12 @@
559
  <div id="scanQRSection">
560
  <center>
561
  <a href="#showQRHelp" id="helpLink">
562
- <h3>See How It Works ?</h3>
563
  </a>
564
  </center>
565
  <div style="margin-bottom:10%;">
566
  <center>
567
- <h3>Identify yourself by scanning the QR code with miniOrange Authenticator app.</h3>
568
  </center>
569
  </div>
570
  <div id="showQrCode" style="margin-bottom:10%;">
@@ -573,17 +580,15 @@
573
  <span style="padding-right:2%;">
574
  <center>
575
  <?php if(get_option('mo2f_enable_forgotphone')){ ?>
576
- <input type="button" name="miniorange_login_forgotphone" onclick="mologinforgotphone();" id="miniorange_login_forgotphone" class="miniorange-button" style="margin-right:5%;" value="Forgot Phone?" />
577
  <?php } ?>
578
- <input type="button" name="miniorange_login_offline" onclick="mologinoffline();" id="miniorange_login_offline" class="miniorange-button" value="Phone is Offline?" />
 
579
  </center>
580
  </span>
581
  </div>
582
  <div id="showQRHelp" class="showQRHelp" hidden>
583
  <center>
584
- <a href="#showQRHelp" id="qrLink">
585
- <h3>Back to Scan QR Code.</h3>
586
- </a>
587
  <div id="myCarousel" class="mo2f_carousel slide" data-ride="carousel" data-interval="15000" >
588
  <!-- Indicators -->
589
  <ol class="mo2f_carousel-indicators">
@@ -593,21 +598,25 @@
593
  </ol>
594
  <div class="mo2f_carousel-inner" role="listbox">
595
  <div class="item active">
596
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/qr-how-to-setup-1.png" alt="First slide">
597
  </div>
598
  <div class="item">
599
- <p><b>Open miniOrange <b style="color:red">Authenticator</b> app and click on SCAN QR CODE.</b></p>
600
  <br>
601
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/mo2f_softtoken_5.jpg" alt="First slide">
602
  </div>
603
  <div class="item">
604
- <p><b>Scan the QR code from the app.</b></p>
605
  <br>
606
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/qr-help-3.jpg" alt="First slide">
 
607
  </div>
608
 
609
  </div>
610
  </div>
 
 
 
611
  </center>
612
  </div>
613
  <?php mo2f_customize_logo() ?>
@@ -618,15 +627,15 @@
618
  <form name="f" id="mo2f_backto_mo_loginform" method="post" action="<?php echo wp_login_url(); ?>" style="display:none;">
619
  <input type="hidden" name="miniorange_mobile_validation_failed_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-failed-nonce'); ?>" />
620
  </form>
621
- <form name="f" id="mo2f_mobile_validation_form" method="post" action="" style="display:none;">
622
  <input type="hidden" name="miniorange_mobile_validation_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-nonce'); ?>" />
623
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
624
  </form>
625
- <form name="f" id="mo2f_show_softtoken_loginform" method="post" action="" style="display:none;">
626
  <input type="hidden" name="miniorange_softtoken" value="<?php echo wp_create_nonce('miniorange-2-factor-softtoken'); ?>" />
627
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
628
  </form>
629
- <form name="f" id="mo2f_show_forgotphone_loginform" method="post" action="" style="display:none;">
630
  <input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>" />
631
  <input type="hidden" name="miniorange_forgotphone" value="<?php echo wp_create_nonce('miniorange-2-factor-forgotphone'); ?>" />
632
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
@@ -699,17 +708,17 @@
699
  <?php
700
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
701
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
702
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.4.1', __FILE__) . '" />';
703
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.4.1', __FILE__) . '" />';
704
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.4.1', __FILE__) . '" />';
705
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.4.1', __FILE__) . '" />';
706
  ?>
707
  </head>
708
  <body>
709
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
710
  <div class="mo2f-modal-backdrop"></div>
711
- <div class="mo2f_modal-dialog mo2f_modal-md">
712
- <div class="mo2f_modal-content">
713
  <div class="mo2f_modal-header">
714
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
715
  Validate OTP
@@ -724,28 +733,27 @@
724
  <br />
725
  <div id="showOTP">
726
  <div class="mo2f-login-container">
727
- <?php if($login_status != 'MO_2_FACTOR_CHALLENGE_GOOGLE_AUTHENTICATION'){ ?>
728
- <a href="#showOTPHelp" id="otpHelpLink" class="mo2f-link">See How It Works ?</a><br />
729
- <?php } ?>
730
- <form name="f" id="mo2f_submitotp_loginform" method="post" action="">
731
  <input type="text" name="mo2fa_softtoken" style="height:28px !important;" placeholder="Enter one time passcode" id="mo2fa_softtoken" required="true" class="mo2f-textbox" autofocus="true" pattern="[0-9]{4,8}" title="Only digits within range 4-8 are allowed."/>
732
  <br />
733
- <input type="submit" name="miniorange_soft_token_submit" id="miniorange_soft_token_submit" class="miniorange-button" value="Validate" />
734
  <input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>" />
735
  <input type="hidden" name="miniorange_soft_token_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-soft-token-nonce'); ?>" />
736
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
737
- </form>
738
  <?php if(get_option('mo2f_enable_forgotphone') && isset($login_status ) && $login_status != 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL'){ ?>
739
  <a name="miniorange_login_forgotphone" onclick="mologinforgotphone();" id="miniorange_login_forgotphone" class="mo2f-link" >Forgot Phone ?</a>
740
  <?php } ?>
 
 
 
 
 
 
741
  </div>
742
  </div>
743
  <div id="showOTPHelp" class="showOTPHelp" hidden>
744
- <br>
745
  <center>
746
- <a href="#showOTP" id="otpLink" class="mo2f-link">Go Back</a>
747
- <br>
748
- <br>
749
  <div id="myCarousel" class="mo2f_carousel slide" data-ride="carousel" data-interval="15000" >
750
  <!-- Indicators -->
751
  <?php if($login_status == 'MO_2_FACTOR_CHALLENGE_SOFT_TOKEN'){ ?>
@@ -757,24 +765,26 @@
757
  </ol>
758
  <div class="mo2f_carousel-inner" role="listbox">
759
  <div class="item active">
760
- <p><b>Open miniOrange <b style="color:red">Authenticator</b> app and click on Sync time from the top left menu option.</b></p>
761
  <br>
762
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/qr-help-2.jpg" alt="First slide">
763
  </div>
764
  <div class="item">
765
- <p><b>Click on <b style="color:red">Sync Time now</b> to sync your time with miniOrange Servers. This is a one time sync to avoid otp validation failure.</b></p>
766
  <br>
767
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/token-help-3.jpg" alt="First slide">
 
768
  </div>
769
  <div class="item">
770
  <p>Go to Home</p>
771
  <br>
772
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/token-help-2.jpg" alt="First slide">
 
773
  </div>
774
  <div class="item">
775
- <p><b>Enter the one time passcode shown in miniOrange <b style="color:red">Authenticator</b> app here.</b></p>
776
  <br>
777
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/soft-token-test-5.png" alt="First slide">
778
  </div>
779
  </div>
780
  <?php } else if($login_status == 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL') { ?>
@@ -785,58 +795,48 @@
785
  </ol>
786
  <div class="mo2f_carousel-inner" role="listbox">
787
  <div class="item active">
788
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-help-1.png" alt="First slide">
 
 
 
789
  </div>
790
  <div class="item">
791
  <p>Check your email with which you registered and copy the one time passcode.</p>
792
  <br>
793
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-help-2.png" alt="First slide">
 
794
  </div>
795
  <div class="item">
796
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-help-3.png" alt="First slide">
 
 
 
797
  </div>
798
  </div>
799
  <?php } else if($login_status == 'MO_2_FACTOR_CHALLENGE_OTP_OVER_SMS') { ?>
800
  <ol class="mo2f_carousel-indicators">
801
  <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
802
  <li data-target="#myCarousel" data-slide-to="1"></li>
803
- <li data-target="#myCarousel" data-slide-to="2"></li>
804
  </ol>
805
  <div class="mo2f_carousel-inner" role="listbox">
806
  <div class="item active">
807
- <p><b>An OTP has been sent your registered mobile number.</b></p>
808
  <br>
809
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-over-sms-login-flow-1.png" alt="First slide">
810
- </div>
811
- <div class="item">
812
-
813
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-over-sms-login-flow-2.jpg" alt="First slide">
814
- </div>
815
- <div class="item">
816
- <p><b>Enter the OTP received on your mobile phone to validate.</b></p>
817
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-over-sms-login-flow-3.png" alt="First slide">
818
- </div>
819
- </div>
820
- <?php } else { ?>
821
- <!-- phone call verification -->
822
- <ol class="mo2f_carousel-indicators">
823
- <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
824
- <li data-target="#myCarousel" data-slide-to="1"></li>
825
- </ol>
826
- <div class="mo2f_carousel-inner" role="listbox">
827
- <div class="item active">
828
- <p>You will receive a phone call. Pick up the call and listen to the one time passcode carefully. </p>
829
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/phone-call-login-flow-2.png" alt="First slide">
830
  </div>
831
  <div class="item">
832
- <p>Enter the one time passcode here and click on validate button to login.</p>
833
- <br>
834
- <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/phone-call-login-flow.png" alt="First slide">
835
  </div>
836
  </div>
837
  <?php } ?>
838
  </div>
 
 
 
839
  </div>
 
840
  <?php mo2f_customize_logo() ?>
841
  </div>
842
  </div>
@@ -886,17 +886,17 @@
886
  <?php
887
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
888
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
889
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.4.1', __FILE__) . '" />';
890
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.4.1', __FILE__) . '" />';
891
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.4.1', __FILE__) . '" />';
892
- echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.4.1', __FILE__) . '" />';
893
  ?>
894
  </head>
895
  <body>
896
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
897
  <div class="mo2f-modal-backdrop"></div>
898
- <div class="mo2f_modal-dialog mo2f_modal-md">
899
- <div class="mo2f_modal-content">
900
  <div class="mo2f_modal-header">
901
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
902
  Remember Device
@@ -904,12 +904,12 @@
904
  </div>
905
  <div class="mo2f_modal-body center">
906
  <div id="mo2f_device_content">
907
- <h3>Do you want to remember this device?</h3>
908
  <input type="button" name="miniorange_trust_device_yes" onclick="mo_check_device_confirm();" id="miniorange_trust_device_yes" class="mo_green" style="margin-right:5%;" value="Yes" />
909
  <input type="button" name="miniorange_trust_device_no" onclick="mo_check_device_cancel();" id="miniorange_trust_device_no" class="mo_red" value="No" />
910
  </div>
911
  <div id="showLoadingBar" hidden>
912
- <h3>Please wait...We are taking you into your account.</h3>
913
  <img src="<?php echo plugins_url( 'includes/images/ajax-loader-login.gif' , __FILE__ );?>" />
914
  </div>
915
  <br /><br />
187
  <?php
188
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
189
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
190
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.5.3', __FILE__) . '" />';
191
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.5.3', __FILE__) . '" />';
192
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.5.3', __FILE__) . '" />';
193
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.5.3', __FILE__) . '" />';
194
  ?>
195
  </head>
196
  <body>
197
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
198
  <div class="mo2f-modal-backdrop"></div>
199
+ <div class="mo_customer_validation-modal-dialog mo_customer_validation-modal-md">
200
+ <div class="login mo_customer_validation-modal-content">
201
  <div class="mo2f_modal-header">
202
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
203
  How would you like to authenticate yourself?
220
  <input type="radio" name="mo2f_selected_forgotphone_option" value="KBA" />Answer your Security Questions (KBA)
221
  <?php } ?>
222
  <br /><br />
223
+ <input type="button" name="miniorange_validtae_otp" value="Continue" class="miniorange_validate_otp" onclick="mo2fselectforgotphoneoption();" />
224
  </div>
225
  <?php mo2f_customize_logo();
226
  }
232
  <form name="f" id="mo2f_backto_mo_loginform" method="post" action="<?php echo wp_login_url(); ?>" style="display:none;">
233
  <input type="hidden" name="miniorange_mobile_validation_failed_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-failed-nonce'); ?>" />
234
  </form>
235
+ <form name="f" id="mo2f_challenge_forgotphone_form" method="post" action="admin_post_nopriv_mo_prefix_initialization" style="display:none;">
236
  <input type="hidden" name="mo2f_selected_2factor_method" />
237
  <input type="hidden" name="miniorange_challenge_forgotphone_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-challenge-forgotphone-nonce'); ?>" />
238
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
259
  <?php
260
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
261
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
262
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.5.3', __FILE__) . '" />';
263
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.5.3', __FILE__) . '" />';
264
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.5.3', __FILE__) . '" />';
265
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.5.3', __FILE__) . '" />';
266
  ?>
267
  </head>
268
  <body>
269
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
270
  <div class="mo2f-modal-backdrop"></div>
271
+ <div class="mo_customer_validation-modal-dialog mo_customer_validation-modal-md">
272
+ <div class="login mo_customer_validation-modal-content">
273
  <div class="mo2f_modal-header">
274
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
275
  Validate Security Questions
278
  <div class="mo2f_modal-body">
279
  <div id="kbaSection" style="padding-left:10px;padding-right:10px;">
280
  <div id="otpMessage">
281
+ <p style="font-size:13px;"><?php echo (isset($login_message) && !empty($login_message)) ? $login_message : 'Please answer the following questions:'; ?></p>
282
  </div>
283
+ <form name="f" id="mo2f_submitkba_loginform" method="post" action="admin_post_nopriv_mo_prefix_initialization">
284
  <div id="mo2f_kba_content">
285
  <p style="font-size:15px;">
286
  <?php if(isset($_SESSION['mo_2_factor_kba_questions'])){
304
  }
305
  }
306
  ?>
307
+ <input type="submit" name="miniorange_kba_validate" id="miniorange_kba_validate" class="miniorange_kba_validate" style="float:left;" value="Validate" />
308
  <input type="hidden" name="miniorange_kba_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-kba-nonce'); ?>" />
309
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
310
  </form>
311
+ <br>
312
  </div>
313
  <?php mo2f_customize_logo() ?>
314
  </div>
338
  <?php
339
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
340
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
341
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.5.3', __FILE__) . '" />';
342
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.5.3', __FILE__) . '" />';
343
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.5.3', __FILE__) . '" />';
344
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.5.3', __FILE__) . '" />';
345
  ?>
346
  </head>
347
  <body>
348
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
349
  <div class="mo2f-modal-backdrop"></div>
350
+ <div class="mo_customer_validation-modal-dialog mo_customer_validation-modal-md">
351
+ <div class="login mo_customer_validation-modal-content">
352
  <div class="mo2f_modal-header">
353
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
354
  Accept Your Transaction
361
  </div>
362
  <?php } ?>
363
  <div id="pushSection">
364
+
 
 
 
 
365
  <div>
366
  <center>
367
+ <p style="font-size:16px; font-weight:bold; color:#34495E; ">Waiting for your approval...</p>
368
  </center>
369
  </div>
370
  <div id="showPushImage">
372
  <img src="<?php echo plugins_url( 'includes/images/ajax-loader-login.gif' , __FILE__ );?>" />
373
  </center>
374
  </div>
375
+
376
+ <center>
377
+ <a href="#showPushHelp" id="pushHelpLink">
378
+ <p style="font-size:14px; font-weight:bold; color:#2980B9; ">See how it works ?</p>
379
+ </a>
380
+ </center>
381
+
382
  <span style="padding-right:2%;">
383
  <?php if(isset($login_status) && $login_status == 'MO_2_FACTOR_CHALLENGE_PUSH_NOTIFICATIONS'){ ?>
384
  <center>
385
  <?php if(get_option('mo2f_enable_forgotphone')){ ?>
386
+ <input type="button" name="miniorange_login_forgotphone" onclick="mologinforgotphone();" id="miniorange_login_forgotphone" class="miniorange_login_forgotphone" value="Forgot Phone?" />
387
  <?php } ?>
388
+ &emsp;&emsp;
389
+ <input type="button" name="miniorange_login_offline" onclick="mologinoffline();" id="miniorange_login_offline" class="miniorange_login_offline" value="Phone is Offline?" />
390
  </center>
391
  <?php }else if(isset($login_status) && $login_status == 'MO_2_FACTOR_CHALLENGE_OOB_EMAIL' && get_option('mo2f_enable_forgotphone') && get_user_meta($id,'mo2f_kba_registration_status',true)){ ?>
392
  <center>
393
  <a href="#mo2f_alternate_login_kba" >
394
+ <p style="font-size:14px; font-weight:bold; color:#2980B9; ">Didn't receive mail?</p>
395
  </a>
396
  </center>
397
  <?php }?>
399
  </div>
400
  <div id="showPushHelp" class="showPushHelp" hidden>
401
  <center>
 
 
 
 
402
  <div id="myCarousel" class="mo2f_carousel slide" data-ride="carousel" data-interval="15000" >
403
  <ol class="mo2f_carousel-indicators">
404
  <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
408
  <div class="mo2f_carousel-inner" role="listbox">
409
  <?php if($login_status == 'MO_2_FACTOR_CHALLENGE_OOB_EMAIL') { ?>
410
  <div class="item active">
411
+ <p>A verification email has been sent to your registered email id.</p>
412
+ <br>
413
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/email-with-link-login-flow-1.png" alt="First slide" style="width:80%">
414
  </div>
415
  <div class="item">
416
+ <p>Click on <b style="color:red">Accept Transaction</b> link to verify your email .</p>
417
  <br>
418
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/email-with-link-login-flow-2.png" alt="First slide"style="width:100%">
419
  </div>
420
  <div class="item">
421
+ <p>You have been validated. You will be logged in to your website now.</p>
422
+ <br>
423
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/email-with-link-login-flow-3.png" alt="First slide" style="width:100%">
424
  </div>
425
  <?php } else { ?>
426
  <!-- Indicators -->
427
  <div class="item active">
428
+ <p>You will receive a notification on your phone.</p>
429
  <br>
430
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/push-login-flow.png" alt="First slide"style="width:80%">
431
  </div>
432
  <div class="item">
433
+ <p>Click on <b style="color:red">Approve</b> button.</p>
434
  <br>
435
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/push-login-flow-1.jpg" alt="First slide"style="width:100%">
436
  </div>
437
  <div class="item">
438
+ <p>You are successfully authenticated.</p>
439
+ <br>
440
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/mo2f_softtoken_5.jpg" alt="First slide"style="width:100%">
441
  </div>
442
  <?php } ?>
443
  </div>
444
  </div>
445
+ <a href="#showPushHelp" id="pushLink">
446
+ <p>Go Back.</p>
447
+ </a>
448
  </center>
449
  </div>
450
  <?php mo2f_customize_logo() ?>
455
  <form name="f" id="mo2f_backto_mo_loginform" method="post" action="<?php echo wp_login_url(); ?>" style="display:none;">
456
  <input type="hidden" name="miniorange_mobile_validation_failed_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-failed-nonce'); ?>" />
457
  </form>
458
+ <form name="f" id="mo2f_mobile_validation_form" method="post" action="admin_post_nopriv_mo_prefix_initialization" style="display:none;">
459
  <input type="hidden" name="miniorange_mobile_validation_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-nonce'); ?>" />
460
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
461
  </form>
462
+ <form name="f" id="mo2f_show_softtoken_loginform" method="post" action="admin_post_nopriv_mo_prefix_initialization" style="display:none;">
463
  <input type="hidden" name="miniorange_softtoken" value="<?php echo wp_create_nonce('miniorange-2-factor-softtoken'); ?>" />
464
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
465
  </form>
466
+ <form name="f" id="mo2f_show_forgotphone_loginform" method="post" action="admin_post_nopriv_mo_prefix_initialization" style="display:none;">
467
  <input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>" />
468
  <input type="hidden" name="miniorange_forgotphone" value="<?php echo wp_create_nonce('miniorange-2-factor-forgotphone'); ?>" />
469
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
470
  </form>
471
+ <form name="f" id="mo2f_alternate_login_kbaform" method="post" action="admin_post_nopriv_mo_prefix_initialization" style="display:none;">
472
  <input type="hidden" name="miniorange_alternate_login_kba_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-alternate-login-kba-nonce'); ?>" />
473
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
474
  </form>
540
  <?php
541
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
542
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
543
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.5.3', __FILE__) . '" />';
544
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.5.3', __FILE__) . '" />';
545
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.5.3', __FILE__) . '" />';
546
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.5.3', __FILE__) . '" />';
547
  ?>
548
  </head>
549
  <body>
550
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
551
  <div class="mo2f-modal-backdrop"></div>
552
+ <div class="mo_customer_validation-modal-dialog mo_customer_validation-modal-md">
553
+ <div class="login mo_customer_validation-modal-content">
554
  <div class="mo2f_modal-header">
555
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
556
  Scan QR Code
566
  <div id="scanQRSection">
567
  <center>
568
  <a href="#showQRHelp" id="helpLink">
569
+ <p style="font-size:16px; font-weight:bold; color:#2980B9; ">See how it works ?</p>
570
  </a>
571
  </center>
572
  <div style="margin-bottom:10%;">
573
  <center>
574
+ <p style="font-size:16px; font-weight:bold; font-color:#2980B9">Identify yourself by scanning the QR code with miniOrange Authenticator app.</p>
575
  </center>
576
  </div>
577
  <div id="showQrCode" style="margin-bottom:10%;">
580
  <span style="padding-right:2%;">
581
  <center>
582
  <?php if(get_option('mo2f_enable_forgotphone')){ ?>
583
+ <input type="button" name="miniorange_login_forgotphone" onclick="mologinforgotphone();" id="miniorange_login_forgotphone" class="miniorange_login_forgotphone" style="margin-right:5%;" value="Forgot Phone?" />
584
  <?php } ?>
585
+ &emsp;&emsp;
586
+ <input type="button" name="miniorange_login_offline" onclick="mologinoffline();" id="miniorange_login_offline" class="miniorange_login_offline" value="Phone is Offline?" />
587
  </center>
588
  </span>
589
  </div>
590
  <div id="showQRHelp" class="showQRHelp" hidden>
591
  <center>
 
 
 
592
  <div id="myCarousel" class="mo2f_carousel slide" data-ride="carousel" data-interval="15000" >
593
  <!-- Indicators -->
594
  <ol class="mo2f_carousel-indicators">
598
  </ol>
599
  <div class="mo2f_carousel-inner" role="listbox">
600
  <div class="item active">
601
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/qr-how-to-setup-1.png" alt="First slide"style="width:80%; height:100%;">
602
  </div>
603
  <div class="item">
604
+ <p>Open miniOrange <b style="color:red">Authenticator</b> app and click on SCAN QR CODE.</p>
605
  <br>
606
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/mo2f_softtoken_5.jpg" alt="First slide"style="width:100%">
607
  </div>
608
  <div class="item">
609
+ <p>Scan the QR code from the app.</p>
610
  <br>
611
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/qr-help-3.jpg" alt="First slide"
612
+ style="width:100%">
613
  </div>
614
 
615
  </div>
616
  </div>
617
+ <a href="#showQRHelp" id="qrLink">
618
+ <p style="font-size:14px; font-weight:bold; color:#2980B9; ">Back to Scan QR Code.</p>
619
+ </a>
620
  </center>
621
  </div>
622
  <?php mo2f_customize_logo() ?>
627
  <form name="f" id="mo2f_backto_mo_loginform" method="post" action="<?php echo wp_login_url(); ?>" style="display:none;">
628
  <input type="hidden" name="miniorange_mobile_validation_failed_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-failed-nonce'); ?>" />
629
  </form>
630
+ <form name="f" id="mo2f_mobile_validation_form" method="post" action="admin_post_nopriv_mo_prefix_initialization" style="display:none;">
631
  <input type="hidden" name="miniorange_mobile_validation_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-nonce'); ?>" />
632
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
633
  </form>
634
+ <form name="f" id="mo2f_show_softtoken_loginform" method="post" action="admin_post_nopriv_mo_prefix_initialization" style="display:none;">
635
  <input type="hidden" name="miniorange_softtoken" value="<?php echo wp_create_nonce('miniorange-2-factor-softtoken'); ?>" />
636
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
637
  </form>
638
+ <form name="f" id="mo2f_show_forgotphone_loginform" method="post" action="admin_post_nopriv_mo_prefix_initialization" style="display:none;">
639
  <input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>" />
640
  <input type="hidden" name="miniorange_forgotphone" value="<?php echo wp_create_nonce('miniorange-2-factor-forgotphone'); ?>" />
641
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
708
  <?php
709
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
710
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
711
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.5.3', __FILE__) . '" />';
712
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.5.3', __FILE__) . '" />';
713
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.5.3', __FILE__) . '" />';
714
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.5.3', __FILE__) . '" />';
715
  ?>
716
  </head>
717
  <body>
718
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
719
  <div class="mo2f-modal-backdrop"></div>
720
+ <div class="mo_customer_validation-modal-dialog mo_customer_validation-modal-md">
721
+ <div class="login mo_customer_validation-modal-content">
722
  <div class="mo2f_modal-header">
723
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
724
  Validate OTP
733
  <br />
734
  <div id="showOTP">
735
  <div class="mo2f-login-container">
736
+ <form name="f" id="mo2f_submitotp_loginform" method="post" action="admin_post_nopriv_mo_prefix_initialization">
 
 
 
737
  <input type="text" name="mo2fa_softtoken" style="height:28px !important;" placeholder="Enter one time passcode" id="mo2fa_softtoken" required="true" class="mo2f-textbox" autofocus="true" pattern="[0-9]{4,8}" title="Only digits within range 4-8 are allowed."/>
738
  <br />
739
+ <input type="submit" name="miniorange_otp_token_submit" id="miniorange_otp_token_submit" class="miniorange_otp_token_submit" value="Validate" />
740
  <input type="hidden" name="request_origin_method" value="<?php echo $login_status; ?>" />
741
  <input type="hidden" name="miniorange_soft_token_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-soft-token-nonce'); ?>" />
742
  <input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>" />
743
+ </form><br/>
744
  <?php if(get_option('mo2f_enable_forgotphone') && isset($login_status ) && $login_status != 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL'){ ?>
745
  <a name="miniorange_login_forgotphone" onclick="mologinforgotphone();" id="miniorange_login_forgotphone" class="mo2f-link" >Forgot Phone ?</a>
746
  <?php } ?>
747
+ &emsp;&emsp;
748
+
749
+ <?php if($login_status != 'MO_2_FACTOR_CHALLENGE_GOOGLE_AUTHENTICATION'){ ?>
750
+ <a href="#showOTPHelp" id="otpHelpLink" class="mo2f-link">See how it works ?</a>
751
+ <?php } ?>
752
+ <br><br>
753
  </div>
754
  </div>
755
  <div id="showOTPHelp" class="showOTPHelp" hidden>
 
756
  <center>
 
 
 
757
  <div id="myCarousel" class="mo2f_carousel slide" data-ride="carousel" data-interval="15000" >
758
  <!-- Indicators -->
759
  <?php if($login_status == 'MO_2_FACTOR_CHALLENGE_SOFT_TOKEN'){ ?>
765
  </ol>
766
  <div class="mo2f_carousel-inner" role="listbox">
767
  <div class="item active">
768
+ <p>Open miniOrange <b style="color:red">Authenticator</b> app and click on Sync time from the top left menu option.</p>
769
  <br>
770
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/qr-help-2.jpg" alt="First slide" style="width:100%">
771
  </div>
772
  <div class="item">
773
+ <p>Click on <b style="color:red">Sync Time now</b> to sync your time with miniOrange Servers. This is a one time sync to avoid otp validation failure.</p>
774
  <br>
775
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/token-help-3.jpg" alt="First slide"
776
+ style="width:100%">
777
  </div>
778
  <div class="item">
779
  <p>Go to Home</p>
780
  <br>
781
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/token-help-2.jpg" alt="First slide"
782
+ style="width:100%">
783
  </div>
784
  <div class="item">
785
+ <p>Enter the one time passcode shown in miniOrange <b style="color:red">Authenticator</b> app here.</p>
786
  <br>
787
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/soft-token-test-5.png" alt="First slide"style="width:100%">
788
  </div>
789
  </div>
790
  <?php } else if($login_status == 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL') { ?>
795
  </ol>
796
  <div class="mo2f_carousel-inner" role="listbox">
797
  <div class="item active">
798
+ <p>An One Time Passcode has been sent to your registered email address.</p>
799
+ <br>
800
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-help-1.png" alt="First slide"
801
+ style="width:100%">
802
  </div>
803
  <div class="item">
804
  <p>Check your email with which you registered and copy the one time passcode.</p>
805
  <br>
806
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-help-2.png" alt="First slide"
807
+ style="width:100%">
808
  </div>
809
  <div class="item">
810
+ <p>Enter the One Time Passcode to validate yourself.</p>
811
+ <br>
812
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-help-3.png" alt="First slide"
813
+ style="width:100%">
814
  </div>
815
  </div>
816
  <?php } else if($login_status == 'MO_2_FACTOR_CHALLENGE_OTP_OVER_SMS') { ?>
817
  <ol class="mo2f_carousel-indicators">
818
  <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
819
  <li data-target="#myCarousel" data-slide-to="1"></li>
 
820
  </ol>
821
  <div class="mo2f_carousel-inner" role="listbox">
822
  <div class="item active">
823
+ <p>An OTP has been sent to your registered mobile number.</p>
824
  <br>
825
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-over-sms-login-flow-1.png" alt="First slide"style="width:100%">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
826
  </div>
827
  <div class="item">
828
+ <p>Enter the OTP received on your mobile phone to validate yourself.</p>
829
+ <br>
830
+ <img class="first-slide" src="https://auth.miniorange.com/moas/images/help/otp-over-sms-login-flow-2.jpg" alt="First slide" style="width:100%">
831
  </div>
832
  </div>
833
  <?php } ?>
834
  </div>
835
+ <br>
836
+ <a href="#showOTP" id="otpLink" class="mo2f-link">Go Back.</a>
837
+ <br>
838
  </div>
839
+ </center>
840
  <?php mo2f_customize_logo() ?>
841
  </div>
842
  </div>
886
  <?php
887
  echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
888
  echo '<script src="' . plugins_url('includes/js/bootstrap.min.js', __FILE__) . '" ></script>';
889
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/bootstrap.min.css?version=4.5.3', __FILE__) . '" />';
890
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/front_end_login.css?version=4.5.3', __FILE__) . '" />';
891
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css?version=4.5.3', __FILE__) . '" />';
892
+ echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/hide-login.css?version=4.5.3', __FILE__) . '" />';
893
  ?>
894
  </head>
895
  <body>
896
  <div class="mo2f_modal" tabindex="-1" role="dialog" id="myModal5">
897
  <div class="mo2f-modal-backdrop"></div>
898
+ <div class="mo_customer_validation-modal-dialog mo_customer_validation-modal-md">
899
+ <div class="login mo_customer_validation-modal-content">
900
  <div class="mo2f_modal-header">
901
  <h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="Back to login" onclick="mologinback();"><span aria-hidden="true">&times;</span></button>
902
  Remember Device
904
  </div>
905
  <div class="mo2f_modal-body center">
906
  <div id="mo2f_device_content">
907
+ <p style="font-size:16px; font-weight:bold; color:#2980B9; ">Do you want to remember this device?</p>
908
  <input type="button" name="miniorange_trust_device_yes" onclick="mo_check_device_confirm();" id="miniorange_trust_device_yes" class="mo_green" style="margin-right:5%;" value="Yes" />
909
  <input type="button" name="miniorange_trust_device_no" onclick="mo_check_device_cancel();" id="miniorange_trust_device_no" class="mo_red" value="No" />
910
  </div>
911
  <div id="showLoadingBar" hidden>
912
+ <p style="font-size:16px; font-weight:bold; color:#2980B9; ">Please wait...We are taking you into your account.</p>
913
  <img src="<?php echo plugins_url( 'includes/images/ajax-loader-login.gif' , __FILE__ );?>" />
914
  </div>
915
  <br /><br />
miniorange_2_factor_configuration.php CHANGED
@@ -25,7 +25,7 @@
25
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_login" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_login' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab2">Login Settings</a>
26
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=advance_option" class="nav-tab <?php echo $mo2f_active_tab == 'advance_option' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab2">Premium Options</a>
27
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_pricing" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_pricing' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab6">Licensing Plans</a>
28
- <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_demo' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab4">How It Works</a>
29
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_help" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_help' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab5">Help & Troubleshooting</a>
30
 
31
  </h2>
@@ -34,7 +34,7 @@
34
 
35
  <div class="mo2f_container">
36
  <div id="messages"></div>
37
- <table style="width:100%;">
38
  <tr>
39
  <td style="width:60%;vertical-align:top;">
40
  <?php
@@ -138,7 +138,7 @@
138
  <div id="clefMigration" class="mo2f_modal mo2f_modal_inner fade" role="dialog">
139
  <div class="mo2f_modal-dialog">
140
  <!-- Modal content-->
141
- <div class="mo2f_modal-content" style="width:660px !important;">
142
  <div class="mo2f_modal-header">
143
  <button type="button" class="mo2f_close" data-dismiss="modal">&times;</button>
144
  <h2 class="mo2f_modal-title">Follow these steps if you are migrating from Clef.</h2>
@@ -390,6 +390,7 @@
390
  <table><tbody>
391
  <tr>
392
  <td>
 
393
  <input type='checkbox' name='mo2f_authmethods[]' value='OUT OF BAND EMAIL' <?php echo (in_array("OUT OF BAND EMAIL", $opt)) ? 'checked="checked"' : ''; if(!$random_mo_key && get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS'){}else{ echo 'disabled';} ?> />Email Verification&nbsp;&nbsp;
394
  </td>
395
  <td>
@@ -444,7 +445,7 @@
444
  <div id="mo2f_note"><b>Note:</b> If this option is enabled then users have to setup their two-factor account forcefully during their login. By selecting second option, you will provide your users to skip their two-factor setup during login.</div>
445
  </div>
446
  <br />
447
- <h3>Mobile Support</h3><hr>
448
  <input type="checkbox" name="mo2f_enable_mobile_support" value="1" <?php checked( get_option('mo2f_enable_mobile_support') == 1 );
449
  if(get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS'){}else{ echo 'disabled';} ?> />
450
  Enable Mobile Support for users.<br /><br />
@@ -508,13 +509,25 @@
508
  <br><br />
509
 
510
  <h3>XML-RPC Settings</h3>
511
- <hr>
512
  Enabling this option will decrease your overall login security. Users will be able to login through external applications which support XML-RPC without authenticating from miniOrange. <b>Please keep it unchecked.</b><br /><br />
513
  <input type="checkbox" id="mo2f_enable_xmlrpc" name="mo2f_enable_xmlrpc" value="1" <?php checked( get_option('mo2f_enable_xmlrpc') == 1 );
514
  if(get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS'){}else{ echo 'disabled';} ?> />
515
  Enable XML-RPC Login.
516
 
517
- <br /><br />
 
 
 
 
 
 
 
 
 
 
 
 
518
 
519
  <h3>Enable Two-Factor plugin</h3>
520
  <hr>
@@ -554,6 +567,40 @@
554
  <?php } ?>
555
 
556
  </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
557
  </div>
558
 
559
  <?php
25
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_login" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_login' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab2">Login Settings</a>
26
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=advance_option" class="nav-tab <?php echo $mo2f_active_tab == 'advance_option' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab2">Premium Options</a>
27
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_pricing" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_pricing' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab6">Licensing Plans</a>
28
+ <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_demo' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab4">How To Setup</a>
29
  <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_help" class="nav-tab <?php echo $mo2f_active_tab == 'mo2f_help' ? 'nav-tab-active' : ''; ?>" id="mo2f_tab5">Help & Troubleshooting</a>
30
 
31
  </h2>
34
 
35
  <div class="mo2f_container">
36
  <div id="messages"></div>
37
+ <table style="width:100%;padding:10px;">
38
  <tr>
39
  <td style="width:60%;vertical-align:top;">
40
  <?php
138
  <div id="clefMigration" class="mo2f_modal mo2f_modal_inner fade" role="dialog">
139
  <div class="mo2f_modal-dialog">
140
  <!-- Modal content-->
141
+ <div class="login mo_customer_validation-modal-content" style="width:660px !important;">
142
  <div class="mo2f_modal-header">
143
  <button type="button" class="mo2f_close" data-dismiss="modal">&times;</button>
144
  <h2 class="mo2f_modal-title">Follow these steps if you are migrating from Clef.</h2>
390
  <table><tbody>
391
  <tr>
392
  <td>
393
+
394
  <input type='checkbox' name='mo2f_authmethods[]' value='OUT OF BAND EMAIL' <?php echo (in_array("OUT OF BAND EMAIL", $opt)) ? 'checked="checked"' : ''; if(!$random_mo_key && get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS'){}else{ echo 'disabled';} ?> />Email Verification&nbsp;&nbsp;
395
  </td>
396
  <td>
445
  <div id="mo2f_note"><b>Note:</b> If this option is enabled then users have to setup their two-factor account forcefully during their login. By selecting second option, you will provide your users to skip their two-factor setup during login.</div>
446
  </div>
447
  <br />
448
+ <h3>Mobile Support</h3><hr><br>
449
  <input type="checkbox" name="mo2f_enable_mobile_support" value="1" <?php checked( get_option('mo2f_enable_mobile_support') == 1 );
450
  if(get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS'){}else{ echo 'disabled';} ?> />
451
  Enable Mobile Support for users.<br /><br />
509
  <br><br />
510
 
511
  <h3>XML-RPC Settings</h3>
512
+ <hr><br>
513
  Enabling this option will decrease your overall login security. Users will be able to login through external applications which support XML-RPC without authenticating from miniOrange. <b>Please keep it unchecked.</b><br /><br />
514
  <input type="checkbox" id="mo2f_enable_xmlrpc" name="mo2f_enable_xmlrpc" value="1" <?php checked( get_option('mo2f_enable_xmlrpc') == 1 );
515
  if(get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS'){}else{ echo 'disabled';} ?> />
516
  Enable XML-RPC Login.
517
 
518
+ <!--(Application Specific Password)
519
+ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
520
+ <div id="mo2f_xmlrpc_password" >
521
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
522
+ <input name="app_password" id="app_password" readonly="readonly" value="**** **** **** ****" type="text" size="25">
523
+ <input name="app_createpassword" id="app_createpassword" value="Create new password" type="button" class="button">
524
+
525
+ <span class="description" id="app_passworddesc" style="display: none;"> Password is not stored in cleartext, this is your only chance to see it.</span>
526
+ </div>
527
+
528
+ <br /><br /><div id="mo2f_note"><b>Note:</b> Enable this option in case you want to use the plugin with any third party applications like WordPress application.</div>
529
+ -->
530
+ <br/><br />
531
 
532
  <h3>Enable Two-Factor plugin</h3>
533
  <hr>
567
  <?php } ?>
568
 
569
  </script>
570
+ <!--<script>
571
+ if(jQuery('input[name="mo2f_enable_xmlrpc"]:checked').length == 0){
572
+ jQuery('#mo2f_xmlrpc_password').hide();
573
+ }
574
+ var checker = document.getElementById('mo2f_enable_xmlrpc');
575
+ var generatebtn = document.getElementById('app_createpassword');
576
+ checker.onchange = function() {
577
+ generatebtn.disabled = !this.checked;
578
+ if(this.checked){
579
+ jQuery('#mo2f_xmlrpc_password').show();
580
+ }else{
581
+ jQuery('#mo2f_xmlrpc_password').hide();
582
+ }
583
+ };
584
+ </script>
585
+ <script type ="text/javascript">
586
+ var Appnonce= <?php echo wp_create_nonce('Authenticatoraction');?> ';
587
+
588
+ jQuery("#app_createpassword").on('click',function() {
589
+
590
+ var data=new Object();
591
+ data['action'] = 'Authenticator_action';
592
+ data['nonce'] = Appnonce;
593
+ data['save'] = 1;
594
+
595
+ var url = '<?php echo site_url(); ?>/?option=generatepassword';
596
+
597
+ jQuery.post(url, data,function(response) {
598
+ jQuery('#app_password').val(response['new-secret'].match(new RegExp(".{0,4}","g")).join(' '));
599
+ jQuery('#app_passworddesc').show();
600
+ });
601
+ });
602
+
603
+ </script>-->
604
  </div>
605
 
606
  <?php
miniorange_2_factor_demo.php CHANGED
@@ -203,7 +203,7 @@
203
 
204
  <div id="demo4">
205
  <h3>
206
- How to Test Soft Token
207
  <div style="float:right;"><a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mobile_configure">←Back</a></div>
208
  </h3>
209
  <hr>
203
 
204
  <div id="demo4">
205
  <h3>
206
+ How to Test Soft Token ?
207
  <div style="float:right;"><a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mobile_configure">←Back</a></div>
208
  </h3>
209
  <hr>
miniorange_2_factor_mobile_configuration.php CHANGED
@@ -150,13 +150,8 @@
150
  <br />
151
  <h3>Custom Email and SMS Templates*</h3><hr>
152
  You can change the templates for Email and SMS as per your requirement.<br />
153
- <a href = "javascript:void(0)" class="button button-primary button-large" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">Customize Templates</a>
154
- <div id="light" class="white_content">
155
- <div style="height:80%;background-color:rgba(128, 128, 128, 0.05);padding:10px;">
156
- <a href = "javascript:void(0)" style="float:right;" onclick = "document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'">Close</a>
157
- <br/>This is a premium feature. <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_pricing">Click here</a> to upgrade the plugin.
158
- </div>
159
- </div>
160
  <div id="fade" class="black_overlay"></div>
161
  <h3>Custom Redirection*</h3><hr>
162
  This option will allow the users during login to redirect on the specific page role wise.
@@ -280,19 +275,17 @@
280
  <div id="smsAlertModal" class="mo2f_modal mo2f_modal_inner fade" role="dialog">
281
  <div class="mo2f_modal-dialog">
282
  <!-- Modal content-->
283
- <div class="mo2f_modal-content" style="width:660px !important;">
284
  <div class="mo2f_modal-header">
285
  <button type="button" class="mo2f_close" data-dismiss="modal">&times;</button>
286
  <h2 class="mo2f_modal-title">Please Note!</h2>
287
  </div>
288
  <div class="mo2f_modal-body">
289
- <p>Only <b><u>10 free transactions</u></b> of OTP over SMS are provided in the free version, post which your account <b style="color: red;">will get locked out, if you do not buy more transactions</b>. We highly recommended you to go for the other Phone based authentication methods like <b>Soft Token/Push Notification/QR Code Authentication </b>since they are as secure as the <b>OTP OVER SMS</b> method, and they do not require purchase of more transactions.</p>
290
  <ol style="list-style-type:circle">
291
- <li>Setting up knowledge based questions (KBA) as an alternate login method will protect you in case your phone is not working or out of reach. <br />
292
- <br>
293
- <li><b>What to do in case you are locked out (Its common when you are setting up 2FA for the first time, so please read this).<br /></b/></li>
294
- <b>Rename</b> the plugin by FTP access. Go to <b>wp-content/plugins folder</b> and rename miniorange-2-factor-authentication folder.<br /><br />
295
- </li>
296
  </ol>
297
  </div>
298
  <div class="mo2f_modal-footer">
@@ -393,7 +386,7 @@
393
  }
394
  ?>
395
  <tr style="height:40px;">
396
- <td style="border-right-color:white;"><a href="#mo_registered_forgot_password"><b>Click Here</b></a> if you forgot your password ?</td>
397
  <td></td>
398
 
399
  </tr>
@@ -726,7 +719,7 @@
726
  if(!get_user_meta($current_user->ID,'mo2f_kba_registration_status',true) && ((get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS') || (get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_INITIALIZE_TWO_FACTOR'))){
727
 
728
  ?>
729
-
730
  <div style="display:block;color:red;background-color:rgba(251, 232, 0, 0.15);padding:5px;border:solid 1px rgba(255, 0, 9, 0.36);" class="error notice is-dismissible"><a href="#mo2f_kba_config">Click Here</a> to configure Security Questions (KBA) as alternate 2 factor method so that you are not locked out of your account in case you lost or forgot your phone. </div>
731
 
732
  <?php
@@ -747,19 +740,17 @@
747
  <div id="smsAlertModal" class="mo2f_modal mo2f_modal_inner fade" role="dialog">
748
  <div class="mo2f_modal-dialog">
749
  <!-- Modal content-->
750
- <div class="mo2f_modal-content" style="width:660px !important;">
751
  <div class="mo2f_modal-header">
752
  <button type="button" class="mo2f_close" data-dismiss="modal">&times;</button>
753
  <h2 class="mo2f_modal-title">Please Note!</h2>
754
  </div>
755
  <div class="mo2f_modal-body">
756
- <p>Only <b><u>10 free transactions</u></b> of OTP over SMS are provided in the free version, post which your account <b style="color: red;">will get locked out, if you do not buy more transactions</b>. We highly recommended you to go for the other Phone based authentication methods like <b>Soft Token/Push Notification/QR Code Authentication </b>since they are as secure as the <b>OTP OVER SMS</b> method, and they do not require purchase of more transactions.</p>
757
  <ol style="list-style-type:circle">
758
- <li>Setting up knowledge based questions (KBA) as an alternate login method will protect you in case your phone is not working or out of reach. <br />
759
- <br>
760
- <li><b>What to do in case you are locked out (Its common when you are setting up 2FA for the first time, so please read this).<br /></b/></li>
761
- <b>Rename</b> the plugin by FTP access. Go to <b>wp-content/plugins folder</b> and rename miniorange-2-factor-authentication folder.<br /><br />
762
- </li>
763
  </ol>
764
  </div>
765
  <div class="mo2f_modal-footer">
@@ -769,7 +760,7 @@
769
  </div>
770
  </div>
771
 
772
- <table style="width:100%;">
773
  <tr>
774
  <td>
775
  <span class="color-icon selectedMethod"></span> - Active Method
@@ -930,7 +921,7 @@
930
  Google Authenticator
931
  </label><hr>
932
  <p>
933
- You have to enter 6 digits code generated by Google Authenticator App to login. Supported in Smartphones only.
934
  </p>
935
 
936
  <?php if(get_user_meta($current_user->ID,'mo2f_google_authentication_status',true)){ ?>
@@ -991,7 +982,7 @@
991
  <td class="<?php if( !current_user_can('manage_options') && !(in_array("SMS AND EMAIL", $opt)) ){ echo "mo2f_td_hide"; }else { echo "mo2f_td_show"; } ?>">
992
  <div><div class="mo2f_grayed_out_link"><?php echo $random_mo_key ? '<span style="float:right;" title="This feature is avialable in premium version of plugin"><a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_pricing" ><b>PREMIUM**</b></a></span>' :'';?></div>
993
  <div class="mo2f_thumbnail<?php echo $random_mo_key ? " mo2f_grayed_out" : '';?>" >
994
- <label title="Supported in Landline phones, Smartphones, Feature phones.">
995
  <input type="radio" name="mo2f_selected_2factor_method" style="margin:5px;" value="PHONE VERIFICATION" <?php checked($mo2f_second_factor == 'SMS AND EMAIL');
996
  if(!$random_mo_key && (get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS' || get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_INITIALIZE_TWO_FACTOR') ){
997
  } else{ echo 'disabled'; } ?> />
@@ -1000,21 +991,17 @@
1000
  <p>
1001
  You will receive a one time passcode via SMS on your phone and your e-mail. You have to enter the otp on your screen to login. Supported in Smartphones, Feature Phones.
1002
  </p>
1003
- <?php if(get_user_meta($current_user->ID,'mo2f_otp_registration_status',true)){ ?>
1004
- <div class="configuredLandline" id="PHONE_VERIFICATION" title="Supported in Landline phones, Smartphones, Feature phones.">
1005
- <a href="#reconfigure" data-method="PHONE VERIFICATION" >Reconfigure</a> | <a href="#test" data-method="PHONE VERIFICATION">Test</a>
1006
- </div>
1007
- <?php } else { ?>
1008
- <div class="notConfiguredLandline" title="supported in Landline phone,smartphone,feature phone"><a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo#demo2">How To Setup ?</a></div>
1009
- <?php } ?>
1010
  </div>
1011
  </div>
1012
  </td>
1013
  </tr>
1014
 
1015
  </table>
1016
- <?php echo $random_mo_key ? '<h4>*10 free transactions of OTP over SMS are provided in the free version of the plugin. </h4><h4>
1017
- **These authentication methods are provided in premium plugin.</h4>' : ''; ?>
1018
  <input type="hidden" name="option" value="mo2f_save_2factor_method" />
1019
  </form>
1020
  <form name="f" method="post" action="" id="mo2f_2factor_save_form">
@@ -1605,7 +1592,7 @@
1605
  <input type="hidden" name="option" value="mo2f_validate_soft_token" />
1606
 
1607
  <input class="mo2f_table_textbox" style="width:200px;" autofocus="true" type="text" name="otp_token" required placeholder="Enter OTP" style="width:95%;"/>
1608
- <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo#demo4">Click here to see How It Works ?</a><br><br>
1609
  <input type="button" name="back" id="back_btn" class="button button-primary button-large" value="Back" />
1610
  <input type="submit" name="validate" id="validate" class="button button-primary button-large" value="Validate OTP" />
1611
 
@@ -1870,7 +1857,7 @@
1870
  <h4 class="mo2f_pricing_sub_header" style="padding-bottom:16px !important;">( You are automatically on this plan )</h4>
1871
  <hr>
1872
  <p class="mo2f_pricing_text">For 1 user - Forever</p><hr>
1873
- <p class="mo2f_pricing_text" style="padding-bottom:8px;">$0 - Subscription Fees<br /><br /></p>
1874
  <hr>
1875
  <p class="mo2f_pricing_text">Features:</p>
1876
  <p class="mo2f_pricing_text">Limited Authentication Methods<br />
@@ -1922,6 +1909,20 @@
1922
  <option > 20000 users - $999 per year </option>
1923
  </select>
1924
  </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1925
  <hr>
1926
  <p class="mo2f_pricing_text">Features:</p>
1927
  <p class="mo2f_pricing_text">All Authentication Methods***<br />
@@ -1983,6 +1984,22 @@
1983
  <option > 10000 users - $799 per year </option>
1984
  <option > 20000 users - $999 per year </option>
1985
  </select></p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1986
  <hr>
1987
  <p class="mo2f_pricing_text">Features:</p>
1988
  <p class="mo2f_pricing_text">All Authentication Methods***<br />
@@ -2011,22 +2028,20 @@
2011
  </table>
2012
  <br>
2013
  <h3>* Steps to upgrade to premium plugin -</h3>
2014
- <p>1. You will be redirected to miniOrange Login Console. Enter your password with which you created an account with us and verify your 2nd factor. After that you will be redirected to payment page.</p>
2015
  <p>2. Enter you card details and complete the payment. On successful payment completion, you will see the link to download the premium plugin.</p>
2016
- <p>3. Once you download the premium plugin, just unzip it and replace the folder with existing plugin. </p>
2017
- <b>Note: Delete the Free plugin from the Wordpress Admin Panel and upload the plugin using zip.</b>
2018
- <p>4. From this point on, do not update the plugin from the Wordpress store. </p>
2019
  <br /><hr><br />
2020
- <h3>** If you don't find the number of users in the dropdown then check the price for exact number of users by clicking on 'Click here to upgrade' button.</h3>
2021
  <p>You can mail us at <a href="mailto:info@miniorange.com"><b>info@miniorange.com</b></a> or submit the support form under User Profile tab to contact us.</p><br /><hr><br />
2022
- <h3>***All Authentication Methods:</h3><ol>
2023
  <li>We highly recommend to use phone based authentication methods like Soft Token, QR Code Authentication and Push Notification.</li>
2024
  <li>Setting up knowledge based questions (KBA) as an alternate login method will protect you in case your phone is not working or out of reach. <br /><b><u>What to do in case you are locked out (Its common when you are setting up 2FA for the first time, so please read this).<br /><a data-toggle="collapse" href="#mo2f_locekd_out" aria-expanded="false" >Click Here to know how to login, in case you are locked out.</a></u></b/>
2025
  <div class="mo2f_collapse" id="mo2f_locekd_out">
2026
  ==><b>Rename</b> the plugin by FTP access. Go to <b>wp-content/plugins folder</b> and rename miniorange-2-factor-authentication folder.<br /><br />
2027
  </div>
2028
  </li>
2029
- <li>OTP over SMS and Email delivery depends on the SMS and SMTP Gateway you choose. There are different levels of these gateway:</li>
2030
  <ul>
2031
  <li><b>Standard Gateway:</b> You may get a lag in the service of SMS and Email.</li>
2032
  <li><b>Premium Gateway:</b> The delivery of SMS will be fast if you choose this gateway. However, we provide a global gateway and you may have a better local gateway. So our experience is that if you want OTP over SMS then the best thing is to go with your own local gateway which is proven and fast in your local area. </li>
@@ -2034,12 +2049,12 @@
2034
  </ul>
2035
  </ol>
2036
  <br /><hr><br />
2037
- <p><b>****</b> 2 Factor will work with various login forms like Woocommerce, Theme My Login and many more. We are not claiming that 2 Factor will work with all the customized login forms. In such case, custom work is needed to integrate two factor with your customized login page.</p>
2038
  <br/><hr><br>
2039
  <h3>***** End to End 2FA Integration - We will setup a Conference Call / Gotomeeting and do end to end setup for you. We provide services to do the setup on your behalf.
2040
  <h3>10 Days Return Policy -</h3>
2041
 
2042
- <div>At miniOrange, we want to ensure you are 100% happy with your purchase. If the premium plugin you purchased is not working as advertised and you've attempted to resolve any issues with our support team, which couldn't get resolved then we will refund the whole amount within 10 days of the purchase. Please email us at <a href="mailto:info@miniorange.com"><i>info@miniorange.com</i></a> for any queries regarding the return policy.<br />
2043
  If you have any doubts regarding the licensing plans, you can mail us at <a href="mailto:info@miniorange.com"><i>info@miniorange.com</i></a> or submit a query using the support form.</div><br /><br />
2044
 
2045
 
150
  <br />
151
  <h3>Custom Email and SMS Templates*</h3><hr>
152
  You can change the templates for Email and SMS as per your requirement.<br />
153
+ <br>
154
+ <a href = "javascript:void(0)" class="button button-primary button-large" disabled>Customize Templates</a>
 
 
 
 
 
155
  <div id="fade" class="black_overlay"></div>
156
  <h3>Custom Redirection*</h3><hr>
157
  This option will allow the users during login to redirect on the specific page role wise.
275
  <div id="smsAlertModal" class="mo2f_modal mo2f_modal_inner fade" role="dialog">
276
  <div class="mo2f_modal-dialog">
277
  <!-- Modal content-->
278
+ <div class="login mo_customer_validation-modal-content" style="width:660px !important;">
279
  <div class="mo2f_modal-header">
280
  <button type="button" class="mo2f_close" data-dismiss="modal">&times;</button>
281
  <h2 class="mo2f_modal-title">Please Note!</h2>
282
  </div>
283
  <div class="mo2f_modal-body">
284
+ <p style="font-size:14px;">Only <b><u>10 free transactions</u></b> of SMS can be used, post which your account <b style="color: red;">will get locked out, if you do not buy more SMS transactions</b>. We highly recommended you to go for the other Phone based authentication methods like <b>Soft Token/Push Notification/QR Code Authentication </b>since they are as secure as the <b>OTP OVER SMS</b> method, and they do not require any purchase.</p>
285
  <ol style="list-style-type:circle">
286
+ <li>Setting up knowledge based questions (KBA) as an alternate login method will protect you in case your phone is not working or out of reach.<br></li>
287
+ <li><b style="color: red;">What to do in case you are locked out?<br /></b/></li>
288
+ <b>Rename</b> the plugin from FTP access. Go to <b>wp-content/plugins folder</b> and rename miniorange-2-factor-authentication folder.<br />You will be able to login with your Wordpress Username and password.<br />
 
 
289
  </ol>
290
  </div>
291
  <div class="mo2f_modal-footer">
386
  }
387
  ?>
388
  <tr style="height:40px;">
389
+ <td style="border-right-color:white;"><a href="#mo_registered_forgot_password"><b>&nbsp; Click Here</b></a> if you forgot your password ?</td>
390
  <td></td>
391
 
392
  </tr>
719
  if(!get_user_meta($current_user->ID,'mo2f_kba_registration_status',true) && ((get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS') || (get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_INITIALIZE_TWO_FACTOR'))){
720
 
721
  ?>
722
+ <br>
723
  <div style="display:block;color:red;background-color:rgba(251, 232, 0, 0.15);padding:5px;border:solid 1px rgba(255, 0, 9, 0.36);" class="error notice is-dismissible"><a href="#mo2f_kba_config">Click Here</a> to configure Security Questions (KBA) as alternate 2 factor method so that you are not locked out of your account in case you lost or forgot your phone. </div>
724
 
725
  <?php
740
  <div id="smsAlertModal" class="mo2f_modal mo2f_modal_inner fade" role="dialog">
741
  <div class="mo2f_modal-dialog">
742
  <!-- Modal content-->
743
+ <div class="login mo_customer_validation-modal-content" style="width:660px !important;">
744
  <div class="mo2f_modal-header">
745
  <button type="button" class="mo2f_close" data-dismiss="modal">&times;</button>
746
  <h2 class="mo2f_modal-title">Please Note!</h2>
747
  </div>
748
  <div class="mo2f_modal-body">
749
+ <p style="font-size:14px;">Only <b><u>10 free transactions</u></b> of SMS can be used, post which your account <b style="color: red;">will get locked out, if you do not buy more SMS transactions</b>. We highly recommended you to go for the other Phone based authentication methods like <b>Soft Token/Push Notification/QR Code Authentication </b>since they are as secure as the <b>OTP OVER SMS</b> method, and they do not require any purchase.</p>
750
  <ol style="list-style-type:circle">
751
+ <li>Setting up knowledge based questions (KBA) as an alternate login method will protect you in case your phone is not working or out of reach.<br></li>
752
+ <li><b style="color: red;">What to do in case you are locked out?<br /></b/></li>
753
+ <b>Rename</b> the plugin from FTP access. Go to <b>wp-content/plugins folder</b> and rename miniorange-2-factor-authentication folder.<br />You will be able to login with your Wordpress Username and password.<br />
 
 
754
  </ol>
755
  </div>
756
  <div class="mo2f_modal-footer">
760
  </div>
761
  </div>
762
 
763
+ <table style="width:100%;padding:10px;">
764
  <tr>
765
  <td>
766
  <span class="color-icon selectedMethod"></span> - Active Method
921
  Google Authenticator
922
  </label><hr>
923
  <p>
924
+ You have to enter the 6 digits code generated by Google Authenticator App to login. Supported in Smartphones only.
925
  </p>
926
 
927
  <?php if(get_user_meta($current_user->ID,'mo2f_google_authentication_status',true)){ ?>
982
  <td class="<?php if( !current_user_can('manage_options') && !(in_array("SMS AND EMAIL", $opt)) ){ echo "mo2f_td_hide"; }else { echo "mo2f_td_show"; } ?>">
983
  <div><div class="mo2f_grayed_out_link"><?php echo $random_mo_key ? '<span style="float:right;" title="This feature is avialable in premium version of plugin"><a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_pricing" ><b>PREMIUM**</b></a></span>' :'';?></div>
984
  <div class="mo2f_thumbnail<?php echo $random_mo_key ? " mo2f_grayed_out" : '';?>" >
985
+ <label title="Supported in Laptops, Smartphones, Feature phones.">
986
  <input type="radio" name="mo2f_selected_2factor_method" style="margin:5px;" value="PHONE VERIFICATION" <?php checked($mo2f_second_factor == 'SMS AND EMAIL');
987
  if(!$random_mo_key && (get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_PLUGIN_SETTINGS' || get_user_meta($current_user->ID,'mo_2factor_user_registration_status',true) == 'MO_2_FACTOR_INITIALIZE_TWO_FACTOR') ){
988
  } else{ echo 'disabled'; } ?> />
991
  <p>
992
  You will receive a one time passcode via SMS on your phone and your e-mail. You have to enter the otp on your screen to login. Supported in Smartphones, Feature Phones.
993
  </p>
994
+
995
+ <div class="notConfiguredBasic" title="Supported in Smartphones, Feature Phones."><a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo#demo2">How To Setup ?</a></div>
996
+
 
 
 
 
997
  </div>
998
  </div>
999
  </td>
1000
  </tr>
1001
 
1002
  </table>
1003
+ <?php echo $random_mo_key ? '<h4>* Only 10 free transactions of SMS are provided with the plugin, post which you will have to purchase more SMS transactions as per your need. Please refer to the <b>Licensing Plans</b> tab for more details.</h4><h4>
1004
+ ** These authentication methods are provided in premium plugin.</h4>' : ''; ?>
1005
  <input type="hidden" name="option" value="mo2f_save_2factor_method" />
1006
  </form>
1007
  <form name="f" method="post" action="" id="mo2f_2factor_save_form">
1592
  <input type="hidden" name="option" value="mo2f_validate_soft_token" />
1593
 
1594
  <input class="mo2f_table_textbox" style="width:200px;" autofocus="true" type="text" name="otp_token" required placeholder="Enter OTP" style="width:95%;"/>
1595
+ <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo#demo4">Click here to see How To Setup ?</a><br><br>
1596
  <input type="button" name="back" id="back_btn" class="button button-primary button-large" value="Back" />
1597
  <input type="submit" name="validate" id="validate" class="button button-primary button-large" value="Validate OTP" />
1598
 
1857
  <h4 class="mo2f_pricing_sub_header" style="padding-bottom:16px !important;">( You are automatically on this plan )</h4>
1858
  <hr>
1859
  <p class="mo2f_pricing_text">For 1 user - Forever</p><hr>
1860
+ <p class="mo2f_pricing_text" style="padding-bottom:2px;">$0 - Subscription Fees<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></p>
1861
  <hr>
1862
  <p class="mo2f_pricing_text">Features:</p>
1863
  <p class="mo2f_pricing_text">Limited Authentication Methods<br />
1909
  <option > 20000 users - $999 per year </option>
1910
  </select>
1911
  </p>
1912
+ <p class="mo2f_pricing_text">SMS Cost <br />(<span style="font-size:10px;">Only applicable if you will use OTP over SMS as authentication method.</span>)<br>
1913
+ <select class="form-control" style="border-radius:5px;width:250px;">
1914
+ <option>$5 per 100 OTP + SMS delivery charges</option>
1915
+ <option>$15 per 500 OTP + SMS delivery charges</option>
1916
+ <option>$22 per 1k OTP + SMS delivery charges</option>
1917
+ <option>$30 per 5k OTP + SMS delivery charges</option>
1918
+ <option>$40 per 10k OTP + SMS delivery charges</option>
1919
+ <option>$90 per 50k OTP + SMS delivery charges</option>
1920
+ </select>
1921
+ </p>
1922
+ <p class="mo2f_pricing_text ">
1923
+ <i><span style="color:#b01a1a">Transaction prices & SMS delivery charges depend on country.</span><br/>
1924
+ Lifetime validity.</i>
1925
+ </p>
1926
  <hr>
1927
  <p class="mo2f_pricing_text">Features:</p>
1928
  <p class="mo2f_pricing_text">All Authentication Methods***<br />
1984
  <option > 10000 users - $799 per year </option>
1985
  <option > 20000 users - $999 per year </option>
1986
  </select></p>
1987
+
1988
+ <p class="mo2f_pricing_text">SMS Cost<br />(<span style="font-size:10px;">Only applicable if you will use OTP over SMS as authentication method.</span>)<br>
1989
+ <select class="form-control" style="border-radius:5px;width:250px;">
1990
+ <option>$5 per 100 OTP + SMS delivery charges</option>
1991
+ <option>$15 per 500 OTP + SMS delivery charges</option>
1992
+ <option>$22 per 1k OTP + SMS delivery charges</option>
1993
+ <option>$30 per 5k OTP + SMS delivery charges</option>
1994
+ <option>$40 per 10k OTP + SMS delivery charges</option>
1995
+ <option>$90 per 50k OTP + SMS delivery charges</option>
1996
+ </select>
1997
+ </p>
1998
+ <p class="mo_registration_pricing_text">
1999
+ <i><span style="color:#b01a1a">Transaction prices & SMS delivery charges depend on country.</span><br/>
2000
+ Lifetime validity.</i>
2001
+ </p>
2002
+
2003
  <hr>
2004
  <p class="mo2f_pricing_text">Features:</p>
2005
  <p class="mo2f_pricing_text">All Authentication Methods***<br />
2028
  </table>
2029
  <br>
2030
  <h3>* Steps to upgrade to premium plugin -</h3>
2031
+ <p>1. You will be redirected to miniOrange Login Console. Enter your password with which you created an account with us and verify your 2nd factor. After that you will be redirected to the payment page.</p>
2032
  <p>2. Enter you card details and complete the payment. On successful payment completion, you will see the link to download the premium plugin.</p>
2033
+ <p>3. Once you download the premium plugin, delete the Free plugin from the Wordpress Admin Panel and upload the Premium plugin using zip. </p>
 
 
2034
  <br /><hr><br />
2035
+ <h3>** If you don't find your required number of users in the dropdown, click on 'Click here to upgrade' button, you will be taken to the Payment Page where you can check the price for the exact number of users.</h3>
2036
  <p>You can mail us at <a href="mailto:info@miniorange.com"><b>info@miniorange.com</b></a> or submit the support form under User Profile tab to contact us.</p><br /><hr><br />
2037
+ <h3>*** All Authentication Methods:</h3><ol>
2038
  <li>We highly recommend to use phone based authentication methods like Soft Token, QR Code Authentication and Push Notification.</li>
2039
  <li>Setting up knowledge based questions (KBA) as an alternate login method will protect you in case your phone is not working or out of reach. <br /><b><u>What to do in case you are locked out (Its common when you are setting up 2FA for the first time, so please read this).<br /><a data-toggle="collapse" href="#mo2f_locekd_out" aria-expanded="false" >Click Here to know how to login, in case you are locked out.</a></u></b/>
2040
  <div class="mo2f_collapse" id="mo2f_locekd_out">
2041
  ==><b>Rename</b> the plugin by FTP access. Go to <b>wp-content/plugins folder</b> and rename miniorange-2-factor-authentication folder.<br /><br />
2042
  </div>
2043
  </li>
2044
+ <li>OTP over SMS delivery depends on the SMS and SMTP Gateway you choose. There are different levels of these gateway:</li>
2045
  <ul>
2046
  <li><b>Standard Gateway:</b> You may get a lag in the service of SMS and Email.</li>
2047
  <li><b>Premium Gateway:</b> The delivery of SMS will be fast if you choose this gateway. However, we provide a global gateway and you may have a better local gateway. So our experience is that if you want OTP over SMS then the best thing is to go with your own local gateway which is proven and fast in your local area. </li>
2049
  </ul>
2050
  </ol>
2051
  <br /><hr><br />
2052
+ <p><b>****</b> The 2 Factor plugin works with various login forms like Woocommerce, Theme My Login and many more. We do not claim that 2 Factor works with all the customized login forms. In such cases, custom work is needed to integrate 2 factor with your customized login page.</p>
2053
  <br/><hr><br>
2054
  <h3>***** End to End 2FA Integration - We will setup a Conference Call / Gotomeeting and do end to end setup for you. We provide services to do the setup on your behalf.
2055
  <h3>10 Days Return Policy -</h3>
2056
 
2057
+ <div>At miniOrange, we want to ensure you are 100% happy with your purchase. If the premium plugin you purchased is not working as advertised and you've attempted to resolve any issues with our support team, which couldn't get resolved, we will refund the whole amount within 10 days of the purchase. Please email us at <a href="mailto:info@miniorange.com"><i>info@miniorange.com</i></a> for any queries regarding the return policy.<br />
2058
  If you have any doubts regarding the licensing plans, you can mail us at <a href="mailto:info@miniorange.com"><i>info@miniorange.com</i></a> or submit a query using the support form.</div><br /><br />
2059
 
2060
 
miniorange_2_factor_settings.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: miniOrange 2 Factor Authentication
4
  * Plugin URI: http://miniorange.com
5
  * Description: This plugin provides various two-factor authentication methods as an additional layer of security for wordpress login. We Support Phone Call, SMS, Email Verification, QR Code, Push, Soft Token, Google Authenticator, Authy, Security Questions(KBA), Woocommerce front-end login, Shortcodes for custom login pages.
6
- * Version: 4.5.2
7
  * Author: miniOrange
8
  * Author URI: http://miniorange.com
9
  * License: GPL2
@@ -29,6 +29,7 @@ class Miniorange_Authentication {
29
  function __construct() {
30
 
31
  $mo2f_auth_types = array('OUT OF BAND EMAIL','SMS','PHONE VERIFICATION','SOFT TOKEN','MOBILE AUTHENTICATION','PUSH NOTIFICATIONS','GOOGLE AUTHENTICATOR','SMS AND EMAIL', 'AUTHY 2-FACTOR AUTHENTICATION','KBA');
 
32
  add_option( 'mo2f_auth_methods_for_users' ,$mo2f_auth_types);
33
  add_option( 'mo2f_inline_registration',0);
34
  add_option( 'mo2f_enable_mobile_support', 1);
@@ -40,6 +41,10 @@ class Miniorange_Authentication {
40
  add_option( 'mo2f_modal_display', 0);
41
  add_option( 'mo2f_enable_forgotphone', 1);
42
  add_option( 'mo2f_enable_xmlrpc', 0);
 
 
 
 
43
  add_option( 'mo2f_disable_poweredby',0);
44
  add_option( 'mo2f_show_sms_transaction_message', 0);
45
  add_option( 'mo2f_custom_plugin_name', 'miniOrange 2-Factor');
@@ -117,6 +122,9 @@ class Miniorange_Authentication {
117
  }
118
  }
119
 
 
 
 
120
  function get_customer_SMS_transactions()
121
  {
122
 
@@ -172,6 +180,9 @@ class Miniorange_Authentication {
172
  delete_option('mo2f_number_of_transactions');
173
  delete_option('mo2f_set_transactions');
174
  delete_option('mo2f_show_sms_transaction_message');
 
 
 
175
  global $current_user;
176
 
177
  delete_user_meta($current_user->ID,'mo_2factor_user_registration_status');
@@ -187,6 +198,9 @@ class Miniorange_Authentication {
187
  delete_user_meta($current_user->ID,'mo2f_kba_registration_status');
188
  delete_user_meta($current_user->ID,'mo2f_email_verification_status');
189
  delete_user_meta($current_user->ID,'mo2f_authy_authentication_status');
 
 
 
190
  }
191
 
192
 
@@ -267,15 +281,15 @@ class Miniorange_Authentication {
267
  }
268
 
269
  function mo_2_factor_enable_frontend_style() {
270
- wp_enqueue_style( 'mo2f_frontend_login_style', plugins_url('includes/css/front_end_login.css?version=4.4.1', __FILE__));
271
- wp_enqueue_style( 'bootstrap_style', plugins_url('includes/css/bootstrap.min.css?version=4.4.1', __FILE__));
272
- wp_enqueue_style( 'mo_2_factor_admin_settings_phone_style', plugins_url('includes/css/phone.css?version=4.4.1', __FILE__));
273
  }
274
 
275
  function plugin_settings_style() {
276
- wp_enqueue_style( 'mo_2_factor_admin_settings_style', plugins_url('includes/css/style_settings.css?version=4.4.1', __FILE__));
277
- wp_enqueue_style( 'mo_2_factor_admin_settings_phone_style', plugins_url('includes/css/phone.css?version=4.4.1', __FILE__));
278
- wp_enqueue_style( 'bootstrap_style', plugins_url('includes/css/bootstrap.min.css?version=4.4.1', __FILE__));
279
  }
280
 
281
  function plugin_settings_script($mo2fa_hook_page) {
@@ -297,12 +311,34 @@ class Miniorange_Authentication {
297
  add_action( 'admin_notices', array( $this, 'mo_auth_success_message') );
298
  }
299
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
300
  function miniorange_auth_save_settings(){
 
 
 
 
301
  if( ! session_id() || session_id() == '' || !isset($_SESSION) ) {
302
  session_start();
303
  }
304
- global $current_user;
305
- $current_user = wp_get_current_user();
306
  if(current_user_can( 'manage_options' )){
307
  if(isset($_POST['option']) and $_POST['option'] == "mo_auth_register_customer"){ //register the admin to miniOrange
308
  //validate and sanitize
@@ -678,6 +714,17 @@ class Miniorange_Authentication {
678
  update_option( 'mo2f_enable_mobile_support', isset( $_POST['mo2f_enable_mobile_support']) ? $_POST['mo2f_enable_mobile_support'] : 0);
679
  update_option( 'mo2f_enable_xmlrpc', isset( $_POST['mo2f_enable_xmlrpc']) ? $_POST['mo2f_enable_xmlrpc'] : 0);
680
 
 
 
 
 
 
 
 
 
 
 
 
681
  global $wp_roles;
682
  if (!isset($wp_roles))
683
  $wp_roles = new WP_Roles();
@@ -1841,5 +1888,40 @@ class Miniorange_Authentication {
1841
  }
1842
  }
1843
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1844
  new Miniorange_Authentication;
1845
  ?>
3
  * Plugin Name: miniOrange 2 Factor Authentication
4
  * Plugin URI: http://miniorange.com
5
  * Description: This plugin provides various two-factor authentication methods as an additional layer of security for wordpress login. We Support Phone Call, SMS, Email Verification, QR Code, Push, Soft Token, Google Authenticator, Authy, Security Questions(KBA), Woocommerce front-end login, Shortcodes for custom login pages.
6
+ * Version: 4.5.3
7
  * Author: miniOrange
8
  * Author URI: http://miniorange.com
9
  * License: GPL2
29
  function __construct() {
30
 
31
  $mo2f_auth_types = array('OUT OF BAND EMAIL','SMS','PHONE VERIFICATION','SOFT TOKEN','MOBILE AUTHENTICATION','PUSH NOTIFICATIONS','GOOGLE AUTHENTICATOR','SMS AND EMAIL', 'AUTHY 2-FACTOR AUTHENTICATION','KBA');
32
+ add_action( 'admin_post_nopriv_mo_prefix_initialization', array( $this, 'miniorange_prefix_initializaion'));
33
  add_option( 'mo2f_auth_methods_for_users' ,$mo2f_auth_types);
34
  add_option( 'mo2f_inline_registration',0);
35
  add_option( 'mo2f_enable_mobile_support', 1);
41
  add_option( 'mo2f_modal_display', 0);
42
  add_option( 'mo2f_enable_forgotphone', 1);
43
  add_option( 'mo2f_enable_xmlrpc', 0);
44
+ /* App Specific Password
45
+ add_option( 'mo_app_password', 0);
46
+ add_action( 'init', array( $this, 'miniorange_auth_init' ) );
47
+ */
48
  add_option( 'mo2f_disable_poweredby',0);
49
  add_option( 'mo2f_show_sms_transaction_message', 0);
50
  add_option( 'mo2f_custom_plugin_name', 'miniOrange 2-Factor');
122
  }
123
  }
124
 
125
+ function miniorange_prefix_initializaion(){
126
+ }
127
+
128
  function get_customer_SMS_transactions()
129
  {
130
 
180
  delete_option('mo2f_number_of_transactions');
181
  delete_option('mo2f_set_transactions');
182
  delete_option('mo2f_show_sms_transaction_message');
183
+ /* App Specific Password
184
+ delete_option('mo_app_password');
185
+ */
186
  global $current_user;
187
 
188
  delete_user_meta($current_user->ID,'mo_2factor_user_registration_status');
198
  delete_user_meta($current_user->ID,'mo2f_kba_registration_status');
199
  delete_user_meta($current_user->ID,'mo2f_email_verification_status');
200
  delete_user_meta($current_user->ID,'mo2f_authy_authentication_status');
201
+ /* App Specific Password
202
+ delete_user_meta($current_user->ID,'mo2f_app_password');
203
+ */
204
  }
205
 
206
 
281
  }
282
 
283
  function mo_2_factor_enable_frontend_style() {
284
+ wp_enqueue_style( 'mo2f_frontend_login_style', plugins_url('includes/css/front_end_login.css?version=4.5.3', __FILE__));
285
+ wp_enqueue_style( 'bootstrap_style', plugins_url('includes/css/bootstrap.min.css?version=4.5.3', __FILE__));
286
+ wp_enqueue_style( 'mo_2_factor_admin_settings_phone_style', plugins_url('includes/css/phone.css?version=4.5.3', __FILE__));
287
  }
288
 
289
  function plugin_settings_style() {
290
+ wp_enqueue_style( 'mo_2_factor_admin_settings_style', plugins_url('includes/css/style_settings.css?version=4.5.3', __FILE__));
291
+ wp_enqueue_style( 'mo_2_factor_admin_settings_phone_style', plugins_url('includes/css/phone.css?version=4.5.3', __FILE__));
292
+ wp_enqueue_style( 'bootstrap_style', plugins_url('includes/css/bootstrap.min.css?version=4.5.3', __FILE__));
293
  }
294
 
295
  function plugin_settings_script($mo2fa_hook_page) {
311
  add_action( 'admin_notices', array( $this, 'mo_auth_success_message') );
312
  }
313
 
314
+ /* App Specific Password
315
+ // added for App specific password - If post request is sent for creating a new password
316
+ function miniorange_auth_init(){
317
+ global $current_user;
318
+ $current_user = wp_get_current_user();
319
+
320
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX) {
321
+ add_action( 'wp_ajax_Authenticator_action', array( $this, 'ajax_callback' ) );
322
+ }
323
+
324
+ // call to generate password
325
+ if(isset($_GET['option']) && $_GET['option'] ="generatepassword"){
326
+ ajax_callback();
327
+ exit;
328
+ }
329
+
330
+ }*/
331
+
332
  function miniorange_auth_save_settings(){
333
+
334
+ global $current_user;
335
+ $current_user = wp_get_current_user();
336
+
337
  if( ! session_id() || session_id() == '' || !isset($_SESSION) ) {
338
  session_start();
339
  }
340
+
341
+
342
  if(current_user_can( 'manage_options' )){
343
  if(isset($_POST['option']) and $_POST['option'] == "mo_auth_register_customer"){ //register the admin to miniOrange
344
  //validate and sanitize
714
  update_option( 'mo2f_enable_mobile_support', isset( $_POST['mo2f_enable_mobile_support']) ? $_POST['mo2f_enable_mobile_support'] : 0);
715
  update_option( 'mo2f_enable_xmlrpc', isset( $_POST['mo2f_enable_xmlrpc']) ? $_POST['mo2f_enable_xmlrpc'] : 0);
716
 
717
+ /* App Specific Password
718
+ // saving the generated App specific password
719
+ $app_password = $_POST['app_password'];
720
+
721
+ if (strtoupper($app_password) != '**** **** **** ****' ) {
722
+ // Store the password in hashed format
723
+ $app_password = sha1(strtoupper(str_replace(' ', '', $app_password )));
724
+ update_user_option( $current_user->ID, 'mo2f_app_password', $app_password, true );
725
+ update_option('mo_app_password', $app_password);
726
+ }*/
727
+
728
  global $wp_roles;
729
  if (!isset($wp_roles))
730
  $wp_roles = new WP_Roles();
1888
  }
1889
  }
1890
 
1891
+ /* App Specific Password
1892
+ //AJAX Function to callback
1893
+ function ajax_callback(){
1894
+
1895
+ global $user_id;
1896
+
1897
+ $secret = create_secret();
1898
+ $result = array( 'new-secret' => $secret );
1899
+
1900
+ header( 'Content-Type: application/json' );
1901
+ echo json_encode( $result );
1902
+
1903
+ // die() is required to return a proper result
1904
+ die();
1905
+
1906
+ }
1907
+
1908
+ //Create password secret
1909
+ function create_secret() {
1910
+
1911
+ $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; // allowed characters in Base32
1912
+ $charsLength = strlen($chars);
1913
+ $secret = '';
1914
+
1915
+ for ( $i = 0; $i < 16; $i++ ) {
1916
+ $secret .= substr( $chars, wp_rand( 0, strlen( $chars ) - 1 ), 1 );
1917
+ }
1918
+
1919
+ return $secret;
1920
+
1921
+ }*/
1922
+
1923
+
1924
+
1925
+
1926
  new Miniorange_Authentication;
1927
  ?>
miniorange_2_factor_troubleshooting.php CHANGED
@@ -5,172 +5,220 @@
5
  <?php echo mo2f_check_if_registered_with_miniorange($current_user); ?>
6
  <br>
7
  <ul class="mo2f_faqs">
8
- <?php if(current_user_can( 'manage_options' )) { ?>
9
 
10
- <h3><a data-toggle="collapse" href="#question0" aria-expanded="false" ><li>I am getting the fatal error of call to undefined function json_last_error(). What should I do?</li></a></h3>
11
- <div class="mo2f_collapse" id="question0">
12
- Please check your php version. The plugin is supported in php version 5.3.0 or above. You need to upgrade your php version to 5.3.0 or above to use the plugin.
13
- For any further queries, please submit a query on right hand side in our <b>Support Section</b>.
14
-
15
- </div>
16
  <hr>
17
-
18
- <h3><a data-toggle="collapse" href="#question1" aria-expanded="false" ><li>How to enable PHP cURL extension? (Pre-requisite)</li></a></h3>
19
  <div class="mo2f_collapse" id="question1">
20
- cURL is enabled by default but in case you have disabled it, follow the steps to enable
21
- <ol>
22
- <li>Open php.ini(it's usually in /etc/ or in php folder on the server).</li>
23
- <li>Search for extension=php_curl.dll. Uncomment it by removing the semi-colon( ; ) in front of it.</li>
24
- <li>Restart the Apache Server.</li>
 
 
25
  </ol>
26
- For any further queries, please submit a query on right hand side in our <b>Support Section</b>.
27
-
28
  </div>
29
- <hr>
30
- <h3><a data-toggle="collapse" href="#question2" aria-expanded="false" ><li>I am getting error - curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set.
 
 
 
 
 
 
 
 
31
  </li></a></h3>
32
  <div class="mo2f_collapse" id="question2">
33
- Just setsafe_mode = Off in your php.ini file (it's usually in /etc/ on the server). If that's already off, then look around for the open_basedir in the php.ini file, and change it to open_basedir = .
 
 
 
34
  </div>
35
- <hr>
36
- <h3><a data-toggle="collapse" href="#question3" aria-expanded="false" ><li>I did not recieve OTP while trying to register with miniOrange. What should I do?
 
37
  </li></a></h3>
38
  <div class="mo2f_collapse" id="question3">
39
- The OTP is sent to your email address with which you have registered with miniOrange. If you can't see the email from miniOrange in your mails, please make sure to check your <b>SPAM folder</b>. If you don't see an email even in SPAM folder, please submit a query on right hand side in our <b>Support Section</b> or you can contact us at info@miniorange.com.
 
 
 
 
40
  </div>
41
  <hr>
 
42
  <h3><a data-toggle="collapse" href="#question4" aria-expanded="false" ><li>I forgot the password of my miniOrange account. How can I reset it?
43
  </li></a></h3>
44
  <div class="mo2f_collapse" id="question4">
45
- There are two cases according to the page you see -
46
- <ul>
47
- <li>1. <b>Login with miniOrange screen:</b> You should click on forgot password link. You will get a new password on your email address with which you have registered with miniOrange . Now you can login with the new password.</li><br>
48
- <li>2. <b>Register with miniOrange screen:</b> Enter your email ID and any random password in password and confirm password input box. This will redirect you to Login with miniOrange screen. Now follow first step.</li>
49
- </ul>
50
-
51
  </div>
 
 
 
 
 
52
  <hr>
53
- <h3><a data-toggle="collapse" href="#question5" aria-expanded="false" ><li>I have a custom / front-end login page on my site and I want the look and feel to remain the same when I add 2 factor ?</li></a></h3>
 
54
  <div class="mo2f_collapse" id="question5">
55
- If you have a custom login form other than wp-login.php then we will provide you the shortcode. We are not claiming that it will work with all the customized login page. In such case, custom work is needed to integrate two factor with your customized login page. You can submit a query in our <b>Support Section</b> on right hand side for more details.
 
 
 
56
  </div>
57
- <hr>
58
- <h3><a data-toggle="collapse" href="#question6" aria-expanded="false" ><li>I have Woocommerce theme login page on my site. How can I enable Two Factor ?</li></a></h3>
 
59
  <div class="mo2f_collapse" id="question6">
60
- If you have Woocommerce theme login then go to Advanced Options Tab and check <b>Enable Two-Factor for Woocommerce Front End Login</b>. If you need any help setting up 2-Factor for your Woocommerce theme login form, please submit a query in our <b>Support Section</b> on right hand side.
61
- </div>
62
- <hr>
63
- <h3><a data-toggle="collapse" href="#question21" aria-expanded="false" ><li>I have installed plugins which limit the login attempts like Limit Login Attempt, Loginizer, Wordfence etc. Is there any incompatibilities with these kind of plugins?</li></a></h3>
64
- <div class="mo2f_collapse" id="question21">
65
- The limit login attempt kind of plugins limit the number of login attempts and block the IP temporarily. So if you are using 2 factor along with these kind of plugins then you should increase the login attempts (minimum 5) so that you dont get locked out yourself.
 
 
 
 
 
 
66
  </div>
67
  <hr>
68
- <h3><a data-toggle="collapse" href="#question7" aria-expanded="false" ><li>I am trying to login with Two-Factor but my screen got blank after entering username and password. I am locked out of my account. What to do now ?</li></a></h3>
 
69
  <div class="mo2f_collapse" id="question7">
70
- If you have an additional administrator account whose Two Factor is not enabled yet. Login with it. Otherwise,
71
- Go to WordPress Database. Select wp_options, search for mo2f_activate_plugin key and update its value to 0. Two Factor will get disabled.
72
- </div>
 
 
73
  <hr>
74
- <h3><a data-toggle="collapse" href="#question8" aria-expanded="false" ><li>If you are using any Security Plugin in WordPress like Simple Security Firewall, All in One WP Security Plugin and you are not able to login with Two-Factor.</li></a></h3>
 
75
  <div class="mo2f_collapse" id="question8">
76
- Our Two-Factor plugin is compatible with most of the security plugins, but if it is not working for you.
77
- Please submit a query in our <b>Support Section</b> on right hand side or you can contact us at <b>info@miniorange.com</b>.
 
 
78
  </div>
79
  <hr>
80
- <h3><a data-toggle="collapse" href="#question9" aria-expanded="false" ><li>If you are using any render blocking javascript and css plugin like Async JS and CSS Plugin and you are not able to login with Two-Factor or your screen got blank.</li></a></h3>
 
81
  <div class="mo2f_collapse" id="question9">
82
- If you are using <b>Async JS and CSS Plugin</b>. Please go to its settings and add jquery in the list of exceptions and save settings. It will work. If you are still not able to get it right,
83
- Please submit a query in our <b>Support Section</b> on right hand side or you can contact us at <b>info@miniorange.com</b>.
84
- </div>
 
 
 
 
 
 
 
 
 
85
  <hr>
86
- <h3><a data-toggle="collapse" href="#question10" aria-expanded="false" ><li>I want to enable 2-factor only for administrators ?</li></a></h3>
 
87
  <div class="mo2f_collapse" id="question10">
88
- 2-Factor is enabled by default for administrators on plugin activation. You just need to complete your account setup and configure your mobile from <b>Configure Mobile Tab</b>. Once this is done administrators can login using 2-Factor and other users can still login with their password.
89
- </div>
 
 
 
90
  <hr>
91
- <h3><a data-toggle="collapse" href="#question11" aria-expanded="false" ><li>I want to enable 2 factor for administrators and end users ?</li></a></h3>
 
92
  <div class="mo2f_collapse" id="question11">
93
- Go to <b>Login Settings Tab</b> and check <b>Enable 2-Factor for all other users</b>. Enable 2-Factor for admins is checked by default.
 
 
 
94
  </div>
 
 
 
 
 
95
  <hr>
96
-
97
- <h3><a data-toggle="collapse" href="#question12" aria-expanded="false" ><li>My phone has no internet connectivity, how can I login?</li></a></h3>
98
  <div class="mo2f_collapse" id="question12">
99
- You can login using our alternate login method. Please follow below steps to login or <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo#myCarousel2">click here</a> to see how it works.<br>
100
- <br><ol>
101
- <li>Enter your username and click on login with your phone.</li>
102
- <li>Click on <b>Phone is Offline?</b> button below QR Code.</li>
103
- <li>You will see a textbox to enter one time passcode.</li>
104
- <li>Open miniOrange Authenticator app and Go to Soft Token Tab.</li>
105
- <li>Enter the one time passcode shown in miniOrange Authenticator app in textbox.</li>
106
- <li>Click on submit button to validate the otp.</li>
107
- <li>Once you are authenticated, you will be logged in.</li>
108
- </ol>
109
- </div>
110
- <hr>
111
- <h3><a data-toggle="collapse" href="#question13" aria-expanded="false" ><li>My users have different types of phones. What phones are supported?</li></a></h3>
112
- <div class="mo2f_collapse" id="question13">
113
- We support all types of phone. Smart Phones, Basic Phones, Landlines, etc. Go to Setup Two-Factor Tab and select Two-Factor method of your choice from a range of 6 different options.
114
- </div>
115
- <hr>
116
- <h3><a data-toggle="collapse" href="#question14" aria-expanded="false" ><li>What if a user does not have a smart phone?</li></a></h3>
117
- <div class="mo2f_collapse" id="question14">
118
- You can select OTP over SMS, Phone Call Verification or Email Verification as your Two-Factor method. All these methods are supported on basic phones.
119
- </div>
120
- <hr>
121
- <?php }?>
122
- <h3><a data-toggle="collapse" href="#question15" aria-expanded="false" ><li>What if I am trying to login from my phone ?</li></a></h3>
123
- <div class="mo2f_collapse" id="question15">
124
- If you are logging in from your phone, just enter the one time passcode from miniOrange Authenticator App.
125
- Go to Soft Token Tab to see one time passcode.
126
  </div>
127
  <hr>
128
- <?php if(current_user_can( 'manage_options' )) { ?>
129
-
130
 
131
- <h3><a data-toggle="collapse" href="#question16" aria-expanded="false" ><li>I want to hide default login form and just want to show login with phone?</li></a></h3>
132
- <div class="mo2f_collapse" id="question16">
133
- You should go to <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_login">Login Settings Tab</a> and check <b>I want to hide default login form.</b> checkbox to hide the default login form.
 
 
 
 
 
 
 
 
 
134
 
135
-
136
- </div>
137
- <hr>
138
- <?php }?>
139
- <h3><a data-toggle="collapse" href="#question18" aria-expanded="false" ><li>My phone is lost, stolen or discharged. How can I login?</li></a></h3>
140
- <div class="mo2f_collapse" id="question18">
141
- You can login using our alternate login method. Please follow below steps to login or <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo#myCarousel3">click here</a> to see how it works.
142
- <br><br>
143
- <ol>
144
- <li>Enter your username and click on login with your phone.</li>
145
- <li>Click on <b>Forgot Phone?</b> button below QR Code.</li>
146
- <li>You will see a textbox to enter one time passcode.</li>
147
- <li>Check your registered email and copy the one time passcode in this textbox.</li>
148
- <li>Click on submit button to validate the otp.</li>
149
- <li>Once you are authenticated, you will be logged in.</li>
150
- </ol>
151
- </div>
152
- <hr>
153
- <h3><a data-toggle="collapse" href="#question19" aria-expanded="false" ><li>My phone has no internet connectivity and i am entering the one time passcode from miniOrange Authenticator App, it says Invalid OTP.</li></a></h3>
154
- <div class="mo2f_collapse" id="question19">
155
- Click on the <b>Settings Icon</b> on top right corner in miniOrange<b> Authenticator App</b> and then press <b>Sync button</b> under 'Time correction for codes' to sync your time with miniOrange Servers. If you still can't get it right, submit a query here in our <b>support section</b>.<br><br>
156
- </div>
157
- <hr>
158
- <?php if(current_user_can( 'manage_options' )) { ?>
159
-
160
-
161
- <h3><a data-toggle="collapse" href="#question20" aria-expanded="false" ><li>I want to go back to default login with password.</li></a></h3>
162
- <div class="mo2f_collapse" id="question20">
163
- You can disable Two Factor from Login settings Tab by unchecking Enable Two Factor Plugin checkbox.
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  </div>
165
- <hr>
166
-
167
-
168
-
169
-
170
-
171
- <h3><a>For any other query/problem/request, please feel free to submit a query in our support section on right hand side. We are happy to help you and will get back to you as soon as possible.</a></h3>
172
  <?php }?>
173
- </ul>
174
-
175
  </div>
176
  <?php } ?>
5
  <?php echo mo2f_check_if_registered_with_miniorange($current_user); ?>
6
  <br>
7
  <ul class="mo2f_faqs">
 
8
 
9
+ <?php if(current_user_can( 'manage_options' )) { ?>
10
+ <div class="mo_faq_blocks">
11
+ <h3 style="text-align:center"><b>Lockout Issues</b><h3>
 
 
 
12
  <hr>
13
+ <h2><a data-toggle="collapse" href="#question1" aria-expanded="false" ><li>How do I gain access to my website if I get locked out?</li></a></h2>
 
14
  <div class="mo2f_collapse" id="question1">
15
+ You can obtain access to your website by one of the below options:
16
+ <ol>
17
+ <br>
18
+ <li>If you have an additional administrator account whose Two Factor is not enabled yet, you can login with it.</li>
19
+ <li>If you had setup KBA questions earlier, you can use them as an alternate method to login to your website.</li>
20
+ <li>Rename the plugin from FTP - this disables the 2FA plugin and you will be able to login with your Wordpress username and password.</li>
21
+ <li>Go to WordPress Database. Select wp_options, search for mo2f_activate_plugin key and update its value to 0. Two Factor will get disabled.</li>
22
  </ol>
23
+ <br>
 
24
  </div>
25
+
26
+ </div>
27
+ </br>
28
+
29
+
30
+ <div class="mo_faq_blocks">
31
+ <h3 style="text-align:center"><b>Registration Issues</b><h3>
32
+
33
+ <hr>
34
+ <h3><a data-toggle="collapse" href="#question2" aria-expanded="false" ><li>I want to change the email address to which the verification email is being sent / I want to change my email address registered with miniOrange.
35
  </li></a></h3>
36
  <div class="mo2f_collapse" id="question2">
37
+ <ul>
38
+ <li>To change the email address in either of the cases, You will have to sign up for a new account with miniOrange.</li>
39
+ </ul>
40
+ <br>
41
  </div>
42
+
43
+ <hr>
44
+ <h3><a data-toggle="collapse" href="#question3" aria-expanded="false" ><li>I did not receive OTP while trying to register with miniOrange. What should I do?
45
  </li></a></h3>
46
  <div class="mo2f_collapse" id="question3">
47
+ <ul>
48
+ <li>The OTP is sent to your email address with which you have registered with miniOrange. If you can't see the email from miniOrange in your mails, please make sure to check your <b>SPAM folder</b>.<br>
49
+ If you don't see an email even in SPAM folder, please reach out to us.</li>
50
+ </ul>
51
+ <br>
52
  </div>
53
  <hr>
54
+
55
  <h3><a data-toggle="collapse" href="#question4" aria-expanded="false" ><li>I forgot the password of my miniOrange account. How can I reset it?
56
  </li></a></h3>
57
  <div class="mo2f_collapse" id="question4">
58
+ <ol>
59
+ <li>Navigate to <b>Login with miniOrange</b> screen by clicking on <b>'Already registered with miniOrange?'</b>.</li>
60
+ <li>Click on <b>'Click here if you forgot your password?'</b>.</li>
61
+ <li>You will get a new password on your email address with which you have registered with miniOrange . Now you can login with the new password.</li>
62
+ </ol>
63
+ <br>
64
  </div>
65
+ </div>
66
+ <br>
67
+
68
+ <div class="mo_faq_blocks">
69
+ <h3 style="text-align:center"><b>Login Issues</b><h3>
70
  <hr>
71
+
72
+ <h3><a data-toggle="collapse" href="#question5" aria-expanded="false" ><li>My Users are not being prompted for 2-factor during login. Why?</li></a></h3>
73
  <div class="mo2f_collapse" id="question5">
74
+ <ul>
75
+ <li>The free plugin provides the 2-factor functionality for one user(Administrator) forever. To enable 2FA for more users, please upgrade to the Premium plan by clicking on 'Click here to Upgrade' from the Licensing Plans tab.</li>
76
+ </ul>
77
+ <br>
78
  </div>
79
+ <hr>
80
+
81
+ <h3><a data-toggle="collapse" href="#question6" aria-expanded="false" ><li>I had setup QR Code Authentication/Push Notification as my 2-factor method. My phone has no internet connectivity, how can I login?</li></a></h3>
82
  <div class="mo2f_collapse" id="question6">
83
+ You can login using our alternate login method. Please follow below steps to login or <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo#myCarousel9">click here</a> to see how to setup 2-factor.<br>
84
+ <br>
85
+ <ol>
86
+ <li>Enter your username and click on login with 2nd factor.</li>
87
+ <li>Click on <b>Phone is Offline?</b> button below QR Code.</li>
88
+ <li>You will see a textbox to enter one time passcode.</li>
89
+ <li>Open miniOrange Authenticator app and Go to Soft Token Tab.</li>
90
+ <li>Enter the one time passcode shown in miniOrange Authenticator app in textbox.</li>
91
+ <li>Click on submit button to validate the otp.</li>
92
+ <li>Once you are authenticated, you will be logged in.</li>
93
+ </ol>
94
+ <br>
95
  </div>
96
  <hr>
97
+
98
+ <h3><a data-toggle="collapse" href="#question7" aria-expanded="false" ><li>My phone has no internet connectivity and I am entering the one time passcode from miniOrange Authenticator App, it says Invalid OTP.</li></a></h3>
99
  <div class="mo2f_collapse" id="question7">
100
+ <ul>
101
+ <li>Click on the <b>Sync Time</b> option to the options on the left in miniOrange<b> Authenticator App</b> and press on <b>Sync Time now</b> to sync your time with miniOrange Servers.</li>
102
+ </ul>
103
+ <br>
104
+ </div>
105
  <hr>
106
+
107
+ <h3><a data-toggle="collapse" href="#question8" aria-expanded="false" ><li>I want to hide default login form and just want to show login with phone?</li></a></h3>
108
  <div class="mo2f_collapse" id="question8">
109
+ <ul>
110
+ <li>You should go to <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_login">Login Settings Tab</a> and check <b>I want to hide default login form.</b> checkbox to hide the default login form. </li>
111
+ </ul>
112
+ <br>
113
  </div>
114
  <hr>
115
+
116
+ <h3><a data-toggle="collapse" href="#question9" aria-expanded="false" ><li>My phone is lost, stolen or discharged. How can I login?</li></a></h3>
117
  <div class="mo2f_collapse" id="question9">
118
+ You can login using our alternate login method. Please follow below steps to login or <a href="admin.php?page=miniOrange_2_factor_settings&amp;mo2f_tab=mo2f_demo#myCarousel3">click here</a> to see how to setup 2-factor.
119
+ <br><br>
120
+ <ol>
121
+ <li>Enter your username and click on login with your phone.</li>
122
+ <li>Click on <b>Forgot Phone?</b> button.</li>
123
+ <li>You will see a textbox to enter one time passcode.</li>
124
+ <li>Check your registered email and copy the one time passcode in this textbox.</li>
125
+ <li>Click on submit button to validate the otp.</li>
126
+ <li>Once you are authenticated, you will be logged in.</li>
127
+ </ol>
128
+ <br>
129
+ </div>
130
  <hr>
131
+
132
+ <h3><a data-toggle="collapse" href="#question10" aria-expanded="false" ><li>I want to go back to default login with password.</li></a></h3>
133
  <div class="mo2f_collapse" id="question10">
134
+ <ul>
135
+ <li>You can disable Two Factor from Login settings Tab by unchecking <b>Enable Two Factor Plugin</b> checkbox.</li>
136
+ </ul>
137
+ <br>
138
+ </div>
139
  <hr>
140
+
141
+ <h3><a data-toggle="collapse" href="#question11" aria-expanded="false" ><li>I have a custom / front-end login page on my site and I want the look and feel to remain the same when I add 2 factor ?</li></a></h3>
142
  <div class="mo2f_collapse" id="question11">
143
+ <ul>
144
+ <li>Our plugin works with most of the custom login pages. However, we do not claim that it will work with all the customized login pages.<br> In such cases, custom work is needed to integrate two factor with your customized login page. You can submit a query to us from Support section to the right for more details.</li>
145
+ </ul>
146
+ <br>
147
  </div>
148
+ </div>
149
+ <br>
150
+
151
+ <div class="mo_faq_blocks">
152
+ <h3 style="text-align:center"><b>Plugin Installation Errors</b><h3>
153
  <hr>
154
+ <h3><a data-toggle="collapse" href="#question12" aria-expanded="false" ><li>I am getting the fatal error of call to undefined function json_last_error(). What should I do?</li></a>
155
+ </h3>
156
  <div class="mo2f_collapse" id="question12">
157
+ <ul>
158
+ <li>Please check your php version. The plugin is supported in php version 5.3.0 or above. You need to upgrade your php version to 5.3.0 or above to use the plugin.</li>
159
+ </ul>
160
+ <br>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  </div>
162
  <hr>
 
 
163
 
164
+ <h3><a data-toggle="collapse" href="#question13" aria-expanded="false" ><li>How to enable PHP cURL extension? (Pre-requisite)</li></a></h3>
165
+ <div class="mo2f_collapse" id="question13">
166
+ cURL is enabled by default but in case you have disabled it, follow the below steps to enable it.
167
+ <ol>
168
+ <br>
169
+ <li>Open php.ini(it's usually in /etc/ or in php folder on the server).</li>
170
+ <li>Search for extension=php_curl.dll. Uncomment it by removing the semi-colon( ; ) in front of it.</li>
171
+ <li>Restart the Apache Server.</li>
172
+ </ol>
173
+ <br>
174
+ </div>
175
+ <hr>
176
 
177
+ <h3><a data-toggle="collapse" href="#question14" aria-expanded="false" ><li>I am getting error - curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set.
178
+ </li></a></h3>
179
+ <div class="mo2f_collapse" id="question14">
180
+ <ul>
181
+ <li>Just setsafe_mode = Off in your php.ini file (it's usually in /etc/ on the server). If that's already off, then look around for the open_basedir in the php.ini file, and change it to open_basedir = .</li>
182
+ </ul>
183
+ <br>
184
+ </div>
185
+ </div>
186
+ </br>
187
+ <div class="mo_faq_blocks">
188
+ <h3 style="text-align:center"><b>Compatibility Issues with other plugins</b><h3>
189
+ <hr>
190
+ <h3><a data-toggle="collapse" href="#question15" aria-expanded="false" ><li>I have installed plugins which limit the login attempts like Limit Login Attempt, Loginizer, Wordfence etc. Is there any incompatibility with these kind of plugins?</li></a></h3>
191
+ <div class="mo2f_collapse" id="question15">
192
+ <ul>
193
+ <li>These plugins limit the number of login attempts and block the IP temporarily. So if you are using 2 factor along with these kind of plugins, it is highly recommended to increase the login attempts (minimum 5) so that you don't get locked out.</li>
194
+ </ul>
195
+ <br>
196
+ </div>
197
+ <hr>
198
+ <h3><a data-toggle="collapse" href="#question16" aria-expanded="false" ><li>I am using a Security Plugin in WordPress like Simple Security Firewall, All in One WP Security Plugin and I am not able to login with Two-Factor.</li></a></h3>
199
+ <div class="mo2f_collapse" id="question16">
200
+ <ul>
201
+ <li>Our Two-Factor plugin is compatible with most of the security plugins, but if you are facing any issues, please reach out to us.</li>
202
+ </ul>
203
+ <br>
204
+ </div>
205
+ <hr>
206
+ <h3><a data-toggle="collapse" href="#question17" aria-expanded="false" ><li>I am using render blocking javascript and css Plugins like Async JS and CSS and I am not able to login with Two-Factor or the screen gets blank.</li></a></h3>
207
+ <div class="mo2f_collapse" id="question17">
208
+ <ul>
209
+ <li>If you are using <b>Async JS and CSS Plugin</b>, please go to it's settings and add jQuery in the list of exceptions and save settings.</li>
210
+ </ul>
211
+ <br>
212
+ </div>
213
+ </div>
214
+ <br>
215
+ <div class="mo_faq_blocks">
216
+ <h3 style="text-align:center"><b>Others</b><h3>
217
+ <hr>
218
+ <h3 style="color:#0073aa;">If your query is not listed above, or if it was not resolved with the solutions provided, please feel free to submit a query to us through the support section to the left. We will get back to you as soon as possible.</h3>
219
  </div>
 
 
 
 
 
 
 
220
  <?php }?>
221
+ <br>
222
+ </ul>
223
  </div>
224
  <?php } ?>
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: cyberlord92,
3
  Donate link: https://miniorange.com/
4
  Tags: google authenticator, two factor authentication, two factor, 2FA, 2 factor authentication, two step verification, 1 google authenticator, login, authy, authy two factor, Clef, 2 Factor, yubico, Two-Factor Authentication, Mobile Authentication, otp, strong authentication, 2 step authentication, smartphone authentication, Multifactor authentication, multi factor authentication, multi factor, no password, passwordless login, security, website security, one time passcode, password, soft token, woocommerce, authenticate, two factor auth, two-factor, duo, QR Code, QR Code Authentication, scan QR Code, wordfence, login security, google authenticator, google , email verification, trusted device, device Id , KBA , knowledge based authentication
5
  Requires at least: 3.0.1
6
- Tested up to: 4.8
7
- Stable tag: 4.5.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -241,6 +241,9 @@ miniOrange authentication service has 15+ authentication methods.One time passco
241
 
242
  == Changelog ==
243
 
 
 
 
244
  = 4.5.2 =
245
  * Google Authenticator (2FA) : Readme Update: Description Update
246
 
3
  Donate link: https://miniorange.com/
4
  Tags: google authenticator, two factor authentication, two factor, 2FA, 2 factor authentication, two step verification, 1 google authenticator, login, authy, authy two factor, Clef, 2 Factor, yubico, Two-Factor Authentication, Mobile Authentication, otp, strong authentication, 2 step authentication, smartphone authentication, Multifactor authentication, multi factor authentication, multi factor, no password, passwordless login, security, website security, one time passcode, password, soft token, woocommerce, authenticate, two factor auth, two-factor, duo, QR Code, QR Code Authentication, scan QR Code, wordfence, login security, google authenticator, google , email verification, trusted device, device Id , KBA , knowledge based authentication
5
  Requires at least: 3.0.1
6
+ Tested up to: 4.8.2
7
+ Stable tag: 4.5.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
241
 
242
  == Changelog ==
243
 
244
+ = 4.5.3 =
245
+ * Google Authenticator (2FA) : Changed UI of the Login Pages, Redirect to Login Page bug fixes.
246
+
247
  = 4.5.2 =
248
  * Google Authenticator (2FA) : Readme Update: Description Update
249
 
uninstall.php CHANGED
@@ -38,6 +38,9 @@
38
  delete_option('mo2f_enable_mobile_support');
39
  delete_option( 'mo2f_new_customer' );
40
  delete_option('mo2f_show_sms_transaction_message');
 
 
 
41
 
42
  //delete all stored key-value pairs for the roles
43
  global $wp_roles;
@@ -90,6 +93,9 @@
90
  delete_option( 'mo2f_number_of_transactions' );
91
  delete_option( 'mo2f_set_transactions' );
92
  delete_option('mo2f_show_sms_transaction_message');
 
 
 
93
 
94
  //delete all stored key-value pairs for the roles
95
  global $wp_roles;
@@ -121,6 +127,9 @@
121
  delete_user_meta($user->ID,'mo2f_kba_registration_status');
122
  delete_user_meta($user->ID,'mo2f_email_verification_status');
123
  delete_user_meta($user->ID,'mo2f_authy_authentication_status');
 
 
 
124
  }
125
 
126
  //delete previous version key-value pairs
38
  delete_option('mo2f_enable_mobile_support');
39
  delete_option( 'mo2f_new_customer' );
40
  delete_option('mo2f_show_sms_transaction_message');
41
+ /* App Specific Password
42
+ delete_option('mo2f_app_password');
43
+ */
44
 
45
  //delete all stored key-value pairs for the roles
46
  global $wp_roles;
93
  delete_option( 'mo2f_number_of_transactions' );
94
  delete_option( 'mo2f_set_transactions' );
95
  delete_option('mo2f_show_sms_transaction_message');
96
+ /* App Specific Password
97
+ delete_option('mo2f_app_password');
98
+ */
99
 
100
  //delete all stored key-value pairs for the roles
101
  global $wp_roles;
127
  delete_user_meta($user->ID,'mo2f_kba_registration_status');
128
  delete_user_meta($user->ID,'mo2f_email_verification_status');
129
  delete_user_meta($user->ID,'mo2f_authy_authentication_status');
130
+ /* App Specific Password
131
+ delete_user_meta($user->ID,'mo2f_app_password');
132
+ */
133
  }
134
 
135
  //delete previous version key-value pairs