Version Description
Download this release
Release Info
Developer | cyberlord92 |
Plugin | Google Authenticator – WordPress Two Factor Authentication (2FA) |
Version | 5.4.34 |
Comparing to | |
See all releases |
Code changes from version 5.5.1 to 5.4.34
- api/Mo2f_OnPremRedirect.php +3 -3
- api/class-customer-common-setup.php +1 -63
- changelog.txt +0 -718
- controllers/account.php +1 -1
- controllers/dashboard.php +1 -1
- controllers/feedback_footer.php +22 -0
- controllers/main_controller.php +76 -51
- controllers/navbar.php +1 -2
- controllers/request_christmas_offer.php +0 -48
- controllers/request_demo.php +0 -51
- controllers/request_offer.php +1 -1
- controllers/support.php +22 -3
- controllers/tour-model.php +0 -334
- controllers/tour/tour_ajax.php +0 -146
- controllers/trial.php +0 -91
- controllers/twofa/mo2fa_common_login.php +10 -107
- controllers/twofa/mo2fa_inline_registration.php +0 -31
- controllers/twofa/two_factor_ajax.php +12 -721
- controllers/upgrade.php +1 -2
- controllers/wpns-loginsecurity-ajax.php +7 -28
- database/database_functions_2fa.php +1 -5
- database/mo2f_db_options.php +0 -2
- handler/ajax.php +1 -13
- handler/logger.php +0 -2
- handler/login.php +31 -36
- handler/recaptcha.php +0 -4
- handler/twofa/class_miniorange_2fa_strong_password.php +1 -1
- handler/twofa/gaonprem.php +2 -8
- handler/twofa/setup_twofa.php +10 -28
- handler/twofa/two_fa_constants.php +0 -13
- handler/twofa/two_fa_login.php +12 -15
- handler/twofa/two_fa_pass2login.php +115 -236
- handler/twofa/two_fa_settings.php +69 -1107
- handler/twofa/two_fa_utility.php +24 -40
- handler/user-profile-2fa-update.php +0 -213
- handler/user-profile-2fa.php +0 -276
- helper/constants.php +1 -1
- helper/messages.php +1 -35
- helper/utility.php +4 -10
- includes/css/bootstrap.min.css +1 -14
- includes/css/button_styles.css +2 -2
- includes/css/christmas.gif +0 -0
- includes/css/datetime-style-settings.css +576 -0
- includes/css/datetime-style-settings.min.css +1 -0
- includes/css/hide-login-form.css +0 -3
- includes/css/jquery-ui.min.css +4 -1
- includes/css/jquery.ui.css +175 -0
- includes/css/popup.css +2 -2
- includes/css/style_settings.css +309 -403
- includes/css/twofa_style_settings.css +1 -13
- includes/css/upgrade.css +47 -728
- includes/css/user-profile.css +0 -179
- includes/email-New-release.php +243 -553
- includes/images/firebase.png +0 -0
- includes/js/mo2fa_elementor.js +0 -122
- includes/js/pointers.js +3 -3
- includes/js/settings_page.js +4 -37
- includes/js/setup-wizard-2fa.js +9 -7
- includes/js/skip_tour.js +0 -19
- includes/js/user-profile-twofa.js +0 -194
- includes/lib/mo-2fa-options-enum.php +435 -0
- miniorange_2_factor_settings.php +21 -67
- readme.txt +944 -329
- uninstall.php +5 -18
- views/addons.php +13 -13
- views/advanced-blocking.php +56 -36
- views/backup/backup.php +40 -28
- views/backup/backup_created_report.php +3 -6
- views/backup/backup_schdule.php +1 -1
- views/backup/backup_setting_view.php +2 -2
- views/dashboard.php +5 -16
- views/email-IPaddress.php +6 -7
- views/feedback_footer.php +118 -12
- views/ip-blocking.php +1 -1
- views/login-security.php +3 -3
- views/login_spam.php +48 -40
- views/malware_scanner/malware_scan.php +67 -50
- views/malware_scanner/scan_report_view.php +2 -6
- views/malware_scanner/scan_settings_view.php +1 -1
- views/malware_scanner/scan_summary_view.php +4 -4
- views/navbar.php +52 -35
- views/network_security_features.php +1 -1
- views/request_christmas_offer.php +0 -36
- views/request_demo.php +0 -47
- views/request_offer.php +8 -9
- views/support.php +155 -61
- views/tour-model.php +0 -197
- views/trial.php +0 -56
- views/twofa/setup/setup_duo_authenticator.php +1 -3
- views/twofa/setup/setup_google_authenticator.php +1 -2
- views/twofa/setup/setup_google_authenticator_onpremise.php +2 -103
- views/twofa/setup/setup_kba_questions.php +10 -12
- views/twofa/setup/setup_miniorange_authenticator.php +1 -1
- views/twofa/setup_twofa.php +20 -18
- views/twofa/two_fa.php +82 -78
- views/twofa/two_fa_addon.php +3 -3
- views/twofa/two_fa_custom_form.php +120 -122
- views/twofa/two_fa_custom_login.php +6 -6
- views/twofa/two_fa_login_option.php +87 -118
- views/twofa/two_fa_premium_feature.php +2 -2
- views/twofa/two_fa_rba.php +4 -4
- views/twofa/two_fa_session_control.php +4 -3
- views/twofa/two_fa_setup_notification.php +1 -1
- views/twofa/two_fa_shortcode.php +2 -2
- views/twofa/two_fa_unlimittedUser.php +20 -58
- views/upgrade.php +427 -367
- views/upgrade_2fa_lite.php +1 -1
- views/waf.php +100 -70
api/Mo2f_OnPremRedirect.php
CHANGED
@@ -68,7 +68,7 @@ class Mo2f_OnPremRedirect {
|
|
68 |
return $content;
|
69 |
case "EMAIL":
|
70 |
|
71 |
-
case "OTP Over Email": $content = $this->OnpremOTPOverEMail($currentuser
|
72 |
return $content;
|
73 |
case "KBA": $content = $this->OnpremSecurityQuestions($currentuser);
|
74 |
return $content;
|
@@ -104,9 +104,9 @@ class Mo2f_OnPremRedirect {
|
|
104 |
$content=$gauth_obj->verifyCode($secret, $otpToken);
|
105 |
return $content;
|
106 |
}
|
107 |
-
function OnpremOTPOverEMail($current_user
|
108 |
{
|
109 |
-
return $this->OnpremSendOTPEMail($current_user,'mo2f_otp_email_code','mo2f_otp_email_time'
|
110 |
}
|
111 |
function OnpremSendOTPEMail($current_user,$tokenName,$timeName,$email=null)
|
112 |
{
|
68 |
return $content;
|
69 |
case "EMAIL":
|
70 |
|
71 |
+
case "OTP Over Email": $content = $this->OnpremOTPOverEMail($currentuser);
|
72 |
return $content;
|
73 |
case "KBA": $content = $this->OnpremSecurityQuestions($currentuser);
|
74 |
return $content;
|
104 |
$content=$gauth_obj->verifyCode($secret, $otpToken);
|
105 |
return $content;
|
106 |
}
|
107 |
+
function OnpremOTPOverEMail($current_user)
|
108 |
{
|
109 |
+
return $this->OnpremSendOTPEMail($current_user,'mo2f_otp_email_code','mo2f_otp_email_time');
|
110 |
}
|
111 |
function OnpremSendOTPEMail($current_user,$tokenName,$timeName,$email=null)
|
112 |
{
|
api/class-customer-common-setup.php
CHANGED
@@ -301,69 +301,6 @@ class Customer_Cloud_Setup {
|
|
301 |
return $content;
|
302 |
}
|
303 |
|
304 |
-
public function mo_2f_generate_backup_codes($mo2f_user_email,$site_url){
|
305 |
-
|
306 |
-
|
307 |
-
$url = 'https://sitestats.xecurify.com/backupcodeservice/index.php';
|
308 |
-
|
309 |
-
$headers = array('header' => "Authorization:Basic" . base64_encode("$mo2f_user_email:$site_url") );
|
310 |
-
|
311 |
-
$postdata = array('mo2f_email'=> $mo2f_user_email,
|
312 |
-
'mo2f_domain' =>$site_url,
|
313 |
-
'headers'=>$headers['header'],
|
314 |
-
'mo2f_generate_backup_codes'=>'initiated_backup_codes');
|
315 |
-
|
316 |
-
$handle = curl_init();
|
317 |
-
|
318 |
-
curl_setopt_array($handle,
|
319 |
-
array(
|
320 |
-
CURLOPT_URL => $url,
|
321 |
-
CURLOPT_POST => true,
|
322 |
-
CURLOPT_POSTFIELDS => $postdata,
|
323 |
-
CURLOPT_RETURNTRANSFER => true,
|
324 |
-
CURLOPT_SSL_VERIFYHOST => FALSE,
|
325 |
-
CURLOPT_SSL_VERIFYPEER => FALSE,
|
326 |
-
)
|
327 |
-
);
|
328 |
-
|
329 |
-
$data = curl_exec($handle);
|
330 |
-
|
331 |
-
curl_close($handle);
|
332 |
-
return $data;
|
333 |
-
|
334 |
-
}
|
335 |
-
|
336 |
-
public function mo2f_validate_backup_codes($mo2f_backup_code,$mo2f_user_email){
|
337 |
-
$url = 'https://sitestats.xecurify.com/backupcodeservice/backup_code_validation.php';
|
338 |
-
|
339 |
-
$site_url = site_url();
|
340 |
-
$headers = array('header' => "Authorization:Basic" . base64_encode("$mo2f_user_email:$site_url") );
|
341 |
-
|
342 |
-
$postdata = array('mo2f_otp_token' => $mo2f_backup_code,
|
343 |
-
'mo2f_user_email'=> $mo2f_user_email,
|
344 |
-
'headers'=>$headers['header'],
|
345 |
-
'mo2f_site_url' => $site_url);
|
346 |
-
|
347 |
-
$handle = curl_init();
|
348 |
-
|
349 |
-
curl_setopt_array($handle,
|
350 |
-
array(
|
351 |
-
CURLOPT_URL => $url,
|
352 |
-
CURLOPT_POST => true,
|
353 |
-
CURLOPT_POSTFIELDS => $postdata,
|
354 |
-
CURLOPT_RETURNTRANSFER => true,
|
355 |
-
CURLOPT_SSL_VERIFYHOST => FALSE,
|
356 |
-
CURLOPT_SSL_VERIFYPEER => FALSE,
|
357 |
-
)
|
358 |
-
);
|
359 |
-
|
360 |
-
$data = curl_exec($handle);
|
361 |
-
|
362 |
-
curl_close($handle);
|
363 |
-
|
364 |
-
return $data;
|
365 |
-
}
|
366 |
-
|
367 |
|
368 |
function validate_otp_token( $authType, $username, $transactionId, $otpToken, $cKey, $customerApiKey, $current_user =null) {
|
369 |
$content='';
|
@@ -424,6 +361,7 @@ class Customer_Cloud_Setup {
|
|
424 |
|
425 |
|
426 |
$content = $mo2fApi->make_curl_call( $url, $field_string, $headers );
|
|
|
427 |
return $content;
|
428 |
}
|
429 |
|
301 |
return $content;
|
302 |
}
|
303 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
|
305 |
function validate_otp_token( $authType, $username, $transactionId, $otpToken, $cKey, $customerApiKey, $current_user =null) {
|
306 |
$content='';
|
361 |
|
362 |
|
363 |
$content = $mo2fApi->make_curl_call( $url, $field_string, $headers );
|
364 |
+
|
365 |
return $content;
|
366 |
}
|
367 |
|
changelog.txt
DELETED
@@ -1,718 +0,0 @@
|
|
1 |
-
=== miniOrange's Google Authenticator - WordPress Two Factor Authentication (2FA , MFA, OTP SMS and Email) | Passwordless login ===
|
2 |
-
|
3 |
-
== Archived Changelog Entries ==
|
4 |
-
|
5 |
-
This file contains older changelog entries, so we can keep the size of the standard WordPress readme.txt file reasonable.
|
6 |
-
For the latest changes, please refer to the "Changelog" section in the [readme.txt file](https://plugins.svn.wordpress.org/miniorange-2-factor-authentication/trunk/readme.txt).
|
7 |
-
|
8 |
-
= 5.5.1 =
|
9 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
10 |
-
* Updated Pricing page UI
|
11 |
-
|
12 |
-
= 5.5 =
|
13 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
14 |
-
* Updated Network Security UI
|
15 |
-
|
16 |
-
= 5.4.52 =
|
17 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
18 |
-
* Updated Trial Request Form
|
19 |
-
|
20 |
-
= 5.4.51 =
|
21 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
22 |
-
* Trial notification visibility issue fixed
|
23 |
-
|
24 |
-
= 5.4.50 =
|
25 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
26 |
-
* Bug fix - Headers already sent
|
27 |
-
|
28 |
-
= 5.4.49 =
|
29 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
30 |
-
* Trial Notification for Premium Plugins
|
31 |
-
* CSRF Fix
|
32 |
-
|
33 |
-
= 5.4.48 =
|
34 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
35 |
-
* Close button on offer banner
|
36 |
-
|
37 |
-
= 5.4.47 =
|
38 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
39 |
-
* Christmas offer
|
40 |
-
|
41 |
-
= 5.4.46 =
|
42 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
43 |
-
* Black friday offer
|
44 |
-
* Get email notification on the plugin's new release
|
45 |
-
|
46 |
-
= 5.4.45 =
|
47 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
48 |
-
* Added login with the any configured methods
|
49 |
-
* Minor bug fix
|
50 |
-
|
51 |
-
= 5.4.44 =
|
52 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
53 |
-
* Added link to WordPress forum in support form
|
54 |
-
* Minor bug fix
|
55 |
-
|
56 |
-
= 5.4.43 =
|
57 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
58 |
-
* Special offer - Special discount for limited time
|
59 |
-
|
60 |
-
= 5.4.42 =
|
61 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
62 |
-
* Backup Code as a cloud service
|
63 |
-
|
64 |
-
= 5.4.41 =
|
65 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
66 |
-
* Minor UI Changes and Bug Fixes
|
67 |
-
|
68 |
-
= 5.4.40 =
|
69 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
70 |
-
* XSS Vulnerability fix
|
71 |
-
* Added video link for miniOrange Authenticator
|
72 |
-
|
73 |
-
= 5.4.39 =
|
74 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
75 |
-
* Added 2FA setup using user profile option
|
76 |
-
* Support Form UI
|
77 |
-
* 2FA Form support for login with ajax, Elementor Pro, UserPro login forms
|
78 |
-
* Minor bug fixes
|
79 |
-
|
80 |
-
= 5.4.38 =
|
81 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
82 |
-
* Added 2FA setup using user profile option
|
83 |
-
* Setup Wizard for configuring 2FA
|
84 |
-
* 2FA Form support for login with ajax, Elementor Pro, UserPro login forms
|
85 |
-
* Minor bug fixes
|
86 |
-
|
87 |
-
= 5.4.37 =
|
88 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
89 |
-
* Minor bug fixes
|
90 |
-
|
91 |
-
= 5.4.36 =
|
92 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
93 |
-
* Remove extra comma
|
94 |
-
|
95 |
-
= 5.4.35 =
|
96 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
97 |
-
* Minor bug fixes
|
98 |
-
|
99 |
-
= 5.4.34 =
|
100 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
101 |
-
* New User Interface for easy setup
|
102 |
-
* Added developers logs
|
103 |
-
* Minor fixes
|
104 |
-
|
105 |
-
= 5.4.33 =
|
106 |
-
* Google Authenticator – Two Factor Authentication (2FA, TFA) :
|
107 |
-
* New pricing page for two factor authentication
|
108 |
-
* Added Duo Authenticator push notification method.
|
109 |
-
* WooCommerce redirect issue fix.
|
110 |
-
|
111 |
-
= 5.4.32 =
|
112 |
-
* Google Authenticator – Two Factor Authentication (2FA, TFA) :
|
113 |
-
* Replaced sessions with transient.
|
114 |
-
|
115 |
-
= 5.4.31 =
|
116 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
117 |
-
* OTP over Email as two factor fix
|
118 |
-
* Low Email transaction alert fix
|
119 |
-
|
120 |
-
= 5.4.30 =
|
121 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
122 |
-
* Feedback changes
|
123 |
-
|
124 |
-
= 5.4.29 =
|
125 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
126 |
-
* Session independent Google Authenticator
|
127 |
-
* Session independent KBA
|
128 |
-
* Feedback improvement for two factor authentication plugin
|
129 |
-
|
130 |
-
= 5.4.28 =
|
131 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
132 |
-
* New year sale update
|
133 |
-
|
134 |
-
= 5.4.27 =
|
135 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
136 |
-
* New year sale
|
137 |
-
* WordPress 5.6 compatibility fix
|
138 |
-
* WAF fixes
|
139 |
-
* Real time IP blocking
|
140 |
-
* IP based user login
|
141 |
-
* New feature release notification
|
142 |
-
|
143 |
-
= 5.4.26 =
|
144 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
145 |
-
* Christmas Offer
|
146 |
-
|
147 |
-
= 5.4.25 =
|
148 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
149 |
-
* OTP over Telegram Fixes
|
150 |
-
|
151 |
-
= 5.4.24 =
|
152 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
153 |
-
* OTP over Whatsapp
|
154 |
-
* OTP over Telegram
|
155 |
-
* Feedback form changes
|
156 |
-
|
157 |
-
= 5.4.23 =
|
158 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
159 |
-
* Call support with technical team
|
160 |
-
* Email and SMS transaction sync
|
161 |
-
* Feedback form on network deactivate
|
162 |
-
* Enable/Disable 2FA fix
|
163 |
-
* 2FA added for super admin role
|
164 |
-
|
165 |
-
= 5.4.22 =
|
166 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
167 |
-
* Backup Codes
|
168 |
-
* Sanitization and JS improvements
|
169 |
-
* SMS and Email Sync
|
170 |
-
* Whatsapp based Two factor in Premium plugin
|
171 |
-
* Telegram based Two factor in Premium plugin
|
172 |
-
|
173 |
-
= 5.4.21 =
|
174 |
-
* Google Authenticator - Two Factor Authentication (2FA, SMS) :
|
175 |
-
* Sanitization of some input values.
|
176 |
-
|
177 |
-
= 5.4.20 =
|
178 |
-
* Google Authenticator - Two Factor Authentication (2FA, SMS) :
|
179 |
-
* Google Authenticator Qr code fix.
|
180 |
-
* My theme login Login fix.
|
181 |
-
|
182 |
-
= 5.4.19 =
|
183 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) : Google Authenticator cloud fix.
|
184 |
-
|
185 |
-
= 5.4.18 =
|
186 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
187 |
-
* Added missing file
|
188 |
-
|
189 |
-
= 5.4.17 =
|
190 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
191 |
-
*Digimember Form Support
|
192 |
-
*Memberpress Form Support
|
193 |
-
*SMS Verification Support
|
194 |
-
*OTP Verification on WooCommerce Registration
|
195 |
-
|
196 |
-
= 5.4.16 =
|
197 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) : Quick form fix.
|
198 |
-
|
199 |
-
= 5.4.15 =
|
200 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
201 |
-
* Theme My Login plugin Support
|
202 |
-
* Ultimate Member Registration Support
|
203 |
-
* WooCommerce Registration Support
|
204 |
-
* Ultimate Member Redirect
|
205 |
-
* Restrict Content Pro Login and Registration
|
206 |
-
|
207 |
-
= 5.4.14 =
|
208 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA) : Performance improvement with fixes in Security Questions. And User Email verification and Phone Verification issues resolved.
|
209 |
-
|
210 |
-
= 5.4.13 =
|
211 |
-
* Google Authenticator - Two Factor Authentication (2FA, TFA) : Support Form Improvement.
|
212 |
-
|
213 |
-
= 5.4.11 =
|
214 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA) : Feedback Issue fix.
|
215 |
-
|
216 |
-
= 5.4.9 =
|
217 |
-
* Google Authenticator - Two Factor Authentication (2FA, TFA) : User Experience, new support form and Security disabled by default. Added New Methods for users to choose.
|
218 |
-
|
219 |
-
= 5.4.8 =
|
220 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP Verification) : Learning Management System support, Microsoft Authenticator and Duo Authenticator support and restrict account sharing add-on.
|
221 |
-
|
222 |
-
= 5.4.7 =
|
223 |
-
* Google Authenticator - Two Factor Authentication (2FA, SMS Verification) : Fixing warnings and adding minor changes in the plans.
|
224 |
-
|
225 |
-
= 5.4.6 =
|
226 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Improving Google Authenticator and adding Payment options.
|
227 |
-
|
228 |
-
= 5.4.5 =
|
229 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) : Security and MFA UI updates.
|
230 |
-
|
231 |
-
= 5.4.4 =
|
232 |
-
* Google Authenticator - Two Factor Authentication (2FA, TFA) : Two Factor : WooCommerce login page integration.
|
233 |
-
|
234 |
-
= 5.4.3 =
|
235 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA) : Session issue fix for customers using Two Factor.
|
236 |
-
|
237 |
-
= 5.4.2 =
|
238 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA) : Warning for cloud customer moving to on-premise Two factor
|
239 |
-
|
240 |
-
= 5.4.1 =
|
241 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Headers sent issue is security firewall.
|
242 |
-
|
243 |
-
= 5.4.0 =
|
244 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor FAQ Fix and OTP code convenience.
|
245 |
-
|
246 |
-
= 5.3.26 =
|
247 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor On-premise FAQ update.
|
248 |
-
|
249 |
-
= 5.3.25 =
|
250 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor On-premise support form.
|
251 |
-
|
252 |
-
= 5.3.24 =
|
253 |
-
* Google Authenticator - Two Factor Authentication (2FA) : On-premise two factor released with multiple user support for some authentication methods.
|
254 |
-
|
255 |
-
= 5.3.23 =
|
256 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Scanner : Timing and caching issue fix.
|
257 |
-
* Disable 2fa on WooCommerce login.
|
258 |
-
* Login with Username only fix.
|
259 |
-
|
260 |
-
= 5.3.22 =
|
261 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Antivirus : Fixing Cache issues and adding nonce.
|
262 |
-
|
263 |
-
= 5.3.21 =
|
264 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor : Choice between Two factor and Security.
|
265 |
-
|
266 |
-
= 5.3.20 =
|
267 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Anti Malware : Fixing issue faced by users during scan.
|
268 |
-
|
269 |
-
= 5.3.19 =
|
270 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Security : Giving users choice of two factor.
|
271 |
-
|
272 |
-
= 5.3.18 =
|
273 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Antivirus and Firewall : Fix Scan.
|
274 |
-
|
275 |
-
= 5.3.17 =
|
276 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Virus : Improved Stop Scan.
|
277 |
-
|
278 |
-
= 5.3.16 =
|
279 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Virus : Stop Scan.
|
280 |
-
|
281 |
-
= 5.3.15 =
|
282 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Malware : schedule scan.
|
283 |
-
|
284 |
-
= 5.3.14 =
|
285 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Malware : Adding more signatures.
|
286 |
-
|
287 |
-
= 5.3.13 =
|
288 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Security : fix UI Issue and improving 2fa.
|
289 |
-
|
290 |
-
= 5.3.12 =
|
291 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Security : backup table fix.
|
292 |
-
|
293 |
-
= 5.3.11 =
|
294 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Security : Limiting Firewall, Malware, backup and login security for users not needing it.
|
295 |
-
|
296 |
-
= 5.3.10 =
|
297 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Security : Moved to Old WAF version minor issues..
|
298 |
-
|
299 |
-
= 5.3.9 =
|
300 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Security : Web application Firewall Sql Injections report and monitoring.
|
301 |
-
|
302 |
-
= 5.3.8 =
|
303 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Security : Malware Scanner Fix.
|
304 |
-
|
305 |
-
= 5.3.7 =
|
306 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Security : Two factor login with username fix.
|
307 |
-
|
308 |
-
= 5.3.6 =
|
309 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Anti virus zip file fix.
|
310 |
-
|
311 |
-
= 5.3.5 =
|
312 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Backup URL Fix and space issue in google authenticator.
|
313 |
-
|
314 |
-
= 5.3.4 =
|
315 |
-
* Google Authenticator - Two Factor Authentication (2FA) : CSS fix for Malware Scanner, Security and firewall.
|
316 |
-
|
317 |
-
= 5.3.3 =
|
318 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Minor Malware Scanner issues fix.
|
319 |
-
|
320 |
-
= 5.3.2 =
|
321 |
-
* Google Authenticator - Two Factor Authentication (2FA) : File Changes.
|
322 |
-
|
323 |
-
= 5.3.1 =
|
324 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix.
|
325 |
-
|
326 |
-
= 5.3.0 =
|
327 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Releasing Firewall with Two Factor.
|
328 |
-
|
329 |
-
= 5.2.6 =
|
330 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Fixed conflict and filter issues.
|
331 |
-
|
332 |
-
= 5.2.5 =
|
333 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Some warnings in remote posts.
|
334 |
-
|
335 |
-
= 5.2.4 =
|
336 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Removed curl calls and unnecessary files.
|
337 |
-
|
338 |
-
= 5.2.3 =
|
339 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Fix for some users facing issues in api calls.
|
340 |
-
|
341 |
-
= 5.2.2 =
|
342 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Adding File Protection and Strong Password feature.
|
343 |
-
:
|
344 |
-
= 5.2.1 =
|
345 |
-
* Google Authenticator - Two Factor Authentication (2FA) : UI changes for description.
|
346 |
-
|
347 |
-
= 5.2.0 =
|
348 |
-
* Google Authenticator - Two Factor Authentication (2FA) : UI changes with more description.
|
349 |
-
|
350 |
-
= 5.1.22 =
|
351 |
-
* Google Authenticator - Two Factor Authentication (2FA) : UI Fixes.
|
352 |
-
|
353 |
-
= 5.1.21 =
|
354 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Login Redirect.
|
355 |
-
|
356 |
-
= 5.1.20 =
|
357 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Minor Bug fix.
|
358 |
-
|
359 |
-
= 5.1.19 =
|
360 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Adding basic Security Features Monitoring, IP blocking and login transaction report.
|
361 |
-
|
362 |
-
= 5.1.18 =
|
363 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Object access error for lower PHP versions.
|
364 |
-
|
365 |
-
= 5.1.17 =
|
366 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Minor Bug fix and Documentation changes.
|
367 |
-
|
368 |
-
= 5.1.16 =
|
369 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Login redirect fix.
|
370 |
-
|
371 |
-
= 5.1.15 =
|
372 |
-
* Google Authenticator - Two Factor Authentication (2FA) : UI Fixes.
|
373 |
-
|
374 |
-
= 5.1.14 =
|
375 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Database Error Fix and Custom Redirect.
|
376 |
-
|
377 |
-
= 5.1.12 =
|
378 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Removing redundant code.
|
379 |
-
|
380 |
-
= 5.1.11 =
|
381 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Password Pattern Fix.
|
382 |
-
|
383 |
-
= 5.1.10 =
|
384 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Javascript Error fixes.
|
385 |
-
|
386 |
-
= 5.1.9 =
|
387 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Added visual tour and security fixes.
|
388 |
-
|
389 |
-
= 5.1.8 =
|
390 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix for Validation.
|
391 |
-
|
392 |
-
= 5.1.7 =
|
393 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix for DB error after Update.
|
394 |
-
|
395 |
-
= 5.1.6 =
|
396 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix for DB error.
|
397 |
-
|
398 |
-
= 5.1.5 =
|
399 |
-
* Google Authenticator - Two Factor Authentication (2FA) : UI changes.
|
400 |
-
|
401 |
-
= 5.1.4 =
|
402 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug fixes for redirect to login page issues.
|
403 |
-
|
404 |
-
= 5.1.3 =
|
405 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Minor bug fixes.
|
406 |
-
|
407 |
-
= 5.1.2 =
|
408 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Changes in registration flow.
|
409 |
-
|
410 |
-
= 5.1.1 =
|
411 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Minor changes.
|
412 |
-
|
413 |
-
= 5.1.0 =
|
414 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Added new user plans
|
415 |
-
|
416 |
-
= 5.0.17 =
|
417 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Minor Bug fix.
|
418 |
-
|
419 |
-
= 5.0.16 =
|
420 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug fixes.
|
421 |
-
|
422 |
-
= 5.0.15 =
|
423 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Added Google Authenticator option in the WP login page itself.
|
424 |
-
|
425 |
-
= 5.0.14 =
|
426 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fixes.
|
427 |
-
|
428 |
-
= 5.0.13 =
|
429 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fix and code optimization.
|
430 |
-
|
431 |
-
= 5.0.12 =
|
432 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Added GDPR Compliance.
|
433 |
-
|
434 |
-
= 5.0.11 =
|
435 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Readme Update.
|
436 |
-
|
437 |
-
= 5.0.10 =
|
438 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Added Proxy Setup feature.
|
439 |
-
|
440 |
-
= 5.0.9 =
|
441 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fix for "The loopback request to your site failed." error.
|
442 |
-
|
443 |
-
= 5.0.8 =
|
444 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Changes for 2FA Free plugin for 1 user forever.
|
445 |
-
|
446 |
-
= 5.0.7 =
|
447 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fix for User Registration and other plugin conflicts in Dashboard.
|
448 |
-
|
449 |
-
= 5.0.6 =
|
450 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fix for existing customers who upgraded from 4.5.x version to versions between 5.0.0 and 5.0.4 and are facing issues with the Account Setup Tab.
|
451 |
-
|
452 |
-
= 5.0.5 =
|
453 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix for user entry during plugin update.
|
454 |
-
|
455 |
-
= 5.0.4 =
|
456 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Workaround for errors during sending of OTP during registration.
|
457 |
-
|
458 |
-
= 5.0.3 =
|
459 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Minor fix for removing warings.
|
460 |
-
|
461 |
-
= 5.0.2 =
|
462 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix.
|
463 |
-
|
464 |
-
= 5.0.1 =
|
465 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix.
|
466 |
-
|
467 |
-
= 5.0.0 =
|
468 |
-
* Google Authenticator - Two Factor Authentication (2FA) : New UI Interface, 2-factor authentication for Unlimited Users.
|
469 |
-
* This is a major release.
|
470 |
-
|
471 |
-
= 4.6.2 =
|
472 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Plugin registration fixes and minor warning fixes.
|
473 |
-
|
474 |
-
= 4.6.1 =
|
475 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Login error fix. Please skip version 4.5.9 and update to version 4.6.1
|
476 |
-
|
477 |
-
= 4.5.9 =
|
478 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug fixes for customers who were getting redirected to the login page after the two factor authentication.
|
479 |
-
|
480 |
-
= 4.5.8 =
|
481 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Tested up to 4.9.4 and Removed External links.
|
482 |
-
|
483 |
-
= 4.5.7 =
|
484 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Minor bug fixes.
|
485 |
-
|
486 |
-
= 4.5.6 =
|
487 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Tested up to Wordpress 4.9.
|
488 |
-
|
489 |
-
= 4.5.5 =
|
490 |
-
* Google Authenticator - Two Factor Authentication (2FA) : 404 bug fixes.
|
491 |
-
|
492 |
-
= 4.5.4 =
|
493 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Better UI of Login Pages, Fixed Redirection issue. Fixed the error in the last version (4.5.3) for the customers who were getting undefined action errors.
|
494 |
-
|
495 |
-
= 4.5.3 =
|
496 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Changed UI of the Login Pages, Redirect to Login Page bug fixes.
|
497 |
-
|
498 |
-
= 4.5.2 =
|
499 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Readme Update: Description Update
|
500 |
-
|
501 |
-
= 4.5.1 =
|
502 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Updated the new Google Authenticator App's link and the 'How to Setup Tab' tab.
|
503 |
-
|
504 |
-
= 4.5.0 =
|
505 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Fix Google Authenticator configuration issue.
|
506 |
-
|
507 |
-
= 4.4.9 =
|
508 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Added Alert Message for SMS Transactions only when authentication method is OTP over SMS.
|
509 |
-
|
510 |
-
= 4.4.8 =
|
511 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Added Alert Message for SMS Transactions. Fixed Remember Device flow and confliction with themes. Added support for multiple instances of wordpress.
|
512 |
-
|
513 |
-
= 4.4.7 =
|
514 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Updated the error message for 2 factor configuration.
|
515 |
-
|
516 |
-
= 4.4.6 =
|
517 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Instructions for login in case user get locked out.
|
518 |
-
|
519 |
-
= 4.4.5 =
|
520 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Fixed the issue of session variable on the login with username page.
|
521 |
-
|
522 |
-
= 4.4.4 =
|
523 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Added alert messages for OTP over SMS usages.
|
524 |
-
|
525 |
-
= 4.4.3 =
|
526 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Fixed the login flow for third party Apps that supports XML-RPC.
|
527 |
-
|
528 |
-
= 4.4 =
|
529 |
-
* Google Authenticator - Two Factor Authentication (2FA):
|
530 |
-
* Note: This is a very important update having altogether a new UI and compatibility with Limit Login Attempts. After updating, please do not logout from your admin dashboard. Try to login from another browser and if you face any issue , please contact us at info@xecurify.com
|
531 |
-
* Compatibility with Limit Login Attempts.
|
532 |
-
* New User Interface for login.
|
533 |
-
|
534 |
-
= 4.3.2 =
|
535 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA): Revised licensing cost for users.
|
536 |
-
|
537 |
-
= 4.3.1 =
|
538 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA): Compatible upto 4.7
|
539 |
-
|
540 |
-
= 4.3.0 =
|
541 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA): Updated miniOrange APIs.
|
542 |
-
|
543 |
-
= 4.2.9 =
|
544 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA): Tested up to WordPress 4.6.
|
545 |
-
|
546 |
-
= 4.2.7 =
|
547 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA): Session Warning fix in the last version for some of the users.
|
548 |
-
|
549 |
-
= 4.2.6 =
|
550 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA): Compatible with wordpress caching.
|
551 |
-
|
552 |
-
= 4.2.5 =
|
553 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA): Improved the session handler.
|
554 |
-
|
555 |
-
= 4.2.4 =
|
556 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA): Updated faq for limit login attempt type of plugins.
|
557 |
-
|
558 |
-
= 4.2.3 =
|
559 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
560 |
-
* Improved Error handling during Account Creation.
|
561 |
-
|
562 |
-
= 4.2.2 =
|
563 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
564 |
-
* Registration Flow fixes
|
565 |
-
|
566 |
-
= 4.2.1 =
|
567 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
568 |
-
* Change of status during login with phone flow and tested with WP 4.5
|
569 |
-
|
570 |
-
= 4.2.0 =
|
571 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
572 |
-
* Mark as tested on Wordpress 4.5
|
573 |
-
|
574 |
-
= 4.1.8 =
|
575 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
576 |
-
* Changed the location of images used for the demo. Now being loaded from the site having SSL certificate.
|
577 |
-
|
578 |
-
= 4.1.7 =
|
579 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
580 |
-
* Improved Error Handling for Remember Device.
|
581 |
-
|
582 |
-
= 4.1.6 =
|
583 |
-
* Google Authenticator - Two Factor Authentication ( 2 Factor ):
|
584 |
-
* Licensing Plan Updated.
|
585 |
-
|
586 |
-
= 4.1.5 =
|
587 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
588 |
-
* Added Forgot Password functionality for miniOrange customer admin.
|
589 |
-
* Added warning message for the users who are using lower version of php.
|
590 |
-
* Added functionality to change the customer email.
|
591 |
-
|
592 |
-
= 4.1.4 =
|
593 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
594 |
-
* Added an option for admin to enable or disable login for XML-RPC supported applications.
|
595 |
-
|
596 |
-
= 4.1.3 =
|
597 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
598 |
-
* Fixed CSS Conflict with the plugins in the admin dashboard.
|
599 |
-
* More intuitive UI for WooCommerce login.
|
600 |
-
* Tested front-end login with themes like wordpress default theme,
|
601 |
-
customize theme,zerif-lite theme,accesspress store theme,ishop theme and many more.
|
602 |
-
|
603 |
-
= 4.1.2 =
|
604 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Google Authenticator for Windows phone
|
605 |
-
* Fixed CSS conflict with front-end of site if WooCommerce is not enabled.
|
606 |
-
|
607 |
-
= 4.1.1 =
|
608 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Adding Validation in choosing Security Questions (KBA).
|
609 |
-
|
610 |
-
= 4.1.0 =
|
611 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Features added.
|
612 |
-
multisite support
|
613 |
-
Custom login redirection
|
614 |
-
Authy 2-Factor Authentication as separate authentication method
|
615 |
-
|
616 |
-
= 4.0.6 = Google Authenticator - Two Factor Authentication Added multisite support and custom redirection after login feature.
|
617 |
-
|
618 |
-
= 4.0.5 = Google Authenticator - Two Factor Authentication Login into third party apps which support XML-RPC.
|
619 |
-
|
620 |
-
= 4.0.4 = Google Authenticator - Two Factor Authentication Added a check of KBA configuration from mobile login.
|
621 |
-
|
622 |
-
= 4.0.3 = Google Authenticator - Two Factor Authentication Added Support for Authy 2-Factor Authentication App.
|
623 |
-
|
624 |
-
= 4.0.2 = Google Authenticator - Two Factor Authentication Added a check for selection of unique questions during KBA setup .
|
625 |
-
|
626 |
-
= 4.0.1 = Bug Fix Google Authenticator - 2 Factor
|
627 |
-
|
628 |
-
= 4.0 =
|
629 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Features added.
|
630 |
-
* KBA as backup method.
|
631 |
-
* mobile browser support.
|
632 |
-
* more intuitive UI for WooCommerce login.
|
633 |
-
|
634 |
-
= 3.8 =
|
635 |
-
* Google Authenticator - Two Factor Authentication ( 2 Factor ): Bug Fix for roles.
|
636 |
-
|
637 |
-
= 3.7 =
|
638 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Activation of two factor role wise.
|
639 |
-
|
640 |
-
= 3.6 =
|
641 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): email verification in inline registration flow for all users.
|
642 |
-
More descriptive setup messages and UI changes.
|
643 |
-
|
644 |
-
= 3.5 =
|
645 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Provided mobile login support.
|
646 |
-
|
647 |
-
= 3.4 =
|
648 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Features added
|
649 |
-
* Inline registration flow for users.
|
650 |
-
* Security Questions (KBA) as additional method
|
651 |
-
* Alternate way of user identification in customer creation.
|
652 |
-
* premium customizable features.
|
653 |
-
|
654 |
-
= 3.3 =
|
655 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Fix the issue of session for some versions of php.
|
656 |
-
|
657 |
-
= 3.2 =
|
658 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Fix for device-id compatibility.
|
659 |
-
|
660 |
-
= 3.1 =
|
661 |
-
* Google Authenticator - Two Factor Authentication ( 2 Factor ): Fix for 2FA ShortCode.
|
662 |
-
|
663 |
-
= 3.0 =
|
664 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Features added
|
665 |
-
* Google Authenticator.
|
666 |
-
* Device Id (Remember device).
|
667 |
-
* Choice given to admin to enable specific authentication methods for users.
|
668 |
-
* Two Factor support for WooCommerce theme.
|
669 |
-
* Short Code for various customized fronted login.
|
670 |
-
* More intuitive UI and descriptive instructions.
|
671 |
-
|
672 |
-
= 2.6 =
|
673 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Fix the compatibility issues of user session with other security plugins.
|
674 |
-
|
675 |
-
= 2.5 =
|
676 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Fix the compatibility issues with All In One WP Security & Firewall plugin.
|
677 |
-
|
678 |
-
= 2.4 =
|
679 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): UI fixes for admin media library dashboard.
|
680 |
-
|
681 |
-
= 2.3 =
|
682 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): More descriptive setup messages, more intuitive UI.
|
683 |
-
|
684 |
-
= 2.2 =
|
685 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Fixed css issues for existing users
|
686 |
-
|
687 |
-
= 2.1 =
|
688 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Added support for multiple Two Factor Choices like OTP Over SMS, Phone Call Verification, Push Notification, Soft Token (like Google Authenticator Code), Email Verification, etc.
|
689 |
-
|
690 |
-
= 2.0 =
|
691 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Added login with password plus second factor feature.
|
692 |
-
|
693 |
-
= 1.8 =
|
694 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Added feature of different login form choice,test authentication and help for configuration and setup.
|
695 |
-
|
696 |
-
= 1.7 =
|
697 |
-
* Bug Fixes Google Authenticator - Two Factor Authentication ( 2FA ): Modifying login screen adaptable to user's login form
|
698 |
-
|
699 |
-
= 1.6 =
|
700 |
-
* Bug Fixes Google Authenticator - Two Factor Authentication ( 2FA ): fetching 2 factor configuration when activating the plugin after deactivating it.
|
701 |
-
|
702 |
-
= 1.5 =
|
703 |
-
* Bug Fixes Google Authenticator - Two Factor Authentication ( 2FA ): Login issues and password save issues resolved
|
704 |
-
|
705 |
-
= 1.4 =
|
706 |
-
* Bug Fixes Google Authenticator - Two Factor Authentication ( 2FA ): Authentication was not working on some version of php.
|
707 |
-
|
708 |
-
= 1.3 =
|
709 |
-
* Google Authenticator - Two Factor Authentication Bug Fixes
|
710 |
-
|
711 |
-
= 1.2 =
|
712 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Added 2 factor for all users along with forgot phone functionality.
|
713 |
-
|
714 |
-
= 1.1 =
|
715 |
-
* Google Authenticator - Two Factor Authentication ( 2FA ): Added email ID verification during registration.
|
716 |
-
|
717 |
-
= 1.0.0 =
|
718 |
-
* First version of Google Authenticator - Two Factor Authentication ( 2FA ) plugin supported with mobile authentication for admins only.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
controllers/account.php
CHANGED
@@ -280,7 +280,7 @@
|
|
280 |
if ( ! empty( $mo2f_customer_selected_plan ) ) {
|
281 |
delete_option( 'mo2f_customer_selected_plan' );
|
282 |
|
283 |
-
if (MoWpnsUtility::get_mo2f_db_option('mo2f_planname', '
|
284 |
{
|
285 |
?><script>window.location.href="admin.php?page=mo_2fa_addons";</script><?php
|
286 |
}
|
280 |
if ( ! empty( $mo2f_customer_selected_plan ) ) {
|
281 |
delete_option( 'mo2f_customer_selected_plan' );
|
282 |
|
283 |
+
if (MoWpnsUtility::get_mo2f_db_option('mo2f_planname', 'get_option') == 'addon_plan')
|
284 |
{
|
285 |
?><script>window.location.href="admin.php?page=mo_2fa_addons";</script><?php
|
286 |
}
|
controllers/dashboard.php
CHANGED
@@ -20,4 +20,4 @@
|
|
20 |
$total_malicious=($total_malicious/1000);
|
21 |
$total_malicious= round($total_malicious,1)."k";
|
22 |
}
|
23 |
-
|
20 |
$total_malicious=($total_malicious/1000);
|
21 |
$total_malicious= round($total_malicious,1)."k";
|
22 |
}
|
23 |
+
include $mo2f_dirName . 'views'.DIRECTORY_SEPARATOR.'dashboard.php';
|
controllers/feedback_footer.php
CHANGED
@@ -26,6 +26,13 @@
|
|
26 |
|
27 |
function wpns_handle_support_form_new($email,$query,$phone)
|
28 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
$send_configuration = (isset($_POST['mo2f_send_configuration'])?$_POST['mo2f_send_configuration']:0);
|
30 |
|
31 |
if(empty($email) || empty($query)){
|
@@ -43,11 +50,26 @@
|
|
43 |
else
|
44 |
$query = $query.MoWpnsUtility::mo_2fa_send_configuration();
|
45 |
|
|
|
|
|
46 |
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
47 |
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_ERROR'),'ERROR');
|
48 |
} else {
|
49 |
$submited = json_decode($contact_us->submit_contact_us( $email, $phone, $query),true);
|
50 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
if(json_last_error() == JSON_ERROR_NONE && $submited){
|
52 |
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_SENT'),'SUCCESS');
|
53 |
}else{
|
26 |
|
27 |
function wpns_handle_support_form_new($email,$query,$phone)
|
28 |
{
|
29 |
+
$call_setup = false;
|
30 |
+
if(array_key_exists('2fa_setup_call',$_POST)===true){
|
31 |
+
$time_zone = sanitize_text_field($_POST['mo_2fa_setup_call_timezone']);
|
32 |
+
$call_date = sanitize_text_field($_POST['mo_2fa_setup_call_date']);
|
33 |
+
$call_time = sanitize_text_field($_POST['mo_2fa_setup_call_time']);
|
34 |
+
$call_setup = true;
|
35 |
+
}
|
36 |
$send_configuration = (isset($_POST['mo2f_send_configuration'])?$_POST['mo2f_send_configuration']:0);
|
37 |
|
38 |
if(empty($email) || empty($query)){
|
50 |
else
|
51 |
$query = $query.MoWpnsUtility::mo_2fa_send_configuration();
|
52 |
|
53 |
+
if($call_setup == false) {
|
54 |
+
$query = $query.'<br><br>';
|
55 |
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
56 |
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_ERROR'),'ERROR');
|
57 |
} else {
|
58 |
$submited = json_decode($contact_us->submit_contact_us( $email, $phone, $query),true);
|
59 |
}
|
60 |
+
} else {
|
61 |
+
|
62 |
+
$local_timezone='Asia/Kolkata';
|
63 |
+
$call_datetime=$call_date.$call_time;
|
64 |
+
$convert_datetime = strtotime ( $call_datetime );
|
65 |
+
$ist_date = new DateTime(date ( 'Y-m-d H:i:s' , $convert_datetime ), new DateTimeZone($time_zone));
|
66 |
+
$ist_date->setTimezone(new DateTimeZone($local_timezone));
|
67 |
+
|
68 |
+
|
69 |
+
$query = $query . '<br><br>' .'Meeting Details: '.'('.$time_zone.') '. date('d M, Y H:i',$convert_datetime). ' [IST Time -> '. $ist_date->format('d M, Y H:i').']'.'<br><br>';
|
70 |
+
$submited = json_decode($contact_us->submit_contact_us( $email, $phone, $query, true),true);
|
71 |
+
|
72 |
+
}
|
73 |
if(json_last_error() == JSON_ERROR_NONE && $submited){
|
74 |
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_SENT'),'SUCCESS');
|
75 |
}else{
|
controllers/main_controller.php
CHANGED
@@ -4,58 +4,57 @@
|
|
4 |
|
5 |
$controller = $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR;
|
6 |
|
7 |
-
|
8 |
if(current_user_can('administrator'))
|
9 |
{
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
|
|
14 |
{
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
case 'mo_2fa_request_offer':
|
52 |
-
include_once $controller . 'request_offer.php'; break;
|
53 |
-
case 'mo2f_trial':
|
54 |
-
include_once $controller . 'trial.php'; break;
|
55 |
-
|
56 |
-
}
|
57 |
}
|
58 |
}
|
|
|
|
|
59 |
else
|
60 |
{
|
61 |
if( isset( $_GET[ 'page' ]))
|
@@ -63,7 +62,7 @@ if(current_user_can('administrator'))
|
|
63 |
switch($_GET['page'])
|
64 |
{
|
65 |
case 'mo_2fa_two_fa':
|
66 |
-
|
67 |
|
68 |
}
|
69 |
|
@@ -72,12 +71,38 @@ if(current_user_can('administrator'))
|
|
72 |
}
|
73 |
if (isset( $_GET[ 'page' ])) {
|
74 |
|
75 |
-
|
76 |
-
if (MoWpnsUtility::get_mo2f_db_option('mo_wpns_2fa_with_network_security', 'get_option') || $_GET[ 'page' ] == "mo_2fa_upgrade" || $_GET[ 'page' ] == "mo_2fa_addons" || $_GET['page'] == "mo_2fa_account"
|
77 |
-
|| $_GET['page']=="mo_2fa_waf" || $_GET['page']=="mo_2fa_login_and_spam" || $_GET['page']=="mo_2fa_dashboard")
|
78 |
{
|
79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
}
|
81 |
}
|
82 |
?>
|
83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
$controller = $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR;
|
6 |
|
7 |
+
include $controller . 'navbar.php';
|
8 |
if(current_user_can('administrator'))
|
9 |
{
|
10 |
|
11 |
+
include $controller . 'newtork_security_features.php';
|
12 |
+
|
13 |
+
|
14 |
+
if( isset( $_GET[ 'page' ]))
|
15 |
+
{
|
16 |
+
switch($_GET['page'])
|
17 |
{
|
18 |
+
case 'mo_2fa_dashboard':
|
19 |
+
include $controller . 'dashboard.php'; break;
|
20 |
+
case 'mo_2fa_login_and_spam':
|
21 |
+
include $controller . 'login-spam.php'; break;
|
22 |
+
case 'default':
|
23 |
+
include $controller . 'login-security.php'; break;
|
24 |
+
case 'mo_2fa_account':
|
25 |
+
include $controller . 'account.php'; break;
|
26 |
+
case 'mo_2fa_backup':
|
27 |
+
include $controller . 'backup'.DIRECTORY_SEPARATOR.'backup.php'; break;
|
28 |
+
case 'mo_2fa_upgrade':
|
29 |
+
include $controller . 'upgrade.php'; break;
|
30 |
+
case 'mo_2fa_waf':
|
31 |
+
include $controller . 'waf.php'; break;
|
32 |
+
case 'mo_2fa_blockedips':
|
33 |
+
include $controller . 'ip-blocking.php'; break;
|
34 |
+
case 'mo_2fa_advancedblocking':
|
35 |
+
include $controller . 'advanced-blocking.php'; break;
|
36 |
+
case 'mo_2fa_notifications':
|
37 |
+
include $controller . 'notification-settings.php'; break;
|
38 |
+
case 'mo_2fa_reports':
|
39 |
+
include $controller . 'reports.php'; break;
|
40 |
+
case 'mo_2fa_licensing':
|
41 |
+
include $controller . 'licensing.php'; break;
|
42 |
+
case 'mo_2fa_troubleshooting':
|
43 |
+
include $controller . 'troubleshooting.php'; break;
|
44 |
+
case 'mo_2fa_addons':
|
45 |
+
include $controller . 'addons.php'; break;
|
46 |
+
case 'mo_2fa_malwarescan':
|
47 |
+
include $controller . 'malware_scanner'.DIRECTORY_SEPARATOR.'scan_malware.php'; break;
|
48 |
+
case 'mo_2fa_two_fa':
|
49 |
+
include $controller .'twofa'.DIRECTORY_SEPARATOR. 'two_fa.php'; break;
|
50 |
+
case 'mo_2fa_request_demo':
|
51 |
+
include $controller . 'request_demo.php'; break;
|
52 |
+
case 'mo_2fa_request_offer':
|
53 |
+
include $controller . 'request_offer.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
}
|
55 |
}
|
56 |
+
|
57 |
+
}
|
58 |
else
|
59 |
{
|
60 |
if( isset( $_GET[ 'page' ]))
|
62 |
switch($_GET['page'])
|
63 |
{
|
64 |
case 'mo_2fa_two_fa':
|
65 |
+
include $controller .'twofa'.DIRECTORY_SEPARATOR. 'two_fa.php'; break;
|
66 |
|
67 |
}
|
68 |
|
71 |
}
|
72 |
if (isset( $_GET[ 'page' ])) {
|
73 |
|
74 |
+
if ($_GET[ 'page' ] == "mo_2fa_upgrade" || $_GET[ 'page' ] == "mo_2fa_addons")
|
|
|
|
|
75 |
{
|
76 |
+
include $controller . 'feedback_footer.php';
|
77 |
+
}
|
78 |
+
else
|
79 |
+
{
|
80 |
+
if(current_user_can('administrator')){
|
81 |
+
include $controller . 'feedback_footer.php';
|
82 |
+
}
|
83 |
}
|
84 |
}
|
85 |
?>
|
86 |
|
87 |
+
<!-- <script>
|
88 |
+
jQuery(document).ready(function(){
|
89 |
+
var nonce = "<?php //echo wp_create_nonce('wpns-quick-scan');?>";
|
90 |
+
var data={
|
91 |
+
'action':'mo_wpns_malware_redirect',
|
92 |
+
'call_type':'malware_scan_initiate',
|
93 |
+
'scan':'scan_start',
|
94 |
+
'scantype':'quick_scan',
|
95 |
+
'nonce': nonce
|
96 |
+
};
|
97 |
+
jQuery.post(ajaxurl, data, function(response){
|
98 |
+
jQuery('input[name="quick_scan_button"]').removeAttr('disabled');
|
99 |
+
document.getElementById('quick_scan_button').style.backgroundColor = '#20b2aa';
|
100 |
+
jQuery('input[name="standard_scan_button"]').removeAttr('disabled');
|
101 |
+
document.getElementById('standard_scan_button').style.backgroundColor = '#20b2aa';
|
102 |
+
jQuery('input[name="custom_scan_button"]').removeAttr('disabled');
|
103 |
+
document.getElementById('custom_scan_button').style.backgroundColor = '#20b2aa';
|
104 |
+
document.getElementById("quick_scan_button").value = "Quick Scan";
|
105 |
+
});
|
106 |
+
});
|
107 |
+
</script> -->
|
108 |
+
|
controllers/navbar.php
CHANGED
@@ -68,8 +68,7 @@
|
|
68 |
$dashboard_url = add_query_arg(array('page' => 'mo_2fa_dashboard' ), $_SERVER['REQUEST_URI']);
|
69 |
$upgrade_url = add_query_arg(array('page' => 'mo_2fa_upgrade' ), $_SERVER['REQUEST_URI']);
|
70 |
$request_demo_url = add_query_arg(array('page' => 'mo_2fa_request_demo' ), $_SERVER['REQUEST_URI']);
|
71 |
-
$request_offer_url = add_query_arg(array('page' => 'mo_2fa_request_offer' ), $_SERVER['REQUEST_URI']);
|
72 |
-
$trial_url = add_query_arg( array('page' => 'mo2f_trial' ), $_SERVER['REQUEST_URI'] );
|
73 |
|
74 |
//dynamic
|
75 |
$logo_url = plugin_dir_url(dirname(__FILE__)) . 'includes/images/miniorange_logo.png';
|
68 |
$dashboard_url = add_query_arg(array('page' => 'mo_2fa_dashboard' ), $_SERVER['REQUEST_URI']);
|
69 |
$upgrade_url = add_query_arg(array('page' => 'mo_2fa_upgrade' ), $_SERVER['REQUEST_URI']);
|
70 |
$request_demo_url = add_query_arg(array('page' => 'mo_2fa_request_demo' ), $_SERVER['REQUEST_URI']);
|
71 |
+
$request_offer_url = add_query_arg(array('page' => 'mo_2fa_request_offer' ), $_SERVER['REQUEST_URI']);
|
|
|
72 |
|
73 |
//dynamic
|
74 |
$logo_url = plugin_dir_url(dirname(__FILE__)) . 'includes/images/miniorange_logo.png';
|
controllers/request_christmas_offer.php
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
if(current_user_can( 'manage_options' ) && isset($_POST['option']) )
|
5 |
-
{
|
6 |
-
switch($_POST['option'])
|
7 |
-
{
|
8 |
-
case "mo_2FA_christmas_request_form":
|
9 |
-
wpns_handle_christmas_request_form($_POST); break;
|
10 |
-
}
|
11 |
-
}
|
12 |
-
|
13 |
-
include $mo2f_dirName . 'views'.DIRECTORY_SEPARATOR.'request_christmas_offer.php';
|
14 |
-
|
15 |
-
function wpns_handle_christmas_request_form($post){
|
16 |
-
$nonce = isset($post['nonce'])?$post['nonce']:NULL;
|
17 |
-
$usecase = isset($post['mo_2FA_christmas_usecase'])? $post['mo_2FA_christmas_usecase']: NULL;
|
18 |
-
$email = isset($post['mo_2FA_christmas_email'])? $post['mo_2FA_christmas_email'] : NULL;
|
19 |
-
if ( ! wp_verify_nonce( $nonce, 'mo2f-Request-christmas' ) ){
|
20 |
-
return;
|
21 |
-
}
|
22 |
-
if(empty($usecase) || empty($email) )
|
23 |
-
{
|
24 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('DEMO_FORM_ERROR'),'SUCCESS');
|
25 |
-
return;
|
26 |
-
}
|
27 |
-
else{
|
28 |
-
|
29 |
-
$usecase = sanitize_text_field( $usecase );
|
30 |
-
$email = sanitize_text_field( $email );
|
31 |
-
$query = 'REQUEST FOR CHRISTMAS OFFERS';
|
32 |
-
$query .= ' =>';
|
33 |
-
$query .= ' : ';
|
34 |
-
$query .= $usecase;
|
35 |
-
$contact_us = new MocURL();
|
36 |
-
$submited = json_decode($contact_us->submit_contact_us($email, '', $query),true);
|
37 |
-
|
38 |
-
if(json_last_error() == JSON_ERROR_NONE && $submited)
|
39 |
-
{
|
40 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_SENT'),'SUCCESS');
|
41 |
-
return;
|
42 |
-
}
|
43 |
-
else{
|
44 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_ERROR'),'ERROR');
|
45 |
-
}
|
46 |
-
}
|
47 |
-
}
|
48 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
controllers/request_demo.php
DELETED
@@ -1,51 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
if(current_user_can( 'manage_options' ) && isset($_POST['option']) )
|
5 |
-
{
|
6 |
-
switch($_POST['option'])
|
7 |
-
{
|
8 |
-
case "mo_2FA_demo_request_form":
|
9 |
-
wpns_handle_demo_request_form($_POST); break;
|
10 |
-
}
|
11 |
-
}
|
12 |
-
|
13 |
-
include $mo2f_dirName . 'views'.DIRECTORY_SEPARATOR.'request_demo.php';
|
14 |
-
|
15 |
-
function wpns_handle_demo_request_form($post){
|
16 |
-
$nonce = isset($post['nonce'])?$post['nonce']:NULL;
|
17 |
-
$usecase = isset($post['mo_2FA_demo_usecase'])? $post['mo_2FA_demo_usecase']: NULL;
|
18 |
-
$email = isset($post['mo_2FA_demo_email'])? $post['mo_2FA_demo_email'] : NULL;
|
19 |
-
$demo_plan = isset($post['mo_2FA_demo_plan'])? $post['mo_2FA_demo_plan']: NULL;
|
20 |
-
if ( ! wp_verify_nonce( $nonce, 'mo2f-Request-demo' ) ){
|
21 |
-
return;
|
22 |
-
}
|
23 |
-
if(empty($usecase) || empty($email) || empty($demo_plan) )
|
24 |
-
{
|
25 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('DEMO_FORM_ERROR'),'SUCCESS');
|
26 |
-
return;
|
27 |
-
}
|
28 |
-
else{
|
29 |
-
|
30 |
-
$usecase = sanitize_text_field( $usecase );
|
31 |
-
$email = sanitize_text_field( $email );
|
32 |
-
$demo_plan = sanitize_text_field($demo_plan);
|
33 |
-
$query = 'REQUEST FOR DEMO';
|
34 |
-
$query .= ' =>';
|
35 |
-
$query .= $demo_plan;
|
36 |
-
$query .= ' : ';
|
37 |
-
$query .= $usecase;
|
38 |
-
$contact_us = new MocURL();
|
39 |
-
$submited = json_decode($contact_us->submit_contact_us($email, '', $query),true);
|
40 |
-
|
41 |
-
if(json_last_error() == JSON_ERROR_NONE && $submited)
|
42 |
-
{
|
43 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_SENT'),'SUCCESS');
|
44 |
-
return;
|
45 |
-
}
|
46 |
-
else{
|
47 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_ERROR'),'ERROR');
|
48 |
-
}
|
49 |
-
}
|
50 |
-
}
|
51 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
controllers/request_offer.php
CHANGED
@@ -26,7 +26,7 @@
|
|
26 |
}
|
27 |
else{
|
28 |
|
29 |
-
$query = 'REQUEST FOR
|
30 |
$query .= ' =>';
|
31 |
$query .= ' : ';
|
32 |
$query .= $usecase;
|
26 |
}
|
27 |
else{
|
28 |
|
29 |
+
$query = 'REQUEST FOR NEW YEAR OFFERS';
|
30 |
$query .= ' =>';
|
31 |
$query .= ' : ';
|
32 |
$query .= $usecase;
|
controllers/support.php
CHANGED
@@ -4,8 +4,6 @@
|
|
4 |
|
5 |
if(current_user_can( 'manage_options' ) && isset($_POST['option']))
|
6 |
{
|
7 |
-
|
8 |
-
|
9 |
switch($_POST['option'])
|
10 |
{
|
11 |
case "mo_wpns_send_query":
|
@@ -29,7 +27,13 @@
|
|
29 |
//Function to handle support form submit
|
30 |
function wpns_handle_support_form($email,$query,$phone)
|
31 |
{
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
$send_configuration = (isset($_POST['mo2f_send_configuration'])?$_POST['mo2f_send_configuration']:0);
|
34 |
if(empty($email) || empty($query)){
|
35 |
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_VALUES'),'ERROR');
|
@@ -45,11 +49,26 @@
|
|
45 |
else
|
46 |
$query = $query.MoWpnsUtility::mo_2fa_send_configuration();
|
47 |
|
|
|
|
|
48 |
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
49 |
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_ERROR'),'ERROR');
|
50 |
} else {
|
51 |
$submited = json_decode($contact_us->submit_contact_us( $email, $phone, $query),true);
|
52 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
if(json_last_error() == JSON_ERROR_NONE && $submited){
|
54 |
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_SENT'),'SUCCESS');
|
55 |
}else{
|
4 |
|
5 |
if(current_user_can( 'manage_options' ) && isset($_POST['option']))
|
6 |
{
|
|
|
|
|
7 |
switch($_POST['option'])
|
8 |
{
|
9 |
case "mo_wpns_send_query":
|
27 |
//Function to handle support form submit
|
28 |
function wpns_handle_support_form($email,$query,$phone)
|
29 |
{
|
30 |
+
$call_setup = false;
|
31 |
+
if(array_key_exists('2fa_setup_call',$_POST)===true){
|
32 |
+
$time_zone = sanitize_text_field($_POST['mo_2fa_setup_call_timezone']);
|
33 |
+
$call_date = sanitize_text_field($_POST['mo_2fa_setup_call_date']);
|
34 |
+
$call_time = sanitize_text_field($_POST['mo_2fa_setup_call_time']);
|
35 |
+
$call_setup = true;
|
36 |
+
}
|
37 |
$send_configuration = (isset($_POST['mo2f_send_configuration'])?$_POST['mo2f_send_configuration']:0);
|
38 |
if(empty($email) || empty($query)){
|
39 |
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_VALUES'),'ERROR');
|
49 |
else
|
50 |
$query = $query.MoWpnsUtility::mo_2fa_send_configuration();
|
51 |
|
52 |
+
if($call_setup == false) {
|
53 |
+
$query = $query.'<br><br>';
|
54 |
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
55 |
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_ERROR'),'ERROR');
|
56 |
} else {
|
57 |
$submited = json_decode($contact_us->submit_contact_us( $email, $phone, $query),true);
|
58 |
}
|
59 |
+
} else {
|
60 |
+
|
61 |
+
$local_timezone='Asia/Kolkata';
|
62 |
+
$call_datetime=$call_date.$call_time;
|
63 |
+
$convert_datetime = strtotime ( $call_datetime );
|
64 |
+
$ist_date = new DateTime(date ( 'Y-m-d H:i:s' , $convert_datetime ), new DateTimeZone($time_zone));
|
65 |
+
$ist_date->setTimezone(new DateTimeZone($local_timezone));
|
66 |
+
|
67 |
+
|
68 |
+
$query = $query . '<br><br>' .'Meeting Details: '.'('.$time_zone.') '. date('d M, Y H:i',$convert_datetime). ' [IST Time -> '. $ist_date->format('d M, Y H:i').']'.'<br><br>';
|
69 |
+
$submited = json_decode($contact_us->submit_contact_us( $email, $phone, $query, true),true);
|
70 |
+
|
71 |
+
}
|
72 |
if(json_last_error() == JSON_ERROR_NONE && $submited){
|
73 |
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_SENT'),'SUCCESS');
|
74 |
}else{
|
controllers/tour-model.php
DELETED
@@ -1,334 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
global $mo2f_dirName;
|
4 |
-
$current_user = wp_get_current_user();
|
5 |
-
$email = get_option("mo2f_email");
|
6 |
-
$phone = get_option("mo_wpns_admin_phone");
|
7 |
-
$display = get_option('mo2f_tour_started') == 2?'block':'none';
|
8 |
-
$networkSEnable = MoWpnsUtility::get_mo2f_db_option('mo_wpns_2fa_with_network_security', 'get_option');
|
9 |
-
if(empty($email))
|
10 |
-
$email = $current_user->user_email;
|
11 |
-
$counter = 0;
|
12 |
-
$enableTour = $networkSEnable == 1 ? '' : 'disabled';
|
13 |
-
$tour_body = '<p class="modal-body-para">Hey, Thank you for installing <b style="color: #E85700">miniOrange 2-Factor plugin</b>.</p>
|
14 |
-
<p class="modal-body-para">Two-factor will provide extra layer of security to your users account which will help to protect your users accounts from any outside attack.</p>';
|
15 |
-
if($networkSEnable != 1)
|
16 |
-
{
|
17 |
-
$tour_body .= '<div style="margin-left:37.5%;margin-right:37.5%;">';
|
18 |
-
}
|
19 |
-
|
20 |
-
$tour_body .= '<table style="width: 100%; text-align: center; table-layout: fixed; font-size: medium;">
|
21 |
-
<div class="mo2f_hiddenradio">
|
22 |
-
<tr>
|
23 |
-
|
24 |
-
<td style="border: 1px solid black;" id="2fa">
|
25 |
-
<label>
|
26 |
-
<input type="radio" name="mo2f_two_factor" value="2fa" checked style="display:none">
|
27 |
-
<img src="'.plugin_dir_url(dirname(__FILE__)) . 'includes/images/google-authenticator.png">
|
28 |
-
</label>
|
29 |
-
</td>';
|
30 |
-
if($networkSEnable == 1)
|
31 |
-
{
|
32 |
-
$tour_body .= '<td style="border: 1px solid black;" id="waf">
|
33 |
-
<label >
|
34 |
-
<input type="radio" name="mo2f_two_factor" value="waf" style="display:none" '.$enableTour.'>
|
35 |
-
<img src="'.plugin_dir_url(dirname(__FILE__)) . 'includes/images/mo-waf-logo.png">
|
36 |
-
</label>
|
37 |
-
</td>
|
38 |
-
|
39 |
-
<td style="border: 1px solid black;" id="login">
|
40 |
-
<label >
|
41 |
-
<input type="radio" name="mo2f_two_factor" value="login" style="display:none"'.$enableTour.'>
|
42 |
-
<img src="'.plugin_dir_url(dirname(__FILE__)) . 'includes/images/login-protection-logo.png">
|
43 |
-
</label>
|
44 |
-
</td>
|
45 |
-
|
46 |
-
<td style="border: 1px solid black;" id="backup">
|
47 |
-
<label>
|
48 |
-
<input type="radio" name="mo2f_two_factor" value="backup" style="display:none"'.$enableTour.'>
|
49 |
-
<img src="'.plugin_dir_url(dirname(__FILE__)) . 'includes/images/database-backup-logo.png">
|
50 |
-
</label>
|
51 |
-
</td>
|
52 |
-
|
53 |
-
<td style="border: 1px solid black;" id="malware">
|
54 |
-
<label >
|
55 |
-
<input type="radio" name="mo2f_two_factor" value="malware" style="display:none"'.$enableTour.'>
|
56 |
-
<img src="'.plugin_dir_url(dirname(__FILE__)) . 'includes/images/malware-scanner-logo.png">
|
57 |
-
</label>
|
58 |
-
</td>';
|
59 |
-
}
|
60 |
-
$tour_body .= '</tr>
|
61 |
-
<tr>
|
62 |
-
<th>
|
63 |
-
Two-factor authentication
|
64 |
-
</th>';
|
65 |
-
|
66 |
-
if($networkSEnable == 1)
|
67 |
-
{
|
68 |
-
|
69 |
-
$tour_body .= '<th>
|
70 |
-
Web Application Firewall(WAF)
|
71 |
-
</th>
|
72 |
-
|
73 |
-
<th>
|
74 |
-
Login Protection
|
75 |
-
</th>
|
76 |
-
|
77 |
-
<th>
|
78 |
-
Database Backup
|
79 |
-
</th>
|
80 |
-
|
81 |
-
<th>
|
82 |
-
Malware scanner
|
83 |
-
</th>';
|
84 |
-
}
|
85 |
-
|
86 |
-
$tour_body .= '</tr>
|
87 |
-
</div>
|
88 |
-
</table>';
|
89 |
-
if($networkSEnable != 1)
|
90 |
-
{
|
91 |
-
$tour_body .= '</div>';
|
92 |
-
}
|
93 |
-
|
94 |
-
$waf_arr_ecc = '<div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-1" style="width: 98%; overflow: ; height: ;line-height: 1.5;"><b><u>Data theft and manipulation</u>:</b> Data manipulation can lead to alter, delete, destroy data. The manipulated data may or may not be regained. It includes very sensitive data such as user details, credit/debit card or bank details. It is very necessary to fix the existing data vulnerability issues, data leaks, change weak passwords and provide high end security to stop data breach and manipulation.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent SQL-Injection attacks:</span> SQL-Injection is web security vulnerability through SQL queries executed to modify, delete and destroy data. </div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-1" onclick="open_hide(this);">-</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-2" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Web Scraping</u>:</b> Web scraping is a used to extract large amount of data from websites and saved on local computer. The web scraping involves fetching and extracting data from it. It can be used to web indexing, web mining, data mining, research, tracking online presence and reputation, etc. Media scraping, price scraping are also some scraping techniques which are used to degrade/destroy media files and change the price of products.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Cross-site scripting(XSS) attacks:</span> Cross site scripts used to web scraping and data extraction.</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-2" onclick="open_hide(this);">+</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-3" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>File manipualtion</u>:</b> The file manipuaiton used to alter, delete, execution of files on the sever. It leads to spoil site, spread malicious content which will harm to the business. <div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Remote File Inclusion attacks:</span> Remote file inclusion used to include local file into the server. RFI is type of vulnerability which can lead to add malicious file through a script on server.</div><div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Local File Inclusion attacks:</span> Local file inclusion used to access local file available on the server. LFI can be achieved by uploading malicious file to the server.</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-3" onclick="open_hide(this);">+</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-4" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Content modification</u>:</b> Cross-site scripting used to change or modify data shown on website. Content modification affects a lot on business due to irrelevent content, malicious links which leads to spoil the trust of clients and reputation of organizations.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent SQL-Injection attacks:</span> SQL-Injection attack can change data in database. The data used to view content such as statistical data, charts, graphs, etc. It may mislead to business.</div><div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Cross-site scripting(XSS) attacks:</span> Cross site script can add malicious links, change content of site. </div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-4" onclick="open_hide(this);">+</a></div></div>';
|
95 |
-
|
96 |
-
$waf_arr_busi = '<div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-1" style="width: 98%; overflow: ; height: ;line-height: 1.5;"><b><u>Data theft and manipulation</u>:</b> Data manipulation can lead to alter, delete, destroy data. The manipulated data may or may not be regained. It may include company privileged data, admin users data which will affect on the business. It is very necessary to fix the existing data vulnerability issues, data leaks, change weak passwords and provide high end security to stop data breach and manipulation.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent SQL-Injection attacks:</span> SQL-Injection is web security vulnerability through SQL queries executed to modify, delete and destroy data. </div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-1" onclick="open_hide(this);">-</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-2" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Web Scraping</u>:</b> Web scraping is a used to extract large amount of data from websites and saved on local computer. The web scraping involves fetching and extracting data from it. It can be used to web indexing, web mining, data mining, research, tracking online presence and reputation, etc. Price scraping is part of web scraping which is used to change prices of the products which affects a lot on business.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Cross-site scripting(XSS) attacks:</span> Cross site scripts used to web scraping and data extraction.</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-2" onclick="open_hide(this);">+</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-3" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>File manipualtion</u>:</b> The file manipuaiton used to alter, delete, execution of files on the sever. It leads to spoil site, spread malicious content which will harm to the business.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Remote File Inclusion attacks:</span> Remote file inclusion used to include local file into the server. RFI is type of vulnerability which can lead to add malicious file through a script on server.</div><div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Local File Inclusion attacks:</span> Local file inclusion used to access local file available on the server. LFI can be achieved by uploading malicious file to the server.</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-3" onclick="open_hide(this);">+</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-4" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Content modification</u>:</b> Cross-site scripting used to change or modify data shown on website. Content modification affects a lot on business due to irrelevent content, malicious links which leads to spoil the trust of clients and reputation of organizations.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent SQL-Injection attacks:</span> SQL-Injection attack can change data in database. The data used to view content such as statistical data, charts, graphs, etc. It may mislead to business.</div><div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Cross-site scripting(XSS) attacks:</span> Cross site script can add malicious links, change content of site. </div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-4" onclick="open_hide(this);">+</a></div></div>';
|
97 |
-
|
98 |
-
$waf_arr_blog = '<div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-1" style="width: 98%; overflow: ; height: ;line-height: 1.5;"><b><u>Data theft and manipulation</u>:</b> Data manipulation can lead to alter, delete, destroy data. The manipulated data may or may not be regained. It is very necessary to fix the existing data vulnerability issues, data leaks, change weak passwords and provide high end security to stop data breach and manipulation. The data may include user details, privileged data, privileged blogs, etc.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent SQL-Injection attacks:</span> SQL-Injection is web security vulnerability through SQL queries executed to modify, delete and destroy data. </div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-1" onclick="open_hide(this);">-</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-2" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Web Scraping</u>:</b> Web scraping is a used to extract large amount of data from websites and saved on local computer. The web scraping involves fetching and extracting data from it. It can be used to web indexing, web mining, data mining, research, tracking online presence and reputation, etc. Media scraping can be done in the blog/news site which alter, degrade or destroy media files.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Cross-site scripting(XSS) attacks:</span> Cross site scripts used to web scraping and data extraction.</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-2" onclick="open_hide(this);">+</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-3" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>File manipualtion</u>:</b> The file manipuaiton used to alter, delete, execution of files on the sever. It leads to spoil site, spread malicious content which will harm to the business.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Remote File Inclusion attacks:</span> Remote file inclusion used to include local file into the server. RFI is type of vulnerability which can lead to add malicious file through a script on server.</div><div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Local File Inclusion attacks:</span> Local file inclusion used to access local file available on the server. LFI can be achieved by uploading malicious file to the server.</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-3" onclick="open_hide(this);">+</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-4" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Content modification</u>:</b> Cross-site scripting used to change or modify data shown on website. Content modification affects a lot on business due to irrelevent content, malicious links which leads to spoil the trust of clients and reputation of organizations. Content modification may mislead to blog/news site subscriber. It can be used to spread fake/malicious imformation.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent SQL-Injection attacks:</span> SQL-Injection attack can change data in database. The data used to view content such as statistical data, charts, graphs, etc. It may mislead to business.</div><div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Cross-site scripting(XSS) attacks:</span> Cross site script can add malicious links, change content of site. </div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-4" onclick="open_hide(this);">+</a></div></div>';
|
99 |
-
|
100 |
-
$waf_arr_other = '<div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-1" style="width: 98%; overflow: ; height: ;line-height: 1.5;"><b><u>Data theft and manipulation</u>:</b> Data manipulation can lead to alter, delete, destroy data. The manipulated data may or may not be regained. It is very necessary to fix the existing data vulnerability issues, data leaks, change weak passwords and provide high end security to stop data breach and manipulation.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent SQL-Injection attacks:</span> SQL-Injection is web security vulnerability through SQL queries executed to modify, delete and destroy data. </div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-1" onclick="open_hide(this);">-</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-2" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Web Scraping</u>:</b> Web scraping is a used to extract large amount of data from websites and saved on local computer. The web scraping involves fetching and extracting data from it. It can be used to web indexing, web mining, data mining, research, tracking online presence and reputation, etc.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Cross-site scripting(XSS) attacks:</span> Cross site scripts used to web scraping and data extraction.</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-2" onclick="open_hide(this);">+</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-3" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>File manipualtion</u>:</b> The file manipuaiton used to alter, delete, execution of files on the sever. It leads to spoil site, spread malicious content which will harm to the business.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Remote File Inclusion attacks:</span> Remote file inclusion used to include local file into the server. RFI is type of vulnerability which can lead to add malicious file through a script on server.</div><div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Local File Inclusion attacks:</span> Local file inclusion used to access local file available on the server. LFI can be achieved by uploading malicious file to the server.</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-3" onclick="open_hide(this);">+</a></div></div><div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-4" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Content modification</u>:</b> Cross-site scripting used to change or modify data shown on website. Content modification affects a lot on business due to irrelevent content, malicious links which leads to spoil the trust of clients and reputation of organizations.<div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent SQL-Injection attacks:</span> SQL-Injection attack can change data in database. The data used to view content such as statistical data, charts, graphs, etc. It may mislead to business. </div><div class="modal-waf-dinner"><span class="modal-waf-sinner">Prevent Cross-site scripting(XSS) attacks:</span> Cross site script can add malicious links, change content of site. </div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-4" onclick="open_hide(this);">+</a></div></div>';
|
101 |
-
|
102 |
-
$waf_body_ecommerce = '<div class="modal-body-div">
|
103 |
-
<p class="modal-body-para" style="margin: 0;">Ecommerce sites are always under attack to spoil organizations reputaion, data theft and manipualation, file manipualation, web scraping, etc. WAF controls the access of web applications using rules designed to recognize and restrict suspicious activities.</p>';
|
104 |
-
$waf_body_business = '<div class="modal-body-div">
|
105 |
-
<p class="modal-body-para" style="margin: 0;">Business sites are always under attack to spoil organizations reputaion, data theft and manipualation, file manipualation, web scraping, etc. WAF controls the access of web applications using rules designed to recognize and restrict suspicious activities.</p>';
|
106 |
-
$waf_body_blog = '<div class="modal-body-div">
|
107 |
-
<p class="modal-body-para" style="margin: 0;">Blogs/News sites are attacked to spoil organizations reputaion, data theft and manipualation, file manipualation, web scraping, etc. WAF controls the access of web applications using rules designed to recognize and restrict suspicious activities.</p>';
|
108 |
-
$waf_body_other = '<div class="modal-body-div">
|
109 |
-
<p class="modal-body-para" style="margin: 0;">Other sites such as employment, portfolio, multilingual, etc are attacked to spoil organizations reputaion, data theft and manipualation, file manipualation, web scraping, etc. WAF controls the access of web applications using rules designed to recognize and restrict suspicious activities.</p>';
|
110 |
-
|
111 |
-
$waf_body = '<div style="width:100%; display:inline-flex; margin-left: 20px;">
|
112 |
-
<div style="width:50%;font-size: medium;">1: <b>Data theft and manipulation</b></div>
|
113 |
-
<div style="width:50%;font-size: medium;">2: <b>Web Scraping</b></div></div>
|
114 |
-
<div style="width:100%; display:inline-flex; margin-left: 20px;">
|
115 |
-
<div style="width:50%;font-size: medium;">3: <b>File manipulation</b></div>
|
116 |
-
<div style="width:50%;font-size: medium;">4: <b>Content modification</b></div></div>
|
117 |
-
</div>';
|
118 |
-
|
119 |
-
$registration_security_ecommerce = '<div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-13" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Registratoin security:</u></b> Ecommerce sites need to prevent fake registrations. It helps to keep site safe from suspicious user.';
|
120 |
-
$registration_security_business = '<div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-13" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Registratoin security:</u></b> Business sites need to prevent fake registrations. It helps to keep site safe from suspicious user.';
|
121 |
-
|
122 |
-
$registration_security_other = '<div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-13" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Registratoin security:</u></b> The sites such as employment, social networking, etc. need to prevent fake user registrations. The user will spam other users and share private data of others.';
|
123 |
-
|
124 |
-
$registration_security = '<div style="margin:1em;"><ul>
|
125 |
-
<li>
|
126 |
-
<p class="modal-body-para" style="margin: 0;">1. Temporary/Fake email ban</p>
|
127 |
-
</li>
|
128 |
-
<li>
|
129 |
-
<p class="modal-body-para" style="margin: 0;">2. OTP Verification during registrations</p>
|
130 |
-
</li>
|
131 |
-
<li>
|
132 |
-
<p class="modal-body-para" style="margin: 0;">3. Social login</p>
|
133 |
-
</li>
|
134 |
-
</ul>
|
135 |
-
</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-13" onclick="open_hide(this);">+</a></div></div>';
|
136 |
-
|
137 |
-
$login_security_ecommerce = '<div class="modal-body-div"><p class="modal-body-para">Ecommerce sites should have strong login security to prevent unauthorised access.</p></div>';
|
138 |
-
$login_security_business = '<div class="modal-body-div"><p class="modal-body-para">Business sites should have strong login security to prevent unauthorised access.</p></div>';
|
139 |
-
$login_security_blog = '<div class="modal-body-div"><p class="modal-body-para">Blogs/News sites should have strong login security to prevent unauthorised access.</p></div>';
|
140 |
-
$login_security_other = '<div class="modal-body-div"><p class="modal-body-para">Other sites such as employment, portfolio, etc. should have strong login security to prevent unauthorised access.</p></div>';
|
141 |
-
|
142 |
-
$login_security_body = '<div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-10" style="width: 98%; overflow:; height: ;line-height: 1.5;"><b><u>Limit Login:</u></b> Password guessing/Brute force attack can be controlled/prevented by limiting the login attempts. Paasword guessing can be protected by:
|
143 |
-
<div style="margin:1em;">
|
144 |
-
<ul>
|
145 |
-
<li>
|
146 |
-
<p class="modal-body-para">1. Limit Login attempts: 10 (<b>Recommended</b>)</p>
|
147 |
-
</li>
|
148 |
-
<li>
|
149 |
-
<p class="modal-body-para">2. Enforce Strong passwords</p>
|
150 |
-
</li>
|
151 |
-
</ul>
|
152 |
-
</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-10" onclick="open_hide(this);">-</a></div></div>
|
153 |
-
|
154 |
-
<div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-11" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>2-Factor:</u></b> 2-factor authentication is important to prevent unauthorised login. 2-factor authentication can be enabled on top of login credentials at the time of login. Google authenticator, Authy authenticator, Lastpass authenticator applications can be used to configure 2FA. miniOrange supports 15+ 2FA methods, it includes OTP over SMS, Email, Security Questions, QR code authentication, push notification, Hardware Token, etc. 2FA can enabled to:
|
155 |
-
<div style="margin:1em;">
|
156 |
-
<ul>
|
157 |
-
<li>
|
158 |
-
<p class="modal-body-para">1. Enable 2FA for employees (<b>Recommended</b>)</p>
|
159 |
-
</li>
|
160 |
-
<li>
|
161 |
-
<p class="modal-body-para">2. Enable 2FA for users</p>
|
162 |
-
</li>
|
163 |
-
<li>
|
164 |
-
<p class="modal-body-para">3. Backup methods in case of emergency login</p>
|
165 |
-
</li>
|
166 |
-
</ul>
|
167 |
-
</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-11" onclick="open_hide(this);">+</a></div></div>
|
168 |
-
<div class="modal-body-div-c modal-body-div-d"><div id="div-show-hide-12" style="width: 98%; overflow: hidden; height: 50px;line-height: 1.5;"><b><u>Remember device:</u></b> Remember device allows user to login from trusted devices. It keeps safe from unauthorised users who tries to gain access. It improves your login security by allowing you to login from limited and trusted deivces.
|
169 |
-
<div style="margin:1em;">
|
170 |
-
<ul>
|
171 |
-
<li>
|
172 |
-
<p class="modal-body-para">1. Allows multiple trusted devices</p>
|
173 |
-
</li>
|
174 |
-
<li>
|
175 |
-
<p class="modal-body-para">2. Limit no. of trusted devices</p>
|
176 |
-
</li>
|
177 |
-
<li>
|
178 |
-
<p class="modal-body-para">3. Block IP\'s of unauthorised users</p>
|
179 |
-
</li>
|
180 |
-
</ul>
|
181 |
-
</div></div><div style="width: 2%; font-size: xx-large;"><a id="show-hide-12" onclick="open_hide(this);">+</a></div></div>';
|
182 |
-
|
183 |
-
|
184 |
-
$media_body = '<div class="modal-body-div"><p class="modal-body-para">Ecommerce sites are often attacked to degrade and destroy media files such as images of product, audios and videos about products. You need to secure your media data. Media protection is important because the users of ecommerce site buy product by viewing the media of products. The broad word media scraping can be used for these types attacks.</p>
|
185 |
-
<div class="modal-body-div modal-body-para">Here is our <a target="_blank" href="https://wordpress.org/plugins/prevent-file-access/">Media protection</a> plugin.</div>
|
186 |
-
<div class="modal-body-div">The Media protection prevents media files listed below:</div>
|
187 |
-
</div>
|
188 |
-
<div style="margin:1em;">
|
189 |
-
<ul>
|
190 |
-
<li>
|
191 |
-
<p class="modal-body-para">1. It protects all type of image files, audio, video and gif files.</p>
|
192 |
-
</li>
|
193 |
-
<li>
|
194 |
-
<p class="modal-body-para">2. It also prevents access to documents such as pdf, doc, docx, txt, xls, xlsx, etc.</p>
|
195 |
-
</li>
|
196 |
-
</ul>
|
197 |
-
</div>';
|
198 |
-
|
199 |
-
$media_body_1 = '<div class="modal-body-div"><p class="modal-body-para">Some sites such as Photo Gallery or other site which contains media files are often attacked to degrade and destroy media files. You need to secure your media data. Media protection is important because the these sites are totally based on media files.</p>
|
200 |
-
<div class="modal-body-div modal-body-para">Here is our <a target="_blank" href="https://wordpress.org/plugins/prevent-file-access/">Media protection</a> plugin.</div>
|
201 |
-
<div class="modal-body-div">The Media protection prevents media files listed below:</div>
|
202 |
-
</div>
|
203 |
-
<div style="margin:1em;">
|
204 |
-
<ul>
|
205 |
-
<li>
|
206 |
-
<p class="modal-body-para">1. It protects all type of image files, audio, video and gif files.</p>
|
207 |
-
</li>
|
208 |
-
<li>
|
209 |
-
<p class="modal-body-para">2. It also prevents access to documents such as pdf, doc, docx, txt, xls, xlsx, etc.</p>
|
210 |
-
</li>
|
211 |
-
</ul>
|
212 |
-
</div>';
|
213 |
-
|
214 |
-
$backup_ecommerce = '<div class="modal-body-div"><p class="modal-body-para">The data is backbone of any e-commerce site. The ecommerce sites are attacked to steal data, data manipulation and files manipulation. You can take a backup of your data and files securely.</p></div>';
|
215 |
-
$backup_business = '<div class="modal-body-div"><p class="modal-body-para">The data is backbone of any Business site. The business sites are attacked to steal data, data manipulation and files manipulation. You can take a backup of your data and files securely.</p></div>';
|
216 |
-
$backup_blog = '<div class="modal-body-div"><p class="modal-body-para">The data is backbone of any Blog/News site. These sites are attacked to steal data, data manipulation and files manipulation. You can take a backup of your data and files securely.</p></div>';
|
217 |
-
$backup_blog = '<div class="modal-body-div"><p class="modal-body-para">The data is backbone of any site such as social networking, employment, etc. There are several attacks happens on these sites to steal data, data manipulation and files manipulation. You can take a backup of your data and files securely.</p></div>';
|
218 |
-
|
219 |
-
|
220 |
-
$backup_body = '<div class="modal-body-div">
|
221 |
-
<ul>
|
222 |
-
<li>
|
223 |
-
<p class="modal-body-para"><b>1. <u>Scheduled backup:</u></b> Scheduled backup used to create automatic backup after scheduled time. It allows you to relax because you know that all of your information is being backed up, and you are limiting what you may lose. Using this feature you can set a time interval to create a continuous backup. ';
|
224 |
-
$backup_body_1 = '<div class="modal-waf-dinner"><span class="modal-waf-sinner">Set scheduled backup time 1/2 hr for ecommerce site.</span></div>';
|
225 |
-
$backup_body_2 = '<div class="modal-waf-dinner"><span class="modal-waf-sinner">You can set automatic backup after 12 hrs time interval.</span></div>';
|
226 |
-
$backup_body_3 = '<div class="modal-waf-dinner"><span class="modal-waf-sinner">You can set automatic backup after 4-5 hrs time interval.</span></div>';
|
227 |
-
$backup_body_4 = '</p>
|
228 |
-
</li>
|
229 |
-
<li>
|
230 |
-
<p class="modal-body-para"><b>2. <u>Manual backup:</u></b> Manual backup can be taken manually whenever user wants. It is important when you made any crucial changes and don\'t want to loose data then you can immediately take a backup and keep it securely.</p>
|
231 |
-
</li>
|
232 |
-
<li>
|
233 |
-
<p class="modal-body-para"><b>3. <u>Password protected encrypted backup:</u></b> Password protected encrypted backup is very secure way to take a backup. If anyone gets it still no one can decode it because of its highly secure nature.</p>
|
234 |
-
</li>
|
235 |
-
<li>
|
236 |
-
<p class="modal-body-para"><b>4. <u>Easy restoring and recovering:</u></b> Simple one-click restore using installer files created for your website. During backup, we create an installer.php file. At the time of restore and recovery, you just need to upload the zip file of backup and installer.php and run the installer file and follow instructions to set up your website.</p>
|
237 |
-
</li>
|
238 |
-
</ul>
|
239 |
-
</div>';
|
240 |
-
|
241 |
-
$comment_ecommerce = '<div class="modal-body-div"><p class="modal-body-para">Ecommerce websites are attacked to spread unwanted or irrelevant content by submitting automated posts, comments, contact forms, etc. A spam message, content or comment includes backlinks or excessive links that redirect to illegal websites or websites containing inappropriate content. Automated scripts and botnets are used to spread such spam comments and posts to spoil the organizations reputation or product reputation. </p></div>';
|
242 |
-
$comment_business = '<div class="modal-body-div"><p class="modal-body-para">Business websites are used to spread unwanted or irrelevant content by submitting automated posts, comments, contact forms, etc. A spam message, content or comment includes backlinks or excessive links that redirect to illegal websites or websites containing inappropriate content. Automated scripts and botnets are used to spread such spam comments and posts to spoil the organizations reputation or product reputation. </p></div>';
|
243 |
-
$comment_blog = '<div class="modal-body-div"><p class="modal-body-para">Blog/News websites are used to spread unwanted or irrelevant content by submitting automated posts, comments, contact forms, etc. A spam message, content or comment includes backlinks or excessive links that redirect to illegal websites or websites containing inappropriate content. Automated scripts and botnets are used to spread such spam comments and posts to spoil the organizations reputation or product reputation. </p></div>';
|
244 |
-
$comment_other = '<div class="modal-body-div"><p class="modal-body-para">Other websites such as employment, multilingual, etc. are used to spread unwanted or irrelevant content by submitting automated posts, comments, contact forms, etc. A spam message, content or comment includes backlinks or excessive links that redirect to illegal websites or websites containing inappropriate content. Automated scripts and botnets are used to spread such spam comments and posts to spoil the organizations reputation or product reputation. </p></div>';
|
245 |
-
|
246 |
-
$comment_spam = '<div style="margin:1em;">
|
247 |
-
<ul>
|
248 |
-
<li>
|
249 |
-
<p class="modal-body-para"><b>1. <u>Comment protection:</u></b> Spam comments generated by automated scripts can be prevented using captcha. Honeypot is another widely used technique to catch bots and block them.</p>
|
250 |
-
</li>
|
251 |
-
<li>
|
252 |
-
<p class="modal-body-para"><b>2. <u>Post protection:</u></b> Automated scripts or botnets can prevented by using captcha. There are three forms of captcha availble text, math and google recaptcha. Honeypot is also another way to detect spam posts. Malware scanner can also used to scan the malware in the posts.</p>
|
253 |
-
</li>
|
254 |
-
</ul>
|
255 |
-
</div>';
|
256 |
-
|
257 |
-
|
258 |
-
$scanner = '<div class="modal-body-div"><p class="modal-body-para">Malware scanner detects the malicious code in the files. Compares the wordpress, plugins and theme files with Wordpress repo files. Detects changes present in any wordpress, theme and plugin files. It also checks outdated/vulnerable plugins, themes. It is also useful to detect malware in posts and comments.</p></div>
|
259 |
-
<div style="margin:1em;">
|
260 |
-
<ul>
|
261 |
-
<li>
|
262 |
-
<p class="modal-body-para"><b>1. <u>Malware scan:</u></b> Malware scan scans the wordpress core files, plugins and theme files to check malware. It detects the trojans, backdoors, viruses, worms, etc. in the files. </p>
|
263 |
-
</li>
|
264 |
-
<li>
|
265 |
-
<p class="modal-body-para"><b>2. <u>Wordpress version and file compare:</u></b> Checks WordPress, plugins and themes version with Wordpress.org repository and compare WordPress core, plugins and themes files with the repository to detect any file changes. Detect any changes in the files present in the WordPress plugins and themes folder.</p>
|
266 |
-
</li>
|
267 |
-
<li>
|
268 |
-
<p class="modal-body-para"><b>3. <u>Check vulnerable plugins and themes:</u></b> Checks vulnerable plugins and themes which contains malicious code. You can remove it to enhance your site security.</p>
|
269 |
-
</li>
|
270 |
-
</ul>
|
271 |
-
</div>';
|
272 |
-
|
273 |
-
$support_modal = '<div>
|
274 |
-
|
275 |
-
<div style="width: unset; float: unset; margin: 10px 20%;" class="mo_wpns_support_layout_model">
|
276 |
-
|
277 |
-
<img src="'.dirname(plugin_dir_url(__FILE__)).'/includes/images/support3.png">
|
278 |
-
<h1>Support</h1>
|
279 |
-
<p>Need any help? We are available any time, Just send us a query so we can help you.</p>
|
280 |
-
<form name="f" method="post" action="">
|
281 |
-
<input type="hidden" name="option" value="mo_wpns_send_query"/>
|
282 |
-
<table class="mo_wpns_settings_table">
|
283 |
-
<tr><td>
|
284 |
-
<input type="email" class="mo_wpns_table_textbox" id="query_email" name="query_email" value="'.$email.'" placeholder="Enter your email" required />
|
285 |
-
</td>
|
286 |
-
</tr>
|
287 |
-
<tr><td>
|
288 |
-
<input type="text" class="mo_wpns_table_textbox" name="query_phone" id="query_phone" value="'.$phone.'" placeholder="Enter your phone"/>
|
289 |
-
</td>
|
290 |
-
</tr>
|
291 |
-
<tr>
|
292 |
-
<td>
|
293 |
-
<textarea id="query" name="query" class="mo_wpns_settings_textarea" style="resize: vertical;width:100%" cols="52" rows="7" placeholder="Write your query here"></textarea>
|
294 |
-
</td>
|
295 |
-
</tr>
|
296 |
-
</table>
|
297 |
-
<input type="submit" name="send_query" id="send_query" value="Submit Query" class="mo_wpns_button mo_wpns_button1" />
|
298 |
-
</form>
|
299 |
-
<br />
|
300 |
-
</div>
|
301 |
-
</div>
|
302 |
-
<script>
|
303 |
-
function moSharingSizeValidate(e){
|
304 |
-
var t=parseInt(e.value.trim());t>60?e.value=60:10>t&&(e.value=10)
|
305 |
-
}
|
306 |
-
function moSharingSpaceValidate(e){
|
307 |
-
var t=parseInt(e.value.trim());t>50?e.value=50:0>t&&(e.value=0)
|
308 |
-
}
|
309 |
-
function moLoginSizeValidate(e){
|
310 |
-
var t=parseInt(e.value.trim());t>60?e.value=60:20>t&&(e.value=20)
|
311 |
-
}
|
312 |
-
function moLoginSpaceValidate(e){
|
313 |
-
var t=parseInt(e.value.trim());t>60?e.value=60:0>t&&(e.value=0)
|
314 |
-
}
|
315 |
-
function moLoginWidthValidate(e){
|
316 |
-
var t=parseInt(e.value.trim());t>1000?e.value=1000:140>t&&(e.value=140)
|
317 |
-
}
|
318 |
-
function moLoginHeightValidate(e){
|
319 |
-
var t=parseInt(e.value.trim());t>50?e.value=50:35>t&&(e.value=35)
|
320 |
-
}
|
321 |
-
</script>';
|
322 |
-
|
323 |
-
|
324 |
-
$ecommerce_site = array(array('Web Application Firewall(WAF)', $waf_body_ecommerce.$waf_body.$waf_arr_ecc), array('Login Security', $login_security_ecommerce.$login_security_body.$registration_security_ecommerce.$registration_security), array('Media Protection', $media_body), array('Encrypted Backup', $backup_ecommerce.$backup_body.$backup_body_1.$backup_body_4), array('Comment and Spam Protection', $comment_ecommerce.$comment_spam), array('Malware Scanner', $scanner), array('Support', $support_modal));
|
325 |
-
|
326 |
-
$business_site = array(array('Web Application Firewall(WAF)', $waf_body_business.$waf_body.$waf_arr_busi), array('Encrypted Backup', $backup_business.$backup_body.$backup_body_2.$backup_body_4), array('Comment and Spam Protection', $comment_business.$comment_spam), array('Login Security', $login_security_business.$login_security_body.$registration_security_business.$registration_security), array('Malware Scanner', $scanner), array('Support', $support_modal));
|
327 |
-
|
328 |
-
$blog_site = array(array('Web Application Firewall(WAF)', $waf_body_blog.$waf_body.$waf_arr_blog), array('Comment and Spam Protection', $comment_blog.$comment_spam), array('Login Security', $login_security_blog.$login_security_body), array('Encrypted Backup', $backup_blog.$backup_body.$backup_body_3.$backup_body_4), array('Malware Scanner', $scanner), array('Support', $support_modal));
|
329 |
-
|
330 |
-
$other_site = array(array('Web Application Firewall(WAF)', $waf_body_other.$waf_body.$waf_arr_other), array('Comment and Spam Protection', $comment_other.$comment_spam), array('Login Security', $login_security_other.$login_security_body), array('Encrypted Backup', $backup_blog.$backup_body.$backup_body_4), array('Media Protection', $media_body_1), array('Malware Scanner', $scanner), array('Support', $support_modal));
|
331 |
-
|
332 |
-
$main_pointer = array('Main' => array('Let\'s get Started', $tour_body), 'Ecommerce' => $ecommerce_site, 'Business' => $business_site, 'Blogs/News' => $blog_site, 'Other' => $other_site);
|
333 |
-
|
334 |
-
include $mo2f_dirName . 'views'.DIRECTORY_SEPARATOR.'tour-model.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
controllers/tour/tour_ajax.php
DELETED
@@ -1,146 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class Mo_wpns_Tour
|
3 |
-
{
|
4 |
-
function __construct(){
|
5 |
-
add_action( 'admin_init' , array( $this, 'mo_wpns_save_tour_details' ) );
|
6 |
-
|
7 |
-
}
|
8 |
-
|
9 |
-
public function mo_wpns_save_tour_details(){
|
10 |
-
if(isset($_REQUEST['page']))
|
11 |
-
{
|
12 |
-
switch ($_REQUEST['page']) {
|
13 |
-
case 'mo_2fa_two_fa':
|
14 |
-
if(!MoWpnsUtility::get_mo2f_db_option('mo2f_two_factor_tour', 'get_option'))
|
15 |
-
update_option('mo2f_two_factor_tour',1);
|
16 |
-
|
17 |
-
break;
|
18 |
-
case 'mo_2fa_waf':
|
19 |
-
if(!get_option('mo2f_tour_firewall'))
|
20 |
-
update_option('mo2f_tour_firewall',1);
|
21 |
-
break;
|
22 |
-
case 'mo_2fa_login_and_spam':
|
23 |
-
if(!get_option('mo2f_tour_loginSpam'))
|
24 |
-
update_option('mo2f_tour_loginSpam',1);
|
25 |
-
break;
|
26 |
-
|
27 |
-
case 'mo_2fa_backup':
|
28 |
-
if(!get_option('mo2f_tour_backup'))
|
29 |
-
update_option('mo2f_tour_backup',1);
|
30 |
-
|
31 |
-
break;
|
32 |
-
case 'mo_2fa_malwarescan':
|
33 |
-
if(!get_option('mo2f_tour_malware_scan'))
|
34 |
-
update_option('mo2f_tour_malware_scan',1);
|
35 |
-
|
36 |
-
break;
|
37 |
-
case 'mo_2fa_advancedblocking':
|
38 |
-
if(!get_option('mo2f_tour_advance_blocking'))
|
39 |
-
update_option('mo2f_tour_advance_blocking',1);
|
40 |
-
break;
|
41 |
-
|
42 |
-
default:
|
43 |
-
break;
|
44 |
-
}
|
45 |
-
}
|
46 |
-
add_action('wp_ajax_mo_wpns_tour', array( $this, 'mo_wpns_tour' ));
|
47 |
-
|
48 |
-
}
|
49 |
-
|
50 |
-
public function mo_wpns_tour(){
|
51 |
-
switch($_POST['call_type'])
|
52 |
-
{
|
53 |
-
case "wpns_enable_tour":
|
54 |
-
update_option('skip_tour', 0);
|
55 |
-
break;
|
56 |
-
case "skip_entire_plugin_tour":
|
57 |
-
$this->handle_skip_entire_plugin();
|
58 |
-
break;
|
59 |
-
case 'entire_plugin_tour_started':
|
60 |
-
$this->entire_plugin_tour_started();
|
61 |
-
break;
|
62 |
-
case "mo2f_close_tour_details":
|
63 |
-
$this->mo2f_close_tour_details();
|
64 |
-
break;
|
65 |
-
case "mo2f_visit_page_tour_details":
|
66 |
-
$this->mo2f_visit_page_tour_details();
|
67 |
-
break;
|
68 |
-
case "mo2f_last_visit_tab":
|
69 |
-
$this->mo2f_last_visit_tab();
|
70 |
-
break;
|
71 |
-
}
|
72 |
-
}
|
73 |
-
|
74 |
-
|
75 |
-
function mo2f_last_visit_tab()
|
76 |
-
{
|
77 |
-
$lasttab = sanitize_text_field($_POST['tab']);
|
78 |
-
update_option('mo2f_tour_tab',$lasttab);
|
79 |
-
}
|
80 |
-
function mo2f_visit_page_tour_details()
|
81 |
-
{
|
82 |
-
$currentPointer = '';
|
83 |
-
if(isset($_POST['index']))
|
84 |
-
$currentPointer = sanitize_text_field($_POST['index']);
|
85 |
-
|
86 |
-
if(strpos($currentPointer, 'support') != false)
|
87 |
-
{
|
88 |
-
exit;
|
89 |
-
}
|
90 |
-
$uid = get_current_user_id();
|
91 |
-
$visited = get_user_meta($uid,'mo2f_visited_pointers',true);
|
92 |
-
$visited = $visited.',custom_admin_pointers4_8_52_'.$currentPointer;
|
93 |
-
update_user_meta($uid,'mo2f_visited_pointers',$visited);
|
94 |
-
}
|
95 |
-
function entire_plugin_tour_started()
|
96 |
-
{
|
97 |
-
update_option('mo2f_tour_started',3);
|
98 |
-
exit;
|
99 |
-
}
|
100 |
-
|
101 |
-
function handle_skip_entire_plugin(){
|
102 |
-
update_option('mo2f_two_factor_tour',-1);
|
103 |
-
update_option('mo2f_tour_firewall',-1);
|
104 |
-
update_option('mo2f_tour_malware_scan',-1);
|
105 |
-
update_option('mo2f_tour_advance_blocking',-1);
|
106 |
-
update_option('mo2f_tour_backup',-1);
|
107 |
-
update_option('mo2f_tour_loginSpam',-1);
|
108 |
-
update_option('mo2f_tour_started',3);
|
109 |
-
exit;
|
110 |
-
}
|
111 |
-
|
112 |
-
|
113 |
-
function mo2f_close_tour_details()
|
114 |
-
{
|
115 |
-
$uid = get_current_user_id();
|
116 |
-
delete_user_meta($uid,'mo2f_visited_pointers');
|
117 |
-
$page = $_POST['page'];
|
118 |
-
$page = sanitize_text_field($page[0]);
|
119 |
-
update_option('mo2f_tour_tab','');
|
120 |
-
update_option("yeah",1);
|
121 |
-
switch ($page) {
|
122 |
-
case 'toplevel_page_mo_2fa_two_fa':
|
123 |
-
update_option('mo2f_two_factor_tour',-1);
|
124 |
-
break;
|
125 |
-
case 'miniorange-2-factor_page_mo_2fa_waf':
|
126 |
-
update_option('mo2f_tour_firewall',-1);
|
127 |
-
break;
|
128 |
-
case 'miniorange-2-factor_page_mo_2fa_malwarescan':
|
129 |
-
update_option('mo2f_tour_malware_scan',-1);
|
130 |
-
break;
|
131 |
-
case 'miniorange-2-factor_page_mo_2fa_advancedblocking':
|
132 |
-
update_option('mo2f_tour_advance_blocking',-1);
|
133 |
-
break;
|
134 |
-
case 'miniorange-2-factor_page_mo_2fa_backup':
|
135 |
-
update_option('mo2f_tour_backup',-1);
|
136 |
-
break;
|
137 |
-
case 'miniorange-2-factor_page_mo_2fa_login_and_spam':
|
138 |
-
update_option('mo2f_tour_loginSpam',-1);
|
139 |
-
break;
|
140 |
-
}
|
141 |
-
|
142 |
-
}
|
143 |
-
|
144 |
-
}
|
145 |
-
new Mo_wpns_Tour();
|
146 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
controllers/trial.php
DELETED
@@ -1,91 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
if(current_user_can( 'manage_options' ) && isset($_POST['option']) )
|
5 |
-
{
|
6 |
-
switch(sanitize_text_field($_POST['option']))
|
7 |
-
{
|
8 |
-
case "mo2f_trial_request_form":
|
9 |
-
mo2f_handle_trial_request_form($_POST); break;
|
10 |
-
}
|
11 |
-
}
|
12 |
-
global $mo2f_dirName;
|
13 |
-
$current_user = wp_get_current_user();
|
14 |
-
$email = isset($current_user->user_email)?$current_user->user_email:null;
|
15 |
-
$url = get_site_url();
|
16 |
-
$user_phone = $Mo2fdbQueries->get_user_detail( 'mo2f_user_phone', $current_user->ID );
|
17 |
-
|
18 |
-
|
19 |
-
echo '<link rel="stylesheet" type="text/css" href="' . plugins_url( 'includes/css/style_settings.css', dirname(__FILE__)) . '" />';
|
20 |
-
include $mo2f_dirName . 'views'.DIRECTORY_SEPARATOR.'trial.php';
|
21 |
-
|
22 |
-
function mo2f_handle_trial_request_form($post){
|
23 |
-
$nonce = isset($post['nonce'])?sanitize_text_field($post['nonce']):NULL;
|
24 |
-
if ( ! wp_verify_nonce( $nonce, 'mo2f_trial-nonce' ) ){
|
25 |
-
return;
|
26 |
-
}
|
27 |
-
|
28 |
-
$email = isset($post['mo2f_trial_email'])? $post['mo2f_trial_email'] : NULL;
|
29 |
-
$phone = isset($post['mo2f_trial_phone'])? $post['mo2f_trial_phone'] : ( $user_phone ? $user_phone : NULL );
|
30 |
-
$trial_plan = isset($post['mo2f_trial_plan'])? $post['mo2f_trial_plan']: NULL;
|
31 |
-
|
32 |
-
if(get_site_option('mo2f_trial_query_sent')){
|
33 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('TRIAL_REQUEST_ALREADY_SENT'),'ERROR');
|
34 |
-
return;
|
35 |
-
}
|
36 |
-
|
37 |
-
if(empty($email) || empty($phone) || empty($trial_plan))
|
38 |
-
{
|
39 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('REQUIRED_FIELDS'),'ERROR');
|
40 |
-
return;
|
41 |
-
}
|
42 |
-
if(!preg_match("/^[\+][0-9]{1,4}\s?[0-9]{7,12}$/", $phone)){
|
43 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('INVALID_PHONE'),'ERROR');
|
44 |
-
return;
|
45 |
-
}
|
46 |
-
else{
|
47 |
-
$email = filter_var( $email,FILTER_VALIDATE_EMAIL );
|
48 |
-
$phone = preg_replace('/[^0-9]/', '', $phone);
|
49 |
-
$trial_plan = sanitize_text_field($trial_plan);
|
50 |
-
$query = 'REQUEST FOR TRIAL';
|
51 |
-
$query .= ' [ Plan Name => ';
|
52 |
-
$query .= $trial_plan;
|
53 |
-
$query .= ' | Email => ';
|
54 |
-
$query .= get_option('mo2f_email').' ]';
|
55 |
-
$current_user = wp_get_current_user();
|
56 |
-
|
57 |
-
|
58 |
-
$url = MoWpnsConstants::HOST_NAME . "/moas/rest/customer/contact-us";
|
59 |
-
global $mowafutility;
|
60 |
-
$query = '[WordPress 2 Factor Authentication Plugin: OV3 - '.MO2F_VERSION.']: ' . $query;
|
61 |
-
|
62 |
-
$fields = array(
|
63 |
-
'firstName' => $current_user->user_firstname,
|
64 |
-
'lastName' => $current_user->user_lastname,
|
65 |
-
'company' => $_SERVER['SERVER_NAME'],
|
66 |
-
'email' => $email,
|
67 |
-
'ccEmail' => '2fasupport@xecurify.com',
|
68 |
-
'phone' => $phone,
|
69 |
-
'query' => $query
|
70 |
-
);
|
71 |
-
$field_string = json_encode( $fields );
|
72 |
-
|
73 |
-
$mo2fApi= new Mo2f_Api();
|
74 |
-
$response = $mo2fApi->make_curl_call($url, $field_string);
|
75 |
-
|
76 |
-
$submitted = $response;
|
77 |
-
|
78 |
-
if(json_last_error() == JSON_ERROR_NONE && $submitted)
|
79 |
-
{
|
80 |
-
update_site_option('mo2f_trial_query_sent', true);
|
81 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('TRIAL_REQUEST_SENT'),'SUCCESS');
|
82 |
-
return;
|
83 |
-
}
|
84 |
-
else{
|
85 |
-
do_action('wpns_show_message',MoWpnsMessages::showMessage('SUPPORT_FORM_ERROR'),'ERROR');
|
86 |
-
}
|
87 |
-
|
88 |
-
}
|
89 |
-
}
|
90 |
-
|
91 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
controllers/twofa/mo2fa_common_login.php
CHANGED
@@ -40,79 +40,7 @@ function mo2f_collect_device_attributes_handler( $session_id_encrypt,$redirect_t
|
|
40 |
</html>
|
41 |
<?php
|
42 |
}
|
43 |
-
|
44 |
-
{
|
45 |
-
?>
|
46 |
-
<html>
|
47 |
-
<head>
|
48 |
-
<meta charset="utf-8"/>
|
49 |
-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
50 |
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
51 |
-
<?php
|
52 |
-
mo2f_inline_css_and_js();
|
53 |
-
?>
|
54 |
-
</head>
|
55 |
-
<body>
|
56 |
-
<div class="mo2f_modal1" tabindex="-1" role="dialog" id="myModal51">
|
57 |
-
<div class="mo2f-modal-backdrop"></div>
|
58 |
-
<div class="mo_customer_validation-modal-dialog mo_customer_validation-modal-md">
|
59 |
-
<div class="login mo_customer_validation-modal-content">
|
60 |
-
<div class="mo2f_modal-header">
|
61 |
-
<h3 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="<?php echo __('Back to login','miniorange-2-factor-authentication');?>" onclick="mologinback();"><span aria-hidden="true">×</span></button>
|
62 |
-
|
63 |
-
<?php echo __('Select 2 Factor method for authentication', 'miniorange-2-factor-authentication'); ?></h3>
|
64 |
-
</div>
|
65 |
-
<div class="mo2f_modal-body">
|
66 |
-
<?php
|
67 |
-
foreach ($configure_array_method as $key => $value)
|
68 |
-
{
|
69 |
-
echo'<span >
|
70 |
-
<label>
|
71 |
-
<input type="radio" name="mo2f_selected_mfactor_method" class ="mo2f-styled-radio_conf" value="'.$value.'"/>';
|
72 |
-
echo'<span class="mo2f-styled-radio-text_conf">';
|
73 |
-
echo __($value, 'miniorange-2-factor-authentication');
|
74 |
-
echo ' </span> </label>
|
75 |
-
<br>
|
76 |
-
<br>
|
77 |
-
</span>';
|
78 |
-
|
79 |
-
}
|
80 |
-
|
81 |
-
?>
|
82 |
-
|
83 |
-
<?php mo2f_customize_logo() ?>
|
84 |
-
</div>
|
85 |
-
</div>
|
86 |
-
</div>
|
87 |
-
</div>
|
88 |
-
<form name="f" id="mo2f_backto_mo_loginform" method="post" action="<?php echo wp_login_url(); ?>" style="display:none;">
|
89 |
-
<input type="hidden" name="miniorange_mobile_validation_failed_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-mobile-validation-failed-nonce'); ?>" />
|
90 |
-
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
91 |
-
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
92 |
-
</form>
|
93 |
-
<form name="f" method="post" action="" id="mo2f_select_mfa_methods_form" style="display:none;">
|
94 |
-
<input type="hidden" name="mo2f_selected_mfactor_method" />
|
95 |
-
<input type="hidden" name="mo2f_miniorange_2factor_method_nonce" value="<?php echo wp_create_nonce('mo2f_miniorange-2factor-method-nonce'); ?>" />
|
96 |
-
<input type="hidden" name="option" value="miniorange_mfactor_method" />
|
97 |
-
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
98 |
-
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
99 |
-
</form>
|
100 |
-
|
101 |
-
<script>
|
102 |
-
function mologinback(){
|
103 |
-
jQuery('#mo2f_backto_mo_loginform').submit();
|
104 |
-
}
|
105 |
-
jQuery('input:radio[name=mo2f_selected_mfactor_method]').click(function() {
|
106 |
-
var selectedMethod = jQuery(this).val();
|
107 |
-
document.getElementById("mo2f_select_mfa_methods_form").elements[0].value = selectedMethod;
|
108 |
-
jQuery('#mo2f_select_mfa_methods_form').submit();
|
109 |
-
});
|
110 |
-
|
111 |
-
</script>
|
112 |
-
</body>
|
113 |
-
</html>
|
114 |
-
<?php
|
115 |
-
}
|
116 |
function miniorange_get_user_role( $user ) {
|
117 |
return $user->roles;
|
118 |
}
|
@@ -1179,7 +1107,7 @@ function mo2f_get_qrcode_authentication_prompt( $login_status, $login_message, $
|
|
1179 |
<?php
|
1180 |
}
|
1181 |
|
1182 |
-
function mo2f_get_otp_authentication_prompt( $login_status, $login_message, $redirect_to,$session_id_encrypt,$user_id,$show_back_button =null
|
1183 |
global $Mo2fdbQueries,$moWpnsUtility;
|
1184 |
$mo2f_enable_forgotphone = MoWpnsUtility::get_mo2f_db_option('mo2f_enable_forgotphone', 'get_option');
|
1185 |
$mo_wpns_config = new MoWpnsHandler();
|
@@ -1254,9 +1182,6 @@ function mo2f_get_otp_authentication_prompt( $login_status, $login_message, $re
|
|
1254 |
<input type="hidden" name="option" value="miniorange_soft_token">
|
1255 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
1256 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
1257 |
-
<?php if($mo2fa_transaction_id!=null){ ?>
|
1258 |
-
<input type="hidden" name="mo2fa_transaction_id" id="mo2fa_transaction_id" value="<?php echo $mo2fa_transaction_id; ?>"/>
|
1259 |
-
<?php }?>
|
1260 |
</form>
|
1261 |
<?php
|
1262 |
$Kbaset = get_user_meta( $user_id ,'Security Questions' );
|
@@ -1493,12 +1418,11 @@ function mo2f_customize_logo() { ?>
|
|
1493 |
function echo_js_css_files() {
|
1494 |
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
|
1495 |
echo '<script src="' . plugins_url( 'includes/js/bootstrap.min.js', dirname(dirname(__FILE__)) ) . '" ></script>';
|
1496 |
-
echo '<link rel="stylesheet" type="text/css" href="' . plugins_url( 'includes/css/twofa_style_settings.css?version=5.
|
1497 |
}
|
1498 |
|
1499 |
function mo2f_backup_codes_generate($id, $redirect_to, $session_id_encrypt){
|
1500 |
global $Mo2fdbQueries;
|
1501 |
-
update_site_option('mo2f_is_inline_used','1');
|
1502 |
if(get_user_meta($id, 'mo_backup_code_generated', true) && !get_user_meta($id, 'mo_backup_code_downloaded', true)){
|
1503 |
$encrypted_codes =get_user_meta($id, 'chqwetcsdvnvd', true);
|
1504 |
$key = get_option( 'mo2f_encryption_key' );
|
@@ -1507,25 +1431,16 @@ function mo2f_backup_codes_generate($id, $redirect_to, $session_id_encrypt){
|
|
1507 |
delete_user_meta($id, 'chqwetcsdvnvd');
|
1508 |
$result = true;
|
1509 |
}else{
|
1510 |
-
|
|
|
|
|
|
|
1511 |
if(empty($mo2f_user_email)){
|
1512 |
$currentuser = get_user_by( 'id', $id );
|
1513 |
$mo2f_user_email = $currentuser->user_email;
|
1514 |
}
|
1515 |
-
$
|
1516 |
-
$codes = $generate_backup_code->mo_2f_generate_backup_codes($mo2f_user_email, site_url());
|
1517 |
-
|
1518 |
-
if($codes != 'DBConnectionIssue' && $codes != 'UnableToFetchData' && $codes != 'UserLimitReached' && $codes != 'ERROR' && $codes != 'LimitReached' && $codes != 'AllUsed' && $codes != 'invalid_request' ){
|
1519 |
-
$codes = explode(' ', $codes);
|
1520 |
-
$result = MO2f_Utility::mo2f_email_backup_codes($codes, $mo2f_user_email);
|
1521 |
update_user_meta($id, 'mo_backup_code_generated', 1);
|
1522 |
-
$code_generated = 'code_generation_successful';
|
1523 |
-
}else{
|
1524 |
-
$code_generated = 'code_generation_failed';
|
1525 |
-
update_user_meta($id, 'error_during_code_generation',$codes);
|
1526 |
-
}
|
1527 |
-
|
1528 |
-
|
1529 |
}
|
1530 |
update_user_meta($id, 'mo_backup_code_screen_shown', 1);
|
1531 |
?>
|
@@ -1556,7 +1471,6 @@ function mo2f_backup_codes_generate($id, $redirect_to, $session_id_encrypt){
|
|
1556 |
<h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="<?php echo __('Back to login', 'miniorange-2-factor-authentication'); ?>" onclick="mologinback();"><span aria-hidden="true">×</span></button>
|
1557 |
<?php echo __('Two Factor Setup Complete', 'miniorange-2-factor-authentication'); ?></h4>
|
1558 |
</div>
|
1559 |
-
<?php if($code_generated == 'code_generation_successful') { ?>
|
1560 |
<div class="mo2f_modal-body center">
|
1561 |
|
1562 |
|
@@ -1572,13 +1486,13 @@ function mo2f_backup_codes_generate($id, $redirect_to, $session_id_encrypt){
|
|
1572 |
<div style="display: inline-flex;width: 350px; ">
|
1573 |
<div id="clipboard" style="border: solid;width: 55%;float: left;">
|
1574 |
<?php
|
1575 |
-
for ($x = 0; $x <
|
1576 |
$str = $codes[$x];
|
1577 |
echo("<br>".$str." <br>");
|
1578 |
}
|
1579 |
|
1580 |
$str1="";
|
1581 |
-
for ($x = 0; $x <
|
1582 |
$str = $codes[$x];
|
1583 |
$str1.=$str;
|
1584 |
if($x != 4){
|
@@ -1611,17 +1525,6 @@ function mo2f_backup_codes_generate($id, $redirect_to, $session_id_encrypt){
|
|
1611 |
<?php
|
1612 |
mo2f_customize_logo() ?>
|
1613 |
</div>
|
1614 |
-
<?php } else { ?>
|
1615 |
-
<div style="text-align:center;">
|
1616 |
-
<form name="f" id="mo2f_backto_mo_loginform" method="post" action="<?php echo wp_login_url();?>" >
|
1617 |
-
<input type="hidden" name="option" value="mo2f_goto_wp_dashboard" />
|
1618 |
-
<input type="hidden" name="mo2f_inline_wp_dashboard_nonce" value="<?php echo wp_create_nonce('miniorange-2-factor-inline-wp-dashboard-nonce'); ?>" />
|
1619 |
-
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
1620 |
-
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
1621 |
-
<input type="submit" name="login_page" id="login_page" style ="margin-top: 7px" class="button button-primary button-large" value="<?php echo __('Finish','miniorange-2-factor-authentication');?>" /><br>
|
1622 |
-
</form>
|
1623 |
-
</div>
|
1624 |
-
<?php } ?>
|
1625 |
</div>
|
1626 |
</div>
|
1627 |
</div>
|
40 |
</html>
|
41 |
<?php
|
42 |
}
|
43 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
function miniorange_get_user_role( $user ) {
|
45 |
return $user->roles;
|
46 |
}
|
1107 |
<?php
|
1108 |
}
|
1109 |
|
1110 |
+
function mo2f_get_otp_authentication_prompt( $login_status, $login_message, $redirect_to,$session_id_encrypt,$user_id,$show_back_button =null ) {
|
1111 |
global $Mo2fdbQueries,$moWpnsUtility;
|
1112 |
$mo2f_enable_forgotphone = MoWpnsUtility::get_mo2f_db_option('mo2f_enable_forgotphone', 'get_option');
|
1113 |
$mo_wpns_config = new MoWpnsHandler();
|
1182 |
<input type="hidden" name="option" value="miniorange_soft_token">
|
1183 |
<input type="hidden" name="redirect_to" value="<?php echo $redirect_to; ?>"/>
|
1184 |
<input type="hidden" name="session_id" value="<?php echo $session_id_encrypt; ?>"/>
|
|
|
|
|
|
|
1185 |
</form>
|
1186 |
<?php
|
1187 |
$Kbaset = get_user_meta( $user_id ,'Security Questions' );
|
1418 |
function echo_js_css_files() {
|
1419 |
echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>';
|
1420 |
echo '<script src="' . plugins_url( 'includes/js/bootstrap.min.js', dirname(dirname(__FILE__)) ) . '" ></script>';
|
1421 |
+
echo '<link rel="stylesheet" type="text/css" href="' . plugins_url( 'includes/css/twofa_style_settings.css?version=5.1.21', dirname(dirname(__FILE__))) . '" />';
|
1422 |
}
|
1423 |
|
1424 |
function mo2f_backup_codes_generate($id, $redirect_to, $session_id_encrypt){
|
1425 |
global $Mo2fdbQueries;
|
|
|
1426 |
if(get_user_meta($id, 'mo_backup_code_generated', true) && !get_user_meta($id, 'mo_backup_code_downloaded', true)){
|
1427 |
$encrypted_codes =get_user_meta($id, 'chqwetcsdvnvd', true);
|
1428 |
$key = get_option( 'mo2f_encryption_key' );
|
1431 |
delete_user_meta($id, 'chqwetcsdvnvd');
|
1432 |
$result = true;
|
1433 |
}else{
|
1434 |
+
$codes = MO2f_Utility::mo_2f_generate_backup_codes();
|
1435 |
+
$codes_hash = MO2f_Utility::mo2f_get_codes_hash($codes);
|
1436 |
+
update_user_meta($id,'mo2f_backup_codes', $codes_hash);
|
1437 |
+
$mo2f_user_email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $id );
|
1438 |
if(empty($mo2f_user_email)){
|
1439 |
$currentuser = get_user_by( 'id', $id );
|
1440 |
$mo2f_user_email = $currentuser->user_email;
|
1441 |
}
|
1442 |
+
$result = MO2f_Utility::mo2f_email_backup_codes($codes, $mo2f_user_email);
|
|
|
|
|
|
|
|
|
|
|
1443 |
update_user_meta($id, 'mo_backup_code_generated', 1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1444 |
}
|
1445 |
update_user_meta($id, 'mo_backup_code_screen_shown', 1);
|
1446 |
?>
|
1471 |
<h4 class="mo2f_modal-title"><button type="button" class="mo2f_close" data-dismiss="modal" aria-label="Close" title="<?php echo __('Back to login', 'miniorange-2-factor-authentication'); ?>" onclick="mologinback();"><span aria-hidden="true">×</span></button>
|
1472 |
<?php echo __('Two Factor Setup Complete', 'miniorange-2-factor-authentication'); ?></h4>
|
1473 |
</div>
|
|
|
1474 |
<div class="mo2f_modal-body center">
|
1475 |
|
1476 |
|
1486 |
<div style="display: inline-flex;width: 350px; ">
|
1487 |
<div id="clipboard" style="border: solid;width: 55%;float: left;">
|
1488 |
<?php
|
1489 |
+
for ($x = 0; $x < 5; $x++) {
|
1490 |
$str = $codes[$x];
|
1491 |
echo("<br>".$str." <br>");
|
1492 |
}
|
1493 |
|
1494 |
$str1="";
|
1495 |
+
for ($x = 0; $x < 5; $x++) {
|
1496 |
$str = $codes[$x];
|
1497 |
$str1.=$str;
|
1498 |
if($x != 4){
|
1525 |
<?php
|
1526 |
mo2f_customize_logo() ?>
|
1527 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1528 |
</div>
|
1529 |
</div>
|
1530 |
</div>
|
controllers/twofa/mo2fa_inline_registration.php
CHANGED
@@ -139,13 +139,6 @@ function prompt_user_to_select_2factor_mthod_inline($current_user_id, $login_sta
|
|
139 |
</label>
|
140 |
<br>
|
141 |
</span>
|
142 |
-
<span class="<?php if( !(in_array("OTP OVER WHATSAPP", $opt)) ){ echo "mo2f_td_hide"; }else { echo "mo2f_td_show"; } ?>" >
|
143 |
-
<label title="<?php echo __('You will get an OTP on your WHATSAPP app from miniOrange Bot.', 'miniorange-2-factor-authentication'); ?>" >
|
144 |
-
<input type="radio" name="mo2f_selected_2factor_method" value="OTP OVER WHATSAPP" />
|
145 |
-
<?php echo __('OTP Over WHATSAPP', 'miniorange-2-factor-authentication'); ?>
|
146 |
-
</label>
|
147 |
-
<br>
|
148 |
-
</span>
|
149 |
<span class="<?php if( !(in_array("MOBILE AUTHENTICATION", $opt)) ){ echo "mo2f_td_hide"; }else { echo "mo2f_td_show"; }?>">
|
150 |
<label title="<?php echo __('You have to scan the QR Code from your phone using miniOrange Authenticator App to login. Supported in Smartphones only.', 'miniorange-2-factor-authentication'); ?>">
|
151 |
<input type="radio" name="mo2f_selected_2factor_method" value="MOBILE AUTHENTICATION" />
|
@@ -618,31 +611,7 @@ function prompt_user_for_duo_authenticator_setup($current_user_id, $login_status
|
|
618 |
function prompt_user_for_google_authenticator_setup($current_user_id, $login_status, $login_message,$redirect_to,$session_id){
|
619 |
$ga_secret = MO2f_Utility::mo2f_get_transient($session_id, 'secret_ga');
|
620 |
$data = MO2f_Utility::mo2f_get_transient($session_id, 'ga_qrCode');
|
621 |
-
global $Mo2fdbQueries;
|
622 |
-
if(empty($data)){
|
623 |
-
$user = get_user_by('ID',$current_user_id);
|
624 |
-
if(!MO2F_IS_ONPREM){
|
625 |
-
if(!get_user_meta($user->ID, 'mo2f_google_auth', true)){
|
626 |
-
Miniorange_Authentication::mo2f_get_GA_parameters($user);
|
627 |
-
}
|
628 |
-
$mo2f_google_auth = get_user_meta($user->ID, 'mo2f_google_auth', true);
|
629 |
-
$data = isset($mo2f_google_auth['ga_qrCode']) ? $mo2f_google_auth['ga_qrCode'] : null;
|
630 |
-
$ga_secret = isset($mo2f_google_auth['ga_secret']) ? $mo2f_google_auth['ga_secret'] : null;
|
631 |
-
MO2f_Utility::mo2f_set_transient($session_id, 'secret_ga', $mo2f_google_auth['ga_secret']);
|
632 |
-
MO2f_Utility::mo2f_set_transient($session_id, 'ga_qrCode', $mo2f_google_auth['ga_qrCode']);
|
633 |
-
}else{
|
634 |
-
include_once dirname(dirname(dirname( __FILE__ ))) .DIRECTORY_SEPARATOR . 'handler'.DIRECTORY_SEPARATOR . 'twofa'. DIRECTORY_SEPARATOR . 'gaonprem.php';
|
635 |
-
$gauth_obj = new Google_auth_onpremise();
|
636 |
-
$email = $Mo2fdbQueries->get_user_detail('mo2f_user_email',$user->ID);
|
637 |
-
$onpremise_secret = $gauth_obj->createSecret();
|
638 |
-
$issuer = get_site_option( 'mo2f_GA_account_name', 'miniOrangeAu' );
|
639 |
-
$url = $gauth_obj->geturl( $onpremise_secret, $issuer, $email );
|
640 |
-
$data = $url;
|
641 |
-
MO2f_Utility::mo2f_set_transient($session_id, 'secret_ga', $onpremise_secret);
|
642 |
-
MO2f_Utility::mo2f_set_transient($session_id, 'ga_qrCode', $url);
|
643 |
|
644 |
-
}
|
645 |
-
}
|
646 |
?>
|
647 |
<html>
|
648 |
<head> <meta charset="utf-8"/>
|
139 |
</label>
|
140 |
<br>
|
141 |
</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
<span class="<?php if( !(in_array("MOBILE AUTHENTICATION", $opt)) ){ echo "mo2f_td_hide"; }else { echo "mo2f_td_show"; }?>">
|
143 |
<label title="<?php echo __('You have to scan the QR Code from your phone using miniOrange Authenticator App to login. Supported in Smartphones only.', 'miniorange-2-factor-authentication'); ?>">
|
144 |
<input type="radio" name="mo2f_selected_2factor_method" value="MOBILE AUTHENTICATION" />
|
611 |
function prompt_user_for_google_authenticator_setup($current_user_id, $login_status, $login_message,$redirect_to,$session_id){
|
612 |
$ga_secret = MO2f_Utility::mo2f_get_transient($session_id, 'secret_ga');
|
613 |
$data = MO2f_Utility::mo2f_get_transient($session_id, 'ga_qrCode');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
614 |
|
|
|
|
|
615 |
?>
|
616 |
<html>
|
617 |
<head> <meta charset="utf-8"/>
|
controllers/twofa/two_factor_ajax.php
CHANGED
@@ -12,6 +12,7 @@ class mo_2f_ajax
|
|
12 |
}
|
13 |
|
14 |
function mo_two_factor_ajax(){
|
|
|
15 |
$GLOBALS['mo2f_is_ajax_request'] = true;
|
16 |
switch ($_POST['mo_2f_two_factor_ajax']) {
|
17 |
case 'mo2f_ajax_login_redirect':
|
@@ -32,8 +33,6 @@ class mo_2f_ajax
|
|
32 |
$this->mo2f_enable_disable_twofactor(); break;
|
33 |
case 'mo2f_enable_disable_inline':
|
34 |
$this->mo2f_enable_disable_inline(); break;
|
35 |
-
case 'mo2f_enable_disable_configurd_methods':
|
36 |
-
$this->mo2f_enable_disable_configurd_methods(); break;
|
37 |
case 'mo2f_shift_to_onprem':
|
38 |
$this->mo2f_shift_to_onprem();break;
|
39 |
case 'mo2f_enable_disable_twofactor_prompt_on_login':
|
@@ -47,630 +46,12 @@ class mo_2f_ajax
|
|
47 |
case 'mo2f_delete_log_file':
|
48 |
$this->mo2f_delete_log_file();
|
49 |
break;
|
50 |
-
|
51 |
-
$this->
|
52 |
-
break;
|
53 |
-
case 'mo_wpns_register_verify_customer':
|
54 |
-
$this->mo_wpns_register_verify_customer();
|
55 |
-
break;
|
56 |
-
case 'mo_2fa_configure_GA_setup_wizard':
|
57 |
-
$this->mo_2fa_configure_GA_setup_wizard();
|
58 |
-
break;
|
59 |
-
case 'mo_2fa_verify_GA_setup_wizard':
|
60 |
-
$this->mo_2fa_verify_GA_setup_wizard();
|
61 |
-
break;
|
62 |
-
case 'mo_2fa_configure_OTPOverSMS_setup_wizard':
|
63 |
-
$this->mo_2fa_configure_OTPOverSMS_setup_wizard();
|
64 |
-
break;
|
65 |
-
case 'mo_2fa_configure_OTPOverEmail_setup_wizard':
|
66 |
-
$this->mo_2fa_configure_OTPOverEmail_setup_wizard();
|
67 |
-
break;
|
68 |
-
case 'mo_2fa_verify_OTPOverEmail_setup_wizard':
|
69 |
-
$this->mo_2fa_verify_OTPOverEmail_setup_wizard();
|
70 |
-
break;
|
71 |
-
case 'mo_2fa_verify_OTPOverSMS_setup_wizard':
|
72 |
-
$this->mo_2fa_verify_OTPOverSMS_setup_wizard();
|
73 |
-
break;
|
74 |
-
case 'mo_2fa_configure_KBA_setup_wizard':
|
75 |
-
$this->mo_2fa_configure_KBA_setup_wizard();
|
76 |
-
break;
|
77 |
-
case 'mo_2fa_verify_KBA_setup_wizard':
|
78 |
-
$this->mo_2fa_verify_KBA_setup_wizard();
|
79 |
-
break;
|
80 |
-
case 'mo_2fa_send_otp_token':
|
81 |
-
$this->mo_2fa_send_otp_token();
|
82 |
-
break;
|
83 |
-
case "mo2f_set_otp_over_sms":
|
84 |
-
$this->mo2f_set_otp_over_sms(); break;
|
85 |
-
case "mo2f_set_miniorange_methods":
|
86 |
-
$this->mo2f_set_miniorange_methods(); break;
|
87 |
-
case "mo2f_set_GA":
|
88 |
-
$this->mo2f_set_GA(); break;
|
89 |
-
}
|
90 |
-
}
|
91 |
-
function mo_2fa_verify_KBA_setup_wizard()
|
92 |
-
{
|
93 |
-
global $Mo2fdbQueries;
|
94 |
-
$kba_q1 = sanitize_text_field($_POST['mo2f_kbaquestion_1']);
|
95 |
-
$kba_a1 = sanitize_text_field( $_POST['mo2f_kba_ans1'] );
|
96 |
-
$kba_q2 = sanitize_text_field($_POST['mo2f_kbaquestion_2']);
|
97 |
-
$kba_a2 = sanitize_text_field( $_POST['mo2f_kba_ans2'] );
|
98 |
-
$kba_q3 = sanitize_text_field( $_POST['mo2f_kbaquestion_3'] );
|
99 |
-
$kba_a3 = sanitize_text_field( $_POST['mo2f_kba_ans3'] );
|
100 |
-
$user = wp_get_current_user();
|
101 |
-
$this->mo2f_check_and_create_user($user->ID);
|
102 |
-
if ( MO2f_Utility::mo2f_check_empty_or_null( $kba_q1 ) || MO2f_Utility::mo2f_check_empty_or_null( $kba_a1 ) || MO2f_Utility::mo2f_check_empty_or_null( $kba_q2 ) || MO2f_Utility::mo2f_check_empty_or_null( $kba_a2) || MO2f_Utility::mo2f_check_empty_or_null( $kba_q3) || MO2f_Utility::mo2f_check_empty_or_null( $kba_a3) ) {
|
103 |
-
echo "Invalid Questions or Answers";
|
104 |
-
exit;
|
105 |
-
}
|
106 |
-
if ( strcasecmp( $kba_q1, $kba_q2 ) == 0 || strcasecmp( $kba_q2, $kba_q3 ) == 0 || strcasecmp( $kba_q3, $kba_q1 ) == 0 ) {
|
107 |
-
echo "The questions you select must be unique.";
|
108 |
-
exit;
|
109 |
-
}
|
110 |
-
$kba_q1 = addcslashes( stripslashes( $kba_q1 ), '"\\' );
|
111 |
-
$kba_q2 = addcslashes( stripslashes( $kba_q2 ), '"\\' );
|
112 |
-
$kba_q3 = addcslashes( stripslashes( $kba_q3 ), '"\\' );
|
113 |
-
$kba_a1 = addcslashes( stripslashes( $kba_a1 ), '"\\' );
|
114 |
-
$kba_a2 = addcslashes( stripslashes( $kba_a2 ), '"\\' );
|
115 |
-
$kba_a3 = addcslashes( stripslashes( $kba_a3 ), '"\\' );
|
116 |
-
$email = $user->user_email;
|
117 |
-
$kba_registration = new Two_Factor_Setup();
|
118 |
-
$Mo2fdbQueries->update_user_details( $user->ID, array(
|
119 |
-
'mo2f_SecurityQuestions_config_status' => true,
|
120 |
-
'mo_2factor_user_registration_status' => 'MO_2_FACTOR_PLUGIN_SETTINGS',
|
121 |
-
'mo2f_user_email' => $email
|
122 |
-
));
|
123 |
-
$kba_reg_reponse = json_decode( $kba_registration->register_kba_details( $email, $kba_q1, $kba_a1, $kba_q2, $kba_a2, $kba_q3, $kba_a3, $user->ID ), true );
|
124 |
-
|
125 |
-
if($kba_reg_reponse['status']=='SUCCESS')
|
126 |
-
{
|
127 |
-
echo "SUCCESS";
|
128 |
-
exit;
|
129 |
-
}
|
130 |
-
else
|
131 |
-
{
|
132 |
-
echo "An error has occured while saving KBA details. Please try again.";
|
133 |
-
exit;
|
134 |
-
}
|
135 |
-
}
|
136 |
-
function mo_2fa_send_otp_token()
|
137 |
-
{
|
138 |
-
$enduser = new Customer_Setup();
|
139 |
-
$email = sanitize_text_field($_POST['phone']);
|
140 |
-
$customer_key = get_site_option('mo2f_customerKey');
|
141 |
-
$api_key = get_site_option('mo2f_api_key');
|
142 |
-
$selected_2FA_method = sanitize_text_field($_POST['selected_2FA_method']);
|
143 |
-
$user_id = wp_get_current_user()->ID;
|
144 |
-
|
145 |
-
if($selected_2FA_method == 'OTP Over Email')
|
146 |
-
{
|
147 |
-
update_user_meta($user_id,'tempRegEmail',$email);
|
148 |
-
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
149 |
-
$emailErr = "Invalid email format";
|
150 |
-
echo $emailErr;
|
151 |
-
exit;
|
152 |
-
}
|
153 |
-
}
|
154 |
-
else if($selected_2FA_method == 'OTP Over SMS')
|
155 |
-
{
|
156 |
-
|
157 |
-
}
|
158 |
-
$content = $enduser->send_otp_token($email,$selected_2FA_method,$customer_key,$api_key);
|
159 |
-
$content = json_decode($content);
|
160 |
-
|
161 |
-
if($content->status =='SUCCESS')
|
162 |
-
{
|
163 |
-
echo 'SUCCESS';
|
164 |
-
update_user_meta($user_id,'txId',$content->txId);
|
165 |
-
update_user_meta($user_id,'tempRegPhone',$email);
|
166 |
-
exit;
|
167 |
-
}
|
168 |
-
else
|
169 |
-
echo "An error has occured while sending the OTP.";
|
170 |
-
exit;
|
171 |
-
}
|
172 |
-
function mo2f_check_and_create_user($user_id)
|
173 |
-
{
|
174 |
-
global $Mo2fdbQueries;
|
175 |
-
$twofactor_transactions = new Mo2fDB;
|
176 |
-
$exceeded = $twofactor_transactions->check_alluser_limit_exceeded($user_id);
|
177 |
-
if($exceeded){
|
178 |
-
echo 'User Limit has been exceeded';
|
179 |
-
exit;
|
180 |
-
}
|
181 |
-
$Mo2fdbQueries->insert_user( $user_id );
|
182 |
-
}
|
183 |
-
function mo_2fa_verify_OTPOverSMS_setup_wizard()
|
184 |
-
{
|
185 |
-
global $Mo2fdbQueries;
|
186 |
-
$enduser = new Customer_Setup();
|
187 |
-
$current_user = wp_get_current_user();
|
188 |
-
$otpToken = sanitize_text_field($_POST['mo2f_otp_token']);
|
189 |
-
$user_id = wp_get_current_user()->ID;
|
190 |
-
$email = get_user_meta($user_id,'tempRegPhone',true);
|
191 |
-
$content = json_decode($enduser->validate_otp_token( 'SMS', null, get_user_meta($user_id,'txId',true), $otpToken, get_site_option('mo2f_customerKey'), get_site_option('mo2f_api_key') ),true);
|
192 |
-
|
193 |
-
if($content['status'] == 'SUCCESS')
|
194 |
-
{
|
195 |
-
$this->mo2f_check_and_create_user($user_id);
|
196 |
-
$Mo2fdbQueries->update_user_details( $user_id, array(
|
197 |
-
'mo2f_OTPOverSMS_config_status' => true,
|
198 |
-
'mo2f_configured_2FA_method' => "OTP Over SMS",
|
199 |
-
'mo2f_user_phone' => $email,
|
200 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
201 |
-
'mo_2factor_user_registration_status' => 'MO_2_FACTOR_PLUGIN_SETTINGS'
|
202 |
-
) );
|
203 |
-
echo "SUCCESS";
|
204 |
-
}
|
205 |
-
else
|
206 |
-
{
|
207 |
-
echo "Invalid OTP";
|
208 |
-
}
|
209 |
-
exit;
|
210 |
-
|
211 |
-
}
|
212 |
-
function mo_2fa_verify_OTPOverEmail_setup_wizard()
|
213 |
-
{
|
214 |
-
global $Mo2fdbQueries;
|
215 |
-
$enduser = new Customer_Setup();
|
216 |
-
$current_user = wp_get_current_user();
|
217 |
-
$otpToken = sanitize_text_field($_POST['mo2f_otp_token']);
|
218 |
-
$user_id = wp_get_current_user()->ID;
|
219 |
-
$email = get_user_meta($user_id,'tempRegEmail',true);
|
220 |
-
$content = json_decode($enduser->validate_otp_token( 'OTP_OVER_EMAIL', null, get_user_meta($current_user->ID,'mo2f_transactionId',true), $otpToken, get_site_option('mo2f_customerKey'), get_site_option('mo2f_api_key') ),true);
|
221 |
-
|
222 |
-
if($content['status'] == 'SUCCESS')
|
223 |
-
{
|
224 |
-
$this->mo2f_check_and_create_user($user_id);
|
225 |
-
$Mo2fdbQueries->update_user_details( $user_id, array(
|
226 |
-
'mo2f_OTPOverEmail_config_status' => true,
|
227 |
-
'mo2f_configured_2FA_method' => "OTP Over Email",
|
228 |
-
'mo2f_user_email' => $email,
|
229 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
230 |
-
'mo_2factor_user_registration_status' => 'MO_2_FACTOR_PLUGIN_SETTINGS'
|
231 |
-
) );
|
232 |
-
echo "SUCCESS";
|
233 |
-
}
|
234 |
-
else
|
235 |
-
{
|
236 |
-
echo "Invalid OTP";
|
237 |
-
}
|
238 |
-
exit;
|
239 |
-
}
|
240 |
-
function mo_2fa_verify_GA_setup_wizard()
|
241 |
-
{
|
242 |
-
global $Mo2fdbQueries;
|
243 |
-
$path = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'handler'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'gaonprem.php';
|
244 |
-
include_once $path;
|
245 |
-
$obj_google_auth = new Google_auth_onpremise();
|
246 |
-
$user_id = wp_get_current_user()->ID;
|
247 |
-
$otpToken = sanitize_text_field($_POST['mo2f_google_auth_code']);
|
248 |
-
$session_id_encrypt = isset($_POST['mo2f_session_id']) ? sanitize_text_field($_POST['mo2f_session_id']) : null;
|
249 |
-
$secret= $obj_google_auth->mo_GAuth_get_secret($user_id);
|
250 |
-
if($session_id_encrypt){
|
251 |
-
$secret = MO2f_Utility::mo2f_get_transient($session_id_encrypt, 'secret_ga');
|
252 |
-
}
|
253 |
-
$content = $obj_google_auth->verifyCode($secret, $otpToken);
|
254 |
-
$content = json_decode($content);
|
255 |
-
if($content->status== 'false')
|
256 |
-
echo "Invalid One time Passcode. Please enter again";
|
257 |
-
else
|
258 |
-
{
|
259 |
-
$obj_google_auth->mo_GAuth_set_secret($user_id,$secret);
|
260 |
-
$this->mo2f_check_and_create_user($user_id);
|
261 |
-
$Mo2fdbQueries->update_user_details( $user_id, array(
|
262 |
-
'mo2f_GoogleAuthenticator_config_status' => true,
|
263 |
-
'mo2f_AuthyAuthenticator_config_status' => false,
|
264 |
-
'mo2f_configured_2FA_method' => "Google Authenticator",
|
265 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
266 |
-
'mo_2factor_user_registration_status' => 'MO_2_FACTOR_PLUGIN_SETTINGS'
|
267 |
-
) );
|
268 |
-
|
269 |
-
echo 'SUCCESS';
|
270 |
-
}
|
271 |
-
exit;
|
272 |
-
}
|
273 |
-
function mo_2fa_configure_GA_setup_wizard()
|
274 |
-
{
|
275 |
-
$path = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'handler'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'gaonprem.php';
|
276 |
-
include_once $path;
|
277 |
-
$obj_google_auth = new Google_auth_onpremise();
|
278 |
-
update_option('mo2f_google_appname',$_SERVER['SERVER_NAME']);
|
279 |
-
$res = $obj_google_auth->mo_GAuth_get_details(true);
|
280 |
-
return $res;
|
281 |
-
}
|
282 |
-
function mo_2fa_configure_OTPOverSMS_setup_wizard()
|
283 |
-
{
|
284 |
-
global $Mo2fdbQueries;
|
285 |
-
$user = wp_get_current_user();
|
286 |
-
$mo2f_user_phone = $Mo2fdbQueries->get_user_detail( 'mo2f_user_phone', $user->ID );
|
287 |
-
$user_phone = $mo2f_user_phone ? $mo2f_user_phone : get_option( 'user_phone_temp' );
|
288 |
-
$session_id_encrypt = MO2f_Utility::random_str(20);
|
289 |
-
|
290 |
-
?>
|
291 |
-
<h4 style="padding:10px; background-color: #a7c5eb;font-weight:normal"> Remaining SMS Transactions: <b><?php echo get_site_option('cmVtYWluaW5nT1RQVHJhbnNhY3Rpb25z');?> </b></h4>
|
292 |
-
<form name="f" method="post" action="" id="mo2f_verifyphone_form">
|
293 |
-
<input type="hidden" name="option" value="mo2f_configure_otp_over_sms_send_otp"/>
|
294 |
-
<input type="hidden" name="mo2f_session_id" value="<?php echo $session_id_encrypt ?>"/>
|
295 |
-
<input type="hidden" name="mo2f_configure_otp_over_sms_send_otp_nonce"
|
296 |
-
value="<?php echo wp_create_nonce( "mo2f-configure-otp-over-sms-send-otp-nonce" ) ?>"/>
|
297 |
-
|
298 |
-
<div style="display:inline;">
|
299 |
-
<input class="mo2f_table_textbox_phone" style="width:200px;height: 30px;" type="text" name="phone" id="phone"
|
300 |
-
value="<?php echo $user_phone ?>" pattern="[\+]?[0-9]{1,4}\s?[0-9]{7,12}"
|
301 |
-
title="<?php echo mo2f_lt( 'Enter phone number without any space or dashes' ); ?>"/><br>
|
302 |
-
<input type="button" name="mo2f_send_otp" id="mo2f_send_otp" class="miniorange_button"
|
303 |
-
value="<?php echo mo2f_lt( 'Send OTP' ); ?>"/>
|
304 |
-
</div>
|
305 |
-
</form>
|
306 |
-
<br>
|
307 |
-
<form name="f" method="post" action="" id="mo2f_validateotp_form">
|
308 |
-
<input type="hidden" name="option" value="mo2f_configure_otp_over_sms_validate"/>
|
309 |
-
<input type="hidden" name="mo2f_session_id" value="<?php echo $session_id_encrypt ?>"/>
|
310 |
-
<input type="hidden" name="mo2f_configure_otp_over_sms_validate_nonce"
|
311 |
-
value="<?php echo wp_create_nonce( "mo2f-configure-otp-over-sms-validate-nonce" ) ?>"/>
|
312 |
-
<p><?php echo mo2f_lt( 'Enter One Time Passcode' ); ?></p>
|
313 |
-
<input class="mo2f_table_textbox_phone" style="width:200px;height: 30px" autofocus="true" type="text" name="mo2f_otp_token" id="mo2f_otp_token"
|
314 |
-
placeholder="<?php echo mo2f_lt( 'Enter OTP' ); ?>" style="width:95%;"/>
|
315 |
-
<br><br>
|
316 |
-
</form><br>
|
317 |
-
|
318 |
-
<?php
|
319 |
-
exit;
|
320 |
-
}
|
321 |
-
function mo_2fa_configure_OTPOverEmail_setup_wizard()
|
322 |
-
{
|
323 |
-
$session_id_encrypt = MO2f_Utility::random_str(20);
|
324 |
-
$user_email = wp_get_current_user()->user_email;
|
325 |
-
?>
|
326 |
-
<h4 style="padding:10px; background-color: #f1f3f5"> Remaining Email Transactions: <b><?php echo get_site_option('cmVtYWluaW5nT1RQ');?> </b></h4>
|
327 |
-
<form name="f" method="post" action="" id="mo2f_verifyemail_form">
|
328 |
-
<input type="hidden" name="option" value="mo2f_configure_otp_over_email_send_otp"/>
|
329 |
-
<input type="hidden" name="mo2f_session_id" value="<?php echo $session_id_encrypt ?>"/>
|
330 |
-
<input type="hidden" name="mo2f_configure_otp_over_email_send_otp_nonce"
|
331 |
-
value="<?php echo wp_create_nonce( "mo2f-configure-otp-over-email-send-otp-nonce" ) ?>"/>
|
332 |
-
|
333 |
-
<div style="display:inline;">
|
334 |
-
<b>Email Address: </b>
|
335 |
-
<input class="mo2f_table_textbox" style="width:280px;height: 30px;" type="email" name="verify_phone" id="phone"
|
336 |
-
value="<?php echo $user_email ?>"
|
337 |
-
title="<?php echo mo2f_lt( 'Enter your email address without any space or dashes' ); ?>"/><br><br>
|
338 |
-
<input type="button" name="mo2f_send_otp" id="mo2f_send_otp" class="miniorange_button"
|
339 |
-
value="<?php echo mo2f_lt( 'Send OTP' ); ?>"/>
|
340 |
-
</div>
|
341 |
-
</form>
|
342 |
-
<br><br>
|
343 |
-
<form name="f" method="post" action="" id="mo2f_validateotp_form">
|
344 |
-
<input type="hidden" name="option" value="mo2f_configure_otp_over_sms_validate"/>
|
345 |
-
<input type="hidden" name="mo2f_session_id" value="<?php echo $session_id_encrypt ?>"/>
|
346 |
-
<input type="hidden" name="mo2f_configure_otp_over_email_validate_nonce"
|
347 |
-
value="<?php echo wp_create_nonce( "mo2f-configure-otp-over-email-validate-nonce" ) ?>"/>
|
348 |
-
<b><?php echo mo2f_lt( 'Enter One Time Passcode:' ); ?>
|
349 |
-
<input class="mo2f_table_textbox" style="width:200px;height: 30px;" autofocus="true" type="text" name="mo2f_otp_token" id ="mo2f_otp_token"
|
350 |
-
placeholder="<?php echo mo2f_lt( 'Enter OTP' ); ?>" style="width:95%;"/></b>
|
351 |
-
<br><br>
|
352 |
-
</form><br>
|
353 |
-
|
354 |
-
<?php
|
355 |
-
exit;
|
356 |
-
}
|
357 |
-
function mo_2fa_configure_KBA_setup_wizard()
|
358 |
-
{
|
359 |
-
?>
|
360 |
-
<div class="mo2f_kba_header"><?php echo mo2f_lt( 'Please choose 3 questions' ); ?></div>
|
361 |
-
<br>
|
362 |
-
<table cellspacing="10">
|
363 |
-
<tr class="mo2f_kba_header">
|
364 |
-
<th style="width: 10%;">
|
365 |
-
<?php echo mo2f_lt( 'Sr. No.' ); ?>
|
366 |
-
</th>
|
367 |
-
<th class="mo2f_kba_tb_data">
|
368 |
-
<?php echo mo2f_lt( 'Questions' ); ?>
|
369 |
-
</th>
|
370 |
-
<th>
|
371 |
-
<?php echo mo2f_lt( 'Answers' ); ?>
|
372 |
-
</th>
|
373 |
-
</tr>
|
374 |
-
<tr class="mo2f_kba_body">
|
375 |
-
<td>
|
376 |
-
<center>1.</center>
|
377 |
-
</td>
|
378 |
-
<td class="mo2f_kba_tb_data">
|
379 |
-
<select name="mo2f_kbaquestion_1" id="mo2f_kbaquestion_1" class="mo2f_kba_ques" required="true"
|
380 |
-
>
|
381 |
-
<option value="" selected="selected">
|
382 |
-
-------------------------<?php echo mo2f_lt( 'Select your question' ); ?>
|
383 |
-
-------------------------
|
384 |
-
</option>
|
385 |
-
<option id="mq1_1"
|
386 |
-
value="What is your first company name?"><?php echo mo2f_lt( 'What is your first company name?' ); ?></option>
|
387 |
-
<option id="mq2_1"
|
388 |
-
value="What was your childhood nickname?"><?php echo mo2f_lt( 'What was your childhood nickname?' ); ?></option>
|
389 |
-
<option id="mq3_1"
|
390 |
-
value="In what city did you meet your spouse/significant other?"><?php echo mo2f_lt( 'In what city did you meet your spouse/significant other?' ); ?></option>
|
391 |
-
<option id="mq4_1"
|
392 |
-
value="What is the name of your favorite childhood friend?"><?php echo mo2f_lt( 'What is the name of your favorite childhood friend?' ); ?></option>
|
393 |
-
<option id="mq5_1"
|
394 |
-
value="What school did you attend for sixth grade?"><?php echo mo2f_lt( 'What school did you attend for sixth grade?' ); ?></option>
|
395 |
-
<option id="mq6_1"
|
396 |
-
value="In what city or town was your first job?"><?php echo mo2f_lt( 'In what city or town was your first job?' ); ?></option>
|
397 |
-
<option id="mq7_1"
|
398 |
-
value="What is your favourite sport?"><?php echo mo2f_lt( 'What is your favourite sport?' ); ?></option>
|
399 |
-
<option id="mq8_1"
|
400 |
-
value="Who is your favourite sports player?"><?php echo mo2f_lt( 'Who is your favourite sports player?' ); ?></option>
|
401 |
-
<option id="mq9_1"
|
402 |
-
value="What is your grandmother's maiden name?"><?php echo mo2f_lt( "What is your grandmother's maiden name?" ); ?></option>
|
403 |
-
<option id="mq10_1"
|
404 |
-
value="What was your first vehicle's registration number?"><?php echo mo2f_lt( "What was your first vehicle's registration number?" ); ?></option>
|
405 |
-
</select>
|
406 |
-
</td>
|
407 |
-
<td style="text-align: end;">
|
408 |
-
<input class="mo2f_table_textbox_KBA" type="password" name="mo2f_kba_ans1" id="mo2f_kba_ans1"
|
409 |
-
title="<?php echo mo2f_lt( 'Only alphanumeric letters with special characters(_@.$#&+-) are allowed.' ); ?>"
|
410 |
-
pattern="(?=\S)[A-Za-z0-9_@.$#&+\-\s]{1,100}" required="true" autofocus="true"
|
411 |
-
placeholder="<?php echo mo2f_lt( 'Enter your answer' ); ?>"/>
|
412 |
-
</td>
|
413 |
-
</tr>
|
414 |
-
<tr class="mo2f_kba_body">
|
415 |
-
<td>
|
416 |
-
<center>2.</center>
|
417 |
-
</td>
|
418 |
-
<td class="mo2f_kba_tb_data">
|
419 |
-
<select name="mo2f_kbaquestion_2" id="mo2f_kbaquestion_2" class="mo2f_kba_ques" required="true"
|
420 |
-
>
|
421 |
-
<option value="" selected="selected">
|
422 |
-
-------------------------<?php echo mo2f_lt( 'Select your question' ); ?>
|
423 |
-
-------------------------
|
424 |
-
</option>
|
425 |
-
<option id="mq1_2"
|
426 |
-
value="What is your first company name?"><?php echo mo2f_lt( 'What is your first company name?' ); ?></option>
|
427 |
-
<option id="mq2_2"
|
428 |
-
value="What was your childhood nickname?"><?php echo mo2f_lt( 'What was your childhood nickname?' ); ?></option>
|
429 |
-
<option id="mq3_2"
|
430 |
-
value="In what city did you meet your spouse/significant other?"><?php echo mo2f_lt( 'In what city did you meet your spouse/significant other?' ); ?></option>
|
431 |
-
<option id="mq4_2"
|
432 |
-
value="What is the name of your favorite childhood friend?"><?php echo mo2f_lt( 'What is the name of your favorite childhood friend?' ); ?></option>
|
433 |
-
<option id="mq5_2"
|
434 |
-
value="What school did you attend for sixth grade?"><?php echo mo2f_lt( 'What school did you attend for sixth grade?' ); ?></option>
|
435 |
-
<option id="mq6_2"
|
436 |
-
value="In what city or town was your first job?"><?php echo mo2f_lt( 'In what city or town was your first job?' ); ?></option>
|
437 |
-
<option id="mq7_2"
|
438 |
-
value="What is your favourite sport?"><?php echo mo2f_lt( 'What is your favourite sport?' ); ?></option>
|
439 |
-
<option id="mq8_2"
|
440 |
-
value="Who is your favourite sports player?"><?php echo mo2f_lt( 'Who is your favourite sports player?' ); ?></option>
|
441 |
-
<option id="mq9_2"
|
442 |
-
value="What is your grandmother's maiden name?"><?php echo mo2f_lt( 'What is your grandmother\'s maiden name?' ); ?></option>
|
443 |
-
<option id="mq10_2"
|
444 |
-
value="What was your first vehicle's registration number?"><?php echo mo2f_lt( 'What was your first vehicle\'s registration number?' ); ?></option>
|
445 |
-
</select>
|
446 |
-
</td>
|
447 |
-
<td style="text-align: end;">
|
448 |
-
<input class="mo2f_table_textbox_KBA" type="password" name="mo2f_kba_ans2" id="mo2f_kba_ans2"
|
449 |
-
title="<?php echo mo2f_lt( 'Only alphanumeric letters with special characters(_@.$#&+-) are allowed.' ); ?>"
|
450 |
-
pattern="(?=\S)[A-Za-z0-9_@.$#&+\-\s]{1,100}" required="true"
|
451 |
-
placeholder="<?php echo mo2f_lt( 'Enter your answer' ); ?>"/>
|
452 |
-
</td>
|
453 |
-
</tr>
|
454 |
-
<tr class="mo2f_kba_body">
|
455 |
-
<td>
|
456 |
-
<center>3.</center>
|
457 |
-
</td>
|
458 |
-
<td class="mo2f_kba_tb_data">
|
459 |
-
<input class="mo2f_kba_ques" type="text" style="width: 100%;"name="mo2f_kbaquestion_3" id="mo2f_kbaquestion_3"
|
460 |
-
required="true"
|
461 |
-
placeholder="<?php echo mo2f_lt( 'Enter your custom question here' ); ?>"/>
|
462 |
-
</td>
|
463 |
-
<td style="text-align: end;">
|
464 |
-
<input class="mo2f_table_textbox_KBA" type="password" name="mo2f_kba_ans3" id="mo2f_kba_ans3"
|
465 |
-
title="<?php echo mo2f_lt( 'Only alphanumeric letters with special characters(_@.$#&+-) are allowed.' ); ?>"
|
466 |
-
pattern="(?=\S)[A-Za-z0-9_@.$#&+\-\s]{1,100}" required="true"
|
467 |
-
placeholder="<?php echo mo2f_lt( 'Enter your answer' ); ?>"/>
|
468 |
-
</td>
|
469 |
-
</tr>
|
470 |
-
</table>
|
471 |
-
<script type="text/javascript">
|
472 |
-
var mo_option_to_hide1;
|
473 |
-
//hidden element in dropdown list 2
|
474 |
-
var mo_option_to_hide2;
|
475 |
-
|
476 |
-
function mo_option_hide(list) {
|
477 |
-
//grab the team selected by the user in the dropdown list
|
478 |
-
var list_selected = document.getElementById("mo2f_kbaquestion_" + list).selectedIndex;
|
479 |
-
//if an element is currently hidden, unhide it
|
480 |
-
if (typeof (mo_option_to_hide1) != "undefined" && mo_option_to_hide1 !== null && list == 2) {
|
481 |
-
mo_option_to_hide1.style.display = 'block';
|
482 |
-
} else if (typeof (mo_option_to_hide2) != "undefined" && mo_option_to_hide2 !== null && list == 1) {
|
483 |
-
mo_option_to_hide2.style.display = 'block';
|
484 |
-
}
|
485 |
-
//select the element to hide and then hide it
|
486 |
-
if (list == 1) {
|
487 |
-
if (list_selected != 0) {
|
488 |
-
mo_option_to_hide2 = document.getElementById("mq" + list_selected + "_2");
|
489 |
-
mo_option_to_hide2.style.display = 'none';
|
490 |
-
}
|
491 |
-
}
|
492 |
-
if (list == 2) {
|
493 |
-
if (list_selected != 0) {
|
494 |
-
mo_option_to_hide1 = document.getElementById("mq" + list_selected + "_1");
|
495 |
-
mo_option_to_hide1.style.display = 'none';
|
496 |
-
}
|
497 |
-
}
|
498 |
-
}
|
499 |
-
|
500 |
-
|
501 |
-
</script>
|
502 |
-
|
503 |
-
<?php
|
504 |
-
exit;
|
505 |
-
}
|
506 |
-
|
507 |
-
function mo2f_register_customer($post)
|
508 |
-
{
|
509 |
-
//validate and sanitize
|
510 |
-
global $moWpnsUtility, $Mo2fdbQueries;
|
511 |
-
$user = wp_get_current_user();
|
512 |
-
$email = sanitize_email($post['email']);
|
513 |
-
$company = $_SERVER["SERVER_NAME"];
|
514 |
-
|
515 |
-
$password = $post['password'];
|
516 |
-
$confirmPassword = $post['confirmPassword'];
|
517 |
-
|
518 |
-
if( strlen( $password ) < 6 || strlen( $confirmPassword ) < 6)
|
519 |
-
{
|
520 |
-
return "Password length is less then expected";
|
521 |
-
}
|
522 |
-
|
523 |
-
if( $password != $confirmPassword )
|
524 |
-
{
|
525 |
-
return "Password and confirm Password does not match.";
|
526 |
-
}
|
527 |
-
if( MoWpnsUtility::check_empty_or_null( $email ) || MoWpnsUtility::check_empty_or_null( $password )
|
528 |
-
|| MoWpnsUtility::check_empty_or_null( $confirmPassword ) )
|
529 |
-
{
|
530 |
-
return "Unknown Error has occured.";
|
531 |
-
}
|
532 |
-
|
533 |
-
update_option( 'mo2f_email', $email );
|
534 |
-
|
535 |
-
update_option( 'mo_wpns_company' , $company );
|
536 |
-
|
537 |
-
update_option( 'mo_wpns_password' , $password );
|
538 |
-
|
539 |
-
$customer = new MocURL();
|
540 |
-
$content = json_decode($customer->check_customer($email), true);
|
541 |
-
$Mo2fdbQueries->insert_user( $user->ID );
|
542 |
-
|
543 |
-
switch ($content['status'])
|
544 |
-
{
|
545 |
-
case 'CUSTOMER_NOT_FOUND':
|
546 |
-
$customerKey = json_decode($customer->create_customer($email, $company, $password, $phone = '', $first_name = '', $last_name = ''), true);
|
547 |
-
|
548 |
-
if(strcasecmp($customerKey['status'], 'SUCCESS') == 0)
|
549 |
-
{
|
550 |
-
update_site_option(base64_encode("totalUsersCloud"),get_site_option(base64_encode("totalUsersCloud"))+1);
|
551 |
-
update_option( 'mo2f_email', $email );
|
552 |
-
$this->save_success_customer_config($email, $customerKey['id'], $customerKey['apiKey'], $customerKey['token'], $customerKey['appSecret']);
|
553 |
-
$this->_get_current_customer($email,$password);
|
554 |
-
return "SUCCESS";
|
555 |
-
}
|
556 |
-
|
557 |
break;
|
558 |
-
default:
|
559 |
-
$res = $this->_get_current_customer($email,$password);
|
560 |
-
if($res == "SUCCESS")
|
561 |
-
return $res;
|
562 |
-
return "Email is already registered in miniOrange. Please try to login to your account.";
|
563 |
-
|
564 |
-
}
|
565 |
-
|
566 |
-
}
|
567 |
-
function _verify_customer($post)
|
568 |
-
{
|
569 |
-
global $moWpnsUtility;
|
570 |
-
$email = sanitize_email( $post['email'] );
|
571 |
-
$password = sanitize_text_field( $post['password'] );
|
572 |
-
|
573 |
-
if( $moWpnsUtility->check_empty_or_null( $email ) || $moWpnsUtility->check_empty_or_null( $password ) )
|
574 |
-
{
|
575 |
-
return "Username or Password is missing.";
|
576 |
-
}
|
577 |
-
return $this->_get_current_customer($email,$password);
|
578 |
-
}
|
579 |
-
function _get_current_customer($email,$password)
|
580 |
-
{
|
581 |
-
global $Mo2fdbQueries;
|
582 |
-
$user = wp_get_current_user();
|
583 |
-
$customer = new MocURL();
|
584 |
-
$content = $customer->get_customer_key($email, $password);
|
585 |
-
$customerKey = json_decode($content, true);
|
586 |
-
if(json_last_error() == JSON_ERROR_NONE)
|
587 |
-
{
|
588 |
-
if(isset($customerKey['phone'])){
|
589 |
-
update_option( 'mo_wpns_admin_phone', $customerKey['phone'] );
|
590 |
-
}
|
591 |
-
update_option('mo2f_email',$email);
|
592 |
-
|
593 |
-
$this->save_success_customer_config($email, $customerKey['id'], $customerKey['apiKey'], $customerKey['token'], $customerKey['appSecret']);
|
594 |
-
update_site_option(base64_encode("totalUsersCloud"),get_site_option(base64_encode("totalUsersCloud"))+1);
|
595 |
-
$customerT = new Customer_Cloud_Setup();
|
596 |
-
$content = json_decode( $customerT->get_customer_transactions( get_option( 'mo2f_customerKey' ), get_option( 'mo2f_api_key' ),'PREMIUM' ), true );
|
597 |
-
if($content['status'] == 'SUCCESS')
|
598 |
-
{
|
599 |
-
update_site_option('mo2f_license_type','PREMIUM');
|
600 |
-
}
|
601 |
-
else
|
602 |
-
{
|
603 |
-
update_site_option('mo2f_license_type','DEMO');
|
604 |
-
$content = json_decode( $customerT->get_customer_transactions( get_option( 'mo2f_customerKey' ), get_option( 'mo2f_api_key' ),'DEMO' ), true );
|
605 |
-
}
|
606 |
-
if(isset($content['smsRemaining']))
|
607 |
-
update_site_option('cmVtYWluaW5nT1RQVHJhbnNhY3Rpb25z',$content['smsRemaining']);
|
608 |
-
else if($content['status'] =='SUCCESS')
|
609 |
-
update_site_option('cmVtYWluaW5nT1RQVHJhbnNhY3Rpb25z',0);
|
610 |
-
|
611 |
-
if(isset($content['emailRemaining']))
|
612 |
-
{
|
613 |
-
if($content['emailRemaining']>30)
|
614 |
-
{
|
615 |
-
$currentTransaction = $content['emailRemaining'];
|
616 |
-
update_site_option('cmVtYWluaW5nT1RQ',$currentTransaction);
|
617 |
-
update_site_option('EmailTransactionCurrent',$content['emailRemaining']);
|
618 |
-
}
|
619 |
-
else if($content['emailRemaining'] == 10 and get_site_option('cmVtYWluaW5nT1RQ')>30)
|
620 |
-
{
|
621 |
-
update_site_option('cmVtYWluaW5nT1RQ',30);
|
622 |
-
}
|
623 |
-
}
|
624 |
-
return "SUCCESS";
|
625 |
-
}
|
626 |
-
else
|
627 |
-
{
|
628 |
-
update_option('mo_2factor_user_registration_status','MO_2_FACTOR_VERIFY_CUSTOMER' );
|
629 |
-
update_option('mo_wpns_verify_customer', 'true');
|
630 |
-
delete_option('mo_wpns_new_registration');
|
631 |
-
return "Invalid Username or Password";
|
632 |
}
|
633 |
}
|
634 |
-
|
635 |
-
|
636 |
-
function save_success_customer_config($email, $id, $apiKey, $token, $appSecret)
|
637 |
-
{
|
638 |
-
global $Mo2fdbQueries;
|
639 |
-
|
640 |
-
$user = wp_get_current_user();
|
641 |
-
update_option( 'mo2f_customerKey' , $id );
|
642 |
-
update_option( 'mo2f_api_key' , $apiKey );
|
643 |
-
update_option( 'mo2f_customer_token' , $token );
|
644 |
-
update_option( 'mo2f_app_secret' , $appSecret );
|
645 |
-
update_option( 'mo_wpns_enable_log_requests' , true );
|
646 |
-
update_option( 'mo2f_miniorange_admin', $user->ID );
|
647 |
-
update_option( 'mo_2factor_admin_registration_status', 'MO_2_FACTOR_CUSTOMER_REGISTERED_SUCCESS' );
|
648 |
-
update_option( 'mo_2factor_user_registration_status', 'MO_2_FACTOR_PLUGIN_SETTINGS' );
|
649 |
-
|
650 |
-
$Mo2fdbQueries->update_user_details( $user->ID, array(
|
651 |
-
'mo2f_user_email' => $email,
|
652 |
-
'user_registration_with_miniorange' => 'SUCCESS'
|
653 |
-
) );
|
654 |
-
$enduser = new Two_Factor_Setup();
|
655 |
-
$userinfo = json_decode( $enduser->mo2f_get_userinfo( $email ), true );
|
656 |
-
|
657 |
-
|
658 |
-
delete_option( 'mo_wpns_verify_customer' );
|
659 |
-
delete_option( 'mo_wpns_registration_status' );
|
660 |
-
delete_option( 'mo_wpns_password' );
|
661 |
-
}
|
662 |
-
|
663 |
-
function mo_wpns_register_verify_customer()
|
664 |
-
{
|
665 |
-
$res ="";
|
666 |
-
if(isset($_POST['Login_and_Continue']) && $_POST['Login_and_Continue'] =='Login and Continue')
|
667 |
-
$res = $this->_verify_customer($_POST);
|
668 |
-
|
669 |
-
else
|
670 |
-
$res = $this->mo2f_register_customer($_POST);
|
671 |
-
wp_send_json($res);
|
672 |
-
}
|
673 |
-
function mo2f_select_method_setup_wizard()
|
674 |
{
|
675 |
global $Mo2fdbQueries;
|
676 |
if(!wp_verify_nonce(sanitize_text_field($_POST['nonce']),'miniorange-select-method-setup-wizard'))
|
@@ -711,90 +92,17 @@ class mo_2f_ajax
|
|
711 |
update_user_meta( $current_user->ID, 'configure_2FA', 1);
|
712 |
wp_send_json("SUCCESS");
|
713 |
}
|
714 |
-
function
|
715 |
-
|
716 |
-
if
|
717 |
-
|
718 |
-
|
719 |
-
wp_send_json_error($error);
|
720 |
-
exit;
|
721 |
-
}
|
722 |
-
global $Mo2fdbQueries;
|
723 |
-
$transient_id=sanitize_text_field($_POST['transient_id']);
|
724 |
-
$user_id = MO2f_Utility::mo2f_get_transient($transient_id, 'mo2f_user_id');
|
725 |
-
if(empty($user_id)){
|
726 |
-
wp_send_json('UserIdNotFound');
|
727 |
-
}
|
728 |
-
$user = get_user_by('id',$user_id);
|
729 |
-
$email = !empty($Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id ))?$Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id ):$user->user_email;
|
730 |
-
$otpToken=sanitize_text_field($_POST['code']);
|
731 |
-
$customer = new Customer_Setup();
|
732 |
-
$content = json_decode( $customer->validate_otp_token( 'SOFT TOKEN', $email, null, $otpToken, get_option( 'mo2f_customerKey' ), get_option( 'mo2f_api_key' ) ), true );
|
733 |
-
wp_send_json($content);
|
734 |
-
}
|
735 |
-
function mo2f_set_otp_over_sms(){
|
736 |
-
$nonce = sanitize_text_field($_POST['nonce']);
|
737 |
-
if ( ! wp_verify_nonce( $nonce, 'mo2f-update-mobile-nonce' ) ) {
|
738 |
-
$error = new WP_Error();
|
739 |
-
$error->add( 'empty_username', '<strong>' . mo2f_lt( 'ERROR' ) . '</strong>: ' . mo2f_lt( 'Invalid Request.' ) );
|
740 |
-
wp_send_json_error($error);
|
741 |
-
exit;
|
742 |
-
}
|
743 |
-
global $Mo2fdbQueries;
|
744 |
-
$transient_id=sanitize_text_field($_POST['transient_id']);
|
745 |
-
$user_id = MO2f_Utility::mo2f_get_transient($transient_id, 'mo2f_user_id');
|
746 |
-
if(empty($user_id)){
|
747 |
-
wp_send_json('UserIdNotFound');
|
748 |
-
}
|
749 |
-
$user = get_user_by('id',$user_id);
|
750 |
-
$new_phone = sanitize_text_field($_POST['phone']);
|
751 |
-
$new_phone = str_replace(' ','',$new_phone);
|
752 |
-
$Mo2fdbQueries->update_user_details($user_id, array("mo2f_user_phone" => $new_phone) );
|
753 |
-
$user_phone = $Mo2fdbQueries->get_user_detail( 'mo2f_user_phone', $user_id );
|
754 |
-
wp_send_json($user_phone);
|
755 |
-
}
|
756 |
-
function mo2f_set_GA(){
|
757 |
-
$nonce = sanitize_text_field($_POST['nonce']);
|
758 |
-
if ( ! wp_verify_nonce( $nonce, 'mo2f-update-mobile-nonce' ) ) {
|
759 |
-
$error = new WP_Error();
|
760 |
-
$error->add( 'empty_username', '<strong>' . mo2f_lt( 'ERROR' ) . '</strong>: ' . mo2f_lt( 'Invalid Request.' ) );
|
761 |
-
wp_send_json_error($error);
|
762 |
exit;
|
763 |
}
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
$user_id = MO2f_Utility::mo2f_get_transient($transient_id, 'mo2f_user_id');
|
768 |
-
if(empty($user_id)){
|
769 |
-
wp_send_json('UserIdNotFound');
|
770 |
-
}
|
771 |
-
$google_auth = new Miniorange_Rba_Attributes();
|
772 |
-
$user = get_user_by('id',$user_id);
|
773 |
-
$email = !empty($Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id ))?$Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user_id ):$user->user_email;
|
774 |
-
$otpToken = sanitize_text_field($_POST['code']);
|
775 |
-
$ga_secret = sanitize_text_field($_POST['ga_secret']);
|
776 |
-
if(MO2F_IS_ONPREM){
|
777 |
-
$gauth_obj = new Google_auth_onpremise();
|
778 |
-
$gauth_obj->mo_GAuth_set_secret($user_id, $ga_secret);
|
779 |
-
}else{
|
780 |
-
|
781 |
-
$google_auth = new Miniorange_Rba_Attributes();
|
782 |
-
$google_response = json_decode( $google_auth->mo2f_google_auth_service( $email, 'miniOrangeAu' ), true );
|
783 |
-
}
|
784 |
-
$google_response = json_decode($google_auth->mo2f_validate_google_auth($email,$otpToken,$ga_secret),true);
|
785 |
-
wp_send_json($google_response['status']);
|
786 |
}
|
787 |
-
function mo2f_ajax_login_redirect()
|
788 |
-
{
|
789 |
-
if(!wp_verify_nonce(sanitize_text_field($_POST['nonce']),'miniorange-2-factor-login-nonce'))
|
790 |
-
{
|
791 |
-
wp_send_json("ERROR");
|
792 |
-
exit;
|
793 |
-
}
|
794 |
-
$username = sanitize_text_field($_POST['username']);
|
795 |
-
$password = $_POST['password'];
|
796 |
-
apply_filters( 'authenticate', null, $username, $password );
|
797 |
-
}
|
798 |
function mo2f_save_custom_form_settings()
|
799 |
{
|
800 |
|
@@ -1053,23 +361,6 @@ function mo2f_shift_to_onprem(){
|
|
1053 |
wp_send_json('false');
|
1054 |
}
|
1055 |
}
|
1056 |
-
function mo2f_enable_disable_configurd_methods(){
|
1057 |
-
$nonce = sanitize_text_field($_POST['nonce']);
|
1058 |
-
|
1059 |
-
if ( ! wp_verify_nonce( $nonce, 'WAFsettingNonce_configurd_methods' ) ) {
|
1060 |
-
wp_send_json_error("error");
|
1061 |
-
}
|
1062 |
-
$enable = sanitize_text_field($_POST['mo2f_nonce_enable_configured_methods']);
|
1063 |
-
|
1064 |
-
if($enable == 'true'){
|
1065 |
-
update_site_option('mo2f_nonce_enable_configured_methods' ,true);
|
1066 |
-
wp_send_json('true');
|
1067 |
-
}
|
1068 |
-
else{
|
1069 |
-
update_site_option('mo2f_nonce_enable_configured_methods' , false);
|
1070 |
-
wp_send_json('false');
|
1071 |
-
}
|
1072 |
-
}
|
1073 |
|
1074 |
function mo2f_role_based_2_factor(){
|
1075 |
if ( !wp_verify_nonce($_POST['nonce'],'unlimittedUserNonce') ){
|
12 |
}
|
13 |
|
14 |
function mo_two_factor_ajax(){
|
15 |
+
|
16 |
$GLOBALS['mo2f_is_ajax_request'] = true;
|
17 |
switch ($_POST['mo_2f_two_factor_ajax']) {
|
18 |
case 'mo2f_ajax_login_redirect':
|
33 |
$this->mo2f_enable_disable_twofactor(); break;
|
34 |
case 'mo2f_enable_disable_inline':
|
35 |
$this->mo2f_enable_disable_inline(); break;
|
|
|
|
|
36 |
case 'mo2f_shift_to_onprem':
|
37 |
$this->mo2f_shift_to_onprem();break;
|
38 |
case 'mo2f_enable_disable_twofactor_prompt_on_login':
|
46 |
case 'mo2f_delete_log_file':
|
47 |
$this->mo2f_delete_log_file();
|
48 |
break;
|
49 |
+
case 'select_method_setup_wizard':
|
50 |
+
$this->select_method_setup_wizard();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
}
|
54 |
+
function select_method_setup_wizard()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
{
|
56 |
global $Mo2fdbQueries;
|
57 |
if(!wp_verify_nonce(sanitize_text_field($_POST['nonce']),'miniorange-select-method-setup-wizard'))
|
92 |
update_user_meta( $current_user->ID, 'configure_2FA', 1);
|
93 |
wp_send_json("SUCCESS");
|
94 |
}
|
95 |
+
function mo2f_ajax_login_redirect()
|
96 |
+
{
|
97 |
+
if(!wp_verify_nonce(sanitize_text_field($_POST['nonce']),'miniorange-2-factor-login-nonce'))
|
98 |
+
{
|
99 |
+
wp_send_json("ERROR");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
exit;
|
101 |
}
|
102 |
+
$username = sanitize_text_field($_POST['username']);
|
103 |
+
$password = $_POST['password'];
|
104 |
+
apply_filters( 'authenticate', null, $username, $password );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
function mo2f_save_custom_form_settings()
|
107 |
{
|
108 |
|
361 |
wp_send_json('false');
|
362 |
}
|
363 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
364 |
|
365 |
function mo2f_role_based_2_factor(){
|
366 |
if ( !wp_verify_nonce($_POST['nonce'],'unlimittedUserNonce') ){
|
controllers/upgrade.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
include $mo2f_dirName . 'views'.DIRECTORY_SEPARATOR.'upgrade.php';
|
3 |
MoWpnsUtility::checkSecurity();
|
4 |
-
update_site_option("mo_2fa_pnp",time());
|
5 |
-
update_site_option("mo2fa_visit",intval(get_site_option("mo2fa_visit",0))+1);
|
1 |
<?php
|
2 |
include $mo2f_dirName . 'views'.DIRECTORY_SEPARATOR.'upgrade.php';
|
3 |
MoWpnsUtility::checkSecurity();
|
4 |
+
update_site_option("mo_2fa_pnp",time());
|
|
controllers/wpns-loginsecurity-ajax.php
CHANGED
@@ -4,7 +4,7 @@ class wpns_ajax
|
|
4 |
function __construct(){
|
5 |
//add comment here
|
6 |
add_action( 'admin_init' , array( $this, 'mo_login_security_ajax' ) );
|
7 |
-
|
8 |
}
|
9 |
|
10 |
function mo_login_security_ajax(){
|
@@ -25,27 +25,6 @@ class wpns_ajax
|
|
25 |
$this->mo2f_ajax_otp(); break;
|
26 |
}
|
27 |
}
|
28 |
-
function mo2fa_elementor_ajax_fun()
|
29 |
-
{
|
30 |
-
|
31 |
-
if (isset( $_POST['miniorange_elementor_login_nonce'])){
|
32 |
-
$nonce = sanitize_text_field($_POST['miniorange_elementor_login_nonce']);
|
33 |
-
if ( ! wp_verify_nonce( $nonce, 'miniorange-2-factor-login-nonce' ) ){
|
34 |
-
wp_send_json('ERROR');
|
35 |
-
}
|
36 |
-
if(isset($_POST['mo2fa_elementor_user_password']) && !empty($_POST['mo2fa_elementor_user_password']) && isset($_POST['mo2fa_elementor_user_name']))
|
37 |
-
{
|
38 |
-
$info = array();
|
39 |
-
$info['user_login'] = sanitize_text_field($_POST['mo2fa_elementor_user_name']);
|
40 |
-
$info['user_password'] = $_POST['mo2fa_elementor_user_password'];
|
41 |
-
$info['remember'] = false;
|
42 |
-
$user_signon = wp_signon($info, false);
|
43 |
-
if (is_wp_error($user_signon)) {
|
44 |
-
wp_send_json(array('loggedin'=>false, 'message'=>__('Wrong username or password.')));
|
45 |
-
}
|
46 |
-
}
|
47 |
-
}
|
48 |
-
}
|
49 |
function wpns_login_security(){
|
50 |
switch($_POST['wpns_loginsecurity_ajax'])
|
51 |
{
|
@@ -85,15 +64,15 @@ class wpns_ajax
|
|
85 |
function update_plan(){
|
86 |
$mo2f_all_plannames = $_POST['planname'];
|
87 |
$mo_2fa_plan_type = $_POST['planType'];
|
88 |
-
|
89 |
if ($mo2f_all_plannames == 'addon_plan')
|
90 |
{
|
91 |
-
|
92 |
update_site_option('mo_2fa_addon_plan_type',$mo_2fa_plan_type);
|
93 |
}
|
94 |
elseif ($mo2f_all_plannames == '2fa_plan')
|
95 |
{
|
96 |
-
|
97 |
update_site_option('mo_2fa_plan_type',$mo_2fa_plan_type);
|
98 |
}
|
99 |
}
|
@@ -216,15 +195,15 @@ class wpns_ajax
|
|
216 |
{
|
217 |
$mo2f_all_plannames = $_POST['planname'];
|
218 |
$mo_2fa_plan_type = $_POST['planType'];
|
219 |
-
|
220 |
if ($mo2f_all_plannames == 'addon_plan')
|
221 |
{
|
222 |
-
|
223 |
update_site_option('mo_2fa_addon_plan_type',$mo_2fa_plan_type);
|
224 |
}
|
225 |
elseif ($mo2f_all_plannames == '2fa_plan')
|
226 |
{
|
227 |
-
|
228 |
update_site_option('mo_2fa_plan_type',$mo_2fa_plan_type);
|
229 |
}
|
230 |
}
|
4 |
function __construct(){
|
5 |
//add comment here
|
6 |
add_action( 'admin_init' , array( $this, 'mo_login_security_ajax' ) );
|
7 |
+
|
8 |
}
|
9 |
|
10 |
function mo_login_security_ajax(){
|
25 |
$this->mo2f_ajax_otp(); break;
|
26 |
}
|
27 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
function wpns_login_security(){
|
29 |
switch($_POST['wpns_loginsecurity_ajax'])
|
30 |
{
|
64 |
function update_plan(){
|
65 |
$mo2f_all_plannames = $_POST['planname'];
|
66 |
$mo_2fa_plan_type = $_POST['planType'];
|
67 |
+
update_option('mo2f_planname', $mo2f_all_plannames);
|
68 |
if ($mo2f_all_plannames == 'addon_plan')
|
69 |
{
|
70 |
+
update_option('mo2f_planname', 'addon_plan');
|
71 |
update_site_option('mo_2fa_addon_plan_type',$mo_2fa_plan_type);
|
72 |
}
|
73 |
elseif ($mo2f_all_plannames == '2fa_plan')
|
74 |
{
|
75 |
+
update_option('mo2f_planname', '2fa_plan');
|
76 |
update_site_option('mo_2fa_plan_type',$mo_2fa_plan_type);
|
77 |
}
|
78 |
}
|
195 |
{
|
196 |
$mo2f_all_plannames = $_POST['planname'];
|
197 |
$mo_2fa_plan_type = $_POST['planType'];
|
198 |
+
update_option('mo2f_planname', $mo2f_all_plannames);
|
199 |
if ($mo2f_all_plannames == 'addon_plan')
|
200 |
{
|
201 |
+
update_option('mo2f_planname', 'addon_plan');
|
202 |
update_site_option('mo_2fa_addon_plan_type',$mo_2fa_plan_type);
|
203 |
}
|
204 |
elseif ($mo2f_all_plannames == '2fa_plan')
|
205 |
{
|
206 |
+
update_option('mo2f_planname', '2fa_plan');
|
207 |
update_site_option('mo_2fa_plan_type',$mo_2fa_plan_type);
|
208 |
}
|
209 |
}
|
database/database_functions_2fa.php
CHANGED
@@ -211,6 +211,7 @@ class Mo2fDB {
|
|
211 |
);
|
212 |
return $count;
|
213 |
}
|
|
|
214 |
function get_all_user_2fa_methods() {
|
215 |
global $wpdb;
|
216 |
$all_methods = [];
|
@@ -321,11 +322,6 @@ class Mo2fDB {
|
|
321 |
|
322 |
return $value == '' ? '' : $value[ $column_name ];
|
323 |
}
|
324 |
-
function get_user_configured_methods( $user_id ) {
|
325 |
-
global $wpdb;
|
326 |
-
$user_methods_detail = $wpdb->get_results( "SELECT * FROM " . $this->userDetailsTable . " WHERE user_id = " . $user_id . ";" );
|
327 |
-
return $user_methods_detail;
|
328 |
-
}
|
329 |
|
330 |
function delete_user_login_sessions($session_id ) {
|
331 |
global $wpdb;
|
211 |
);
|
212 |
return $count;
|
213 |
}
|
214 |
+
|
215 |
function get_all_user_2fa_methods() {
|
216 |
global $wpdb;
|
217 |
$all_methods = [];
|
322 |
|
323 |
return $value == '' ? '' : $value[ $column_name ];
|
324 |
}
|
|
|
|
|
|
|
|
|
|
|
325 |
|
326 |
function delete_user_login_sessions($session_id ) {
|
327 |
global $wpdb;
|
database/mo2f_db_options.php
CHANGED
@@ -21,7 +21,6 @@ $GLOBALS['scheduled_db_backup'] = 0;
|
|
21 |
$GLOBALS['file_backup_created_time'] = 0;
|
22 |
$GLOBALS['db_backup_created_time'] = 0;
|
23 |
$GLOBALS['mo2f_inline_registration'] = 1;
|
24 |
-
$GLOBALS['mo2f_nonce_enable_configured_methods'] = true;
|
25 |
$GLOBALS['mo_database_backup'] = 1;
|
26 |
$GLOBALS['mo_wpns_scan_initialize'] = 1;
|
27 |
$GLOBALS['mo_file_manual_backup_plugins'] = 1;
|
@@ -37,4 +36,3 @@ $GLOBALS['mo2f_is_NC'] = 1;
|
|
37 |
$GLOBALS['mo2f_is_NNC'] = 1;
|
38 |
$GLOBALS['mo2f_enforce_strong_passswords'] = false;
|
39 |
$GLOBALS['mo2f_enable_debug_log'] = 0;
|
40 |
-
$GLOBALS['mo2f_trial_query_sent'] = false;
|
21 |
$GLOBALS['file_backup_created_time'] = 0;
|
22 |
$GLOBALS['db_backup_created_time'] = 0;
|
23 |
$GLOBALS['mo2f_inline_registration'] = 1;
|
|
|
24 |
$GLOBALS['mo_database_backup'] = 1;
|
25 |
$GLOBALS['mo_wpns_scan_initialize'] = 1;
|
26 |
$GLOBALS['mo_file_manual_backup_plugins'] = 1;
|
36 |
$GLOBALS['mo2f_is_NNC'] = 1;
|
37 |
$GLOBALS['mo2f_enforce_strong_passswords'] = false;
|
38 |
$GLOBALS['mo2f_enable_debug_log'] = 0;
|
|
handler/ajax.php
CHANGED
@@ -41,10 +41,6 @@ class AjaxHandler
|
|
41 |
case "plugin_warning_never_show_again":
|
42 |
$this->wpns_plugin_warning_never_show_again();
|
43 |
break;
|
44 |
-
|
45 |
-
case "mo2f_banner_never_show_again":
|
46 |
-
$this->wpns_mo2f_banner_never_show_again();
|
47 |
-
break;
|
48 |
|
49 |
case "dismissSms":
|
50 |
$this->wpns_sms_notice(); break;
|
@@ -60,8 +56,6 @@ class AjaxHandler
|
|
60 |
|
61 |
case "dismisscodeswarning":
|
62 |
$this->mo2f_backup_codes_dismiss(); break;
|
63 |
-
|
64 |
-
|
65 |
}
|
66 |
}
|
67 |
}
|
@@ -144,12 +138,6 @@ class AjaxHandler
|
|
144 |
wp_send_json('success');
|
145 |
}
|
146 |
|
147 |
-
function wpns_mo2f_banner_never_show_again(){
|
148 |
-
update_site_option('mo2f_banner_never_show_again', 1);
|
149 |
-
wp_send_json('success');
|
150 |
-
}
|
151 |
-
|
152 |
-
|
153 |
function wpns_dismiss_firewall_notice(){
|
154 |
update_site_option('waf_notification_option', 1);
|
155 |
update_site_option('notice_dismiss_time',time());
|
@@ -181,7 +169,7 @@ class AjaxHandler
|
|
181 |
update_user_meta($user_id, 'donot_show_backup_code_notice' , 1);
|
182 |
wp_send_json('success');
|
183 |
}
|
184 |
-
|
185 |
|
186 |
|
187 |
}new AjaxHandler;
|
41 |
case "plugin_warning_never_show_again":
|
42 |
$this->wpns_plugin_warning_never_show_again();
|
43 |
break;
|
|
|
|
|
|
|
|
|
44 |
|
45 |
case "dismissSms":
|
46 |
$this->wpns_sms_notice(); break;
|
56 |
|
57 |
case "dismisscodeswarning":
|
58 |
$this->mo2f_backup_codes_dismiss(); break;
|
|
|
|
|
59 |
}
|
60 |
}
|
61 |
}
|
138 |
wp_send_json('success');
|
139 |
}
|
140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
function wpns_dismiss_firewall_notice(){
|
142 |
update_site_option('waf_notification_option', 1);
|
143 |
update_site_option('notice_dismiss_time',time());
|
169 |
update_user_meta($user_id, 'donot_show_backup_code_notice' , 1);
|
170 |
wp_send_json('success');
|
171 |
}
|
172 |
+
|
173 |
|
174 |
|
175 |
}new AjaxHandler;
|
handler/logger.php
CHANGED
@@ -14,7 +14,6 @@ class mo2f_Logger
|
|
14 |
global $moWpnsUtility;
|
15 |
$mo_wpns_config = new MoWpnsHandler();
|
16 |
$userIp = $moWpnsUtility->get_client_ip();
|
17 |
-
$userIp = sanitize_text_field( $userIp );
|
18 |
$url = $moWpnsUtility->get_current_url();
|
19 |
$user = wp_get_current_user();
|
20 |
$username = is_user_logged_in() ? $user->user_login : 'GUEST';
|
@@ -29,7 +28,6 @@ class mo2f_Logger
|
|
29 |
return;
|
30 |
$mo_wpns_config = new MoWpnsHandler();
|
31 |
$userIp = $moWpnsUtility->get_client_ip();
|
32 |
-
$userIp = sanitize_text_field( $userIp );
|
33 |
$url = $moWpnsUtility->get_current_url();
|
34 |
$user = wp_get_current_user();
|
35 |
$username = is_user_logged_in() ? $user->user_login : 'GUEST';
|
14 |
global $moWpnsUtility;
|
15 |
$mo_wpns_config = new MoWpnsHandler();
|
16 |
$userIp = $moWpnsUtility->get_client_ip();
|
|
|
17 |
$url = $moWpnsUtility->get_current_url();
|
18 |
$user = wp_get_current_user();
|
19 |
$username = is_user_logged_in() ? $user->user_login : 'GUEST';
|
28 |
return;
|
29 |
$mo_wpns_config = new MoWpnsHandler();
|
30 |
$userIp = $moWpnsUtility->get_client_ip();
|
|
|
31 |
$url = $moWpnsUtility->get_current_url();
|
32 |
$user = wp_get_current_user();
|
33 |
$username = is_user_logged_in() ? $user->user_login : 'GUEST';
|
handler/login.php
CHANGED
@@ -35,10 +35,7 @@ class LoginHandler
|
|
35 |
|
36 |
function mo_wpns_init()
|
37 |
{
|
38 |
-
|
39 |
-
add_action( 'edit_user_profile', array($this,'twofa_on_user_profile') ,10,3);
|
40 |
-
add_action( 'personal_options_update', array( $this, 'user_two_factor_options_update' ) ,10,3);
|
41 |
-
add_action( 'edit_user_profile_update', array( $this, 'user_two_factor_options_update' ) ,10,3);
|
42 |
global $moWpnsUtility,$mo2f_dirName;
|
43 |
$WAFEnabled = get_option('WAFEnabled');
|
44 |
$WAFLevel = get_option('WAF');
|
@@ -54,12 +51,15 @@ class LoginHandler
|
|
54 |
{
|
55 |
if(file_exists($mo2f_dirName .'handler'.DIRECTORY_SEPARATOR.'WAF'.DIRECTORY_SEPARATOR.'mo-waf-plugin.php'))
|
56 |
include_once($mo2f_dirName .'handler'.DIRECTORY_SEPARATOR.'WAF'.DIRECTORY_SEPARATOR.'mo-waf-plugin.php');
|
|
|
|
|
|
|
|
|
57 |
}
|
58 |
}
|
59 |
|
60 |
|
61 |
$userIp = $moWpnsUtility->get_client_ip();
|
62 |
-
$userIp = sanitize_text_field( $userIp );
|
63 |
$mo_wpns_config = new MoWpnsHandler();
|
64 |
$isWhitelisted = $mo_wpns_config->is_whitelisted($userIp);
|
65 |
$isIpBlocked = false;
|
@@ -113,44 +113,39 @@ class LoginHandler
|
|
113 |
}
|
114 |
|
115 |
}
|
116 |
-
function twofa_on_user_profile( $user ) {
|
117 |
-
global $mo2f_dirName;
|
118 |
-
if(file_exists($mo2f_dirName .'handler'.DIRECTORY_SEPARATOR.'user-profile-2fa.php')){
|
119 |
-
include_once($mo2f_dirName .'handler'.DIRECTORY_SEPARATOR.'user-profile-2fa.php');
|
120 |
-
}
|
121 |
-
}
|
122 |
-
function user_two_factor_options_update( $user ) {
|
123 |
-
global $mo2f_dirName;
|
124 |
-
if(file_exists($mo2f_dirName .'handler'.DIRECTORY_SEPARATOR.'user-profile-2fa-update.php')){
|
125 |
-
include_once($mo2f_dirName .'handler'.DIRECTORY_SEPARATOR.'user-profile-2fa-update.php');
|
126 |
-
}
|
127 |
-
}
|
128 |
|
129 |
function mo2f_IP_email_send()
|
130 |
{
|
131 |
-
global $moWpnsUtility
|
132 |
$userIp = $moWpnsUtility->get_client_ip();
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
if (empty($email)) {
|
140 |
-
$email = $user->user_email;
|
141 |
-
}
|
142 |
-
$check_Ip = get_user_meta($user->ID,$meta_key)[0];
|
143 |
|
144 |
if ($check_Ip != $userIp)
|
145 |
-
{
|
|
|
|
|
146 |
$subject ="Alert: New IP Detected";
|
147 |
$message = mo_IP_template();
|
148 |
$headers=array('Content-Type: text/html; charset=UTF-8');
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
}
|
155 |
|
156 |
function wooc_validate_user_captcha_register($username, $email, $validation_errors) {
|
@@ -291,7 +286,7 @@ class LoginHandler
|
|
291 |
|
292 |
$mo_wpns_config = new MoWpnsHandler();
|
293 |
$userIp = $moWpnsUtility->get_client_ip();
|
294 |
-
|
295 |
$mo_wpns_config->move_failed_transactions_to_past_failed($userIp);
|
296 |
|
297 |
if(get_option('mo_wpns_enable_unusual_activity_email_to_user'))
|
@@ -335,7 +330,7 @@ class LoginHandler
|
|
335 |
{
|
336 |
global $moWpnsUtility;
|
337 |
$userIp = $moWpnsUtility->get_client_ip();
|
338 |
-
|
339 |
if(empty($userIp) || empty($username) || !MoWpnsUtility::get_mo2f_db_option('mo2f_enable_brute_force', 'get_option'))
|
340 |
return;
|
341 |
|
35 |
|
36 |
function mo_wpns_init()
|
37 |
{
|
38 |
+
|
|
|
|
|
|
|
39 |
global $moWpnsUtility,$mo2f_dirName;
|
40 |
$WAFEnabled = get_option('WAFEnabled');
|
41 |
$WAFLevel = get_option('WAF');
|
51 |
{
|
52 |
if(file_exists($mo2f_dirName .'handler'.DIRECTORY_SEPARATOR.'WAF'.DIRECTORY_SEPARATOR.'mo-waf-plugin.php'))
|
53 |
include_once($mo2f_dirName .'handler'.DIRECTORY_SEPARATOR.'WAF'.DIRECTORY_SEPARATOR.'mo-waf-plugin.php');
|
54 |
+
else
|
55 |
+
{
|
56 |
+
//UNable to find file. Please reconfigure.
|
57 |
+
}
|
58 |
}
|
59 |
}
|
60 |
|
61 |
|
62 |
$userIp = $moWpnsUtility->get_client_ip();
|
|
|
63 |
$mo_wpns_config = new MoWpnsHandler();
|
64 |
$isWhitelisted = $mo_wpns_config->is_whitelisted($userIp);
|
65 |
$isIpBlocked = false;
|
113 |
}
|
114 |
|
115 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
117 |
function mo2f_IP_email_send()
|
118 |
{
|
119 |
+
global $moWpnsUtility;
|
120 |
$userIp = $moWpnsUtility->get_client_ip();
|
121 |
+
|
122 |
+
if(!get_site_option('mo2f_user_IP'))
|
123 |
+
{
|
124 |
+
update_site_option('mo2f_user_IP',$userIp );
|
125 |
+
}
|
126 |
+
$check_Ip = get_site_option('mo2f_user_IP');
|
|
|
|
|
|
|
|
|
127 |
|
128 |
if ($check_Ip != $userIp)
|
129 |
+
{
|
130 |
+
|
131 |
+
$email = get_option('admin_email');
|
132 |
$subject ="Alert: New IP Detected";
|
133 |
$message = mo_IP_template();
|
134 |
$headers=array('Content-Type: text/html; charset=UTF-8');
|
135 |
+
if(empty($email))
|
136 |
+
{
|
137 |
+
$user = wp_get_current_user();
|
138 |
+
$email = $user->user_email;
|
139 |
+
}
|
140 |
+
if(is_email($email))
|
141 |
+
{
|
142 |
+
|
143 |
+
wp_mail( $email,$subject,$message,$headers);
|
144 |
+
|
145 |
+
}
|
146 |
+
|
147 |
+
}
|
148 |
+
|
149 |
}
|
150 |
|
151 |
function wooc_validate_user_captcha_register($username, $email, $validation_errors) {
|
286 |
|
287 |
$mo_wpns_config = new MoWpnsHandler();
|
288 |
$userIp = $moWpnsUtility->get_client_ip();
|
289 |
+
|
290 |
$mo_wpns_config->move_failed_transactions_to_past_failed($userIp);
|
291 |
|
292 |
if(get_option('mo_wpns_enable_unusual_activity_email_to_user'))
|
330 |
{
|
331 |
global $moWpnsUtility;
|
332 |
$userIp = $moWpnsUtility->get_client_ip();
|
333 |
+
|
334 |
if(empty($userIp) || empty($username) || !MoWpnsUtility::get_mo2f_db_option('mo2f_enable_brute_force', 'get_option'))
|
335 |
return;
|
336 |
|
handler/recaptcha.php
CHANGED
@@ -24,7 +24,6 @@
|
|
24 |
if(array_key_exists('g-recaptcha-response',$_POST))
|
25 |
{
|
26 |
$userIp = $moWpnsUtility->get_client_ip();
|
27 |
-
$userIp = sanitize_text_field( $userIp );
|
28 |
$mocURL = new MocURL;
|
29 |
$response = $mocURL->validate_recaptcha($userIp,sanitize_text_field($_POST['g-recaptcha-response']));
|
30 |
$content = json_decode($response, true);
|
@@ -42,7 +41,6 @@
|
|
42 |
if(array_key_exists('g-recaptcha-response',$_REQUEST))
|
43 |
{
|
44 |
$userIp = $moWpnsUtility->get_client_ip();
|
45 |
-
$userIp = sanitize_text_field( $userIp );
|
46 |
$mocURL = new MocURL;
|
47 |
|
48 |
$response = $mocURL->get_Captcha_v3($_REQUEST['g-recaptcha-response']);
|
@@ -136,7 +134,6 @@
|
|
136 |
{
|
137 |
global $moWpnsUtility;
|
138 |
$userIp = $moWpnsUtility->get_client_ip();
|
139 |
-
$userIp = sanitize_text_field( $userIp );
|
140 |
$mocURL = new MocURL;
|
141 |
$response = $mocURL->validate_recaptcha($userIp,$response);
|
142 |
$content = json_decode($response, true);
|
@@ -148,7 +145,6 @@
|
|
148 |
{
|
149 |
global $moWpnsUtility;
|
150 |
$userIp = $moWpnsUtility->get_client_ip();
|
151 |
-
$userIp = sanitize_text_field( $userIp );
|
152 |
$mocURL = new MocURL;
|
153 |
$response = $mocURL->get_Captcha_v3($response);
|
154 |
$content = json_decode($response, true);
|
24 |
if(array_key_exists('g-recaptcha-response',$_POST))
|
25 |
{
|
26 |
$userIp = $moWpnsUtility->get_client_ip();
|
|
|
27 |
$mocURL = new MocURL;
|
28 |
$response = $mocURL->validate_recaptcha($userIp,sanitize_text_field($_POST['g-recaptcha-response']));
|
29 |
$content = json_decode($response, true);
|
41 |
if(array_key_exists('g-recaptcha-response',$_REQUEST))
|
42 |
{
|
43 |
$userIp = $moWpnsUtility->get_client_ip();
|
|
|
44 |
$mocURL = new MocURL;
|
45 |
|
46 |
$response = $mocURL->get_Captcha_v3($_REQUEST['g-recaptcha-response']);
|
134 |
{
|
135 |
global $moWpnsUtility;
|
136 |
$userIp = $moWpnsUtility->get_client_ip();
|
|
|
137 |
$mocURL = new MocURL;
|
138 |
$response = $mocURL->validate_recaptcha($userIp,$response);
|
139 |
$content = json_decode($response, true);
|
145 |
{
|
146 |
global $moWpnsUtility;
|
147 |
$userIp = $moWpnsUtility->get_client_ip();
|
|
|
148 |
$mocURL = new MocURL;
|
149 |
$response = $mocURL->get_Captcha_v3($response);
|
150 |
$content = json_decode($response, true);
|
handler/twofa/class_miniorange_2fa_strong_password.php
CHANGED
@@ -20,7 +20,7 @@ class class_miniorange_2fa_strong_password {
|
|
20 |
}
|
21 |
public static function validatePassword($errors, $update, $userData){
|
22 |
$Users = MoWpnsUtility::get_mo2f_db_option('mo2f_enforce_strong_passswords_for_accounts', 'get_option');
|
23 |
-
$UserRole
|
24 |
if(is_null($UserRole) and $Users == 'user')
|
25 |
{
|
26 |
return true;
|
20 |
}
|
21 |
public static function validatePassword($errors, $update, $userData){
|
22 |
$Users = MoWpnsUtility::get_mo2f_db_option('mo2f_enforce_strong_passswords_for_accounts', 'get_option');
|
23 |
+
$UserRole = $_POST['role'];
|
24 |
if(is_null($UserRole) and $Users == 'user')
|
25 |
{
|
26 |
return true;
|
handler/twofa/gaonprem.php
CHANGED
@@ -6,7 +6,7 @@ class Google_auth_onpremise{
|
|
6 |
|
7 |
}
|
8 |
|
9 |
-
function mo_GAuth_get_details(
|
10 |
{
|
11 |
|
12 |
$user=wp_get_current_user();
|
@@ -28,16 +28,10 @@ class Google_auth_onpremise{
|
|
28 |
$email=$user->user_email;
|
29 |
$otpcode=$this->getCode($secret_ga);
|
30 |
$url=$this->geturl($secret_ga ,$issuer,$email);
|
31 |
-
if(!$setupWizard)
|
32 |
-
{
|
33 |
echo '<div class="mo2f_table_layout">';
|
34 |
mo2f_configure_google_authenticator_onprem( $secret_ga ,$url,$otpcode, $session_id_encrypt );
|
35 |
echo '</div>';
|
36 |
-
|
37 |
-
else
|
38 |
-
{
|
39 |
-
mo2f_configure_google_authenticator_setupWizard($secret_ga ,$url,$otpcode, $session_id_encrypt);
|
40 |
-
}
|
41 |
}
|
42 |
|
43 |
function mo_GAuth_set_secret($user_id,$secret){
|
6 |
|
7 |
}
|
8 |
|
9 |
+
function mo_GAuth_get_details()
|
10 |
{
|
11 |
|
12 |
$user=wp_get_current_user();
|
28 |
$email=$user->user_email;
|
29 |
$otpcode=$this->getCode($secret_ga);
|
30 |
$url=$this->geturl($secret_ga ,$issuer,$email);
|
|
|
|
|
31 |
echo '<div class="mo2f_table_layout">';
|
32 |
mo2f_configure_google_authenticator_onprem( $secret_ga ,$url,$otpcode, $session_id_encrypt );
|
33 |
echo '</div>';
|
34 |
+
|
|
|
|
|
|
|
|
|
35 |
}
|
36 |
|
37 |
function mo_GAuth_set_secret($user_id,$secret){
|
handler/twofa/setup_twofa.php
CHANGED
@@ -81,11 +81,10 @@
|
|
81 |
|
82 |
function mo2f_create_2fa_form( $user, $category, $auth_methods, $can_display_admin_features='' ) {
|
83 |
global $Mo2fdbQueries;
|
84 |
-
|
85 |
$miniorange_authenticator = array(
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
);
|
90 |
$all_two_factor_methods = array(
|
91 |
"miniOrange Authenticator",
|
@@ -120,6 +119,7 @@
|
|
120 |
$two_factor_methods_doc = array(
|
121 |
"Security Questions" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/step-by-setup-guide-to-set-up-security-question",
|
122 |
"Google Authenticator" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/google-authenticator",
|
|
|
123 |
"Email Verification" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/email_verification",
|
124 |
"miniOrange Soft Token" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/step-by-setup-guide-to-set-up-miniorange-soft-token",
|
125 |
"miniOrange Push Notification" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/step-by-setup-guide-to-set-up-miniorange-push-notification",
|
@@ -134,7 +134,7 @@
|
|
134 |
$two_factor_methods_video = array(
|
135 |
"Security Questions" => "https://www.youtube.com/watch?v=pXPqQ047o-0",
|
136 |
"Google Authenticator" => "https://www.youtube.com/watch?v=BS6tY-Goa1Q",
|
137 |
-
"miniOrange Authenticator"
|
138 |
"Email Verification" => "https://www.youtube.com/watch?v=OacJWBYx_AE",
|
139 |
"miniOrange Soft Token" => "https://www.youtube.com/watch?v=9HV8V4f80k8",
|
140 |
"miniOrange Push Notification" => "https://www.youtube.com/watch?v=it_dAhFcxvw",
|
@@ -312,23 +312,6 @@
|
|
312 |
|
313 |
break;
|
314 |
|
315 |
-
case 'miniOrange Authenticator':
|
316 |
-
$form .=' <span style="float:right">';
|
317 |
-
if(isset($two_factor_methods_doc[$auth_method])){
|
318 |
-
$form .='<a href='.$two_factor_methods_doc[$auth_method].' target="_blank">
|
319 |
-
<span title="View Setup Guide" class="dashicons dashicons-text-page" style="font-size:19px;color:#413c69;float: right;"></span>
|
320 |
-
</a>';
|
321 |
-
}
|
322 |
-
|
323 |
-
if(isset($two_factor_methods_video[$auth_method])){
|
324 |
-
$form .='<a href='.$two_factor_methods_video[$auth_method].' target="_blank">
|
325 |
-
<span title="Watch Setup Video" class="dashicons dashicons-video-alt3" style="font-size:18px;color:red;float: right;margin-right: 5px;"></span>
|
326 |
-
</a>';
|
327 |
-
}
|
328 |
-
|
329 |
-
$form .='</span>';
|
330 |
-
break;
|
331 |
-
|
332 |
case 'miniOrange QR Code Authentication':
|
333 |
$form .=' <span style="float:right">
|
334 |
<a href='.$two_factor_methods_doc[$auth_method].' target="_blank">
|
@@ -402,7 +385,7 @@
|
|
402 |
if($auth_method_abr == 'miniOrangeAuthenticator'){
|
403 |
$is_auth_method_configured = $Mo2fdbQueries->get_user_detail( 'mo2f_miniOrangeSoftToken_config_status', $user->ID );
|
404 |
}else{
|
405 |
-
|
406 |
}
|
407 |
if(($auth_method == 'OUT OF BAND EMAIL' or $auth_method == 'OTP Over Email') and !MO2F_IS_ONPREM )
|
408 |
$is_auth_method_configured = 1;
|
@@ -466,15 +449,15 @@
|
|
466 |
$form .= $can_user_configure_2fa_method ? "" : " disabled ";
|
467 |
$form .= $show==1 ? "" : " disabled ";
|
468 |
if($show == 1 and $is_auth_method_configured and $iscurrentMethod == 0){
|
469 |
-
|
470 |
-
|
471 |
}else{
|
472 |
$form .= '
|
473 |
</button>
|
474 |
</div>';
|
475 |
-
}
|
476 |
}
|
477 |
-
|
|
|
478 |
}
|
479 |
else
|
480 |
{
|
@@ -516,7 +499,6 @@
|
|
516 |
<option value="miniOrangePushNotification">Push Notification</option>
|
517 |
</select></div>
|
518 |
<br><br>
|
519 |
-
|
520 |
';
|
521 |
}
|
522 |
$form .= '</div>';
|
81 |
|
82 |
function mo2f_create_2fa_form( $user, $category, $auth_methods, $can_display_admin_features='' ) {
|
83 |
global $Mo2fdbQueries;
|
|
|
84 |
$miniorange_authenticator = array(
|
85 |
+
"miniOrange QR Code Authentication",
|
86 |
+
"miniOrange Soft Token",
|
87 |
+
"miniOrange Push Notification",
|
88 |
);
|
89 |
$all_two_factor_methods = array(
|
90 |
"miniOrange Authenticator",
|
119 |
$two_factor_methods_doc = array(
|
120 |
"Security Questions" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/step-by-setup-guide-to-set-up-security-question",
|
121 |
"Google Authenticator" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/google-authenticator",
|
122 |
+
"miniOrange Authenticator" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/step-by-setup-guide-to-set-up-miniorange-QR-code",
|
123 |
"Email Verification" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/email_verification",
|
124 |
"miniOrange Soft Token" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/step-by-setup-guide-to-set-up-miniorange-soft-token",
|
125 |
"miniOrange Push Notification" => "https://developers.miniorange.com/docs/security/wordpress/wp-security/step-by-setup-guide-to-set-up-miniorange-push-notification",
|
134 |
$two_factor_methods_video = array(
|
135 |
"Security Questions" => "https://www.youtube.com/watch?v=pXPqQ047o-0",
|
136 |
"Google Authenticator" => "https://www.youtube.com/watch?v=BS6tY-Goa1Q",
|
137 |
+
"miniOrange Authenticator" => "https://www.youtube.com/watch?v=IPYizmgzTd8",
|
138 |
"Email Verification" => "https://www.youtube.com/watch?v=OacJWBYx_AE",
|
139 |
"miniOrange Soft Token" => "https://www.youtube.com/watch?v=9HV8V4f80k8",
|
140 |
"miniOrange Push Notification" => "https://www.youtube.com/watch?v=it_dAhFcxvw",
|
312 |
|
313 |
break;
|
314 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
case 'miniOrange QR Code Authentication':
|
316 |
$form .=' <span style="float:right">
|
317 |
<a href='.$two_factor_methods_doc[$auth_method].' target="_blank">
|
385 |
if($auth_method_abr == 'miniOrangeAuthenticator'){
|
386 |
$is_auth_method_configured = $Mo2fdbQueries->get_user_detail( 'mo2f_miniOrangeSoftToken_config_status', $user->ID );
|
387 |
}else{
|
388 |
+
$is_auth_method_configured = $Mo2fdbQueries->get_user_detail( 'mo2f_' . $auth_method_abr . '_config_status', $user->ID );
|
389 |
}
|
390 |
if(($auth_method == 'OUT OF BAND EMAIL' or $auth_method == 'OTP Over Email') and !MO2F_IS_ONPREM )
|
391 |
$is_auth_method_configured = 1;
|
449 |
$form .= $can_user_configure_2fa_method ? "" : " disabled ";
|
450 |
$form .= $show==1 ? "" : " disabled ";
|
451 |
if($show == 1 and $is_auth_method_configured and $iscurrentMethod == 0){
|
452 |
+
$form .= '>Set as 2-factor</button>
|
453 |
+
</div>';
|
454 |
}else{
|
455 |
$form .= '
|
456 |
</button>
|
457 |
</div>';
|
|
|
458 |
}
|
459 |
+
}
|
460 |
+
|
461 |
}
|
462 |
else
|
463 |
{
|
499 |
<option value="miniOrangePushNotification">Push Notification</option>
|
500 |
</select></div>
|
501 |
<br><br>
|
|
|
502 |
';
|
503 |
}
|
504 |
$form .= '</div>';
|
handler/twofa/two_fa_constants.php
CHANGED
@@ -273,19 +273,6 @@ class Mo2fConstants {
|
|
273 |
case 'ANSWER_SECURITY_QUESTIONS':
|
274 |
Return mo2f_lt( 'Please answer the following security questions.' );
|
275 |
break;
|
276 |
-
|
277 |
-
case 'BACKUP_CODE_LIMIT_REACH':
|
278 |
-
Return mo2f_lt( 'You have already downloaded the backup codes for this domain.' );
|
279 |
-
break;
|
280 |
-
case 'BACKUP_CODE_DOMAIN_LIMIT_REACH':
|
281 |
-
Return mo2f_lt( 'User Limit is reached for your domain.' );
|
282 |
-
break;
|
283 |
-
case 'BACKUP_CODE_INVALID_REQUEST':
|
284 |
-
Return mo2f_lt( 'Invalid request.' );
|
285 |
-
break;
|
286 |
-
case 'USED_ALL_BACKUP_CODES':
|
287 |
-
Return mo2f_lt( 'You have used all of the backup codes' );
|
288 |
-
break;
|
289 |
case 'RESET_DUO_CONFIGURATON':
|
290 |
Return mo2f_lt( 'Your Duo configuration has been reset successfully.' );
|
291 |
break;
|
273 |
case 'ANSWER_SECURITY_QUESTIONS':
|
274 |
Return mo2f_lt( 'Please answer the following security questions.' );
|
275 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
case 'RESET_DUO_CONFIGURATON':
|
277 |
Return mo2f_lt( 'Your Duo configuration has been reset successfully.' );
|
278 |
break;
|
handler/twofa/two_fa_login.php
CHANGED
@@ -173,7 +173,7 @@ class Miniorange_Mobile_Login {
|
|
173 |
function mo_2_factor_hide_login() {
|
174 |
$bootstrappath = plugins_url( 'includes/css/bootstrap.min.css?version='.MO2F_VERSION.'', dirname(dirname(__FILE__)) );
|
175 |
$bootstrappath = str_replace('/handler/includes/css', '/includes/css', $bootstrappath);
|
176 |
-
$hidepath = plugins_url( 'includes/css/hide-login-form.css?version=5.
|
177 |
$hidepath = str_replace('/handler/includes/css', '/includes/css', $hidepath);
|
178 |
|
179 |
wp_register_style( 'hide-login', $hidepath );
|
@@ -270,7 +270,7 @@ class Miniorange_Mobile_Login {
|
|
270 |
}
|
271 |
|
272 |
function mo_2_factor_show_login_with_password_when_phonelogin_enabled() {
|
273 |
-
wp_register_style( 'show-login', plugins_url( 'includes/css/show-login.css?version=5.
|
274 |
wp_enqueue_style( 'show-login' );
|
275 |
}
|
276 |
|
@@ -291,9 +291,9 @@ class Miniorange_Mobile_Login {
|
|
291 |
}
|
292 |
|
293 |
function mo_2_factor_show_login() {
|
294 |
-
$hidepath = plugins_url( 'includes/css/hide-login-form.css?version=5.
|
295 |
|
296 |
-
$showpath = plugins_url( 'includes/css/show-login.css?version=5.
|
297 |
|
298 |
if ( get_option( 'mo2f_enable_login_with_2nd_factor' ) ) {
|
299 |
wp_register_style( 'show-login', $hidepath );
|
@@ -338,22 +338,20 @@ class Miniorange_Mobile_Login {
|
|
338 |
function mouserloginsubmit() {
|
339 |
var username = jQuery('#mo2fa_usernamekey').val();
|
340 |
var recap = jQuery('#g-recaptcha-response').val();
|
341 |
-
|
342 |
-
document.getElementById("
|
343 |
-
document.getElementById("
|
344 |
|
345 |
-
jQuery('#
|
346 |
-
|
347 |
}
|
348 |
|
349 |
jQuery('#mo2fa_usernamekey').keypress(function (e) {
|
350 |
if (e.which == 13) {//Enter key pressed
|
351 |
e.preventDefault();
|
352 |
var username = jQuery('#mo2fa_usernamekey').val();
|
353 |
-
|
354 |
-
|
355 |
-
jQuery('#mo2fa-g-recaptcha-response-form').submit();
|
356 |
-
}
|
357 |
}
|
358 |
|
359 |
});
|
@@ -377,7 +375,7 @@ class Miniorange_Mobile_Login {
|
|
377 |
<input type="hidden" id="sessids" name="session_id"
|
378 |
value="<?php echo $session_id_encrypt; ?>"/>
|
379 |
</form>
|
380 |
-
<form name="f" id="
|
381 |
<input type="text" name="mo2fa_username" id="mo2fa_username" hidden/>
|
382 |
<input type="text" name="g-recaptcha-response" id = 'g-recaptcha-response' hidden/>
|
383 |
<input type="hidden" name="miniorange_login_nonce"
|
@@ -390,7 +388,6 @@ class Miniorange_Mobile_Login {
|
|
390 |
var session_ids="<?php echo $session_id_encrypt; ?>";
|
391 |
if (document.getElementById('loginform') != null) {
|
392 |
jQuery("#user_pass").after( "<input type='hidden' id='sessid' name='session_id' value='"+session_ids+"'/>");
|
393 |
-
jQuery(".wp-hide-pw").addClass('mo2fa_visible');
|
394 |
|
395 |
}
|
396 |
});
|
173 |
function mo_2_factor_hide_login() {
|
174 |
$bootstrappath = plugins_url( 'includes/css/bootstrap.min.css?version='.MO2F_VERSION.'', dirname(dirname(__FILE__)) );
|
175 |
$bootstrappath = str_replace('/handler/includes/css', '/includes/css', $bootstrappath);
|
176 |
+
$hidepath = plugins_url( 'includes/css/hide-login-form.css?version=5.1.21', dirname(dirname(__FILE__)) );
|
177 |
$hidepath = str_replace('/handler/includes/css', '/includes/css', $hidepath);
|
178 |
|
179 |
wp_register_style( 'hide-login', $hidepath );
|
270 |
}
|
271 |
|
272 |
function mo_2_factor_show_login_with_password_when_phonelogin_enabled() {
|
273 |
+
wp_register_style( 'show-login', plugins_url( 'includes/css/show-login.css?version=5.1.21', dirname(dirname(__FILE__ ))) );
|
274 |
wp_enqueue_style( 'show-login' );
|
275 |
}
|
276 |
|
291 |
}
|
292 |
|
293 |
function mo_2_factor_show_login() {
|
294 |
+
$hidepath = plugins_url( 'includes/css/hide-login-form.css?version=5.1.21', dirname(dirname(__FILE__)) );
|
295 |
|
296 |
+
$showpath = plugins_url( 'includes/css/show-login.css?version=5.1.21', dirname(dirname(__FILE__ )));
|
297 |
|
298 |
if ( get_option( 'mo2f_enable_login_with_2nd_factor' ) ) {
|
299 |
wp_register_style( 'show-login', $hidepath );
|
338 |
function mouserloginsubmit() {
|
339 |
var username = jQuery('#mo2fa_usernamekey').val();
|
340 |
var recap = jQuery('#g-recaptcha-response').val();
|
341 |
+
|
342 |
+
document.getElementById("mo2f_show_qrcode_loginform").elements[0].value = username;
|
343 |
+
document.getElementById("mo2f_show_qrcode_loginform").elements[1].value = recap;
|
344 |
|
345 |
+
jQuery('#mo2f_show_qrcode_loginform').submit();
|
346 |
+
|
347 |
}
|
348 |
|
349 |
jQuery('#mo2fa_usernamekey').keypress(function (e) {
|
350 |
if (e.which == 13) {//Enter key pressed
|
351 |
e.preventDefault();
|
352 |
var username = jQuery('#mo2fa_usernamekey').val();
|
353 |
+
document.getElementById("mo2f_show_qrcode_loginform").elements[0].value = username;
|
354 |
+
jQuery('#mo2f_show_qrcode_loginform').submit();
|
|
|
|
|
355 |
}
|
356 |
|
357 |
});
|
375 |
<input type="hidden" id="sessids" name="session_id"
|
376 |
value="<?php echo $session_id_encrypt; ?>"/>
|
377 |
</form>
|
378 |
+
<form name="f" id="mo2f_show_qrcode_loginform" method="post" action="" hidden>
|
379 |
<input type="text" name="mo2fa_username" id="mo2fa_username" hidden/>
|
380 |
<input type="text" name="g-recaptcha-response" id = 'g-recaptcha-response' hidden/>
|
381 |
<input type="hidden" name="miniorange_login_nonce"
|
388 |
var session_ids="<?php echo $session_id_encrypt; ?>";
|
389 |
if (document.getElementById('loginform') != null) {
|
390 |
jQuery("#user_pass").after( "<input type='hidden' id='sessid' name='session_id' value='"+session_ids+"'/>");
|
|
|
391 |
|
392 |
}
|
393 |
});
|
handler/twofa/two_fa_pass2login.php
CHANGED
@@ -174,67 +174,40 @@ class Miniorange_Password_2Factor_Login {
|
|
174 |
}
|
175 |
$backup_codes=get_user_meta($currentuser_id,'mo2f_backup_codes',true);
|
176 |
$mo2f_backup_code= sanitize_text_field($POSTED[ 'mo2f_backup_code' ]);
|
177 |
-
$
|
178 |
-
|
179 |
-
if(!empty($backup_codes)){
|
180 |
-
$mo2f_backup_code = md5($mo2f_backup_code);
|
181 |
if(in_array($mo2f_backup_code,$backup_codes)){
|
182 |
foreach ($backup_codes as $key => $value) {
|
183 |
if($value==$mo2f_backup_code){
|
184 |
unset($backup_codes[$key]);
|
185 |
update_user_meta($currentuser_id,'mo2f_backup_codes', $backup_codes);
|
186 |
-
$this->mo2fa_pass2login($redirect_to, $session_id_encrypt);
|
187 |
}
|
188 |
}
|
189 |
-
}else{
|
190 |
-
$mo2fa_login_message = __('The code you provided is already used or incorrect.','miniorange-2-factor-authentication');
|
191 |
-
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_BACKUP';
|
192 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null, $session_id_encrypt);
|
193 |
-
}
|
194 |
-
}else{
|
195 |
-
|
196 |
-
if(isset($mo2f_backup_code)){
|
197 |
-
$generate_backup_code = new Customer_Cloud_Setup();
|
198 |
-
$data = $generate_backup_code->mo2f_validate_backup_codes($mo2f_backup_code,$mo2f_user_email);
|
199 |
-
|
200 |
-
if( $data == 'success'){
|
201 |
-
$this->mo2fa_pass2login($redirect_to, $session_id_encrypt);
|
202 |
-
}else if($data == 'error_in_validation'){
|
203 |
-
$mo2fa_login_message = __('Error occurred while validating the backup codes.','miniorange-2-factor-authentication');
|
204 |
-
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_BACKUP';
|
205 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null, $session_id_encrypt);
|
206 |
-
}else if($data == 'used_code'){
|
207 |
-
$mo2fa_login_message = __('The code you provided is already used or incorrect.','miniorange-2-factor-authentication');
|
208 |
-
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_BACKUP';
|
209 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null, $session_id_encrypt);
|
210 |
-
}else if($data == 'total_code_used'){
|
211 |
-
$mo2fa_login_message = __('You have used all the backup codes. Please contact <a herf="mailto:2fasupport@xecurify.com">2fasupport@xecurify.com</a>','miniorange-2-factor-authentication');
|
212 |
-
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_BACKUP';
|
213 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null, $session_id_encrypt);
|
214 |
-
}else if($data == 'backup_code_not_generated'){
|
215 |
-
$mo2fa_login_message = __('Backup code has not generated for you.','miniorange-2-factor-authentication');
|
216 |
-
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_BACKUP';
|
217 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null, $session_id_encrypt);
|
218 |
-
}else if($data == 'DBConnectionerror'){
|
219 |
-
$mo2fa_login_message = __('Error occurred while establising connection.','miniorange-2-factor-authentication');
|
220 |
-
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_BACKUP';
|
221 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null, $session_id_encrypt);
|
222 |
-
|
223 |
-
}else if($data == 'missingparameter'){
|
224 |
-
$mo2fa_login_message = __('Some parameters are missing while validating backup codes.');
|
225 |
-
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_BACKUP';
|
226 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null, $session_id_encrypt);
|
227 |
-
}
|
228 |
-
|
229 |
-
|
230 |
-
}else{
|
231 |
-
$mo2fa_login_message = __('Please enter backup code.','miniorange-2-factor-authentication');
|
232 |
-
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_BACKUP';
|
233 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null, $session_id_encrypt);
|
234 |
-
}
|
235 |
-
}
|
236 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
}else{
|
239 |
$this->remove_current_activity($session_id_encrypt);
|
240 |
return new WP_Error('invalid_username', '<strong>'. __('ERROR','miniorange-2-factor-authentication') . '</strong>: ' . __('Please try again..', 'miniorange-2-factor-authentication'));
|
@@ -254,41 +227,18 @@ class Miniorange_Password_2Factor_Login {
|
|
254 |
$redirect_to = esc_url_raw($_POST['redirect_to']);
|
255 |
$session_id = sanitize_text_field($_POST['session_id']);
|
256 |
$id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_get_transient($session_id, 'mo2f_current_user_id');
|
257 |
-
|
258 |
-
|
259 |
-
$currentuser = get_user_by( 'id', $id );
|
260 |
-
$mo2f_user_email = $currentuser->user_email;
|
261 |
-
}
|
262 |
-
$generate_backup_code = new Customer_Cloud_Setup();
|
263 |
-
$codes=$generate_backup_code->mo_2f_generate_backup_codes($mo2f_user_email, site_url());
|
264 |
-
if($codes == 'AllUsed'){
|
265 |
-
$mo2fa_login_message = "You have already used all the backup codes for this user and domain.";
|
266 |
-
$mo2fa_login_status = sanitize_text_field($_POST['login_status']);
|
267 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null ,$session_id);
|
268 |
-
}else if($codes == 'UserLimitReached') {
|
269 |
-
$mo2fa_login_message = "Backup code generation limit has reached for this domain.";
|
270 |
-
$mo2fa_login_status = sanitize_text_field($_POST['login_status']);
|
271 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null ,$session_id);
|
272 |
-
}else if($codes == 'LimitReached'){
|
273 |
-
$mo2fa_login_message = "backup code generation limit has reached for this user.";
|
274 |
-
$mo2fa_login_status = sanitize_text_field($_POST['login_status']);
|
275 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null ,$session_id);
|
276 |
-
}else if($codes == 'invalid_request'){
|
277 |
-
$mo2fa_login_message = "Invalid request.";
|
278 |
-
$mo2fa_login_status = sanitize_text_field($_POST['login_status']);
|
279 |
-
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null ,$session_id);
|
280 |
-
}
|
281 |
-
$codes = explode(' ', $codes);
|
282 |
$codes_hash=MO2f_Utility::mo2f_get_codes_hash($codes);
|
283 |
$str1="";
|
284 |
-
for ($x = 0; $x <
|
285 |
$str = $codes[$x];
|
286 |
$str1.=$str;
|
287 |
if($x != 4){
|
288 |
$str1.=',';
|
289 |
}
|
290 |
}
|
291 |
-
|
292 |
$key = get_option( 'mo2f_encryption_key' );
|
293 |
$codes_encrypt = MO2f_Utility::encrypt_data($str1, $key);
|
294 |
update_user_meta($id,'chqwetcsdvnvd', $codes_encrypt);
|
@@ -956,21 +906,8 @@ class Miniorange_Password_2Factor_Login {
|
|
956 |
}
|
957 |
update_user_meta($current_user->ID,'mo2f_external_app_type','GOOGLE AUTHENTICATOR');
|
958 |
$mo2fa_login_status = 'MO_2_FACTOR_SETUP_SUCCESS';
|
959 |
-
|
960 |
-
//When user sets method of another admin from USers section.
|
961 |
-
if(!empty(get_user_meta($current_user->ID,'mo2fa_set_Authy_inline'))){
|
962 |
-
$Mo2fdbQueries->update_user_details( $current_user->ID, array(
|
963 |
-
'mo2f_GoogleAuthenticator_config_status' => false,
|
964 |
-
'mo2f_AuthyAuthenticator_config_status' => true,
|
965 |
-
'mo2f_configured_2FA_method' => "Authy Authenticator",
|
966 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
967 |
-
'mo_2factor_user_registration_status' => 'MO_2_FACTOR_PLUGIN_SETTINGS'
|
968 |
-
) );
|
969 |
-
update_user_meta( $current_user->ID, 'mo2f_external_app_type', "Authy Authenticator" );
|
970 |
-
delete_user_meta($current_user->ID ,'mo2fa_set_Authy_inline');
|
971 |
-
}
|
972 |
}else{
|
973 |
-
$mo2fa_login_message = __('An error occured while
|
974 |
}
|
975 |
}else{
|
976 |
$mo2fa_login_message = __('An error occured while processing your request. Please Try again.','miniorange-2-factor-authentication');
|
@@ -1786,7 +1723,6 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
1786 |
$current_user = get_userdata($user_id);
|
1787 |
//if the php session folder has insufficient permissions, cookies to be used
|
1788 |
$mo2f_login_transaction_id = MO2f_Utility::mo2f_get_transient($session_id_encrypt, 'mo2f_transactionId');
|
1789 |
-
$mo2f_login_transaction_id = isset($_POST['mo2fa_transaction_id'])?sanitize_text_field($_POST['mo2fa_transaction_id']):MO2f_Utility::mo2f_get_transient($session_id_encrypt, 'mo2f_transactionId');
|
1790 |
MO2f_Utility::mo2f_debug_file('Transaction_id-'.$mo2f_login_transaction_id.' User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$user_id.' Email-'.$user_email);
|
1791 |
if ( isset( $mo2fa_login_status ) && $mo2fa_login_status == 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL' ) {
|
1792 |
$content = json_decode( $customer->validate_otp_token( 'EMAIL', null, $mo2f_login_transaction_id, $softtoken, get_option( 'mo2f_customerKey' ), get_option( 'mo2f_api_key' ),$current_user ), true );
|
@@ -1880,6 +1816,7 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
1880 |
$this->remove_current_activity($session_id_encrypt);
|
1881 |
return new WP_Error( 'invalid_username', __( '<strong>ERROR</strong>: Invalid Request. Please try again.' ) );
|
1882 |
}
|
|
|
1883 |
if ( strcasecmp( $content['status'], 'SUCCESS' ) == 0 ) {
|
1884 |
update_option('mo2f_attempts_before_redirect', 3);
|
1885 |
if ( get_option( 'mo2f_remember_device' ) ) {
|
@@ -1948,6 +1885,7 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
1948 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
1949 |
}
|
1950 |
function miniorange_pass2login_redirect() {
|
|
|
1951 |
do_action('mo2f_network_init');
|
1952 |
global $Mo2fdbQueries;
|
1953 |
|
@@ -2078,28 +2016,6 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
2078 |
}
|
2079 |
|
2080 |
}
|
2081 |
-
if(isset($_GET['reconfigureMethod']) && is_user_logged_in()){
|
2082 |
-
$userIDGet = get_current_user_id();
|
2083 |
-
$txidGet = isset($_GET['transactionId'])?sanitize_text_field($_GET['transactionId']):'';
|
2084 |
-
$methodGet = isset($_GET['reconfigureMethod'])?sanitize_text_field($_GET['reconfigureMethod']):'';
|
2085 |
-
if(get_site_option($txidGet) === $userIDGet && ctype_xdigit($txidGet) && ctype_xdigit($methodGet)){
|
2086 |
-
$method = get_site_option($methodGet);
|
2087 |
-
$Mo2fdbQueries->update_user_details( $userIDGet, array(
|
2088 |
-
'mo_2factor_user_registration_status' =>'MO_2_FACTOR_CUSTOMER_REGISTERED_SUCCESS',
|
2089 |
-
'mo2f_configured_2FA_method' => $method
|
2090 |
-
) );
|
2091 |
-
$is_Authy_configured = $Mo2fdbQueries->get_user_detail('mo2f_AuthyAuthenticator_config_status',$userIDGet);
|
2092 |
-
if($method == 'Google Authenticator' || $is_Authy_configured){
|
2093 |
-
update_user_meta($userIDGet,'mo2fa_set_Authy_inline',true);
|
2094 |
-
}
|
2095 |
-
delete_site_option($txidGet);
|
2096 |
-
}else{
|
2097 |
-
$head = "You are not authorized to perform this action";
|
2098 |
-
$body = "Please contact to your admin";
|
2099 |
-
$this->display_email_verification($head,$body,'red');
|
2100 |
-
exit();
|
2101 |
-
}
|
2102 |
-
}
|
2103 |
if(isset($_GET['Txid'])&&isset($_GET['accessToken']))
|
2104 |
{
|
2105 |
$userIDGet = sanitize_text_field($_GET['userID']);
|
@@ -2187,11 +2103,6 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
2187 |
case 'miniorange_rba_validate':
|
2188 |
$this->check_rba_validation($_POST);
|
2189 |
break;
|
2190 |
-
case 'miniorange_mfactor_method':
|
2191 |
-
$current_userID= MO2f_Utility::mo2f_get_transient($_POST['session_id'], 'mo2f_current_user_id');
|
2192 |
-
$currentuser = get_user_by('id',$current_userID);
|
2193 |
-
$this->mo2fa_select_method($currentuser, sanitize_text_field($_POST['mo2f_selected_mfactor_method']), null,sanitize_text_field($_POST['session_id']), esc_url_raw($_POST['redirect_to']),null);
|
2194 |
-
break;
|
2195 |
|
2196 |
case 'miniorange_rba_cancle':
|
2197 |
|
@@ -2414,7 +2325,7 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
2414 |
$session_path = ini_get('session.save_path');
|
2415 |
if( is_writable($session_path) && is_readable($session_path) ) {
|
2416 |
if(session_status() != PHP_SESSION_DISABLED )
|
2417 |
-
|
2418 |
}
|
2419 |
}
|
2420 |
}
|
@@ -2475,7 +2386,7 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
2475 |
}
|
2476 |
}
|
2477 |
|
2478 |
-
function miniorange_pass2login_form_fields( $mo2fa_login_status = null, $mo2fa_login_message = null, $redirect_to = null, $qrCode = null, $session_id_encrypt=null,$show_back_button =null
|
2479 |
|
2480 |
$login_status = $mo2fa_login_status;
|
2481 |
$login_message = $mo2fa_login_message;
|
@@ -2495,7 +2406,7 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
2495 |
case 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL':
|
2496 |
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_get_transient($session_id_encrypt, 'mo2f_current_user_id');
|
2497 |
|
2498 |
-
mo2f_get_otp_authentication_prompt( $login_status, $login_message, $redirect_to, $session_id_encrypt,$user_id,$show_back_button
|
2499 |
exit;
|
2500 |
break;
|
2501 |
case 'MO_2_FACTOR_CHALLENGE_OTP_OVER_TELEGRAM':
|
@@ -2986,7 +2897,8 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
2986 |
$this->mo2f_transactionid=$response['txId'];
|
2987 |
$mo2fa_login_message = $message;
|
2988 |
$currentMethod = $Mo2fdbQueries->get_user_detail( 'mo2f_configured_2FA_method', $user->ID );
|
2989 |
-
|
|
|
2990 |
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL';
|
2991 |
else
|
2992 |
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_OTP_OVER_SMS';
|
@@ -3171,17 +3083,83 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
3171 |
if(!MO2F_IS_ONPREM and $mo2f_second_factor!= 'OTP Over Telegram')
|
3172 |
$mo2f_second_factor = mo2f_get_user_2ndfactor( $currentuser );
|
3173 |
|
3174 |
-
|
3175 |
-
|
3176 |
-
|
3177 |
-
|
3178 |
-
|
3179 |
-
|
3180 |
-
|
3181 |
-
|
3182 |
-
|
3183 |
-
|
3184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3185 |
}
|
3186 |
}else if(!$exceeded && MoWpnsUtility::get_mo2f_db_option('mo2f_inline_registration', 'site_option')){
|
3187 |
$this->mo2fa_inline( $currentuser, $redirect_to, $session_id_encrypt );
|
@@ -3198,105 +3176,7 @@ function check_miniorange_duo_push_validation_failed($POSTED){
|
|
3198 |
}
|
3199 |
|
3200 |
}
|
3201 |
-
function mo2fa_return_methods_value($currentuserid)
|
3202 |
-
{
|
3203 |
-
global $Mo2fdbQueries;
|
3204 |
-
$count_methods = $Mo2fdbQueries->get_user_configured_methods($currentuserid );
|
3205 |
-
$value = empty( $count_methods ) ? '' : get_object_vars( $count_methods[0] );
|
3206 |
-
$configured_methods_arr=array();
|
3207 |
-
foreach ($value as $config_status_option => $config_status) {
|
3208 |
-
if(strpos($config_status_option, 'config_status')){
|
3209 |
-
$config_status_string_array =explode('_',$config_status_option);
|
3210 |
-
$config_method = MO2f_Utility::mo2f_decode_2_factor($config_status_string_array[1],'wpdb');
|
3211 |
-
if(1 == $value[$config_status_option])
|
3212 |
-
array_push($configured_methods_arr,$config_method);
|
3213 |
-
|
3214 |
-
}
|
3215 |
-
}
|
3216 |
-
|
3217 |
-
return $configured_methods_arr;
|
3218 |
-
}
|
3219 |
-
function mo2fa_select_method($currentuser, $mo2f_second_factor, $otp_token,$session_id_encrypt, $redirect_to,$kba_configuration_status)
|
3220 |
-
{
|
3221 |
-
global $moWpnsUtility;
|
3222 |
-
|
3223 |
-
if($mo2f_second_factor == 'OTP Over Email' || $mo2f_second_factor == 'OTP OVER EMAIL' || $mo2f_second_factor == "EMAIL") {
|
3224 |
-
$mo2f_second_factor = "EMAIL";
|
3225 |
-
if(MoWpnsUtility::get_mo2f_db_option('cmVtYWluaW5nT1RQ', 'site_option')<=0)
|
3226 |
-
{
|
3227 |
-
update_site_option("bGltaXRSZWFjaGVk",1);
|
3228 |
-
}
|
3229 |
-
}
|
3230 |
-
else
|
3231 |
-
$mo2f_second_factor = MO2f_Utility::mo2f_decode_2_factor($mo2f_second_factor, "server" );
|
3232 |
-
|
3233 |
-
if($mo2f_second_factor == 'OTPOverTelegram')
|
3234 |
-
$mo2f_second_factor = "OTP Over Telegram";
|
3235 |
-
|
3236 |
-
if((($mo2f_second_factor == 'GOOGLE AUTHENTICATOR') || ($mo2f_second_factor =='SOFT TOKEN') || ($mo2f_second_factor =='AUTHY AUTHENTICATOR')) && MoWpnsUtility::get_mo2f_db_option('mo2f_enable_2fa_prompt_on_login_page', 'site_option')&& !get_option('mo2f_remember_device') && !isset($_POST['mo_woocommerce_login_prompt']) )
|
3237 |
-
{
|
3238 |
-
$error=$this->mo2f_validate_soft_token($currentuser, $mo2f_second_factor, $otp_token,$session_id_encrypt, $redirect_to);
|
3239 |
-
if(is_wp_error( $error))
|
3240 |
-
{
|
3241 |
-
return $error;
|
3242 |
-
}
|
3243 |
-
}
|
3244 |
-
else
|
3245 |
-
{
|
3246 |
-
if ( MO2f_Utility::check_if_request_is_from_mobile_device( $_SERVER['HTTP_USER_AGENT'] ) && $kba_configuration_status )
|
3247 |
-
{
|
3248 |
-
$this->mo2f_pass2login_kba_verification( $currentuser->ID, $redirect_to, $session_id_encrypt );
|
3249 |
-
}
|
3250 |
-
else
|
3251 |
-
{
|
3252 |
-
if ( $mo2f_second_factor == 'MOBILE AUTHENTICATION' )
|
3253 |
-
{
|
3254 |
-
$this->mo2f_pass2login_mobile_verification( $currentuser, $redirect_to, $session_id_encrypt );
|
3255 |
-
}
|
3256 |
-
else if ( $mo2f_second_factor == 'PUSH NOTIFICATIONS' || $mo2f_second_factor == 'OUT OF BAND EMAIL' || $mo2f_second_factor == 'Email Verification')
|
3257 |
-
{
|
3258 |
-
MO2f_Utility::mo2f_debug_file('Initiating 2fa validation template for '.$mo2f_second_factor.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3259 |
-
$this->mo2f_pass2login_push_oobemail_verification( $currentuser, $mo2f_second_factor, $redirect_to, $session_id_encrypt );
|
3260 |
-
}
|
3261 |
-
else if ( $mo2f_second_factor == 'SOFT TOKEN' || $mo2f_second_factor == 'SMS' || $mo2f_second_factor == 'PHONE VERIFICATION' || $mo2f_second_factor == 'GOOGLE AUTHENTICATOR' || $mo2f_second_factor == 'EMAIL' ||$mo2f_second_factor == 'OTP Over Telegram'|| $mo2f_second_factor == 'OTP Over Whatsapp') {
|
3262 |
-
MO2f_Utility::mo2f_debug_file('Initiating 2fa validation template for '.$mo2f_second_factor.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3263 |
-
$this->mo2f_pass2login_otp_verification( $currentuser, $mo2f_second_factor, $redirect_to, $session_id_encrypt );
|
3264 |
-
}
|
3265 |
-
else if ( $mo2f_second_factor == 'KBA' or $mo2f_second_factor == 'Security Questions') {
|
3266 |
-
MO2f_Utility::mo2f_debug_file('Initiating 2fa validation template for '.$mo2f_second_factor.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3267 |
-
$this->mo2f_pass2login_kba_verification( $currentuser->ID, $redirect_to , $session_id_encrypt );
|
3268 |
-
}
|
3269 |
-
else if ( $mo2f_second_factor == 'Duo Authenticator') {
|
3270 |
-
MO2f_Utility::mo2f_debug_file('Initiating 2fa validation template for '.$mo2f_second_factor.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3271 |
-
$this->mo2f_pass2login_duo_push_verification( $currentuser, $mo2f_second_factor, $redirect_to, $session_id_encrypt );
|
3272 |
|
3273 |
-
}
|
3274 |
-
else if ( $mo2f_second_factor == 'NONE' ) {
|
3275 |
-
MO2f_Utility::mo2f_debug_file('mo2f_second_factor is NONE'.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3276 |
-
if(MO2f_Utility::get_index_value('GLOBALS','mo2f_is_ajax_request'))
|
3277 |
-
$this->mo2fa_pass2login( $redirect_to, $session_id_encrypt );
|
3278 |
-
else
|
3279 |
-
return $currentuser;
|
3280 |
-
}
|
3281 |
-
else
|
3282 |
-
{
|
3283 |
-
$this->remove_current_activity($session_id_encrypt);
|
3284 |
-
$error = new WP_Error();
|
3285 |
-
if(MO2f_Utility::get_index_value('GLOBALS','mo2f_is_ajax_request')){
|
3286 |
-
MO2f_Utility::mo2f_debug_file('Two factor method has not been configured '.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3287 |
-
$data = array('notice' => '<div style="border-left:3px solid #dc3232;"> Two Factor method has not been configured.', );
|
3288 |
-
wp_send_json_success($data);
|
3289 |
-
}
|
3290 |
-
else
|
3291 |
-
{
|
3292 |
-
MO2f_Utility::mo2f_debug_file('Two factor method has not been configured '.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3293 |
-
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Two Factor method has not been configured.' ) );
|
3294 |
-
return $error;
|
3295 |
-
}
|
3296 |
-
}
|
3297 |
-
}
|
3298 |
-
}
|
3299 |
-
}
|
3300 |
function mo2fa_inline($currentuser,$redirect_to,$session_id){
|
3301 |
|
3302 |
global $Mo2fdbQueries;
|
@@ -3369,8 +3249,7 @@ function mo2fa_select_method($currentuser, $mo2f_second_factor, $otp_token,$sess
|
|
3369 |
update_site_option("cmVtYWluaW5nT1RQ",$cmVtYWluaW5nT1RQ-1);
|
3370 |
$mo2fa_login_message = 'An OTP has been sent to '.$email.' please verify to set the two-factor';
|
3371 |
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL';
|
3372 |
-
$
|
3373 |
-
$this->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null, $session_id_encrypt, 1 ,$mo2fa_transaction_id);
|
3374 |
}
|
3375 |
else
|
3376 |
{
|
174 |
}
|
175 |
$backup_codes=get_user_meta($currentuser_id,'mo2f_backup_codes',true);
|
176 |
$mo2f_backup_code= sanitize_text_field($POSTED[ 'mo2f_backup_code' ]);
|
177 |
+
$mo2f_backup_code=md5($mo2f_backup_code);
|
178 |
+
if(!empty($backup_codes)){
|
|
|
|
|
179 |
if(in_array($mo2f_backup_code,$backup_codes)){
|
180 |
foreach ($backup_codes as $key => $value) {
|
181 |
if($value==$mo2f_backup_code){
|
182 |
unset($backup_codes[$key]);
|
183 |
update_user_meta($currentuser_id,'mo2f_backup_codes', $backup_codes);
|
|
|
184 |
}
|
185 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
|
187 |
+
if(sizeof($backup_codes) <= 2){
|
188 |
+
$codes_remaining = sizeof($backup_codes);
|
189 |
+
$mo2f_user_email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $currentuser_id );
|
190 |
+
if(empty($mo2f_user_email)){
|
191 |
+
$currentuser = get_user_by( 'id', $currentuser_id );
|
192 |
+
$mo2f_user_email = $currentuser->user_email;
|
193 |
+
}
|
194 |
+
$subject = '2-Factor Authentication(Backup Codes)';
|
195 |
+
$headers = array('Content-Type: text/html; charset=UTF-8');
|
196 |
+
$message = MO2f_Utility::get_codes_warning_email_content($codes_remaining);
|
197 |
+
$result = wp_mail($mo2f_user_email,$subject,$message,$headers);
|
198 |
+
}
|
199 |
|
200 |
+
$this->mo2fa_pass2login($redirect_to, $session_id_encrypt);
|
201 |
+
}else{
|
202 |
+
$mo2fa_login_message = __('The codes you have provided are either expired or incorrect.','miniorange-2-factor-authentication');
|
203 |
+
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_BACKUP';
|
204 |
+
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null, $session_id_encrypt);
|
205 |
+
}
|
206 |
+
}else{
|
207 |
+
$mo2fa_login_message = __('There are no codes left.','miniorange-2-factor-authentication');
|
208 |
+
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_BACKUP';
|
209 |
+
$this->miniorange_pass2login_form_fields($mo2fa_login_status, $mo2fa_login_message, $redirect_to, null, $session_id_encrypt);
|
210 |
+
}
|
211 |
}else{
|
212 |
$this->remove_current_activity($session_id_encrypt);
|
213 |
return new WP_Error('invalid_username', '<strong>'. __('ERROR','miniorange-2-factor-authentication') . '</strong>: ' . __('Please try again..', 'miniorange-2-factor-authentication'));
|
227 |
$redirect_to = esc_url_raw($_POST['redirect_to']);
|
228 |
$session_id = sanitize_text_field($_POST['session_id']);
|
229 |
$id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_get_transient($session_id, 'mo2f_current_user_id');
|
230 |
+
|
231 |
+
$codes=MO2f_Utility::mo_2f_generate_backup_codes();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
$codes_hash=MO2f_Utility::mo2f_get_codes_hash($codes);
|
233 |
$str1="";
|
234 |
+
for ($x = 0; $x < 5; $x++) {
|
235 |
$str = $codes[$x];
|
236 |
$str1.=$str;
|
237 |
if($x != 4){
|
238 |
$str1.=',';
|
239 |
}
|
240 |
}
|
241 |
+
update_user_meta($id,'mo2f_backup_codes', $codes_hash);
|
242 |
$key = get_option( 'mo2f_encryption_key' );
|
243 |
$codes_encrypt = MO2f_Utility::encrypt_data($str1, $key);
|
244 |
update_user_meta($id,'chqwetcsdvnvd', $codes_encrypt);
|
906 |
}
|
907 |
update_user_meta($current_user->ID,'mo2f_external_app_type','GOOGLE AUTHENTICATOR');
|
908 |
$mo2fa_login_status = 'MO_2_FACTOR_SETUP_SUCCESS';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
909 |
}else{
|
910 |
+
$mo2fa_login_message = __('An error occured while processing your request. Please Try again.','miniorange-2-factor-authentication');
|
911 |
}
|
912 |
}else{
|
913 |
$mo2fa_login_message = __('An error occured while processing your request. Please Try again.','miniorange-2-factor-authentication');
|
1723 |
$current_user = get_userdata($user_id);
|
1724 |
//if the php session folder has insufficient permissions, cookies to be used
|
1725 |
$mo2f_login_transaction_id = MO2f_Utility::mo2f_get_transient($session_id_encrypt, 'mo2f_transactionId');
|
|
|
1726 |
MO2f_Utility::mo2f_debug_file('Transaction_id-'.$mo2f_login_transaction_id.' User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$user_id.' Email-'.$user_email);
|
1727 |
if ( isset( $mo2fa_login_status ) && $mo2fa_login_status == 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL' ) {
|
1728 |
$content = json_decode( $customer->validate_otp_token( 'EMAIL', null, $mo2f_login_transaction_id, $softtoken, get_option( 'mo2f_customerKey' ), get_option( 'mo2f_api_key' ),$current_user ), true );
|
1816 |
$this->remove_current_activity($session_id_encrypt);
|
1817 |
return new WP_Error( 'invalid_username', __( '<strong>ERROR</strong>: Invalid Request. Please try again.' ) );
|
1818 |
}
|
1819 |
+
|
1820 |
if ( strcasecmp( $content['status'], 'SUCCESS' ) == 0 ) {
|
1821 |
update_option('mo2f_attempts_before_redirect', 3);
|
1822 |
if ( get_option( 'mo2f_remember_device' ) ) {
|
1885 |
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Invalid Request.' ) );
|
1886 |
}
|
1887 |
function miniorange_pass2login_redirect() {
|
1888 |
+
|
1889 |
do_action('mo2f_network_init');
|
1890 |
global $Mo2fdbQueries;
|
1891 |
|
2016 |
}
|
2017 |
|
2018 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019 |
if(isset($_GET['Txid'])&&isset($_GET['accessToken']))
|
2020 |
{
|
2021 |
$userIDGet = sanitize_text_field($_GET['userID']);
|
2103 |
case 'miniorange_rba_validate':
|
2104 |
$this->check_rba_validation($_POST);
|
2105 |
break;
|
|
|
|
|
|
|
|
|
|
|
2106 |
|
2107 |
case 'miniorange_rba_cancle':
|
2108 |
|
2325 |
$session_path = ini_get('session.save_path');
|
2326 |
if( is_writable($session_path) && is_readable($session_path) ) {
|
2327 |
if(session_status() != PHP_SESSION_DISABLED )
|
2328 |
+
session_start();
|
2329 |
}
|
2330 |
}
|
2331 |
}
|
2386 |
}
|
2387 |
}
|
2388 |
|
2389 |
+
function miniorange_pass2login_form_fields( $mo2fa_login_status = null, $mo2fa_login_message = null, $redirect_to = null, $qrCode = null, $session_id_encrypt=null,$show_back_button =null ) {
|
2390 |
|
2391 |
$login_status = $mo2fa_login_status;
|
2392 |
$login_message = $mo2fa_login_message;
|
2406 |
case 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL':
|
2407 |
$user_id = $this->mo2f_userID ? $this->mo2f_userID : MO2f_Utility::mo2f_get_transient($session_id_encrypt, 'mo2f_current_user_id');
|
2408 |
|
2409 |
+
mo2f_get_otp_authentication_prompt( $login_status, $login_message, $redirect_to, $session_id_encrypt,$user_id,$show_back_button );
|
2410 |
exit;
|
2411 |
break;
|
2412 |
case 'MO_2_FACTOR_CHALLENGE_OTP_OVER_TELEGRAM':
|
2897 |
$this->mo2f_transactionid=$response['txId'];
|
2898 |
$mo2fa_login_message = $message;
|
2899 |
$currentMethod = $Mo2fdbQueries->get_user_detail( 'mo2f_configured_2FA_method', $user->ID );
|
2900 |
+
|
2901 |
+
if($currentMethod == 'OTP Over Email')
|
2902 |
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL';
|
2903 |
else
|
2904 |
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_OTP_OVER_SMS';
|
3083 |
if(!MO2F_IS_ONPREM and $mo2f_second_factor!= 'OTP Over Telegram')
|
3084 |
$mo2f_second_factor = mo2f_get_user_2ndfactor( $currentuser );
|
3085 |
|
3086 |
+
if($mo2f_second_factor == 'miniOrange Soft Token')
|
3087 |
+
$mo2f_second_factor = "SOFT TOKEN";
|
3088 |
+
else if($mo2f_second_factor == "miniOrange Push Notification")
|
3089 |
+
$mo2f_second_factor = "PUSH NOTIFICATIONS";
|
3090 |
+
else if($mo2f_second_factor == "miniOrange QR Code Authentication")
|
3091 |
+
$mo2f_second_factor = "MOBILE AUTHENTICATION";
|
3092 |
+
else if($mo2f_second_factor == 'Security Questions')
|
3093 |
+
$mo2f_second_factor = 'KBA';
|
3094 |
+
else if($mo2f_second_factor == 'Google Authenticator')
|
3095 |
+
$mo2f_second_factor = 'GOOGLE AUTHENTICATOR';
|
3096 |
+
else if($mo2f_second_factor == 'OTP Over SMS')
|
3097 |
+
$mo2f_second_factor = 'SMS';
|
3098 |
+
else if($mo2f_second_factor == 'Duo Authenticator' || $mo2f_second_factor == 'DUO AUTHENTICATOR')
|
3099 |
+
$mo2f_second_factor = 'Duo Authenticator';
|
3100 |
+
else if($mo2f_second_factor == 'OTP Over Email' || $mo2f_second_factor == 'OTP OVER EMAIL' || $mo2f_second_factor == "EMAIL") {
|
3101 |
+
$mo2f_second_factor = "EMAIL";
|
3102 |
+
|
3103 |
+
if(MoWpnsUtility::get_mo2f_db_option('cmVtYWluaW5nT1RQ', 'site_option')<=0)
|
3104 |
+
{
|
3105 |
+
update_site_option("bGltaXRSZWFjaGVk",1);
|
3106 |
+
|
3107 |
+
}
|
3108 |
+
}
|
3109 |
+
|
3110 |
+
|
3111 |
+
if((($mo2f_second_factor == 'GOOGLE AUTHENTICATOR') || ($mo2f_second_factor =='SOFT TOKEN') || ($mo2f_second_factor =='AUTHY AUTHENTICATOR')) && MoWpnsUtility::get_mo2f_db_option('mo2f_enable_2fa_prompt_on_login_page', 'site_option')&& !get_option('mo2f_remember_device') && !isset($_POST['mo_woocommerce_login_prompt']) )
|
3112 |
+
{
|
3113 |
+
$error=$this->mo2f_validate_soft_token($currentuser, $mo2f_second_factor, $otp_token,$session_id_encrypt, $redirect_to);
|
3114 |
+
if(is_wp_error( $error))
|
3115 |
+
{
|
3116 |
+
return $error;
|
3117 |
+
}
|
3118 |
+
}
|
3119 |
+
else{
|
3120 |
+
|
3121 |
+
if ( MO2f_Utility::check_if_request_is_from_mobile_device( $_SERVER['HTTP_USER_AGENT'] ) && $kba_configuration_status ) {
|
3122 |
+
$this->mo2f_pass2login_kba_verification( $currentuser->ID, $redirect_to, $session_id_encrypt );
|
3123 |
+
} else {
|
3124 |
+
|
3125 |
+
if ( $mo2f_second_factor == 'MOBILE AUTHENTICATION' ) {
|
3126 |
+
$this->mo2f_pass2login_mobile_verification( $currentuser, $redirect_to, $session_id_encrypt );
|
3127 |
+
} else if ( $mo2f_second_factor == 'PUSH NOTIFICATIONS' || $mo2f_second_factor == 'OUT OF BAND EMAIL' || $mo2f_second_factor == 'Email Verification') {
|
3128 |
+
MO2f_Utility::mo2f_debug_file('Initiating 2fa validation template for '.$mo2f_second_factor.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3129 |
+
$this->mo2f_pass2login_push_oobemail_verification( $currentuser, $mo2f_second_factor, $redirect_to, $session_id_encrypt );
|
3130 |
+
} else if ( $mo2f_second_factor == 'SOFT TOKEN' || $mo2f_second_factor == 'SMS' || $mo2f_second_factor == 'PHONE VERIFICATION' || $mo2f_second_factor == 'GOOGLE AUTHENTICATOR' || $mo2f_second_factor == 'EMAIL' ||$mo2f_second_factor == 'OTP Over Telegram'|| $mo2f_second_factor == 'OTP Over Whatsapp') {
|
3131 |
+
MO2f_Utility::mo2f_debug_file('Initiating 2fa validation template for '.$mo2f_second_factor.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3132 |
+
$this->mo2f_pass2login_otp_verification( $currentuser, $mo2f_second_factor, $redirect_to, $session_id_encrypt );
|
3133 |
+
} else if ( $mo2f_second_factor == 'KBA' or $mo2f_second_factor == 'Security Questions') {
|
3134 |
+
MO2f_Utility::mo2f_debug_file('Initiating 2fa validation template for '.$mo2f_second_factor.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3135 |
+
$this->mo2f_pass2login_kba_verification( $currentuser->ID, $redirect_to , $session_id_encrypt );
|
3136 |
+
}else if ( $mo2f_second_factor == 'Duo Authenticator') {
|
3137 |
+
MO2f_Utility::mo2f_debug_file('Initiating 2fa validation template for '.$mo2f_second_factor.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3138 |
+
$this->mo2f_pass2login_duo_push_verification( $currentuser, $mo2f_second_factor, $redirect_to, $session_id_encrypt );
|
3139 |
+
|
3140 |
+
}else if ( $mo2f_second_factor == 'NONE' ) {
|
3141 |
+
MO2f_Utility::mo2f_debug_file('mo2f_second_factor is NONE'.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3142 |
+
if(MO2f_Utility::get_index_value('GLOBALS','mo2f_is_ajax_request'))
|
3143 |
+
$this->mo2fa_pass2login( $redirect_to, $session_id_encrypt );
|
3144 |
+
else
|
3145 |
+
return $currentuser;
|
3146 |
+
} else {
|
3147 |
+
$this->remove_current_activity($session_id_encrypt);
|
3148 |
+
$error = new WP_Error();
|
3149 |
+
if(MO2f_Utility::get_index_value('GLOBALS','mo2f_is_ajax_request')){
|
3150 |
+
MO2f_Utility::mo2f_debug_file('Two factor method has not been configured '.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3151 |
+
$data = array('notice' => '<div style="border-left:3px solid #dc3232;"> Two Factor method has not been configured.', );
|
3152 |
+
wp_send_json_success($data);
|
3153 |
+
}
|
3154 |
+
else{
|
3155 |
+
MO2f_Utility::mo2f_debug_file('Two factor method has not been configured '.'User_IP-'.$moWpnsUtility->get_client_ip() .' User_Id-'.$currentuser->ID.' Email-'.$currentuser->user_email);
|
3156 |
+
$error->add( 'empty_username', __( '<strong>ERROR</strong>: Two Factor method has not been configured.' ) );
|
3157 |
+
return $error;
|
3158 |
+
}
|
3159 |
+
}
|
3160 |
+
}
|
3161 |
+
}
|
3162 |
+
|
3163 |
}
|
3164 |
}else if(!$exceeded && MoWpnsUtility::get_mo2f_db_option('mo2f_inline_registration', 'site_option')){
|
3165 |
$this->mo2fa_inline( $currentuser, $redirect_to, $session_id_encrypt );
|
3176 |
}
|
3177 |
|
3178 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3179 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3180 |
function mo2fa_inline($currentuser,$redirect_to,$session_id){
|
3181 |
|
3182 |
global $Mo2fdbQueries;
|
3249 |
update_site_option("cmVtYWluaW5nT1RQ",$cmVtYWluaW5nT1RQ-1);
|
3250 |
$mo2fa_login_message = 'An OTP has been sent to '.$email.' please verify to set the two-factor';
|
3251 |
$mo2fa_login_status = 'MO_2_FACTOR_CHALLENGE_OTP_OVER_EMAIL';
|
3252 |
+
$this->miniorange_pass2login_form_fields( $mo2fa_login_status, $mo2fa_login_message, $redirect_to,null, $session_id_encrypt, 1 );
|
|
|
3253 |
}
|
3254 |
else
|
3255 |
{
|
handler/twofa/two_fa_settings.php
CHANGED
@@ -469,19 +469,6 @@ class Miniorange_Authentication {
|
|
469 |
private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $footer = '' ) {
|
470 |
|
471 |
$contact_url = 'https://wordpress.org/plugins/miniorange-2-factor-authentication/';
|
472 |
-
echo '<head>';
|
473 |
-
echo '<script type="text/javascript" src="'.plugins_url( "/includes/jquery-qrcode/jquery-qrcode.js", dirname(dirname(__FILE__ ))).'"></script>';
|
474 |
-
echo '<script type="text/javascript" src="'.plugins_url( "/includes/jquery-qrcode/jquery-qrcode.min.js", dirname(dirname(__FILE__ ))).'"></script>';
|
475 |
-
echo '<script type="text/javascript" src="'.plugins_url( "/includes/js/phone.js", dirname(dirname(__FILE__ ))).'"></script>';
|
476 |
-
|
477 |
-
echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/phone.css', dirname(dirname(__FILE__))). '" />';
|
478 |
-
// echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/twofa_style_settings.css', dirname(dirname(__FILE__))). '" />';
|
479 |
-
// echo '<link rel="stylesheet" type="text/css" href="' . plugins_url('includes/css/style_settings.css', dirname(dirname(__FILE__))). '" />';
|
480 |
-
|
481 |
-
|
482 |
-
echo '</head>';
|
483 |
-
|
484 |
-
|
485 |
?>
|
486 |
<style type="text/css">
|
487 |
#mo2f-setup-wizard-settings-area {
|
@@ -515,7 +502,6 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
515 |
padding: 0 10px;
|
516 |
}
|
517 |
|
518 |
-
|
519 |
#mo2f-setup-wizard-settings-area .mo2f-setup-logo img {
|
520 |
width: 100%;
|
521 |
height: 100%;
|
@@ -533,54 +519,7 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
533 |
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.05);
|
534 |
padding: 20px 30px;
|
535 |
}
|
536 |
-
|
537 |
-
box-sizing: border-box;
|
538 |
-
max-width: 90%;
|
539 |
-
width: auto;
|
540 |
-
margin: 0 auto;
|
541 |
-
background: #fff;
|
542 |
-
border: 1px solid #DDDDDD;
|
543 |
-
border-radius: 6px;
|
544 |
-
webkit-box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.05);
|
545 |
-
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.05);
|
546 |
-
padding: 20px 30px;
|
547 |
-
}
|
548 |
-
#mo2f-setup-settings-error-loading-area3 {
|
549 |
-
box-sizing: border-box;
|
550 |
-
max-width: 90%;
|
551 |
-
width: auto;
|
552 |
-
margin: 0 auto;
|
553 |
-
background: #fff;
|
554 |
-
border: 1px solid #DDDDDD;
|
555 |
-
border-radius: 6px;
|
556 |
-
webkit-box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.05);
|
557 |
-
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.05);
|
558 |
-
padding: 20px 30px;
|
559 |
-
}
|
560 |
-
#mo2f-setup-settings-error-loading-area4 {
|
561 |
-
box-sizing: border-box;
|
562 |
-
max-width: 90%;
|
563 |
-
width: auto;
|
564 |
-
margin: 0 auto;
|
565 |
-
background: #fff;
|
566 |
-
border: 1px solid #DDDDDD;
|
567 |
-
border-radius: 6px;
|
568 |
-
webkit-box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.05);
|
569 |
-
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.05);
|
570 |
-
padding: 20px 30px;
|
571 |
-
}
|
572 |
-
#mo2f-setup-settings-error-loading-area1 {
|
573 |
-
box-sizing: border-box;
|
574 |
-
max-width: 90%;
|
575 |
-
width: auto;
|
576 |
-
margin: 0 auto;
|
577 |
-
background: #fff;
|
578 |
-
border: 1px solid #DDDDDD;
|
579 |
-
border-radius: 6px;
|
580 |
-
webkit-box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.05);
|
581 |
-
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.05);
|
582 |
-
padding: 20px 30px;
|
583 |
-
}
|
584 |
#mo2f-setup-wizard-settings-area .mo2f-setup-error-footer {
|
585 |
text-align: center;
|
586 |
margin-top: 20px;
|
@@ -610,40 +549,6 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
610 |
#mo2f-setup-error-js ul.info {
|
611 |
margin: -10px 0 20px;
|
612 |
}
|
613 |
-
.mo2f-input-radios-with-icons label {
|
614 |
-
width: 90%;
|
615 |
-
height: 40px;
|
616 |
-
color: #444;
|
617 |
-
border: 1px solid #ddd;
|
618 |
-
background: #fff;
|
619 |
-
border-radius: 3px;
|
620 |
-
font-size: 16px;
|
621 |
-
display: block;
|
622 |
-
margin-bottom: 20px;
|
623 |
-
padding: 24px 9px 9px 9px;
|
624 |
-
cursor: pointer
|
625 |
-
}
|
626 |
-
|
627 |
-
.mo2f-input-radios-with-icons label:hover {
|
628 |
-
border: 1px solid #999;
|
629 |
-
-webkit-box-shadow: 0 0 0 1px #999;
|
630 |
-
box-shadow: 0 0 0 1px #999
|
631 |
-
}
|
632 |
-
|
633 |
-
.mo2f-styled-radio {
|
634 |
-
width: 32px;
|
635 |
-
height: 32px;
|
636 |
-
position: relative;
|
637 |
-
display: inline-block;
|
638 |
-
border-radius: 50%;
|
639 |
-
background-color: #e6e6e6
|
640 |
-
float: left;
|
641 |
-
margin-top: -4px;
|
642 |
-
}
|
643 |
-
.mo_wpns_table_textbox {
|
644 |
-
width:100%;
|
645 |
-
height:30px;
|
646 |
-
}
|
647 |
|
648 |
#mo2f-setup-error-js a.button {
|
649 |
display: inline-block;
|
@@ -677,13 +582,7 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
677 |
font-weight: 300;
|
678 |
text-align: left;
|
679 |
}
|
680 |
-
|
681 |
-
table-layout: fixed ;
|
682 |
-
width: 100% ;
|
683 |
-
}
|
684 |
-
td {
|
685 |
-
width: 48% ;
|
686 |
-
}
|
687 |
@media (min-width: 782px) {
|
688 |
#mo2f-setup-wizard-settings-area .mo2f-setup-logo {
|
689 |
margin-top: 50px;
|
@@ -695,36 +594,6 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
695 |
margin-top: 40px;
|
696 |
padding: 52px 67px 49px;
|
697 |
}
|
698 |
-
#mo2f-setup-settings-error-loading-area1 {
|
699 |
-
width: 650px;
|
700 |
-
margin-top: 40px;
|
701 |
-
padding: 52px 67px 49px;
|
702 |
-
}
|
703 |
-
#mo2f-setup-settings-error-loading-area2 {
|
704 |
-
width: 650px;
|
705 |
-
margin-top: 40px;
|
706 |
-
padding: 52px 67px 49px;
|
707 |
-
}
|
708 |
-
#mo2f-setup-settings-error-loading-area3 {
|
709 |
-
width: 650px;
|
710 |
-
margin-top: 40px;
|
711 |
-
padding: 52px 67px 49px;
|
712 |
-
}
|
713 |
-
#mo2f-setup-settings-error-loading-area4 {
|
714 |
-
width: 650px;
|
715 |
-
margin-top: 40px;
|
716 |
-
padding: 52px 67px 49px;
|
717 |
-
}
|
718 |
-
.mo2f-styled-radio {
|
719 |
-
width: 32px;
|
720 |
-
height: 32px;
|
721 |
-
position: relative;
|
722 |
-
display: inline-block;
|
723 |
-
border-radius: 50%;
|
724 |
-
background-color: #e6e6e6;
|
725 |
-
float: left;
|
726 |
-
margin-top: -4px;
|
727 |
-
}
|
728 |
|
729 |
#mo2f-setup-wizard-settings-area .mo2f-setup-error-footer {
|
730 |
margin-top: 50px;
|
@@ -743,9 +612,6 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
743 |
font-size: 18px;
|
744 |
padding: 19px 39px;
|
745 |
}
|
746 |
-
.mo2f-styled-radio-text {
|
747 |
-
margin-left: 10px
|
748 |
-
}
|
749 |
.mo2f-setup-button.mo2f-setup-button-main:hover {
|
750 |
background-color: #c45e1b;
|
751 |
}
|
@@ -754,305 +620,6 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
754 |
color: #fff;
|
755 |
font-weight: 500;
|
756 |
}
|
757 |
-
.mo2f-setup-wizard-timeline {
|
758 |
-
-webkit-box-align: center;
|
759 |
-
-ms-flex-align: center;
|
760 |
-
align-items: center;
|
761 |
-
display: -webkit-box;
|
762 |
-
display: -ms-flexbox;
|
763 |
-
display: flex;
|
764 |
-
margin: 41px auto 0;
|
765 |
-
max-width: 650px;
|
766 |
-
padding: 0 20px
|
767 |
-
}
|
768 |
-
|
769 |
-
.mo2f-setup-wizard-timeline .mo2f-setup-wizard-timeline-step-line {
|
770 |
-
background: #ddd;
|
771 |
-
height: 2px;
|
772 |
-
margin: 0 6px;
|
773 |
-
width: 100%
|
774 |
-
}
|
775 |
-
|
776 |
-
.mo2f-setup-wizard-timeline .mo2f-setup-wizard-timeline-step-line.mo2f-setup-wizard-timeline-line-active {
|
777 |
-
background: #6aa08b
|
778 |
-
}
|
779 |
-
|
780 |
-
.mo2f-setup-wizard-timeline .mo2f-setup-wizard-timeline-step {
|
781 |
-
border: none;
|
782 |
-
background-color: #b6b6b6;
|
783 |
-
border-radius: 50%;
|
784 |
-
-ms-flex-negative: 0;
|
785 |
-
flex-shrink: 0;
|
786 |
-
height: 16px;
|
787 |
-
width: 16px
|
788 |
-
}
|
789 |
-
|
790 |
-
.mo2f-setup-wizard-step-footer {
|
791 |
-
display: block;
|
792 |
-
text-align: center;
|
793 |
-
min-height: 110px;
|
794 |
-
padding: 0 20px;
|
795 |
-
margin-top: 30px
|
796 |
-
}
|
797 |
-
.popup_text
|
798 |
-
{
|
799 |
-
color:black;
|
800 |
-
margin-top: 2%;
|
801 |
-
font-weight: 600;
|
802 |
-
font-size: 12px !important;
|
803 |
-
}
|
804 |
-
.overlay{
|
805 |
-
position: fixed;
|
806 |
-
top: 0;
|
807 |
-
left: 0;
|
808 |
-
right: 0;
|
809 |
-
bottom: 0;
|
810 |
-
width: 100%;
|
811 |
-
height: 100%;
|
812 |
-
background: #000;
|
813 |
-
opacity: .5;
|
814 |
-
z-index: 0;
|
815 |
-
}
|
816 |
-
.overlay_success {
|
817 |
-
width: min-content;
|
818 |
-
height: 40px;
|
819 |
-
float: left;
|
820 |
-
z-index: 1;
|
821 |
-
top: 0;
|
822 |
-
right: 0;
|
823 |
-
text-align: center;
|
824 |
-
margin-bottom: 4%
|
825 |
-
background-color:#bcffb4 !important ;
|
826 |
-
/* overflow-x: hidden; */
|
827 |
-
background: #b1ffb1;
|
828 |
-
border-left: 4px solid #46b450;
|
829 |
-
}
|
830 |
-
.overlay_error {
|
831 |
-
width: min-content;
|
832 |
-
height: min-content;
|
833 |
-
padding-bottom: 1%;
|
834 |
-
float: left;
|
835 |
-
z-index: 1;
|
836 |
-
top: 0;
|
837 |
-
right: 0;
|
838 |
-
margin-bottom: 4%;
|
839 |
-
text-align: center;
|
840 |
-
background-color:bisque !important ;
|
841 |
-
/* overflow-x: hidden; */
|
842 |
-
border-left: 4px solid red;
|
843 |
-
}
|
844 |
-
|
845 |
-
.mo2f-setup-wizard-step-footer a {
|
846 |
-
font-size: 14px;
|
847 |
-
display: block;
|
848 |
-
color: #999;
|
849 |
-
margin: 20px 0
|
850 |
-
}
|
851 |
-
|
852 |
-
.mo2f-setup-wizard-step-footer a:active,
|
853 |
-
.mo2f-setup-wizard-step-footer a:hover {
|
854 |
-
color: #777;
|
855 |
-
text-decoration: underline
|
856 |
-
}
|
857 |
-
|
858 |
-
|
859 |
-
.mo2f-button.mo2f-button-main {
|
860 |
-
background-color: #e27730;
|
861 |
-
color: #fff;
|
862 |
-
font-weight: 500;
|
863 |
-
-webkit-box-flex: 11;
|
864 |
-
-ms-flex: 11;
|
865 |
-
flex: 11;
|
866 |
-
padding: 12px 25px;
|
867 |
-
font-size: 16px;
|
868 |
-
}
|
869 |
-
|
870 |
-
.mo2f-button.mo2f-button-main:focus,
|
871 |
-
.mo2f-button.mo2f-button-main:hover {
|
872 |
-
background-color: #c45e1b
|
873 |
-
}
|
874 |
-
|
875 |
-
.mo2f-button.mo2f-button-main:disabled {
|
876 |
-
opacity: .65;
|
877 |
-
cursor: not-allowed;
|
878 |
-
background-color: #e27730;
|
879 |
-
-webkit-box-flex: 11;
|
880 |
-
-ms-flex: 11;
|
881 |
-
flex: 11;
|
882 |
-
margin-right: 30px
|
883 |
-
}
|
884 |
-
|
885 |
-
.mo2f-setup-wizard-timeline .mo2f-setup-wizard-timeline-step .icon {
|
886 |
-
display: none
|
887 |
-
}
|
888 |
-
|
889 |
-
.mo2f-setup-wizard-timeline .mo2f-setup-wizard-timeline-step.mo2f-setup-wizard-timeline-step-active,
|
890 |
-
.mo2f-setup-wizard-timeline .mo2f-setup-wizard-timeline-step.mo2f-setup-wizard-timeline-step-completed {
|
891 |
-
background-color: #6aa08b;
|
892 |
-
position: relative
|
893 |
-
}
|
894 |
-
|
895 |
-
.mo2f-setup-wizard-timeline .mo2f-setup-wizard-timeline-step.mo2f-setup-wizard-timeline-step-failed {
|
896 |
-
background-color: #d83638;
|
897 |
-
position: relative
|
898 |
-
}
|
899 |
-
|
900 |
-
.mo2f-step-show{
|
901 |
-
margin: 0 0 16px;
|
902 |
-
font-size: 14px;
|
903 |
-
line-height: 18px;
|
904 |
-
color: #b6b6b6;
|
905 |
-
}
|
906 |
-
.mo2f_table_textbox {
|
907 |
-
width: 200px;
|
908 |
-
height: 20px !important;
|
909 |
-
font-size: 14px !important;
|
910 |
-
}
|
911 |
-
.mo2f_table_textbox_phone {
|
912 |
-
width: 200px;
|
913 |
-
height: 40px !important;
|
914 |
-
font-size: 14px !important;
|
915 |
-
}
|
916 |
-
.mo2f_kba_ques {
|
917 |
-
width: 394px !important;
|
918 |
-
border-radius: 4px !important;
|
919 |
-
height: 40px !important;
|
920 |
-
font-size: 14px !important;
|
921 |
-
}
|
922 |
-
|
923 |
-
.mo2f_kba_tb_data {
|
924 |
-
padding-left: 15px;
|
925 |
-
}
|
926 |
-
|
927 |
-
.mo2f_kba_table {
|
928 |
-
padding: 0 10px;
|
929 |
-
width: 100%;
|
930 |
-
}
|
931 |
-
.mo2f_kba_body {
|
932 |
-
border: hidden !important;
|
933 |
-
}
|
934 |
-
|
935 |
-
|
936 |
-
.mo2f_table_textbox_KBA {
|
937 |
-
width: 200px;
|
938 |
-
height: 40px !important;
|
939 |
-
font-size: 14px !important;
|
940 |
-
}
|
941 |
-
|
942 |
-
|
943 |
-
.mo2f_kba_header {
|
944 |
-
font-weight: bold;
|
945 |
-
}
|
946 |
-
|
947 |
-
.mo2f-setup-wizard-timeline .mo2f-setup-wizard-timeline-step.mo2f-setup-wizard-timeline-step-completed .icon-success,
|
948 |
-
.mo2f-setup-wizard-timeline .mo2f-setup-wizard-timeline-step.mo2f-setup-wizard-timeline-step-failed .icon-failed {
|
949 |
-
color: #fff;
|
950 |
-
display: block;
|
951 |
-
position: absolute;
|
952 |
-
left: 3px;
|
953 |
-
top: 3px
|
954 |
-
}
|
955 |
-
.mo2f-setup-wizard-step-footer {
|
956 |
-
display: -webkit-box;
|
957 |
-
display: -ms-flexbox;
|
958 |
-
display: flex;
|
959 |
-
-webkit-box-pack: justify;
|
960 |
-
-ms-flex-pack: justify;
|
961 |
-
justify-content: space-between;
|
962 |
-
-webkit-box-align: center;
|
963 |
-
-ms-flex-align: center;
|
964 |
-
align-items: center;
|
965 |
-
padding: 0;
|
966 |
-
margin-top: 0
|
967 |
-
}
|
968 |
-
.mo2f_blur {
|
969 |
-
filter: blur(5px);
|
970 |
-
-webkit-filter: blur(5px);
|
971 |
-
-moz-filter: blur(5px);
|
972 |
-
-o-filter: blur(5px);
|
973 |
-
-ms-filter: blur(5px);
|
974 |
-
}
|
975 |
-
.mo2f_loader {
|
976 |
-
border: 16px solid #b9acac;
|
977 |
-
border-radius: 50%;
|
978 |
-
border-top: 16px solid #fb540b;
|
979 |
-
width: 50px;
|
980 |
-
height: 50px;
|
981 |
-
-webkit-animation: spin 2s linear infinite; /* Safari */
|
982 |
-
animation: spin 2s linear infinite;
|
983 |
-
position: fixed;
|
984 |
-
left: 50%;
|
985 |
-
top: 50%;
|
986 |
-
z-index: 100;
|
987 |
-
}
|
988 |
-
|
989 |
-
/* Safari */
|
990 |
-
@-webkit-keyframes spin {
|
991 |
-
0% { -webkit-transform: rotate(0deg); }
|
992 |
-
100% { -webkit-transform: rotate(360deg); }
|
993 |
-
}
|
994 |
-
|
995 |
-
@keyframes spin {
|
996 |
-
0% { transform: rotate(0deg); }
|
997 |
-
100% { transform: rotate(360deg); }
|
998 |
-
}
|
999 |
-
.mo2f-setup-wizard-step-footer-buttons {
|
1000 |
-
margin-bottom: 0;
|
1001 |
-
}
|
1002 |
-
.mo2f-setup-wizard-step-footer-buttons button {
|
1003 |
-
margin-bottom: 0;
|
1004 |
-
margin-right: 15px;
|
1005 |
-
width: inherit
|
1006 |
-
}
|
1007 |
-
.miniorange_button
|
1008 |
-
{
|
1009 |
-
background:#00A0D2!important;
|
1010 |
-
border-color:#0073AA!important;
|
1011 |
-
box-shadow:0 1px 0 rgba(120,200,230,.5) inset,0 1px 0 rgba(0,0,0,.15)!important;
|
1012 |
-
color:#FFF!important;
|
1013 |
-
text-decoration:none!important;
|
1014 |
-
cursor:pointer!important;
|
1015 |
-
border-width:1px!important;
|
1016 |
-
border-style:solid!important;
|
1017 |
-
border-radius:3px!important;
|
1018 |
-
white-space:nowrap!important;
|
1019 |
-
box-sizing:border-box!important;
|
1020 |
-
line-height:28px!important;
|
1021 |
-
padding:0 12px!important;
|
1022 |
-
font-size:13px!important;
|
1023 |
-
}
|
1024 |
-
|
1025 |
-
|
1026 |
-
.mo2f_IR_phone_OTP{
|
1027 |
-
font-size:15px;
|
1028 |
-
width:150px !important;
|
1029 |
-
color:#212F3C;
|
1030 |
-
border:none;
|
1031 |
-
display:block;
|
1032 |
-
border-bottom-style: solid;
|
1033 |
-
border-width: 2px;
|
1034 |
-
border-color:#D0D3D4;
|
1035 |
-
border-radius:0px;
|
1036 |
-
outline:none;
|
1037 |
-
padding:5px;
|
1038 |
-
|
1039 |
-
}
|
1040 |
-
.mo2f-setup-wizard-step-footer-buttons button:last-child {
|
1041 |
-
margin-right: 0
|
1042 |
-
}
|
1043 |
-
a .text-with-arrow-left .icon {
|
1044 |
-
margin-right: 10px
|
1045 |
-
}
|
1046 |
-
|
1047 |
-
a .text-with-arrow {
|
1048 |
-
display: -webkit-box;
|
1049 |
-
display: -ms-flexbox;
|
1050 |
-
display: flex;
|
1051 |
-
-webkit-box-pack: center;
|
1052 |
-
-ms-flex-pack: center;
|
1053 |
-
justify-content: center
|
1054 |
-
}
|
1055 |
-
|
1056 |
}
|
1057 |
</style>
|
1058 |
<!--[if IE]>
|
@@ -1063,9 +630,7 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
1063 |
</style>
|
1064 |
|
1065 |
<![endif]-->
|
1066 |
-
<div
|
1067 |
-
|
1068 |
-
<div id="mo2f-setup-wizard-settings-area" class="mo2f-setup-wizard-settings-area wpms-container">
|
1069 |
<header class="mo2f-setup-wizard-header">
|
1070 |
<h1 >
|
1071 |
<div>
|
@@ -1078,12 +643,14 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
1078 |
<div id="mo2f-setup-settings-error-loading-area">
|
1079 |
<div>
|
1080 |
<div id="mo2f-setup-error-js">
|
|
|
|
|
1081 |
<p class="subtitle" style="text-align:center;" > This setup guide will take you through all the steps you need to follow to enable the two-factor authentication for your website.</p>
|
1082 |
|
1083 |
<br><br>
|
1084 |
<button type="button" style="text-align:center;display: flex;margin: auto;" class="mo2f-setup-button mo2f-setup-button-main mo2f-setup-button-large" id ='mo2f_get_started' target="_blank" class="button" rel="noopener noreferrer"> <?php esc_html_e("Let's Get Started", 'mo2f-setup'); ?></button>
|
1085 |
|
1086 |
-
<br><br>
|
1087 |
<div style="text-align:center;display: flex;margin: auto;flex-direction: column;">
|
1088 |
<a href="<?php echo esc_url( $contact_url ); ?>" target="_blank" rel="noopener noreferrer">
|
1089 |
<?php esc_html_e( 'Facing issues? Contact Us', 'mo2f-setup' ); ?>
|
@@ -1097,267 +664,64 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
1097 |
</div>
|
1098 |
</div>
|
1099 |
<div id = "mo2f_methods_setup_wizard">
|
1100 |
-
<div
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
<div class="mo2f-setup-wizard-timeline-step-line" id="mo2f-setup-wizard-line3"></div>
|
1108 |
-
<div class="mo2f-setup-wizard-timeline-step" id="mo2f-setup-wizard-step4"> </div>
|
1109 |
-
|
1110 |
-
</div>
|
1111 |
-
<div id="mo2f-setup-settings-error-loading-area1" style="width: 900px">
|
1112 |
-
|
1113 |
-
<p class="mo2f-step-show"> Step 1 of 4</p>
|
1114 |
-
<h3 style="text-align:center;font-size:xx-large;"> Select the Authentication method you want to configure </h3>
|
1115 |
-
<br>
|
1116 |
-
<div class="mo2f-input-radios-with-icons">
|
1117 |
-
<table>
|
1118 |
-
<tr>
|
1119 |
-
<td>
|
1120 |
-
<label title="<?php echo __('You have to enter 6 digits code generated by google Authenticator App to login. Supported in Smartphones only.', 'miniorange-2-factor-authentication'); ?>">
|
1121 |
-
<input type="radio" name="mo2f_selected_2factor_method" class="mo2f-styled-radio" value="Google Authenticator" />
|
1122 |
-
<span class="mo2f-styled-radio-text"> Google Authenticator</span>
|
1123 |
</label>
|
1124 |
-
|
1125 |
-
|
1126 |
<label title="<?php echo __('You will receive a one time passcode via SMS on your phone. You have to enter the otp on your screen to login. Supported in Smartphones, Feature Phones.', 'miniorange-2-factor-authentication'); ?>">
|
1127 |
-
<input type="radio" name="mo2f_selected_2factor_method"
|
1128 |
-
<span class="mo2f-styled-radio-text">
|
1129 |
<?php echo __('OTP Over SMS (Registration required)', 'miniorange-2-factor-authentication'); ?>
|
1130 |
-
</span>
|
1131 |
-
</label></td>
|
1132 |
-
</tr>
|
1133 |
-
<tr>
|
1134 |
-
<td>
|
1135 |
-
|
1136 |
-
<label title="<?php echo __('You will receive a one time passcode on your email. You have to enter the otp on your screen to login. Supported in Smartphones, Feature Phones.', 'miniorange-2-factor-authentication'); ?>" >
|
1137 |
-
<input type="radio" name="mo2f_selected_2factor_method" class="mo2f-styled-radio" value="OTP Over Email" />
|
1138 |
-
<span class="mo2f-styled-radio-text">
|
1139 |
-
<?php echo __('OTP Over Email', 'miniorange-2-factor-authentication'); ?>
|
1140 |
-
</span>
|
1141 |
</label>
|
1142 |
-
|
1143 |
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
<span class="mo2f-styled-radio-text">
|
1148 |
-
<?php echo __('Security Questions ( KBA )', 'miniorange-2-factor-authentication'); ?>
|
1149 |
-
</span>
|
1150 |
-
</label>
|
1151 |
-
</td>
|
1152 |
-
</tr>
|
1153 |
-
<tr>
|
1154 |
-
<td>
|
1155 |
-
|
1156 |
-
<label title="<?php echo __('You have to enter 6 digits code generated by Microsoft Authenticator App to login. Supported in Smartphones only.', 'miniorange-2-factor-authentication'); ?>">
|
1157 |
-
<input type="radio" name="mo2f_selected_2factor_method" class="mo2f-styled-radio" value="Google Authenticator" />
|
1158 |
-
<span class="mo2f-styled-radio-text">
|
1159 |
-
<?php echo __('Microsoft Authenticator', 'miniorange-2-factor-authentication'); ?>
|
1160 |
-
</span>
|
1161 |
</label>
|
1162 |
-
|
1163 |
-
|
1164 |
<label title="<?php echo __('You have to enter 6 digits code generated by Authy 2-Factor Authentication App to login. Supported in Smartphones only.', 'miniorange-2-factor-authentication'); ?>">
|
1165 |
-
<input type="radio" name="mo2f_selected_2factor_method"
|
1166 |
-
<span class="mo2f-styled-radio-text">
|
1167 |
<?php echo __('Authy 2-Factor Authentication', 'miniorange-2-factor-authentication'); ?>
|
1168 |
-
</span>
|
1169 |
</label>
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
<label title="<?php echo __('You will receive a push notification on your phone. You have to ACCEPT or DENY it to login. Supported in Smartphones only.', 'miniorange-2-factor-authentication'); ?>">
|
1174 |
-
<input type="radio" name="mo2f_selected_2factor_method"
|
1175 |
-
<span class="mo2f-styled-radio-text">
|
1176 |
<?php echo __('Duo Push Notification', 'miniorange-2-factor-authentication'); ?>
|
1177 |
-
</span>
|
1178 |
</label>
|
1179 |
-
|
1180 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1181 |
<label title="<?php echo __('You will get an OTP on your TELEGRAM app from miniOrange Bot.', 'miniorange-2-factor-authentication'); ?>" >
|
1182 |
-
<input type="radio" name="mo2f_selected_2factor_method"
|
1183 |
-
<span class="mo2f-styled-radio-text">
|
1184 |
<?php echo __('OTP Over Telegram', 'miniorange-2-factor-authentication'); ?>
|
1185 |
-
</span>
|
1186 |
</label>
|
1187 |
-
|
1188 |
-
|
1189 |
-
</div>
|
1190 |
|
1191 |
-
<br><a href="#skiptwofactor" style="color:#F4D03F ;font-weight:bold;margin-left:
|
1192 |
<br />
|
1193 |
|
1194 |
|
1195 |
-
|
1196 |
-
<a href="#previousStep1"><span class="text-with-arrow text-with-arrow-left"><svg viewBox="0 0 448 512" role="img" class="icon" data-icon="long-arrow-alt-left" data-prefix="far" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="18"><path xmlns="http://www.w3.org/2000/svg" fill="currentColor" d="M107.515 150.971L8.485 250c-4.686 4.686-4.686 12.284 0 16.971L107.515 366c7.56 7.56 20.485 2.206 20.485-8.485v-71.03h308c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H128v-71.03c0-10.69-12.926-16.044-20.485-8.484z"></path></svg> Previous Step </span></a>
|
1197 |
-
<div class="mo2f-setup-wizard-step-footer-buttons">
|
1198 |
-
<input type="button" name="mo2f_next_step1" id="mo2f_next_step1" class="mo2f-button mo2f-button-main" value="Save and Continue" />
|
1199 |
-
|
1200 |
-
</div>
|
1201 |
-
</div>
|
1202 |
-
</div>
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
<div id="mo2f-setup-settings-error-loading-area2" style="width: 900px; display: none;">
|
1209 |
-
<p class="mo2f-step-show"> Step 2 of 4</p>
|
1210 |
-
|
1211 |
-
<h4 style="text-align:center;font-size: xx-large;"> Register with miniOrange </h4>
|
1212 |
-
|
1213 |
-
<form name="f" id="mo2f_registration_form" method="post" action="">
|
1214 |
-
<input type="hidden" name="option" value="mo_wpns_register_customer" />
|
1215 |
-
<div class="mo2f_table_layout">
|
1216 |
-
<div style="margin-bottom:30px;">
|
1217 |
-
<div class="overlay_error" style="width:760px; display: none;" id= "mo2f_Error_block">
|
1218 |
-
<p class ="popup_text" id="mo2f_Error_message" style="color: red;" >Seems like email is already registered. Please click on 'Already have an account'</p></div>
|
1219 |
-
<p> Please enter a valid email id that you have access to and select a password</p>
|
1220 |
-
<table class="mo_wpns_settings_table">
|
1221 |
-
<tr>
|
1222 |
-
<td><b><font color="#FF0000">*</font>Email:</b></td>
|
1223 |
-
<td><input style="padding: 5px;" class="mo_wpns_table_textbox" type="email" id="mo2f_email" name="email"
|
1224 |
-
required placeholder="person@example.com" /></td>
|
1225 |
-
</tr>
|
1226 |
-
|
1227 |
-
<tr>
|
1228 |
-
<td><b><font color="#FF0000">*</font>Password:</b></td>
|
1229 |
-
<td><input style="padding: 5px;" class="mo_wpns_table_textbox" required id= "mo2f_password" type="password"
|
1230 |
-
name="password" placeholder="Choose your password (Min. length 6)" /></td>
|
1231 |
-
</tr>
|
1232 |
-
<tr>
|
1233 |
-
<td><b><font color="#FF0000">*</font>Confirm Password:</b></td>
|
1234 |
-
<td><input style="padding: 5px;" class="mo_wpns_table_textbox" id= "mo2f_confirmPassword" required type="password"
|
1235 |
-
name="confirmPassword" placeholder="Confirm your password" /></td>
|
1236 |
-
</tr>
|
1237 |
-
<tr>
|
1238 |
-
<td> </td>
|
1239 |
-
<td><br>
|
1240 |
-
<a href="#mo2f_account_exist">Already have an account?</a>
|
1241 |
-
|
1242 |
-
</tr>
|
1243 |
-
</table>
|
1244 |
-
</div>
|
1245 |
-
</div>
|
1246 |
-
</form>
|
1247 |
-
<form name="f" id="mo2f_login_form" style="display: none;" method="post" action="">
|
1248 |
-
<input type="hidden" name="option" value="mo_wpns_verify_customer" />
|
1249 |
-
<div class="mo2f_table_layout">
|
1250 |
-
<div style="margin-bottom:30px;">
|
1251 |
-
<div class="overlay_error" style="width:760px; display: none;" id= "mo2f_Error_block">
|
1252 |
-
<p class ="popup_text" id="mo2f_Error_message" style="color: red;" >Invalid Credentials</p></div>
|
1253 |
-
|
1254 |
-
<p>Please enter your miniOrange email and password. <a target="_blank" href="https://login.xecurify.com/moas/idp/resetpassword"> Click here if you forgot your password?</a></p>
|
1255 |
-
<table class="mo_wpns_settings_table">
|
1256 |
-
<tr>
|
1257 |
-
<td><b><font color="#FF0000">*</font>Email:</b></td>
|
1258 |
-
<td><input style="padding: 5px;" class="mo_wpns_table_textbox" type="email" id="mo2f_email_login" name="email"
|
1259 |
-
required placeholder="person@example.com" /></td>
|
1260 |
-
</tr>
|
1261 |
-
<tr>
|
1262 |
-
<td><b><font color="#FF0000">*</font>Password:</b></td>
|
1263 |
-
<td><input style="padding: 5px;" class="mo_wpns_table_textbox" required id= "mo2f_password_login" type="password"
|
1264 |
-
name="password" placeholder="Enter your miniOrange password" /></td>
|
1265 |
-
</tr>
|
1266 |
-
<tr>
|
1267 |
-
<td> </td>
|
1268 |
-
<td><br>
|
1269 |
-
<a href="#mo2f_register_new_account">Go Back to Registration Page</a>
|
1270 |
-
|
1271 |
-
</tr>
|
1272 |
-
|
1273 |
-
</table>
|
1274 |
-
</div>
|
1275 |
-
</div>
|
1276 |
-
</form>
|
1277 |
-
|
1278 |
-
|
1279 |
-
<br><a href="#skiptwofactor" style="color:#F4D03F ;font-weight:bold;margin-left:45%;"><?php echo __('Skip Setup', 'miniorange-2-factor-authentication'); ?></a>
|
1280 |
-
<br/>
|
1281 |
-
|
1282 |
-
|
1283 |
-
<div class="mo2f-setup-wizard-step-footer">
|
1284 |
-
<a href="#previousStep2"><span class="text-with-arrow text-with-arrow-left"><svg viewBox="0 0 448 512" role="img" class="icon" data-icon="long-arrow-alt-left" data-prefix="far" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="18"><path xmlns="http://www.w3.org/2000/svg" fill="currentColor" d="M107.515 150.971L8.485 250c-4.686 4.686-4.686 12.284 0 16.971L107.515 366c7.56 7.56 20.485 2.206 20.485-8.485v-71.03h308c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H128v-71.03c0-10.69-12.926-16.044-20.485-8.484z"></path></svg> Previous Step </span></a>
|
1285 |
-
<div class="mo2f-setup-wizard-step-footer-buttons">
|
1286 |
-
<input type="button" name="mo2f_next_step2" id="mo2f_next_step2" class="mo2f-button mo2f-button-main" value="Create Account and continue" />
|
1287 |
-
|
1288 |
-
</div>
|
1289 |
-
</div>
|
1290 |
-
|
1291 |
-
|
1292 |
-
</div>
|
1293 |
-
|
1294 |
-
<div id="mo2f-setup-settings-error-loading-area3" style="width: 900px; display: none;">
|
1295 |
-
<p class="mo2f-step-show"> Step 3 of 4</p>
|
1296 |
-
|
1297 |
-
<h3 style="text-align:center;font-size: xx-large;" id="mo2f_setup_method_title"> Configure 2-factor authentication </h3>
|
1298 |
-
|
1299 |
-
<div class="overlay_success" style="width:760px; display: none;" id= "mo2f_success_block_configuration">
|
1300 |
-
<p class ="popup_text" id="mo2f_configure_success_message" >An OTP has been sent to the below email.</p>
|
1301 |
-
<br><br></div>
|
1302 |
-
|
1303 |
-
<div class="overlay_error" style="width:760px; display: none;" id= "mo2f_Error_block_configuration">
|
1304 |
-
<p class ="popup_text" id="mo2f_configure_Error_message" style="color: red;" >Invalid OTP</p>
|
1305 |
-
</div>
|
1306 |
-
<div id="mo2f_main_content"> </div>
|
1307 |
-
|
1308 |
-
<br><a href="#skiptwofactor" style="color:#F4D03F ;font-weight:bold;margin-left:45%;"><?php echo __('Skip Setup', 'miniorange-2-factor-authentication'); ?></a>
|
1309 |
-
<br/>
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
<div class="mo2f-setup-wizard-step-footer">
|
1314 |
-
<a href="#previousStep3"><span class="text-with-arrow text-with-arrow-left"><svg viewBox="0 0 448 512" role="img" class="icon" data-icon="long-arrow-alt-left" data-prefix="far" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="18"><path xmlns="http://www.w3.org/2000/svg" fill="currentColor" d="M107.515 150.971L8.485 250c-4.686 4.686-4.686 12.284 0 16.971L107.515 366c7.56 7.56 20.485 2.206 20.485-8.485v-71.03h308c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H128v-71.03c0-10.69-12.926-16.044-20.485-8.484z"></path></svg> Previous Step </span></a>
|
1315 |
-
<div class="mo2f-setup-wizard-step-footer-buttons">
|
1316 |
-
<input type="button" name="mo2f_next_step3" id="mo2f_next_step3" class="mo2f-button mo2f-button-main" value="Save and Continue" />
|
1317 |
-
|
1318 |
-
</div>
|
1319 |
-
</div>
|
1320 |
-
|
1321 |
-
|
1322 |
-
</div>
|
1323 |
-
|
1324 |
-
<div id="mo2f-setup-settings-error-loading-area4" style="width: 900px; display: none;">
|
1325 |
-
<p class="mo2f-step-show"> Step 4 of 4</p>
|
1326 |
-
<div style="text-align: center;">
|
1327 |
-
<h3 style="text-align:center;font-size: xx-large;"> Congratulations! </h3>
|
1328 |
-
<br>
|
1329 |
-
You have successfully configured the two-factor authentication.
|
1330 |
-
<br><br><br>
|
1331 |
-
<input type="button" name="mo2f_next_step4" id="mo2f_next_step4" class="mo2f-button mo2f-button-main" value="Advance Settings" />
|
1332 |
-
|
1333 |
-
</div>
|
1334 |
-
</div>
|
1335 |
-
|
1336 |
-
</div>
|
1337 |
-
|
1338 |
-
|
1339 |
</div>
|
1340 |
</div>
|
1341 |
|
1342 |
|
1343 |
|
1344 |
<script type="text/javascript">
|
1345 |
-
|
1346 |
-
var selected_2FA_method = '';
|
1347 |
-
var ele = document.getElementsByName('mo2f_selected_2factor_method');
|
1348 |
-
for(i = 0; i < ele.length; i++) {
|
1349 |
-
if(ele[i].checked)
|
1350 |
-
selected_2FA_method = ele[i].value;
|
1351 |
-
}
|
1352 |
-
jQuery("#mo2f_setup_method_title").text(selected_2FA_method);
|
1353 |
-
|
1354 |
-
jQuery('#mo2f_next_step4').click(function(e){
|
1355 |
-
localStorage.setItem("last_tab", 'unlimittedUser_2fa');
|
1356 |
-
window.location.href = '<?php echo (admin_url()."admin.php?page=mo_2fa_two_fa"); ?>';
|
1357 |
-
|
1358 |
-
});
|
1359 |
-
|
1360 |
-
|
1361 |
jQuery('#mo2f_methods_setup_wizard').css('display', 'none');
|
1362 |
jQuery("#mo2f_get_started").click(function(e){
|
1363 |
jQuery('#mo2f-setup-settings-error-loading-area-container').css('display', 'none');
|
@@ -1365,417 +729,21 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
1365 |
|
1366 |
});
|
1367 |
|
1368 |
-
jQuery('a[href="#previousStep3"]').click(function(e){
|
1369 |
-
document.getElementById('mo2f_success_block_configuration').style.display = "none";
|
1370 |
-
document.getElementById('mo2f_Error_block_configuration').style.display = "none";
|
1371 |
-
|
1372 |
-
var selected_2FA_method = '';
|
1373 |
-
var ele = document.getElementsByName('mo2f_selected_2factor_method');
|
1374 |
-
for(i = 0; i < ele.length; i++) {
|
1375 |
-
if(ele[i].checked)
|
1376 |
-
selected_2FA_method = ele[i].value;
|
1377 |
-
}
|
1378 |
-
if(selected_2FA_method =='OTP Over SMS')
|
1379 |
-
{
|
1380 |
-
document.getElementById('mo2f-setup-settings-error-loading-area3').style.display = "none";
|
1381 |
-
document.getElementById('mo2f-setup-settings-error-loading-area2').style.display = "block";
|
1382 |
-
var lineElement = document.getElementById("mo2f-setup-wizard-line2");
|
1383 |
-
lineElement.classList.remove("mo2f-setup-wizard-timeline-line-active");
|
1384 |
-
var stepElement = document.getElementById("mo2f-setup-wizard-step3");
|
1385 |
-
stepElement.classList.remove("mo2f-setup-wizard-timeline-step-active");
|
1386 |
-
}
|
1387 |
-
else
|
1388 |
-
{
|
1389 |
-
var lineElement = document.getElementById("mo2f-setup-wizard-line2");
|
1390 |
-
lineElement.classList.remove("mo2f-setup-wizard-timeline-line-active");
|
1391 |
-
var stepElement = document.getElementById("mo2f-setup-wizard-step3");
|
1392 |
-
stepElement.classList.remove("mo2f-setup-wizard-timeline-step-active");
|
1393 |
-
var lineElement = document.getElementById("mo2f-setup-wizard-line1");
|
1394 |
-
lineElement.classList.remove("mo2f-setup-wizard-timeline-line-active");
|
1395 |
-
var stepElement = document.getElementById("mo2f-setup-wizard-step2");
|
1396 |
-
stepElement.classList.remove("mo2f-setup-wizard-timeline-step-active");
|
1397 |
-
document.getElementById('mo2f-setup-settings-error-loading-area3').style.display = "none";
|
1398 |
-
document.getElementById('mo2f-setup-settings-error-loading-area1').style.display = "block";
|
1399 |
-
|
1400 |
-
}
|
1401 |
-
});
|
1402 |
-
|
1403 |
-
jQuery('a[href="#previousStep2"]').click(function(e){
|
1404 |
-
document.getElementById('mo2f-setup-settings-error-loading-area2').style.display = "none";
|
1405 |
-
document.getElementById('mo2f-setup-settings-error-loading-area1').style.display = "block";
|
1406 |
-
var lineElement = document.getElementById("mo2f-setup-wizard-line1");
|
1407 |
-
lineElement.classList.remove("mo2f-setup-wizard-timeline-line-active");
|
1408 |
-
var stepElement = document.getElementById("mo2f-setup-wizard-step2");
|
1409 |
-
stepElement.classList.remove("mo2f-setup-wizard-timeline-step-active");
|
1410 |
-
|
1411 |
-
});
|
1412 |
-
|
1413 |
-
jQuery('a[href="#previousStep1"]').click(function(e){
|
1414 |
-
jQuery('#mo2f-setup-settings-error-loading-area-container').css('display', 'block');
|
1415 |
-
jQuery('#mo2f_methods_setup_wizard').css('display', 'none');
|
1416 |
-
|
1417 |
-
});
|
1418 |
-
|
1419 |
-
jQuery('a[href=\"#mo2f_account_exist\"]').click(function (e) {
|
1420 |
-
document.getElementById('mo2f_registration_form').style.display = "none";
|
1421 |
-
document.getElementById('mo2f_login_form').style.display = "block";
|
1422 |
-
document.getElementById('mo2f_next_step2').value = 'Login and Continue';
|
1423 |
-
});
|
1424 |
-
|
1425 |
-
jQuery('a[href=\"#mo2f_register_new_account\"]').click(function (e) {
|
1426 |
-
document.getElementById('mo2f_registration_form').style.display = "block";
|
1427 |
-
document.getElementById('mo2f_login_form').style.display = "none";
|
1428 |
-
document.getElementById('mo2f_next_step2').value = 'Create Account and Continue';
|
1429 |
-
});
|
1430 |
-
|
1431 |
-
jQuery('#mo2f_next_step3').click(function(e){
|
1432 |
-
document.getElementById('mo2f_loader').style.display = "block";
|
1433 |
-
document.getElementById('mo2f_success_block_configuration').style.display = "none";
|
1434 |
-
document.getElementById('mo2f_Error_block_configuration').style.display = "none";
|
1435 |
-
document.getElementById('mo2f-setup-wizard-settings-area').className = ' overlay';
|
1436 |
-
|
1437 |
-
var selected_2FA_method = '';
|
1438 |
-
var ele = document.getElementsByName('mo2f_selected_2factor_method');
|
1439 |
-
for(i = 0; i < ele.length; i++) {
|
1440 |
-
if(ele[i].checked)
|
1441 |
-
selected_2FA_method = ele[i].value;
|
1442 |
-
}
|
1443 |
-
var data ='';
|
1444 |
-
if(selected_2FA_method == 'Google Authenticator')
|
1445 |
-
{
|
1446 |
-
data= { 'action':'mo_two_factor_ajax',
|
1447 |
-
'mo_2f_two_factor_ajax' : 'mo_2fa_verify_GA_setup_wizard',
|
1448 |
-
'mo2f_google_auth_code' : jQuery('#mo2f_google_auth_code').val(),
|
1449 |
-
'mo2f_session_id' : jQuery('#mo2f_session_id').val()
|
1450 |
-
};
|
1451 |
-
|
1452 |
-
}
|
1453 |
-
else if (selected_2FA_method =='OTP Over SMS')
|
1454 |
-
{
|
1455 |
-
data= { 'action':'mo_two_factor_ajax',
|
1456 |
-
'mo_2f_two_factor_ajax' : 'mo_2fa_verify_OTPOverSMS_setup_wizard',
|
1457 |
-
'mo2f_otp_token' : jQuery('#mo2f_otp_token').val()
|
1458 |
-
};
|
1459 |
-
|
1460 |
-
}
|
1461 |
-
else if(selected_2FA_method == 'OTP Over Email')
|
1462 |
-
{
|
1463 |
-
data= { 'action':'mo_two_factor_ajax',
|
1464 |
-
'mo_2f_two_factor_ajax' : 'mo_2fa_verify_OTPOverEmail_setup_wizard',
|
1465 |
-
'mo2f_otp_token' : jQuery('#mo2f_otp_token').val()
|
1466 |
-
};
|
1467 |
-
|
1468 |
-
}
|
1469 |
-
else if(selected_2FA_method == 'Security Questions')
|
1470 |
-
{
|
1471 |
-
data= { 'action':'mo_two_factor_ajax',
|
1472 |
-
'mo_2f_two_factor_ajax' : 'mo_2fa_verify_KBA_setup_wizard',
|
1473 |
-
'mo2f_kbaquestion_1' : jQuery('#mo2f_kbaquestion_1').val(),
|
1474 |
-
'mo2f_kbaquestion_2' : jQuery('#mo2f_kbaquestion_2').val(),
|
1475 |
-
'mo2f_kbaquestion_3' : jQuery('#mo2f_kbaquestion_3').val(),
|
1476 |
-
'mo2f_kba_ans1' : jQuery('#mo2f_kba_ans1').val(),
|
1477 |
-
'mo2f_kba_ans2' : jQuery('#mo2f_kba_ans2').val(),
|
1478 |
-
'mo2f_kba_ans3' : jQuery('#mo2f_kba_ans3').val()
|
1479 |
-
};
|
1480 |
-
|
1481 |
-
}
|
1482 |
-
var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";
|
1483 |
-
jQuery.post(ajax_url, data, function(response){
|
1484 |
-
document.getElementById('mo2f_loader').style.display = "none";
|
1485 |
-
document.getElementById('mo2f-setup-wizard-settings-area').classList.remove('overlay');
|
1486 |
-
|
1487 |
-
if(response =='SUCCESS')
|
1488 |
-
{
|
1489 |
-
var lineElement = document.getElementById("mo2f-setup-wizard-line3");
|
1490 |
-
lineElement.className += " mo2f-setup-wizard-timeline-line-active";
|
1491 |
-
var stepElement = document.getElementById("mo2f-setup-wizard-step4");
|
1492 |
-
stepElement.className += " mo2f-setup-wizard-timeline-step-active";
|
1493 |
-
document.getElementById('mo2f-setup-settings-error-loading-area3').style.display = "none";
|
1494 |
-
jQuery('#mo2f-setup-settings-error-loading-area4').css('display','block');
|
1495 |
-
|
1496 |
-
}
|
1497 |
-
else
|
1498 |
-
{
|
1499 |
-
document.getElementById('mo2f_configure_Error_message').innerHTML = response;
|
1500 |
-
document.getElementById('mo2f_Error_block_configuration').style.display = "block";
|
1501 |
-
}
|
1502 |
-
});
|
1503 |
-
|
1504 |
-
});
|
1505 |
-
|
1506 |
-
jQuery("#mo2f_next_step2").click(function(e){
|
1507 |
-
document.getElementById('mo2f-setup-wizard-settings-area').className = ' overlay';
|
1508 |
-
document.getElementById('mo2f_loader').style.display = "block";
|
1509 |
-
document.getElementById('mo2f_Error_block').style.display = "none";
|
1510 |
-
document.getElementById('mo2f_next_step2').disabled = true;
|
1511 |
-
var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";
|
1512 |
-
var email = jQuery("#mo2f_email").val();
|
1513 |
-
var password = jQuery("#mo2f_password").val();
|
1514 |
-
if(jQuery("#mo2f_next_step2").val() == 'Login and Continue')
|
1515 |
-
{
|
1516 |
-
email = jQuery("#mo2f_email_login").val();
|
1517 |
-
password = jQuery("#mo2f_password_login").val();
|
1518 |
-
}
|
1519 |
-
var data= { 'action':'mo_two_factor_ajax',
|
1520 |
-
'mo_2f_two_factor_ajax' : 'mo_wpns_register_verify_customer',
|
1521 |
-
'email': email,
|
1522 |
-
'password':password,
|
1523 |
-
'confirmPassword' : jQuery("#mo2f_confirmPassword").val(),
|
1524 |
-
'Login and Continue' : jQuery("#mo2f_next_step2").val()
|
1525 |
-
};
|
1526 |
-
|
1527 |
-
jQuery.post(ajax_url, data, function(response){
|
1528 |
-
document.getElementById('mo2f-setup-wizard-settings-area').classList.remove('overlay');
|
1529 |
-
|
1530 |
-
document.getElementById('mo2f_next_step2').disabled = false;
|
1531 |
-
if(response == 'SUCCESS')
|
1532 |
-
{
|
1533 |
-
var lineElement = document.getElementById("mo2f-setup-wizard-line2");
|
1534 |
-
lineElement.className += " mo2f-setup-wizard-timeline-line-active";
|
1535 |
-
var stepElement = document.getElementById("mo2f-setup-wizard-step3");
|
1536 |
-
stepElement.className += " mo2f-setup-wizard-timeline-step-active";
|
1537 |
-
document.getElementById('mo2f-setup-settings-error-loading-area2').style.display = "none";
|
1538 |
-
jQuery('#mo2f-setup-settings-error-loading-area3').css('display','block');
|
1539 |
-
|
1540 |
-
var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";
|
1541 |
-
var data= { 'action':'mo_two_factor_ajax',
|
1542 |
-
'mo_2f_two_factor_ajax' : 'mo_2fa_configure_OTPOverSMS_setup_wizard'
|
1543 |
-
};
|
1544 |
-
jQuery.post(ajax_url, data, function(response){
|
1545 |
-
|
1546 |
-
document.getElementById('mo2f_loader').style.display = "none";
|
1547 |
-
document.getElementById('mo2f_main_content').innerHTML = response;
|
1548 |
-
jQuery("#phone").intlTelInput();
|
1549 |
-
|
1550 |
-
jQuery('#mo2f_send_otp').click(function(e){
|
1551 |
-
document.getElementById('mo2f_loader').style.display = "block";
|
1552 |
-
document.getElementById('mo2f-setup-wizard-settings-area').className = ' overlay';
|
1553 |
-
|
1554 |
-
document.getElementById('mo2f_success_block_configuration').style.display = "none";
|
1555 |
-
document.getElementById('mo2f_Error_block_configuration').style.display = "none";
|
1556 |
-
|
1557 |
-
var data = { 'action':'mo_two_factor_ajax',
|
1558 |
-
'mo_2f_two_factor_ajax' : 'mo_2fa_send_otp_token',
|
1559 |
-
'phone' : jQuery('#phone').val(),
|
1560 |
-
'selected_2FA_method' : 'SMS'
|
1561 |
-
};
|
1562 |
-
var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";
|
1563 |
-
jQuery.post(ajax_url, data, function(response){
|
1564 |
-
document.getElementById('mo2f_loader').style.display = "none";
|
1565 |
-
document.getElementById('mo2f-setup-wizard-settings-area').classList.remove('overlay');
|
1566 |
-
|
1567 |
-
if(response == 'SUCCESS')
|
1568 |
-
{
|
1569 |
-
$message = 'An OTP has been sent to the below phone number. Please enter the OTP to set the 2FA';
|
1570 |
-
document.getElementById('mo2f_configure_success_message').innerHTML = $message;
|
1571 |
-
document.getElementById('mo2f_success_block_configuration').style.display = "block";
|
1572 |
-
|
1573 |
-
}
|
1574 |
-
else
|
1575 |
-
{
|
1576 |
-
document.getElementById('mo2f_configure_Error_message').innerHTML = response;
|
1577 |
-
document.getElementById('mo2f_Error_block_configuration').style.display = "block";
|
1578 |
-
|
1579 |
-
}
|
1580 |
-
});
|
1581 |
-
|
1582 |
-
});
|
1583 |
-
|
1584 |
-
});
|
1585 |
-
}
|
1586 |
-
else
|
1587 |
-
{
|
1588 |
-
document.getElementById('mo2f_loader').style.display = "none";
|
1589 |
-
document.getElementById('mo2f_Error_message').innerHTML = response;
|
1590 |
-
document.getElementById('mo2f_Error_block').style.display = "block";
|
1591 |
-
}
|
1592 |
-
|
1593 |
-
});
|
1594 |
-
|
1595 |
-
});
|
1596 |
-
|
1597 |
-
jQuery("#mo2f_next_step1").click(function(e){
|
1598 |
-
var ele = document.getElementsByName('mo2f_selected_2factor_method');
|
1599 |
-
var selected_2FA_method = '';
|
1600 |
-
for(i = 0; i < ele.length; i++) {
|
1601 |
-
if(ele[i].checked)
|
1602 |
-
selected_2FA_method = ele[i].value;
|
1603 |
-
}
|
1604 |
-
var configMessage = 'Configure '+selected_2FA_method;
|
1605 |
-
jQuery("#mo2f_setup_method_title").text(configMessage);
|
1606 |
-
|
1607 |
-
if(selected_2FA_method == '')
|
1608 |
-
{
|
1609 |
-
return '';
|
1610 |
-
}
|
1611 |
-
|
1612 |
-
|
1613 |
-
|
1614 |
-
document.getElementById('mo2f-setup-settings-error-loading-area1').style.display = "none";
|
1615 |
-
var lineElement = document.getElementById("mo2f-setup-wizard-line1");
|
1616 |
-
lineElement.className += " mo2f-setup-wizard-timeline-line-active";
|
1617 |
-
var stepElement = document.getElementById("mo2f-setup-wizard-step2");
|
1618 |
-
stepElement.className += " mo2f-setup-wizard-timeline-step-active";
|
1619 |
-
|
1620 |
-
if(selected_2FA_method !="OTP Over SMS" && selected_2FA_method != '')
|
1621 |
-
{
|
1622 |
-
var lineElement = document.getElementById("mo2f-setup-wizard-line2");
|
1623 |
-
lineElement.className += " mo2f-setup-wizard-timeline-line-active";
|
1624 |
-
var stepElement = document.getElementById("mo2f-setup-wizard-step3");
|
1625 |
-
stepElement.className += " mo2f-setup-wizard-timeline-step-active";
|
1626 |
-
jQuery('#mo2f-setup-settings-error-loading-area3').css('display','block');
|
1627 |
-
|
1628 |
-
document.getElementById('mo2f_loader').style.display = "block";
|
1629 |
-
|
1630 |
-
var mo2f_setup_call = "";
|
1631 |
-
if(selected_2FA_method == "Google Authenticator")
|
1632 |
-
{
|
1633 |
-
mo2f_setup_call = "mo_2fa_configure_GA_setup_wizard";
|
1634 |
-
}
|
1635 |
-
else if(selected_2FA_method =="OTP Over Email")
|
1636 |
-
{
|
1637 |
-
mo2f_setup_call ="mo_2fa_configure_OTPOverEmail_setup_wizard";
|
1638 |
-
}
|
1639 |
-
else if (selected_2FA_method == "Security Questions")
|
1640 |
-
{
|
1641 |
-
mo2f_setup_call = "mo_2fa_configure_KBA_setup_wizard";
|
1642 |
-
}
|
1643 |
-
var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";
|
1644 |
-
var data= { 'action':'mo_two_factor_ajax',
|
1645 |
-
'mo_2f_two_factor_ajax' : mo2f_setup_call
|
1646 |
-
};
|
1647 |
-
jQuery.post(ajax_url, data, function(response){
|
1648 |
-
document.getElementById('mo2f_loader').style.display = "none";
|
1649 |
-
document.getElementById('mo2f_main_content').innerHTML = response;
|
1650 |
-
|
1651 |
-
if(selected_2FA_method == 'Google Authenticator')
|
1652 |
-
{
|
1653 |
-
jQuery('.mo2f_gauth').qrcode({
|
1654 |
-
'render': 'image',
|
1655 |
-
size: 175,
|
1656 |
-
'text': jQuery('.mo2f_gauth').data('qrcode')
|
1657 |
-
});
|
1658 |
-
jQuery('a[href="#mo2f_scanbarcode_a"]').click(function(e){
|
1659 |
-
var element = document.getElementById('mo2f_scanbarcode_a');
|
1660 |
-
if(element.style.display === 'none')
|
1661 |
-
element.style.display = 'block';
|
1662 |
-
|
1663 |
-
else
|
1664 |
-
element.style.display = "none";
|
1665 |
-
});
|
1666 |
-
|
1667 |
-
}
|
1668 |
-
else if(selected_2FA_method =='OTP Over Email')
|
1669 |
-
{
|
1670 |
-
jQuery('#mo2f_send_otp').click(function(e){
|
1671 |
-
document.getElementById('mo2f_loader').style.display = "block";
|
1672 |
-
document.getElementById('mo2f-setup-wizard-settings-area').className = ' overlay';
|
1673 |
-
|
1674 |
-
document.getElementById('mo2f_success_block_configuration').style.display = "none";
|
1675 |
-
document.getElementById('mo2f_Error_block_configuration').style.display = "none";
|
1676 |
-
|
1677 |
-
var data = { 'action':'mo_two_factor_ajax',
|
1678 |
-
'mo_2f_two_factor_ajax' : 'mo_2fa_send_otp_token',
|
1679 |
-
'phone' : jQuery('#phone').val(),
|
1680 |
-
'mo2f_session_id' : jQuery('#mo2f_session_id').val(),
|
1681 |
-
'selected_2FA_method' : 'OTP Over Email'
|
1682 |
-
};
|
1683 |
-
var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";
|
1684 |
-
jQuery.post(ajax_url, data, function(response){
|
1685 |
-
document.getElementById('mo2f_loader').style.display = "none";
|
1686 |
-
document.getElementById('mo2f-setup-wizard-settings-area').classList.remove('overlay');
|
1687 |
-
|
1688 |
-
if(response == 'SUCCESS')
|
1689 |
-
{
|
1690 |
-
$message = 'An OTP has been sent to the below email please enter the OTP to set the 2FA';
|
1691 |
-
document.getElementById('mo2f_configure_success_message').innerHTML = $message;
|
1692 |
-
document.getElementById('mo2f_success_block_configuration').style.display = "block";
|
1693 |
-
|
1694 |
-
}
|
1695 |
-
else
|
1696 |
-
{
|
1697 |
-
document.getElementById('mo2f_configure_Error_message').innerHTML = response;
|
1698 |
-
document.getElementById('mo2f_Error_block_configuration').style.display = "block";
|
1699 |
-
|
1700 |
-
}
|
1701 |
-
});
|
1702 |
-
|
1703 |
-
});
|
1704 |
-
}
|
1705 |
-
else if (selected_2FA_method =='Security Questions')
|
1706 |
-
{
|
1707 |
-
|
1708 |
-
var mo_option_to_hide1;
|
1709 |
-
//hidden element in dropdown list 2
|
1710 |
-
var mo_option_to_hide2;
|
1711 |
-
|
1712 |
-
jQuery('#mo2f_kbaquestion_1').change(function(){
|
1713 |
-
list = 1;
|
1714 |
-
var list_selected = document.getElementById("mo2f_kbaquestion_" + list).selectedIndex;
|
1715 |
-
//if an element is currently hidden, unhide it
|
1716 |
-
if (typeof (mo_option_to_hide1) != "undefined" && mo_option_to_hide1 !== null && list == 2) {
|
1717 |
-
mo_option_to_hide1.style.display = 'block';
|
1718 |
-
} else if (typeof (mo_option_to_hide2) != "undefined" && mo_option_to_hide2 !== null && list == 1) {
|
1719 |
-
mo_option_to_hide2.style.display = 'block';
|
1720 |
-
}
|
1721 |
-
//select the element to hide and then hide it
|
1722 |
-
if (list == 1) {
|
1723 |
-
if (list_selected != 0) {
|
1724 |
-
mo_option_to_hide2 = document.getElementById("mq" + list_selected + "_2");
|
1725 |
-
mo_option_to_hide2.style.display = 'none';
|
1726 |
-
}
|
1727 |
-
}
|
1728 |
-
});
|
1729 |
-
jQuery('#mo2f_kbaquestion_2').change(function(){
|
1730 |
-
list = 2;
|
1731 |
-
var list_selected = document.getElementById("mo2f_kbaquestion_" + list).selectedIndex;
|
1732 |
-
//if an element is currently hidden, unhide it
|
1733 |
-
if (typeof (mo_option_to_hide1) != "undefined" && mo_option_to_hide1 !== null && list == 2) {
|
1734 |
-
mo_option_to_hide1.style.display = 'block';
|
1735 |
-
} else if (typeof (mo_option_to_hide2) != "undefined" && mo_option_to_hide2 !== null && list == 1) {
|
1736 |
-
mo_option_to_hide2.style.display = 'block';
|
1737 |
-
}
|
1738 |
-
//select the element to hide and then hide it
|
1739 |
-
if (list == 2) {
|
1740 |
-
if (list_selected != 0) {
|
1741 |
-
mo_option_to_hide1 = document.getElementById("mq" + list_selected + "_1");
|
1742 |
-
mo_option_to_hide1.style.display = 'none';
|
1743 |
-
}
|
1744 |
-
}
|
1745 |
-
});
|
1746 |
-
|
1747 |
-
}
|
1748 |
-
});
|
1749 |
-
|
1750 |
-
|
1751 |
-
}
|
1752 |
-
else if(selected_2FA_method == 'OTP Over SMS')
|
1753 |
-
{
|
1754 |
-
jQuery('#mo2f-setup-settings-error-loading-area2').css('display','block');
|
1755 |
-
}
|
1756 |
-
|
1757 |
-
|
1758 |
-
});
|
1759 |
jQuery('input:radio[name=mo2f_selected_2factor_method]').click(function() {
|
1760 |
-
|
1761 |
-
|
1762 |
localStorage.setItem("last_tab", 'setup_2fa');
|
1763 |
var selectedMethod = jQuery(this).val();
|
1764 |
var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";
|
1765 |
var nonce = "<?php echo wp_create_nonce( 'miniorange-select-method-setup-wizard' ); ?>";
|
1766 |
|
1767 |
-
|
1768 |
-
|
1769 |
-
|
1770 |
-
|
1771 |
-
|
1772 |
-
|
1773 |
-
|
1774 |
-
|
1775 |
-
|
1776 |
-
});
|
1777 |
-
}
|
1778 |
-
|
1779 |
});
|
1780 |
|
1781 |
jQuery('a[href="#skiptwofactor"]').click(function(e){
|
@@ -1839,7 +807,7 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
1839 |
|
1840 |
do_action( 'mo2f_admin_setup_wizard_load_setup_wizard_before', $this );
|
1841 |
wp_enqueue_script('jquery');
|
1842 |
-
wp_enqueue_script('wp-mo2f-setup-wizard',plugins_url( 'includes/js/setup-wizard-2fa.js', dirname(dirname(__FILE__))));
|
1843 |
|
1844 |
wp_localize_script(
|
1845 |
'wp-mo2f-setup-wizard',
|
@@ -4180,6 +3148,18 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
4180 |
} else {
|
4181 |
update_option( 'mo2f_enable_2fa', isset( $_POST['mo2f_enable_2fa'] ) ? $_POST['mo2f_enable_2fa'] : 0 );
|
4182 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4183 |
}else if ( isset( $_POST['option'] ) && $_POST['option'] == 'mo_2factor_test_authentication_method' ) {
|
4184 |
//network security feature
|
4185 |
$nonce = $_POST['mo_2factor_test_authentication_method_nonce'];
|
@@ -4449,25 +3429,7 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
4449 |
$error->add('empty_username', '<strong>'. __('ERROR','miniorange-2-factor-authentication') .'</strong>: '. __('Invalid Request.', 'miniorange-2-factor-authentication'));
|
4450 |
return $error;
|
4451 |
}else {
|
4452 |
-
|
4453 |
-
|
4454 |
-
if($codes == 'LimitReached' || $codes == 'UserLimitReached' || $codes == 'AllUsed' || $codes == 'invalid_request'){
|
4455 |
-
$id = get_current_user_id();
|
4456 |
-
update_user_meta($id, 'mo_backup_code_generated', 1);
|
4457 |
-
update_user_meta($id, 'mo_backup_code_downloaded', 1);
|
4458 |
-
if($codes == 'AllUsed'){
|
4459 |
-
update_option( 'mo2f_message', Mo2fConstants::langTranslate("USED_ALL_BACKUP_CODES"));
|
4460 |
-
}else if($codes == 'LimitReached'){
|
4461 |
-
update_option( 'mo2f_message', Mo2fConstants::langTranslate("BACKUP_CODE_LIMIT_REACH"));
|
4462 |
-
}else if($codes == 'UserLimitReached'){
|
4463 |
-
update_option( 'mo2f_message', Mo2fConstants::langTranslate("BACKUP_CODE_DOMAIN_LIMIT_REACH"));
|
4464 |
-
}else if($codes == 'invalid_request'){
|
4465 |
-
update_user_meta($id, 'mo_backup_code_generated', 0);
|
4466 |
-
update_user_meta($id, 'mo_backup_code_downloaded', 0);
|
4467 |
-
update_option( 'mo2f_message', Mo2fConstants::langTranslate("BACKUP_CODE_INVALID_REQUEST"));
|
4468 |
-
}
|
4469 |
-
$this->mo_auth_show_error_message();
|
4470 |
-
}
|
4471 |
}
|
4472 |
}
|
4473 |
|
@@ -4509,7 +3471,7 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
4509 |
<!-- Modal content -->
|
4510 |
<div class="modal-content">
|
4511 |
<div class="modal-header">
|
4512 |
-
<h3 class="modal-title" style="text-align: center; font-size: 20px; color: #
|
4513 |
</div>
|
4514 |
<div class="modal-body" style="height: auto">
|
4515 |
<h2><i>Enter your Email: <input type ='email' id='emailEnteredCloud' name='emailEnteredCloud' size= '40' required value="<?php echo $email;?>"/></i></h2>
|
@@ -4901,18 +3863,18 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
4901 |
$url = get_site_option('siteurl').'/wp-login.php?'; //login page can change
|
4902 |
$message = '<table cellpadding="25" style="margin:0px auto">
|
4903 |
<tbody>
|
4904 |
-
<
|
4905 |
<td>
|
4906 |
<table cellpadding="24" width="584px" style="margin:0 auto;max-width:584px;background-color:#f6f4f4;border:1px solid #a8adad">
|
4907 |
<tbody>
|
4908 |
-
<
|
4909 |
<td><img src="https://ci5.googleusercontent.com/proxy/10EQeM1udyBOkfD2dwxGhIaMXV4lOwCRtUecpsDkZISL0JIkOL2JhaYhVp54q6Sk656rW2rpAFJFEgGQiAOVcYIIKxXYMHHMNSNB=s0-d-e1-ft#https://login.xecurify.com/moas/images/xecurify-logo.png" style="color:#5fb336;text-decoration:none;display:block;width:auto;height:auto;max-height:35px" class="CToWUd"></td>
|
4910 |
</tr>
|
4911 |
</tbody>
|
4912 |
</table>
|
4913 |
<table cellpadding="24" style="background:#fff;border:1px solid #a8adad;width:584px;border-top:none;color:#4d4b48;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:18px">
|
4914 |
<tbody>
|
4915 |
-
<
|
4916 |
<td>
|
4917 |
<p style="margin-top:0;margin-bottom:20px">Dear Customers,</p>
|
4918 |
<p style="margin-top:0;margin-bottom:10px">You initiated a transaction <b>WordPress 2 Factor Authentication Plugin</b>:</p>
|
@@ -4993,18 +3955,18 @@ private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $foo
|
|
4993 |
$headers[] = 'Cc: 2fasupport <2fasupport@xecurify.com>';
|
4994 |
$message = '<table cellpadding="25" style="margin:0px auto">
|
4995 |
<tbody>
|
4996 |
-
<
|
4997 |
<td>
|
4998 |
<table cellpadding="24" width="584px" style="margin:0 auto;max-width:584px;background-color:#f6f4f4;border:1px solid #a8adad">
|
4999 |
<tbody>
|
5000 |
-
<
|
5001 |
<td><img src="https://ci5.googleusercontent.com/proxy/10EQeM1udyBOkfD2dwxGhIaMXV4lOwCRtUecpsDkZISL0JIkOL2JhaYhVp54q6Sk656rW2rpAFJFEgGQiAOVcYIIKxXYMHHMNSNB=s0-d-e1-ft#https://login.xecurify.com/moas/images/xecurify-logo.png" style="color:#5fb336;text-decoration:none;display:block;width:auto;height:auto;max-height:35px" class="CToWUd"></td>
|
5002 |
</tr>
|
5003 |
</tbody>
|
5004 |
</table>
|
5005 |
<table cellpadding="24" style="background:#fff;border:1px solid #a8adad;width:584px;border-top:none;color:#4d4b48;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:18px">
|
5006 |
<tbody>
|
5007 |
-
<
|
5008 |
<td>
|
5009 |
<p style="margin-top:0;margin-bottom:20px">Dear Customer,</p>
|
5010 |
<p style="margin-top:0;margin-bottom:20px"> You are going to exhaust all your '.$string.'. You have only <b>'.$count.'</b> '.$string.' remaining. You can recharge or add '.$string.' to your account: <a href='.MoWpnsConstants::rechargeLink.'>Recharge</a></p>
|
469 |
private function settings_error_page( $id = 'mo2f-setup-vue-site-settings', $footer = '' ) {
|
470 |
|
471 |
$contact_url = 'https://wordpress.org/plugins/miniorange-2-factor-authentication/';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
472 |
?>
|
473 |
<style type="text/css">
|
474 |
#mo2f-setup-wizard-settings-area {
|
502 |
padding: 0 10px;
|
503 |
}
|
504 |
|
|
|
505 |
#mo2f-setup-wizard-settings-area .mo2f-setup-logo img {
|
506 |
width: 100%;
|
507 |
height: 100%;
|
519 |
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.05);
|
520 |
padding: 20px 30px;
|
521 |
}
|
522 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
523 |
#mo2f-setup-wizard-settings-area .mo2f-setup-error-footer {
|
524 |
text-align: center;
|
525 |
margin-top: 20px;
|
549 |
#mo2f-setup-error-js ul.info {
|
550 |
margin: -10px 0 20px;
|
551 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
552 |
|
553 |
#mo2f-setup-error-js a.button {
|
554 |
display: inline-block;
|
582 |
font-weight: 300;
|
583 |
text-align: left;
|
584 |
}
|
585 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
586 |
@media (min-width: 782px) {
|
587 |
#mo2f-setup-wizard-settings-area .mo2f-setup-logo {
|
588 |
margin-top: 50px;
|
594 |
margin-top: 40px;
|
595 |
padding: 52px 67px 49px;
|
596 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
597 |
|
598 |
#mo2f-setup-wizard-settings-area .mo2f-setup-error-footer {
|
599 |
margin-top: 50px;
|
612 |
font-size: 18px;
|
613 |
padding: 19px 39px;
|
614 |
}
|
|
|
|
|
|
|
615 |
.mo2f-setup-button.mo2f-setup-button-main:hover {
|
616 |
background-color: #c45e1b;
|
617 |
}
|
620 |
color: #fff;
|
621 |
font-weight: 500;
|
622 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
}
|
624 |
</style>
|
625 |
<!--[if IE]>
|
630 |
</style>
|
631 |
|
632 |
<![endif]-->
|
633 |
+
<div id="mo2f-setup-wizard-settings-area" class="mo2f-setup-wizard-settings-area wpms-container">
|
|
|
|
|
634 |
<header class="mo2f-setup-wizard-header">
|
635 |
<h1 >
|
636 |
<div>
|
643 |
<div id="mo2f-setup-settings-error-loading-area">
|
644 |
<div>
|
645 |
<div id="mo2f-setup-error-js">
|
646 |
+
<h3 style="text-align:center;"> Welcome to the 2FA Setup Wizard! </h3>
|
647 |
+
<br>
|
648 |
<p class="subtitle" style="text-align:center;" > This setup guide will take you through all the steps you need to follow to enable the two-factor authentication for your website.</p>
|
649 |
|
650 |
<br><br>
|
651 |
<button type="button" style="text-align:center;display: flex;margin: auto;" class="mo2f-setup-button mo2f-setup-button-main mo2f-setup-button-large" id ='mo2f_get_started' target="_blank" class="button" rel="noopener noreferrer"> <?php esc_html_e("Let's Get Started", 'mo2f-setup'); ?></button>
|
652 |
|
653 |
+
<br><br><br>
|
654 |
<div style="text-align:center;display: flex;margin: auto;flex-direction: column;">
|
655 |
<a href="<?php echo esc_url( $contact_url ); ?>" target="_blank" rel="noopener noreferrer">
|
656 |
<?php esc_html_e( 'Facing issues? Contact Us', 'mo2f-setup' ); ?>
|
664 |
</div>
|
665 |
</div>
|
666 |
<div id = "mo2f_methods_setup_wizard">
|
667 |
+
<div id="mo2f-setup-settings-error-loading-area" style="width: 900px">
|
668 |
+
|
669 |
+
<h3 style="text-align:center;"> Select the Authentication method you want to configure </h3>
|
670 |
+
<br>
|
671 |
+
<label title="<?php echo __('You have to enter 6 digits code generated by Authenticator App to login. Supported in Smartphones only.', 'miniorange-2-factor-authentication'); ?>">
|
672 |
+
<input type="radio" name="mo2f_selected_2factor_method" value="Google Authenticator" />
|
673 |
+
<?php echo __('Google / Authy / Microsoft Authenticator (Any TOTP Based Authenticatior App)', 'miniorange-2-factor-authentication'); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
674 |
</label>
|
675 |
+
<br><br>
|
676 |
+
|
677 |
<label title="<?php echo __('You will receive a one time passcode via SMS on your phone. You have to enter the otp on your screen to login. Supported in Smartphones, Feature Phones.', 'miniorange-2-factor-authentication'); ?>">
|
678 |
+
<input type="radio" name="mo2f_selected_2factor_method" value="OTP Over SMS" />
|
|
|
679 |
<?php echo __('OTP Over SMS (Registration required)', 'miniorange-2-factor-authentication'); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
680 |
</label>
|
681 |
+
<br><br>
|
682 |
|
683 |
+
<label title="<?php echo __('You will receive a one time passcode on your email. You have to enter the otp on your screen to login. Supported in Smartphones, Feature Phones.', 'miniorange-2-factor-authentication'); ?>" >
|
684 |
+
<input type="radio" name="mo2f_selected_2factor_method" value="OTP Over Email" />
|
685 |
+
<?php echo __('OTP Over Email', 'miniorange-2-factor-authentication'); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
686 |
</label>
|
687 |
+
<br><br>
|
688 |
+
|
689 |
<label title="<?php echo __('You have to enter 6 digits code generated by Authy 2-Factor Authentication App to login. Supported in Smartphones only.', 'miniorange-2-factor-authentication'); ?>">
|
690 |
+
<input type="radio" name="mo2f_selected_2factor_method" value="Google Authenticator" />
|
|
|
691 |
<?php echo __('Authy 2-Factor Authentication', 'miniorange-2-factor-authentication'); ?>
|
|
|
692 |
</label>
|
693 |
+
<br><br>
|
694 |
+
|
|
|
695 |
<label title="<?php echo __('You will receive a push notification on your phone. You have to ACCEPT or DENY it to login. Supported in Smartphones only.', 'miniorange-2-factor-authentication'); ?>">
|
696 |
+
<input type="radio" name="mo2f_selected_2factor_method" value="Duo Authenticator" />
|
|
|
697 |
<?php echo __('Duo Push Notification', 'miniorange-2-factor-authentication'); ?>
|
|
|
698 |
</label>
|
699 |
+
<br><br>
|
700 |
+
|
701 |
+
<label title="<?php echo __('You have to answers some knowledge based security questions which are only known to you to authenticate yourself. Supported in Desktops,Laptops,Smartphones.', 'miniorange-2-factor-authentication'); ?>" >
|
702 |
+
<input type="radio" name="mo2f_selected_2factor_method" value="Security Questions" />
|
703 |
+
<?php echo __('Security Questions ( KBA )', 'miniorange-2-factor-authentication'); ?>
|
704 |
+
</label>
|
705 |
+
<br><br>
|
706 |
+
|
707 |
<label title="<?php echo __('You will get an OTP on your TELEGRAM app from miniOrange Bot.', 'miniorange-2-factor-authentication'); ?>" >
|
708 |
+
<input type="radio" name="mo2f_selected_2factor_method" value="OTP Over Telegram" />
|
|
|
709 |
<?php echo __('OTP Over Telegram', 'miniorange-2-factor-authentication'); ?>
|
|
|
710 |
</label>
|
711 |
+
<br><br>
|
712 |
+
|
|
|
713 |
|
714 |
+
<br><a href="#skiptwofactor" style="color:#F4D03F ;font-weight:bold;margin-left:35%;"><?php echo __('Skip Setup', 'miniorange-2-factor-authentication'); ?></a>>>
|
715 |
<br />
|
716 |
|
717 |
|
718 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
719 |
</div>
|
720 |
</div>
|
721 |
|
722 |
|
723 |
|
724 |
<script type="text/javascript">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
725 |
jQuery('#mo2f_methods_setup_wizard').css('display', 'none');
|
726 |
jQuery("#mo2f_get_started").click(function(e){
|
727 |
jQuery('#mo2f-setup-settings-error-loading-area-container').css('display', 'none');
|
729 |
|
730 |
});
|
731 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
732 |
jQuery('input:radio[name=mo2f_selected_2factor_method]').click(function() {
|
|
|
|
|
733 |
localStorage.setItem("last_tab", 'setup_2fa');
|
734 |
var selectedMethod = jQuery(this).val();
|
735 |
var ajax_url = "<?php echo admin_url('admin-ajax.php'); ?>";
|
736 |
var nonce = "<?php echo wp_create_nonce( 'miniorange-select-method-setup-wizard' ); ?>";
|
737 |
|
738 |
+
var data= { 'action':'mo_two_factor_ajax',
|
739 |
+
'mo_2f_two_factor_ajax' : 'select_method_setup_wizard',
|
740 |
+
'mo2f_method': selectedMethod,
|
741 |
+
'nonce': nonce };
|
742 |
+
|
743 |
+
jQuery.post(ajax_url, data, function(response){
|
744 |
+
window.location.href = '<?php echo (admin_url()."admin.php?page=mo_2fa_two_fa"); ?>';
|
745 |
+
});
|
746 |
+
|
|
|
|
|
|
|
747 |
});
|
748 |
|
749 |
jQuery('a[href="#skiptwofactor"]').click(function(e){
|
807 |
|
808 |
do_action( 'mo2f_admin_setup_wizard_load_setup_wizard_before', $this );
|
809 |
wp_enqueue_script('jquery');
|
810 |
+
wp_enqueue_script('wp-mo2f-setup-wizard',plugins_url( 'includes/js/setup-wizard-2fa.js', dirname(dirname(__FILE__))),);
|
811 |
|
812 |
wp_localize_script(
|
813 |
'wp-mo2f-setup-wizard',
|
3148 |
} else {
|
3149 |
update_option( 'mo2f_enable_2fa', isset( $_POST['mo2f_enable_2fa'] ) ? $_POST['mo2f_enable_2fa'] : 0 );
|
3150 |
}
|
3151 |
+
// }else if( isset( $_POST['option'] ) && $_POST['option'] == 'mo2f_enable_2FA_on_login_page_option' ) {
|
3152 |
+
// $nonce = $_POST['mo2f_enable_2FA_on_login_page_option_nonce'];
|
3153 |
+
|
3154 |
+
// if ( ! wp_verify_nonce( $nonce, 'mo2f-enable-2FA-on-login-page-option-nonce' ) ) {
|
3155 |
+
// $error = new WP_Error();
|
3156 |
+
// $error->add( 'empty_username', '<strong>' . mo2f_lt( 'ERROR' ) . '</strong>: ' . mo2f_lt( 'Invalid Request.' ) );
|
3157 |
+
|
3158 |
+
// return $error;
|
3159 |
+
// } else {
|
3160 |
+
// if(!class_exists("UM_functions"))
|
3161 |
+
// update_site_option('mo2f_enable_2fa_prompt_on_login_page', isset( $_POST['mo2f_enable_2fa_prompt_on_login_page'] ) ? $_POST['mo2f_enable_2fa_prompt_on_login_page'] : 0 );
|
3162 |
+
// }
|
3163 |
}else if ( isset( $_POST['option'] ) && $_POST['option'] == 'mo_2factor_test_authentication_method' ) {
|
3164 |
//network security feature
|
3165 |
$nonce = $_POST['mo_2factor_test_authentication_method_nonce'];
|
3429 |
$error->add('empty_username', '<strong>'. __('ERROR','miniorange-2-factor-authentication') .'</strong>: '. __('Invalid Request.', 'miniorange-2-factor-authentication'));
|
3430 |
return $error;
|
3431 |
}else {
|
3432 |
+
MO2f_Utility::mo2f_mail_and_download_codes();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3433 |
}
|
3434 |
}
|
3435 |
|
3471 |
<!-- Modal content -->
|
3472 |
<div class="modal-content">
|
3473 |
<div class="modal-header">
|
3474 |
+
<h3 class="modal-title" style="text-align: center; font-size: 20px; color: #20b2aa">Email Address for miniOrange</h3><span id="closeEnterEmailCloud" class="modal-span-close">X</span>
|
3475 |
</div>
|
3476 |
<div class="modal-body" style="height: auto">
|
3477 |
<h2><i>Enter your Email: <input type ='email' id='emailEnteredCloud' name='emailEnteredCloud' size= '40' required value="<?php echo $email;?>"/></i></h2>
|
3863 |
$url = get_site_option('siteurl').'/wp-login.php?'; //login page can change
|
3864 |
$message = '<table cellpadding="25" style="margin:0px auto">
|
3865 |
<tbody>
|
3866 |
+
<tr>
|
3867 |
<td>
|
3868 |
<table cellpadding="24" width="584px" style="margin:0 auto;max-width:584px;background-color:#f6f4f4;border:1px solid #a8adad">
|
3869 |
<tbody>
|
3870 |
+
<tr>
|
3871 |
<td><img src="https://ci5.googleusercontent.com/proxy/10EQeM1udyBOkfD2dwxGhIaMXV4lOwCRtUecpsDkZISL0JIkOL2JhaYhVp54q6Sk656rW2rpAFJFEgGQiAOVcYIIKxXYMHHMNSNB=s0-d-e1-ft#https://login.xecurify.com/moas/images/xecurify-logo.png" style="color:#5fb336;text-decoration:none;display:block;width:auto;height:auto;max-height:35px" class="CToWUd"></td>
|
3872 |
</tr>
|
3873 |
</tbody>
|
3874 |
</table>
|
3875 |
<table cellpadding="24" style="background:#fff;border:1px solid #a8adad;width:584px;border-top:none;color:#4d4b48;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:18px">
|
3876 |
<tbody>
|
3877 |
+
<tr>
|
3878 |
<td>
|
3879 |
<p style="margin-top:0;margin-bottom:20px">Dear Customers,</p>
|
3880 |
<p style="margin-top:0;margin-bottom:10px">You initiated a transaction <b>WordPress 2 Factor Authentication Plugin</b>:</p>
|
3955 |
$headers[] = 'Cc: 2fasupport <2fasupport@xecurify.com>';
|
3956 |
$message = '<table cellpadding="25" style="margin:0px auto">
|
3957 |
<tbody>
|
3958 |
+
<tr>
|
3959 |
<td>
|
3960 |
<table cellpadding="24" width="584px" style="margin:0 auto;max-width:584px;background-color:#f6f4f4;border:1px solid #a8adad">
|
3961 |
<tbody>
|
3962 |
+
<tr>
|
3963 |
<td><img src="https://ci5.googleusercontent.com/proxy/10EQeM1udyBOkfD2dwxGhIaMXV4lOwCRtUecpsDkZISL0JIkOL2JhaYhVp54q6Sk656rW2rpAFJFEgGQiAOVcYIIKxXYMHHMNSNB=s0-d-e1-ft#https://login.xecurify.com/moas/images/xecurify-logo.png" style="color:#5fb336;text-decoration:none;display:block;width:auto;height:auto;max-height:35px" class="CToWUd"></td>
|
3964 |
</tr>
|
3965 |
</tbody>
|
3966 |
</table>
|
3967 |
<table cellpadding="24" style="background:#fff;border:1px solid #a8adad;width:584px;border-top:none;color:#4d4b48;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:18px">
|
3968 |
<tbody>
|
3969 |
+
<tr>
|
3970 |
<td>
|
3971 |
<p style="margin-top:0;margin-bottom:20px">Dear Customer,</p>
|
3972 |
<p style="margin-top:0;margin-bottom:20px"> You are going to exhaust all your '.$string.'. You have only <b>'.$count.'</b> '.$string.' remaining. You can recharge or add '.$string.' to your account: <a href='.MoWpnsConstants::rechargeLink.'>Recharge</a></p>
|
handler/twofa/two_fa_utility.php
CHANGED
@@ -248,6 +248,7 @@ class MO2f_Utility {
|
|
248 |
|
249 |
if(isset($_SESSION[$session_id])){
|
250 |
$transient_array = $_SESSION[$session_id];
|
|
|
251 |
$transient_value = isset($transient_array[$key]) ? $transient_array[$key] : null;
|
252 |
return $transient_value;
|
253 |
}else if(isset($_COOKIE[base64_decode($session_id)])){
|
@@ -272,9 +273,9 @@ class MO2f_Utility {
|
|
272 |
public static function mo2f_start_session() {
|
273 |
if ( ! session_id() || session_id() == '' || ! isset( $_SESSION ) ) {
|
274 |
$session_path = ini_get('session.save_path');
|
275 |
-
if( is_writable($session_path) && is_readable($session_path)
|
276 |
if(session_status() != PHP_SESSION_DISABLED )
|
277 |
-
|
278 |
}
|
279 |
}
|
280 |
}
|
@@ -397,12 +398,7 @@ class MO2f_Utility {
|
|
397 |
$decrypted_data_array = explode( '&', $decrypted_data );
|
398 |
|
399 |
$cookie_value = $decrypted_data_array[0];
|
400 |
-
|
401 |
-
$cookie_creation_time = new DateTime( $decrypted_data_array[1] );
|
402 |
-
}else{
|
403 |
-
$cookie_creation_time = new DateTime( array_pop($decrypted_data_array) );
|
404 |
-
$cookie_value = implode('&', $decrypted_data_array);
|
405 |
-
}
|
406 |
$current_time = new DateTime( 'now' );
|
407 |
|
408 |
$interval = $cookie_creation_time->diff( $current_time );
|
@@ -551,8 +547,7 @@ class MO2f_Utility {
|
|
551 |
"SecurityQuestions" => "Security Questions",
|
552 |
"EmailVerification" => "Email Verification",
|
553 |
"OTPOverSMS" => "OTP Over SMS",
|
554 |
-
"OTPOverEmail" => "OTP Over Email"
|
555 |
-
"DuoAuthenticator" => "Duo Authenticator"
|
556 |
);
|
557 |
|
558 |
$server_2fa_methods = array(
|
@@ -565,12 +560,7 @@ class MO2f_Utility {
|
|
565 |
"Email Verification" => "OUT OF BAND EMAIL",
|
566 |
"OTP Over SMS" => "SMS",
|
567 |
"EMAIL" => "OTP Over Email",
|
568 |
-
"OTPOverEmail" => "OTP Over Email"
|
569 |
-
"Duo Authenticator" => "Duo Authenticator",
|
570 |
-
"DUO AUTHENTICATOR" => "Duo Authenticator",
|
571 |
-
"OTP Over Email" => "EMAIL",
|
572 |
-
"OTP OVER EMAIL" => "EMAIL"
|
573 |
-
|
574 |
);
|
575 |
|
576 |
$server_to_wpdb_2fa_methods = array(
|
@@ -600,11 +590,6 @@ class MO2f_Utility {
|
|
600 |
return $methodname;
|
601 |
|
602 |
}
|
603 |
-
public static function is_same_method($method,$current_method){
|
604 |
-
if($method == $current_method || $method == MO2f_Utility::mo2f_decode_2_factor($current_method,'wpdb') || $method == MO2f_Utility::mo2f_decode_2_factor($current_method,'') || MO2f_Utility::mo2f_decode_2_factor($current_method,'server') == $method)
|
605 |
-
return true;
|
606 |
-
return false;
|
607 |
-
}
|
608 |
|
609 |
public static function get_plugin_name_by_identifier( $plugin_identitifier ){
|
610 |
$all_plugins = get_plugins();
|
@@ -651,12 +636,8 @@ class MO2f_Utility {
|
|
651 |
<p style="margin-top:0;margin-bottom:10px">You initiated a transaction from <b>WordPress 2 Factor Authentication Plugin</b>:</p>
|
652 |
<p style="margin-top:0;margin-bottom:10px">Your backup codes are:-
|
653 |
<table cellspacing="10">
|
654 |
-
<tr>'
|
655 |
-
|
656 |
-
$message = $message.'<td>'.$codes[$x].'</td>';
|
657 |
-
|
658 |
-
}
|
659 |
-
$message = $message.'</table></p>
|
660 |
<p style="margin-top:0;margin-bottom:10px">Please use this carefully as each code can only be used once. Please do not share these codes with anyone.</p>
|
661 |
<p style="margin-top:0;margin-bottom:10px">Also, we would highly recommend you to reconfigure your two-factor after logging in.</p>
|
662 |
<p style="margin-top:0;margin-bottom:15px">Thank you,<br>miniOrange Team</p>
|
@@ -703,9 +684,18 @@ class MO2f_Utility {
|
|
703 |
return $message;
|
704 |
}
|
705 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
706 |
public static function mo2f_get_codes_hash($codes){
|
707 |
$codes_hash=array();
|
708 |
-
for ($x = 0; $x <
|
709 |
$str = $codes[$x];
|
710 |
array_push($codes_hash,md5($str));
|
711 |
}
|
@@ -724,8 +714,8 @@ class MO2f_Utility {
|
|
724 |
update_user_meta($id, 'mo_backup_code_downloaded', 1);
|
725 |
header('Content-Disposition: attachment; filename=miniOrange2-factor-BackupCodes.txt');
|
726 |
echo "Two Factor Backup Codes:".PHP_EOL.PHP_EOL;
|
727 |
-
echo "These are the codes
|
728 |
-
for ($x = 0; $x <
|
729 |
$str1= $codes[$x];
|
730 |
echo(($x+1).". ".$str1." ");
|
731 |
}
|
@@ -747,25 +737,19 @@ class MO2f_Utility {
|
|
747 |
|
748 |
|
749 |
public static function mo2f_mail_and_download_codes(){
|
750 |
-
|
751 |
-
|
|
|
752 |
$id = get_current_user_id();
|
753 |
$mo2f_user_email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $id );
|
754 |
if(empty($mo2f_user_email)){
|
755 |
$currentuser = get_user_by( 'id', $id );
|
756 |
$mo2f_user_email = $currentuser->user_email;
|
757 |
}
|
758 |
-
$generate_backup_code = new Customer_Cloud_Setup();
|
759 |
-
$codes=$generate_backup_code->mo_2f_generate_backup_codes($mo2f_user_email, site_url());
|
760 |
-
|
761 |
-
if($codes == 'LimitReached'|| $codes == 'UserLimitReached' || $codes == 'AllUsed' || $codes == 'invalid_request')
|
762 |
-
return $codes;
|
763 |
-
|
764 |
-
$codes = explode(' ', $codes);
|
765 |
-
$codes_hash=MO2f_Utility::mo2f_get_codes_hash($codes);
|
766 |
$result = MO2f_Utility::mo2f_email_backup_codes($codes, $mo2f_user_email);
|
767 |
update_user_meta($id, 'mo_backup_code_generated', 1);
|
768 |
update_user_meta($id, 'mo_backup_code_downloaded', 1);
|
|
|
769 |
MO2f_Utility::mo2f_download_backup_codes($id, $codes);
|
770 |
}
|
771 |
|
248 |
|
249 |
if(isset($_SESSION[$session_id])){
|
250 |
$transient_array = $_SESSION[$session_id];
|
251 |
+
|
252 |
$transient_value = isset($transient_array[$key]) ? $transient_array[$key] : null;
|
253 |
return $transient_value;
|
254 |
}else if(isset($_COOKIE[base64_decode($session_id)])){
|
273 |
public static function mo2f_start_session() {
|
274 |
if ( ! session_id() || session_id() == '' || ! isset( $_SESSION ) ) {
|
275 |
$session_path = ini_get('session.save_path');
|
276 |
+
if( is_writable($session_path) && is_readable($session_path) ) {
|
277 |
if(session_status() != PHP_SESSION_DISABLED )
|
278 |
+
session_start();
|
279 |
}
|
280 |
}
|
281 |
}
|
398 |
$decrypted_data_array = explode( '&', $decrypted_data );
|
399 |
|
400 |
$cookie_value = $decrypted_data_array[0];
|
401 |
+
$cookie_creation_time = new DateTime( $decrypted_data_array[1] );
|
|
|
|
|
|
|
|
|
|
|
402 |
$current_time = new DateTime( 'now' );
|
403 |
|
404 |
$interval = $cookie_creation_time->diff( $current_time );
|
547 |
"SecurityQuestions" => "Security Questions",
|
548 |
"EmailVerification" => "Email Verification",
|
549 |
"OTPOverSMS" => "OTP Over SMS",
|
550 |
+
"OTPOverEmail" => "OTP Over Email"
|
|
|
551 |
);
|
552 |
|
553 |
$server_2fa_methods = array(
|
560 |
"Email Verification" => "OUT OF BAND EMAIL",
|
561 |
"OTP Over SMS" => "SMS",
|
562 |
"EMAIL" => "OTP Over Email",
|
563 |
+
"OTPOverEmail" => "OTP Over Email"
|
|
|
|
|
|
|
|
|
|
|
564 |
);
|
565 |
|
566 |
$server_to_wpdb_2fa_methods = array(
|
590 |
return $methodname;
|
591 |
|
592 |
}
|
|
|
|
|
|
|
|
|
|
|
593 |
|
594 |
public static function get_plugin_name_by_identifier( $plugin_identitifier ){
|
595 |
$all_plugins = get_plugins();
|
636 |
<p style="margin-top:0;margin-bottom:10px">You initiated a transaction from <b>WordPress 2 Factor Authentication Plugin</b>:</p>
|
637 |
<p style="margin-top:0;margin-bottom:10px">Your backup codes are:-
|
638 |
<table cellspacing="10">
|
639 |
+
<tr><td>'.$codes[0].'</td><td>'.$codes[1].'</td><td>'.$codes[2].'</td><td>'.$codes[3].'</td><td>'.$codes[4].'</td>
|
640 |
+
</table></p>
|
|
|
|
|
|
|
|
|
641 |
<p style="margin-top:0;margin-bottom:10px">Please use this carefully as each code can only be used once. Please do not share these codes with anyone.</p>
|
642 |
<p style="margin-top:0;margin-bottom:10px">Also, we would highly recommend you to reconfigure your two-factor after logging in.</p>
|
643 |
<p style="margin-top:0;margin-bottom:15px">Thank you,<br>miniOrange Team</p>
|
684 |
return $message;
|
685 |
}
|
686 |
|
687 |
+
public static function mo_2f_generate_backup_codes(){
|
688 |
+
$codes=array();
|
689 |
+
for ($x = 0; $x < 5; $x++) {
|
690 |
+
$str = MO2f_Utility::random_str(10);
|
691 |
+
array_push($codes,$str);
|
692 |
+
}
|
693 |
+
return $codes;
|
694 |
+
}
|
695 |
+
|
696 |
public static function mo2f_get_codes_hash($codes){
|
697 |
$codes_hash=array();
|
698 |
+
for ($x = 0; $x < 5; $x++) {
|
699 |
$str = $codes[$x];
|
700 |
array_push($codes_hash,md5($str));
|
701 |
}
|
714 |
update_user_meta($id, 'mo_backup_code_downloaded', 1);
|
715 |
header('Content-Disposition: attachment; filename=miniOrange2-factor-BackupCodes.txt');
|
716 |
echo "Two Factor Backup Codes:".PHP_EOL.PHP_EOL;
|
717 |
+
echo "These are the codes which can be used incase you lose your phone or cannot access your email. Please reconfigure you authentication method after login.".PHP_EOL."Please use this carefully as each code can only be used once. Please do not share these codes with anyone.".PHP_EOL.PHP_EOL;
|
718 |
+
for ($x = 0; $x < 5; $x++){
|
719 |
$str1= $codes[$x];
|
720 |
echo(($x+1).". ".$str1." ");
|
721 |
}
|
737 |
|
738 |
|
739 |
public static function mo2f_mail_and_download_codes(){
|
740 |
+
global $Mo2fdbQueries;
|
741 |
+
$codes=MO2f_Utility::mo_2f_generate_backup_codes();
|
742 |
+
$codes_hash=MO2f_Utility::mo2f_get_codes_hash($codes);
|
743 |
$id = get_current_user_id();
|
744 |
$mo2f_user_email = $Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $id );
|
745 |
if(empty($mo2f_user_email)){
|
746 |
$currentuser = get_user_by( 'id', $id );
|
747 |
$mo2f_user_email = $currentuser->user_email;
|
748 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
749 |
$result = MO2f_Utility::mo2f_email_backup_codes($codes, $mo2f_user_email);
|
750 |
update_user_meta($id, 'mo_backup_code_generated', 1);
|
751 |
update_user_meta($id, 'mo_backup_code_downloaded', 1);
|
752 |
+
update_user_meta($id,'mo2f_backup_codes', $codes_hash);
|
753 |
MO2f_Utility::mo2f_download_backup_codes($id, $codes);
|
754 |
}
|
755 |
|
handler/user-profile-2fa-update.php
DELETED
@@ -1,213 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if(isset($_POST['method']))
|
3 |
-
$method = sanitize_text_field($_POST['method']);
|
4 |
-
else
|
5 |
-
return;
|
6 |
-
global $Mo2fdbQueries;
|
7 |
-
$email = $Mo2fdbQueries->get_user_detail('mo2f_user_email',$user);
|
8 |
-
$method = MO2f_Utility::mo2f_decode_2_factor($method,'wpdb');
|
9 |
-
$email = ($email=='')?filter_var($_POST['email'], FILTER_SANITIZE_EMAIL):$email;
|
10 |
-
$enduser = new Two_Factor_Setup();
|
11 |
-
if(isset($_POST['verify_phone']))
|
12 |
-
$phone = strlen($_POST['verify_phone']>4)?sanitize_text_field($_POST['verify_phone']):null;
|
13 |
-
else
|
14 |
-
$phone = null;
|
15 |
-
$response = json_decode( $enduser->mo2f_update_userinfo( $email,MO2f_Utility::mo2f_decode_2_factor($method,'server') , $phone, null, null ), true );
|
16 |
-
if($response['status']!= 'SUCCESS')
|
17 |
-
return;
|
18 |
-
$id = get_current_user_id();
|
19 |
-
$method = MO2f_Utility::mo2f_decode_2_factor($method,'wpdb');
|
20 |
-
switch ($method) {
|
21 |
-
case "miniOrange QR Code Authentication":
|
22 |
-
case "miniOrange Push Notification":
|
23 |
-
case "miniOrange Soft Token":
|
24 |
-
if($id != $user){
|
25 |
-
send_reconfiguration_on_email($email,$user,$method);
|
26 |
-
}else if($_POST['mo2f_configuration_status']!='SUCCESS')
|
27 |
-
return;
|
28 |
-
delete_user_meta( $user, 'configure_2FA' );
|
29 |
-
update_user_meta($user,'mo2f_2FA_method_to_configure',$method);
|
30 |
-
$Mo2fdbQueries->update_user_details($user, array(
|
31 |
-
'mobile_registration_status' =>true,
|
32 |
-
'mo2f_miniOrangeQRCodeAuthentication_config_status' => true,
|
33 |
-
'mo2f_miniOrangeSoftToken_config_status' => true,
|
34 |
-
'mo2f_miniOrangePushNotification_config_status' => true,
|
35 |
-
"mo2f_configured_2FA_method" => $method,
|
36 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
37 |
-
'mo2f_2factor_enable_2fa_byusers'=> '1',
|
38 |
-
'mo_2factor_user_registration_status' =>'MO_2_FACTOR_PLUGIN_SETTINGS',
|
39 |
-
) );
|
40 |
-
break;
|
41 |
-
case "Google Authenticator":
|
42 |
-
if($id!= $user){
|
43 |
-
send_reconfiguration_on_email($email,$user,$method);
|
44 |
-
}else if($_POST['mo2f_configuration_status']!='SUCCESS')
|
45 |
-
return;
|
46 |
-
$Mo2fdbQueries->update_user_details( $user, array(
|
47 |
-
'mo2f_GoogleAuthenticator_config_status' => true,
|
48 |
-
'mo2f_configured_2FA_method' => 'Google Authenticator',
|
49 |
-
'mo2f_AuthyAuthenticator_config_status' => false,
|
50 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
51 |
-
'mo_2factor_user_registration_status' => 'MO_2_FACTOR_PLUGIN_SETTINGS',
|
52 |
-
'mo2f_2factor_enable_2fa_byusers' => 1,
|
53 |
-
'mo2f_user_email' => $email
|
54 |
-
) );
|
55 |
-
if(!MO2F_IS_ONPREM){
|
56 |
-
update_user_meta( $user ,'mo2f_external_app_type', "Google Authenticator" );
|
57 |
-
}
|
58 |
-
break;
|
59 |
-
case "Authy Authenticator":
|
60 |
-
if($id!= $user){
|
61 |
-
send_reconfiguration_on_email($email,$user,$method);
|
62 |
-
}else if($_POST['mo2f_configuration_status']!='SUCCESS')
|
63 |
-
return;
|
64 |
-
$Mo2fdbQueries->update_user_details( $user, array(
|
65 |
-
'mo2f_GoogleAuthenticator_config_status' => false,
|
66 |
-
'mo2f_configured_2FA_method' => 'Authy Authenticator',
|
67 |
-
'mo2f_AuthyAuthenticator_config_status' => true,
|
68 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
69 |
-
'mo_2factor_user_registration_status' => 'MO_2_FACTOR_PLUGIN_SETTINGS',
|
70 |
-
'mo2f_2factor_enable_2fa_byusers' => 1,
|
71 |
-
'mo2f_user_email' => $email
|
72 |
-
) );
|
73 |
-
if(!MO2F_IS_ONPREM){
|
74 |
-
update_user_meta( $user ,'mo2f_external_app_type', "Authy Authenticator" );
|
75 |
-
}
|
76 |
-
break;
|
77 |
-
case "OTP Over SMS":
|
78 |
-
$Mo2fdbQueries->update_user_details($user, array(
|
79 |
-
"mo2f_configured_2FA_method" => 'OTP Over SMS',
|
80 |
-
'mo2f_OTPOverSMS_config_status' => true,
|
81 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
82 |
-
'mo2f_2factor_enable_2fa_byusers'=> '1',
|
83 |
-
'mo_2factor_user_registration_status' =>'MO_2_FACTOR_PLUGIN_SETTINGS',
|
84 |
-
) );
|
85 |
-
break;
|
86 |
-
case "Security Questions":
|
87 |
-
$obj = new Miniorange_Authentication();
|
88 |
-
$kba_q1 = sanitize_text_field($_POST['mo2f_kbaquestion_1']);
|
89 |
-
$kba_a1 = sanitize_text_field( $_POST['mo2f_kba_ans1'] );
|
90 |
-
$kba_q2 = sanitize_text_field($_POST['mo2f_kbaquestion_2']);
|
91 |
-
$kba_a2 = sanitize_text_field( $_POST['mo2f_kba_ans2'] );
|
92 |
-
$kba_q3 = sanitize_text_field( $_POST['mo2f_kbaquestion_3'] );
|
93 |
-
$kba_a3 = sanitize_text_field( $_POST['mo2f_kba_ans3'] );
|
94 |
-
|
95 |
-
$kba_q1 = addcslashes( stripslashes( $kba_q1 ), '"\\' );
|
96 |
-
$kba_q2 = addcslashes( stripslashes( $kba_q2 ), '"\\' );
|
97 |
-
$kba_q3 = addcslashes( stripslashes( $kba_q3 ), '"\\' );
|
98 |
-
|
99 |
-
$kba_a1 = addcslashes( stripslashes( $kba_a1 ), '"\\' );
|
100 |
-
$kba_a2 = addcslashes( stripslashes( $kba_a2 ), '"\\' );
|
101 |
-
$kba_a3 = addcslashes( stripslashes( $kba_a3 ), '"\\' );
|
102 |
-
if ( MO2f_Utility::mo2f_check_empty_or_null( $kba_q1 ) || MO2f_Utility::mo2f_check_empty_or_null( $kba_a1 ) || MO2f_Utility::mo2f_check_empty_or_null( $kba_q2 ) || MO2f_Utility::mo2f_check_empty_or_null( $kba_a2) || MO2f_Utility::mo2f_check_empty_or_null( $kba_q3) || MO2f_Utility::mo2f_check_empty_or_null( $kba_a3) ) {
|
103 |
-
update_option( 'mo2f_message', Mo2fConstants:: langTranslate( "INVALID_ENTRY" ) );
|
104 |
-
return;
|
105 |
-
}
|
106 |
-
|
107 |
-
if ( strcasecmp( $kba_q1, $kba_q2 ) == 0 || strcasecmp( $kba_q2, $kba_q3 ) == 0 || strcasecmp( $kba_q3, $kba_q1 ) == 0 ) {
|
108 |
-
update_option( 'mo2f_message', 'The questions you select must be unique.' );
|
109 |
-
return;
|
110 |
-
}
|
111 |
-
$kba_registration = new Two_Factor_Setup();
|
112 |
-
$kba_reg_reponse = json_decode( $kba_registration->register_kba_details( $email, $kba_q1, $kba_a1, $kba_q2, $kba_a2, $kba_q3, $kba_a3, $user ), true );
|
113 |
-
|
114 |
-
if ( json_last_error() == JSON_ERROR_NONE ) {
|
115 |
-
if ( $response['status'] == 'SUCCESS' ) {
|
116 |
-
$Mo2fdbQueries->update_user_details( $user, array(
|
117 |
-
'mo2f_configured_2FA_method' => 'Security Questions' ,
|
118 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
119 |
-
'mo2f_SecurityQuestions_config_status' => true,
|
120 |
-
'mo2f_2factor_enable_2fa_byusers'=> '1',
|
121 |
-
'mo_2factor_user_registration_status' =>'MO_2_FACTOR_PLUGIN_SETTINGS',
|
122 |
-
), true);
|
123 |
-
|
124 |
-
}else {
|
125 |
-
update_option( 'mo2f_message', Mo2fConstants:: langTranslate( "ERROR_DURING_PROCESS" ) );
|
126 |
-
$obj->mo_auth_show_error_message();
|
127 |
-
|
128 |
-
}
|
129 |
-
}
|
130 |
-
|
131 |
-
break;
|
132 |
-
case "OTP Over Email":
|
133 |
-
$Mo2fdbQueries->update_user_details($user, array(
|
134 |
-
"mo2f_configured_2FA_method" => 'OTP Over Email',
|
135 |
-
'mo2f_OTPOverEmail_config_status' => true,
|
136 |
-
'mo2f_user_email' => $email,
|
137 |
-
'mo2f_2factor_enable_2fa_byusers'=> '1',
|
138 |
-
'mo_2factor_user_registration_status' =>'MO_2_FACTOR_PLUGIN_SETTINGS',
|
139 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
140 |
-
) );
|
141 |
-
delete_user_meta( $user, 'configure_2FA');
|
142 |
-
delete_user_meta( $user, 'test_2FA');
|
143 |
-
break;
|
144 |
-
case "Email Verification":
|
145 |
-
$Mo2fdbQueries->update_user_details($user, array(
|
146 |
-
"mo2f_configured_2FA_method" => 'Email Verification',
|
147 |
-
'mo2f_user_email' => $email,
|
148 |
-
'user_registration_with_miniorange' => 'SUCCESS',
|
149 |
-
'mo2f_2factor_enable_2fa_byusers'=> '1',
|
150 |
-
'mo_2factor_user_registration_status' =>'MO_2_FACTOR_PLUGIN_SETTINGS',
|
151 |
-
'mo2f_EmailVerification_config_status' => true
|
152 |
-
) );
|
153 |
-
break;
|
154 |
-
}
|
155 |
-
if(isset($_POST['mo2fa_count']) && sanitize_text_field($_POST['mo2fa_count']) != '1')
|
156 |
-
update_option('mo2fa_userProfile_method',$method);
|
157 |
-
function send_reconfiguration_on_email($email,$user,$method){
|
158 |
-
global $mo2f_dirName;
|
159 |
-
$method = MO2f_Utility::mo2f_decode_2_factor($method,'server');
|
160 |
-
$reconfiguraion_method = hash('sha512',$method);
|
161 |
-
update_site_option($reconfiguraion_method,$method);
|
162 |
-
$txid = bin2hex(openssl_random_pseudo_bytes(32));
|
163 |
-
update_site_option($txid, get_current_user_id());
|
164 |
-
update_user_meta($user,'mo2f_EV_txid',$txid);
|
165 |
-
$subject = '2fa-reconfiguration : Scan QR';
|
166 |
-
$headers = array('Content-Type: text/html; charset=UTF-8');
|
167 |
-
update_option('mo2fa_reconfiguration_via_email',json_encode(array($user,$email,$method)));
|
168 |
-
$path = plugins_url(DIRECTORY_SEPARATOR. 'views'.DIRECTORY_SEPARATOR. 'qr_over_email.php',dirname( __FILE__ )).'?email='.$email.'&user_id='.$user_id;
|
169 |
-
$url = get_site_option('siteurl').'/wp-login.php?';
|
170 |
-
$path = $url.'&reconfigureMethod='.$reconfiguraion_method.'&transactionId='.$txid;
|
171 |
-
$message = '
|
172 |
-
<table>
|
173 |
-
<tbody>
|
174 |
-
<tr>
|
175 |
-
<td>
|
176 |
-
<table cellpadding="24" width="584px" style="margin:0 auto;max-width:584px;background-color:#f6f4f4;border:1px solid #a8adad">
|
177 |
-
<tbody>
|
178 |
-
<tr>
|
179 |
-
<td><img src="https://ci5.googleusercontent.com/proxy/10EQeM1udyBOkfD2dwxGhIaMXV4lOwCRtUecpsDkZISL0JIkOL2JhaYhVp54q6Sk656rW2rpAFJFEgGQiAOVcYIIKxXYMHHMNSNB=s0-d-e1-ft#https://login.xecurify.com/moas/images/xecurify-logo.png" style="color:#5fb336;text-decoration:none;display:block;width:auto;height:auto;max-height:35px" class="CToWUd"></td>
|
180 |
-
</tr>
|
181 |
-
</tbody>
|
182 |
-
</table>
|
183 |
-
<table cellpadding="24" style="background:#fff;border:1px solid #a8adad;width:584px;border-top:none;color:#4d4b48;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:18px">
|
184 |
-
<tbody>
|
185 |
-
<tr>
|
186 |
-
<td>
|
187 |
-
<input type="hidden" name="user_id" id="user_id" value="'.$user_id.'">
|
188 |
-
<input type="hidden" name="email" id="email" value="'.$email.'">
|
189 |
-
<p style="margin-top:0;margin-bottom:20px">Dear Customer,</p>
|
190 |
-
<p style="margin-top:0;margin-bottom:10px">Please scan the QR code from given link to set <b>2FA method</b>:</p>
|
191 |
-
<p><a href="'.$path.'" > Click to reconfigure 2nd factor</a></p>
|
192 |
-
<p style="margin-top:0;margin-bottom:15px">Thank you,<br>miniOrange Team</p>
|
193 |
-
<p style="margin-top:0;margin-bottom:0px;font-size:11px">Disclaimer: This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed.</p>
|
194 |
-
</div></div></td>
|
195 |
-
</tr>
|
196 |
-
</tbody>
|
197 |
-
</table>
|
198 |
-
</td>
|
199 |
-
</tr>
|
200 |
-
</tbody>
|
201 |
-
</table>';
|
202 |
-
$result = wp_mail($email,$subject,$message,$headers);
|
203 |
-
if($result){
|
204 |
-
update_site_option( 'mo2f_message', 'A OTP has been sent to you on' .'<b> ' . $email . '</b>. ' . Mo2fConstants::langTranslate("ACCEPT_LINK_TO_VERIFY_EMAIL"));
|
205 |
-
$arr = array('status' => 'SUCCESS','message'=>'Successfully validated.' ,'txId' => '' );
|
206 |
-
|
207 |
-
}else{
|
208 |
-
$arr = array('status' => 'FAILED','message'=>'TEST FAILED.');
|
209 |
-
update_site_option( 'mo2f_message', Mo2fConstants::langTranslate("ERROR_DURING_PROCESS_EMAIL"));
|
210 |
-
}
|
211 |
-
$content = json_encode($arr);
|
212 |
-
}
|
213 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
handler/user-profile-2fa.php
DELETED
@@ -1,276 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
$is_registered = empty(get_option('mo2f_customerkey'))?false:true;
|
3 |
-
$role = $user->roles;
|
4 |
-
$roles = ( array ) $user->roles;
|
5 |
-
$flag = 0;
|
6 |
-
foreach ( $roles as $role ) {
|
7 |
-
if(get_option('mo2fa_'.$role)=='1')
|
8 |
-
$flag=1;
|
9 |
-
}
|
10 |
-
if(!current_user_can( 'administrator', $user->ID) || (!MO2F_IS_ONPREM && !$is_registered) || $flag==0)
|
11 |
-
return;
|
12 |
-
else if(!MO2F_IS_ONPREM && !$is_registered)
|
13 |
-
return;
|
14 |
-
$cloud_methods = array("miniOrange QR Code Authentication", "miniOrange Soft Token","miniOrange Push Notification","OTP Over SMS");
|
15 |
-
$id = get_current_user_id();
|
16 |
-
$available_methods = MoWpnsUtility::get_mo2f_db_option('mo2f_is_NC', 'get_option')?get_site_option('mo2fa_free_plan_new_user_methods'):get_site_option('mo2fa_free_plan_existing_user_methods');
|
17 |
-
if(!$available_methods)
|
18 |
-
return;
|
19 |
-
$transient_id = MO2f_Utility::random_str(20);
|
20 |
-
|
21 |
-
MO2f_Utility::mo2f_set_transient($transient_id, 'mo2f_user_id', $user->ID);
|
22 |
-
$same_user = $user->ID == $id?true:false;
|
23 |
-
global $Mo2fdbQueries;
|
24 |
-
$current_method = $Mo2fdbQueries->get_user_detail('mo2f_configured_2FA_method',$user->ID);
|
25 |
-
if($current_method == "miniOrange QR Code Authentication" || $current_method == "miniOrange Soft Token" || $current_method == "miniOrange Push Notification")
|
26 |
-
$current_method = "miniOrange Authenticator";
|
27 |
-
$twofactor_transactions = new Mo2fDB;
|
28 |
-
$exceeded = $twofactor_transactions->check_alluser_limit_exceeded($user->ID);
|
29 |
-
if($exceeded){
|
30 |
-
return;
|
31 |
-
}
|
32 |
-
$user_column_exists = $Mo2fdbQueries->check_if_user_column_exists( $user->ID );
|
33 |
-
$email=$Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user->ID );
|
34 |
-
if($email == ''){
|
35 |
-
$Mo2fdbQueries->update_user_details($user->ID,array('mo2f_user_email'=>$user->user_email));
|
36 |
-
}
|
37 |
-
$email = !empty($Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user->ID ))?$Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user->ID ):$user->user_email;
|
38 |
-
$pass_2fa_login_session = new Miniorange_Password_2Factor_Login();
|
39 |
-
if(!$user_column_exists){
|
40 |
-
$Mo2fdbQueries->insert_user( $user->ID );
|
41 |
-
$content = $pass_2fa_login_session->create_user_in_miniOrange($user->ID,$email,'SOFT TOKEN');
|
42 |
-
}
|
43 |
-
$registerMobile = new Two_Factor_Setup();
|
44 |
-
$content = $registerMobile->register_mobile($email);
|
45 |
-
update_user_meta($user->ID,'registered_mobile',$content);
|
46 |
-
$two_factor_methods_descriptions = array(
|
47 |
-
"miniOrange QR Code Authentication" => "Scan the QR code from the account in your miniOrange Authenticator App to login.",
|
48 |
-
"miniOrange Authenticator" => "Scan the QR code from the account in your miniOrange Authenticator App to login.",
|
49 |
-
"miniOrange Soft Token" => "Enter the soft token from the account in your miniOrange Authenticator App to login.",
|
50 |
-
"miniOrange Push Notification" => "Accept a push notification in your miniOrange Authenticator App to login.",
|
51 |
-
"Google Authenticator" => "Enter the soft token from the account in your Google Authenticator App to login.",
|
52 |
-
"Security Questions" => "Answer the three security questions you had set, to login.",
|
53 |
-
"OTP Over SMS" => "Enter the One Time Passcode sent to your phone to login.",
|
54 |
-
"Authy Authenticator" => "Enter the soft token from the account in your Authy Authenticator App to login.",
|
55 |
-
"OTP Over Email" => "Enter the One Time Passcode sent to your email to login.",
|
56 |
-
"Email Verification" => "Accept the verification link sent to your email to login.",
|
57 |
-
"OTP Over SMS and Email" => "Enter the One Time Passcode sent to your phone and email to login.",
|
58 |
-
"Hardware Token" => "Enter the One Time Passcode on your Hardware Token to login."
|
59 |
-
);
|
60 |
-
global $mainDir;
|
61 |
-
wp_enqueue_style( 'mo2f_user-profile_style', $mainDir.'/includes/css/user-profile.css');
|
62 |
-
?>
|
63 |
-
<h3><?php esc_html_e( 'Set 2-Factor Authentication', 'miniorange 2-factor-authentication' ); ?></h3>
|
64 |
-
<table class="form-table" id="mo2fa_form-table-user-profile">
|
65 |
-
<tr>
|
66 |
-
<th style="text-align: left;">
|
67 |
-
<?php echo mo2f_lt( '2-Factor Options' ); ?>
|
68 |
-
</th>
|
69 |
-
<td>
|
70 |
-
<form name="f" method="post" action="" id="mo2f_update_2fa">
|
71 |
-
<div class="mo2fa_tab">
|
72 |
-
<?php foreach ( $two_factor_methods_descriptions as $method => $description ){
|
73 |
-
if(in_array($method, $available_methods)){
|
74 |
-
$trimmed_method = str_replace(' ','',$method);?>
|
75 |
-
<button class="mo2fa_tablinks" type="button"
|
76 |
-
<?php if((!empty($current_method) && MO2f_Utility::is_same_method($method,$current_method)) || (empty($current_method) && MO2f_Utility::is_same_method($method,'miniOrange Authenticator')) ){?>
|
77 |
-
id="defaultOpen"
|
78 |
-
<?php }?>
|
79 |
-
onclick='mo2fa_viewMethod(event, "<?php echo esc_attr( $trimmed_method );?>")'><?php echo esc_attr( $method );?>
|
80 |
-
</button>
|
81 |
-
<?php }}?>
|
82 |
-
</div>
|
83 |
-
</form>
|
84 |
-
<?php foreach ( $two_factor_methods_descriptions as $method => $description ){
|
85 |
-
if(in_array($method, $available_methods)){
|
86 |
-
$trimmed_method = str_replace(' ','',$method);?>
|
87 |
-
<div id="<?php echo esc_attr( $trimmed_method );?>" class="mo2fa_tabcontent">
|
88 |
-
<p><?php echo esc_attr( $description );?></p>
|
89 |
-
<p><?php methods_on_user_profile($method,$user,$transient_id);?></p>
|
90 |
-
</div>
|
91 |
-
<?php }}?>
|
92 |
-
</td>
|
93 |
-
</tr>
|
94 |
-
</table>
|
95 |
-
<div id="wpns_nav_message"></div>
|
96 |
-
<input type="hidden" name="MO2F_IS_ONPREM" value="<?php echo MO2F_IS_ONPREM;?>">
|
97 |
-
<input type="hidden" name="same_user" value="<?php echo $same_user;?>">
|
98 |
-
<input type="hidden" name="is_registered" value="<?php echo $is_registered;?>">
|
99 |
-
<input type="hidden" name="mo2f-update-mobile-nonce" value="<?php echo wp_create_nonce("mo2f-update-mobile-nonce");?>">
|
100 |
-
<input type="hidden" name="mo2fa_count" id="mo2fa_count" value="1">
|
101 |
-
<input type="hidden" name="transient_id" value="<?php echo $transient_id;?>">
|
102 |
-
<input type="hidden" name='method' id="method" value="NONE">
|
103 |
-
<input type="hidden" name='mo2f_configuration_status' id="mo2f_configuration_status" value="Configuration">
|
104 |
-
<?php
|
105 |
-
wp_enqueue_script( 'user-profile-2fa-script', $mainDir.'/includes/js/user-profile-twofa.js');
|
106 |
-
|
107 |
-
function methods_on_user_profile($method,$user,$transient_id){
|
108 |
-
global $Mo2fdbQueries,$mainDir;
|
109 |
-
$email=$Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user->ID );
|
110 |
-
$pass_2fa_login_session = new Miniorange_Password_2Factor_Login();
|
111 |
-
$trimmed_method = str_replace(' ','',$method);
|
112 |
-
$is_registered = get_option('mo2f_customerkey');
|
113 |
-
$id = get_current_user_id();
|
114 |
-
if($email == ''){
|
115 |
-
$Mo2fdbQueries->update_user_details($user->ID,array('mo2f_user_email'=>$user->user_email));
|
116 |
-
}
|
117 |
-
$email = !empty($Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user->ID ))?$Mo2fdbQueries->get_user_detail( 'mo2f_user_email', $user->ID ):$user->user_email;
|
118 |
-
switch($method){
|
119 |
-
case "miniOrange Authenticator":
|
120 |
-
if(!$is_registered){
|
121 |
-
$message = "Please register with miniOrange for using this method.";
|
122 |
-
echo mo2f_lt( $message );
|
123 |
-
}
|
124 |
-
else{
|
125 |
-
?>
|
126 |
-
<div id="mo2fa_display_mo_methods">
|
127 |
-
<h4 class="mo2fa_select_method">
|
128 |
-
Select Authentication method :
|
129 |
-
</h4>
|
130 |
-
<input type="button" name="mo2f_method" id="miniOrangeSoftTokenButton" class="mo2f_miniAuthApp" value="Soft Token" />
|
131 |
-
<input type="button" name="mo2f_method" id="miniOrangeQRCodeAuthenticationButton" class="mo2f_miniAuthApp" value="QR Code Authentication" />
|
132 |
-
<input type="button" name="mo2f_method" id="miniOrangePushNotificationButton" class="mo2f_miniAuthApp" value="Push Notification" />
|
133 |
-
</div>
|
134 |
-
<?php
|
135 |
-
if($id == $user->ID)
|
136 |
-
{
|
137 |
-
$content = get_user_meta($user->ID,'registered_mobile',true);
|
138 |
-
$response = json_decode($content, true);
|
139 |
-
$message = '';
|
140 |
-
|
141 |
-
if(json_last_error() == JSON_ERROR_NONE) {
|
142 |
-
if($response['status'] == 'ERROR'){
|
143 |
-
$mo_qr_details['message'] = Mo2fConstants::langTranslate($response['message']);
|
144 |
-
delete_user_meta( $user->ID, 'miniorageqr' );
|
145 |
-
}else{
|
146 |
-
if($response['status'] == 'IN_PROGRESS'){
|
147 |
-
|
148 |
-
$mo_qr_details['message'] = '';
|
149 |
-
$mo_qr_details['mo2f-login-qrCode']=$response['qrCode'];
|
150 |
-
update_user_meta($user->ID,'miniorageqr',$mo_qr_details);
|
151 |
-
}else{
|
152 |
-
$mo_qr_details['message'] = __('An error occured while processing your request. Please Try again.','miniorange-2-factor-authentication');
|
153 |
-
delete_user_meta( $user->ID, 'miniorageqr' );
|
154 |
-
}
|
155 |
-
}
|
156 |
-
}
|
157 |
-
?>
|
158 |
-
|
159 |
-
<div class="mcol-2" id='mo2f_qrcode'>
|
160 |
-
<table class="mo2f_settings_table">
|
161 |
-
<br><?php
|
162 |
-
echo (isset($mo_qr_details['mo2f-login-qrCode'])?'<img style="width:165px;" src="data:image/jpg;base64,' .$mo_qr_details['mo2f-login-qrCode']. '" />':'Please register with miniOrange for using this method') ;
|
163 |
-
?>
|
164 |
-
</table>
|
165 |
-
<?php
|
166 |
-
if(isset($mo_qr_details['mo2f-login-qrCode'])){
|
167 |
-
?>
|
168 |
-
<form name="f" method="post" action="" id="<?php echo 'mo2f_verify_form-'.mo2f_lt($trimmed_method); ?>">
|
169 |
-
|
170 |
-
<table id="mo2f_setup_mo_methods">
|
171 |
-
<td class="bg-none"><?php echo mo2f_lt( 'Enter Code:' )?></td>
|
172 |
-
<td><input type="tel" class="mo2f_table_textbox" style="margin-left: 1%; margin-right: 1%; width:200px;" name="mo_qr_auth_code" id="<?php echo 'textbox-'.mo2f_lt($trimmed_method); ?>" value="" pattern="[0-9]{4,8}" title="<?php echo mo2f_lt('Enter OTP:'); ?>"/></td>
|
173 |
-
<td><a id="<?php echo 'save-'.mo2f_lt($trimmed_method); ?>" name="save_qr" class="button button1" ><?php echo mo2f_lt( 'Verify and Save' ); ?></a></td>
|
174 |
-
</table>
|
175 |
-
|
176 |
-
</form>
|
177 |
-
<?php } ?>
|
178 |
-
</div>
|
179 |
-
|
180 |
-
<?php
|
181 |
-
}
|
182 |
-
else{
|
183 |
-
$message= "Link to reconfigure 2nd factor will be sent to ".$email;
|
184 |
-
echo mo2f_lt( $message );
|
185 |
-
}
|
186 |
-
}
|
187 |
-
break;
|
188 |
-
case "Authy Authenticator":
|
189 |
-
case "Google Authenticator":
|
190 |
-
if($user->ID == $id){
|
191 |
-
if(MO2F_IS_ONPREM){
|
192 |
-
include_once dirname( __FILE__ ) . DIRECTORY_SEPARATOR.'twofa'. DIRECTORY_SEPARATOR. 'gaonprem.php';
|
193 |
-
$gauth_obj= new Google_auth_onpremise();
|
194 |
-
|
195 |
-
$ga_secret = $gauth_obj->createSecret();
|
196 |
-
$issuer = get_site_option( 'mo2f_GA_account_name', 'miniOrangeAu' );
|
197 |
-
$url = $gauth_obj->geturl( $ga_secret, $issuer, $email );
|
198 |
-
$mo2f_google_auth = array('ga_qrCode'=> $url,'ga_secret'=>$ga_secret);
|
199 |
-
update_user_meta( $user->ID, 'mo2f_google_auth', json_encode( $mo2f_google_auth ) );
|
200 |
-
$otpcode = $gauth_obj->getCode($ga_secret);
|
201 |
-
$data = isset($mo2f_google_auth) ? $mo2f_google_auth['ga_qrCode'] : null;
|
202 |
-
wp_enqueue_script( 'mo_wpns_qrcode_script', $mainDir.'/includes/jquery-qrcode/jquery-qrcode.js' );
|
203 |
-
wp_enqueue_script( 'mo_wpns_min_qrcode_script', $mainDir.'/includes/jquery-qrcode/jquery-qrcode.min.js');
|
204 |
-
echo '<div class="mo2f_gauth_column mo2f_gauth_left" >';
|
205 |
-
echo '<div class="mo2f_gauth" data-qrcode='.$data.'></div>';
|
206 |
-
echo '</div>';
|
207 |
-
}else{
|
208 |
-
if(!get_user_meta($user->ID, 'mo2f_google_auth', true)){
|
209 |
-
Miniorange_Authentication::mo2f_get_GA_parameters($user);
|
210 |
-
}
|
211 |
-
$mo2f_google_auth = get_user_meta($user->ID, 'mo2f_google_auth', true);
|
212 |
-
$data = isset($mo2f_google_auth['ga_qrCode']) ? $mo2f_google_auth['ga_qrCode'] : null;
|
213 |
-
$ga_secret = isset($mo2f_google_auth['ga_secret']) ? $mo2f_google_auth['ga_secret'] : null;
|
214 |
-
echo '<br><div id="displayQrCode">
|
215 |
-
<img id="mo2f_gauth" style="line-height: 0;background:white;" src="data:image/jpg;base64,' . $data . '" />
|
216 |
-
</div>';
|
217 |
-
}
|
218 |
-
?>
|
219 |
-
|
220 |
-
<div class="mcol-2">
|
221 |
-
<br>
|
222 |
-
<form name="f" method="post" action="" id="<?php echo 'mo2f_verify_form-'.mo2f_lt($trimmed_method); ?>">
|
223 |
-
|
224 |
-
<table id="mo2f_setup_ga">
|
225 |
-
<td class="bg-none"><?php echo mo2f_lt( 'Enter Code:' )?></td>
|
226 |
-
<td><input type="tel" class="mo2f_table_textbox" style="margin-left: 1%; margin-right: 1%; width:200px;" name="google_auth_code" id="<?php echo 'textbox-'.mo2f_lt($trimmed_method); ?>" value="" pattern="[0-9]{4,8}" title="<?php echo mo2f_lt('Enter OTP:'); ?>"/></td>
|
227 |
-
<td><a id="<?php echo 'save-'.mo2f_lt($trimmed_method); ?>" name="save_GA" class="button button1" ><?php echo mo2f_lt( 'Verify and Save' ); ?></a></td>
|
228 |
-
</table>
|
229 |
-
|
230 |
-
<input type="hidden" name="ga_secret" value="<?php echo $ga_secret;?>">
|
231 |
-
</form>
|
232 |
-
|
233 |
-
</div>
|
234 |
-
<?php
|
235 |
-
}else{
|
236 |
-
$message= "Link to reconfigure 2nd factor will be sent to ".$email;
|
237 |
-
echo mo2f_lt( $message );
|
238 |
-
}
|
239 |
-
break;
|
240 |
-
case "OTP Over SMS":
|
241 |
-
if(!$is_registered){
|
242 |
-
$message = "Please register with miniOrange for using this method.";
|
243 |
-
echo mo2f_lt( $message );
|
244 |
-
}
|
245 |
-
else{
|
246 |
-
$mo2f_user_phone = $Mo2fdbQueries->get_user_detail( 'mo2f_user_phone', $user->ID );
|
247 |
-
$user_phone = $mo2f_user_phone ? $mo2f_user_phone : get_option( 'user_phone_temp' );
|
248 |
-
?>
|
249 |
-
<form name="f" method="post" action="" id="<?php echo 'mo2f_verify_form-'.mo2f_lt($trimmed_method); ?>">
|
250 |
-
|
251 |
-
<table id="mo2f_setup_sms">
|
252 |
-
<td class="bg-none"><?php echo mo2f_lt( 'Authentication codes will be sent to ' )?></td>
|
253 |
-
<td><input type="text" class="mo2f_table_textbox" style="margin-left: 1%; margin-right: 1%; width:200px;" name="verify_phone" id="<?php echo 'textbox-'.mo2f_lt($trimmed_method); ?>" value="<?php echo $user_phone ?>" pattern="[\+]?[0-9]{1,4}\s?[0-9]{7,12}" required="true" title="<?php echo mo2f_lt( 'Enter phone number without any space or dashes' ); ?>"/></td>
|
254 |
-
<td><a id="<?php echo 'save-'.mo2f_lt($trimmed_method); ?>" name="save" class="button button1" ><?php echo mo2f_lt( 'Save' ); ?></a></td>
|
255 |
-
</table>
|
256 |
-
|
257 |
-
</form>
|
258 |
-
<?php
|
259 |
-
}
|
260 |
-
break;
|
261 |
-
case "Security Questions":
|
262 |
-
mo2f_configure_kba_questions($user);
|
263 |
-
break;
|
264 |
-
case "OTP Over Email":
|
265 |
-
case "Email Verification":
|
266 |
-
if(!$Mo2fdbQueries->check_if_user_column_exists($user->ID)){
|
267 |
-
$content = $pass_2fa_login_session->create_user_in_miniOrange($user->ID,$email,$method);
|
268 |
-
}
|
269 |
-
$email = ($email=='')?$user->user_email:$email;
|
270 |
-
$message = "Authentication codes will be sent to ".$email;
|
271 |
-
echo mo2f_lt( $message );
|
272 |
-
break;
|
273 |
-
$Mo2fdbQueries->delete_user_login_sessions($user->ID);
|
274 |
-
}
|
275 |
-
}
|
276 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
helper/constants.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
const DEFAULT_CUSTOMER_KEY = "16555";
|
13 |
const DEFAULT_API_KEY = "fFd2XcvTGDemZvbw1bcUesNJWEqKbbUq";
|
14 |
const DB_VERSION = 155;
|
15 |
-
const DB_FEATURE_MAIL =
|
16 |
const SUPPORT_EMAIL = 'info@xecurify.com';
|
17 |
const REAL_TIME_IP_HOST = 'https://firewall.xecurify.com/';
|
18 |
const IP_LOOKUP_TEMPLATE = '<span style="font-size:14px;font-weight:bold">GENERAL INFORMATION</span><table style="margin-left:2%;"><tr><td style="width:100px;">Response</td><td >:</td><td>{{status}}</td></tr><tr><td style="width:100px;">IP Address</td><td>:</td><td>{{ip}}</td></tr><tr><td>HostName</td><td>:</td><td>{{hostname}}</td></tr><tr><td>TimeZone</td><td>:</td><td>{{timezone}}</td></tr><tr><td>Time Difference</td><td>:</td><td>{{offset}}</td></tr></table><hr><span style="font-size:14px;font-weight:bold">LOCATION INFORMATION</span><table style="margin-left:2%;"><tr><td>Latitude</td><td>:</td><td>{{latitude}}</td></tr><tr><td>Longitude</td><td>:</td><td>{{longitude}}</td></tr><tr><td>Region</td><td>:</td><td>{{region}}</td></tr><tr><td>Country</td><td>:</td><td>{{country}}</td></tr><tr><td>City</td><td>:</td><td>{{city}}</td></tr><tr><td>Continent</td><td>:</td><td>{{continent}}</td></tr><tr><td>Curreny Code</td><td>:</td><td>{{curreny_code}}</td></tr><tr><td>Curreny Symbol</td><td>:</td><td>{{curreny_symbol}}</td></tr><tr><td>Per Dollar Value</td><td>:</td><td>{{per_dollar_value}}</td></tr></table>';
|
12 |
const DEFAULT_CUSTOMER_KEY = "16555";
|
13 |
const DEFAULT_API_KEY = "fFd2XcvTGDemZvbw1bcUesNJWEqKbbUq";
|
14 |
const DB_VERSION = 155;
|
15 |
+
const DB_FEATURE_MAIL = 1;
|
16 |
const SUPPORT_EMAIL = 'info@xecurify.com';
|
17 |
const REAL_TIME_IP_HOST = 'https://firewall.xecurify.com/';
|
18 |
const IP_LOOKUP_TEMPLATE = '<span style="font-size:14px;font-weight:bold">GENERAL INFORMATION</span><table style="margin-left:2%;"><tr><td style="width:100px;">Response</td><td >:</td><td>{{status}}</td></tr><tr><td style="width:100px;">IP Address</td><td>:</td><td>{{ip}}</td></tr><tr><td>HostName</td><td>:</td><td>{{hostname}}</td></tr><tr><td>TimeZone</td><td>:</td><td>{{timezone}}</td></tr><tr><td>Time Difference</td><td>:</td><td>{{offset}}</td></tr></table><hr><span style="font-size:14px;font-weight:bold">LOCATION INFORMATION</span><table style="margin-left:2%;"><tr><td>Latitude</td><td>:</td><td>{{latitude}}</td></tr><tr><td>Longitude</td><td>:</td><td>{{longitude}}</td></tr><tr><td>Region</td><td>:</td><td>{{region}}</td></tr><tr><td>Country</td><td>:</td><td>{{country}}</td></tr><tr><td>City</td><td>:</td><td>{{city}}</td></tr><tr><td>Continent</td><td>:</td><td>{{continent}}</td></tr><tr><td>Curreny Code</td><td>:</td><td>{{curreny_code}}</td></tr><tr><td>Curreny Symbol</td><td>:</td><td>{{curreny_symbol}}</td></tr><tr><td>Per Dollar Value</td><td>:</td><td>{{per_dollar_value}}</td></tr></table>';
|
helper/messages.php
CHANGED
@@ -63,8 +63,6 @@
|
|
63 |
//support form
|
64 |
const SUPPORT_FORM_VALUES = "Please submit your query along with email.";
|
65 |
const SUPPORT_FORM_SENT = "Thanks for getting in touch! We shall get back to you shortly.";
|
66 |
-
const TRIAL_REQUEST_SENT = "Thanks for getting in touch! We shall provide you the trial plugin on your email shortly.";
|
67 |
-
const TRIAL_REQUEST_ALREADY_SENT = "You have already sent a trial request for premium plugin. We will get back to you on your email soon.";
|
68 |
const SUPPORT_FORM_ERROR = "Your query could not be submitted. Please try again.";
|
69 |
// request demo form
|
70 |
const DEMO_FORM_ERROR = "Please fill out all the fields.";
|
@@ -75,7 +73,6 @@
|
|
75 |
const UNKNOWN_ERROR = "Error processing your request. Please try again.";
|
76 |
const CONFIG_SAVED = "Configuration saved successfully.";
|
77 |
const REQUIRED_FIELDS = "Please enter all the required fields";
|
78 |
-
CONST SELECT_A_PLAN = "Please select a plan";
|
79 |
const RESET_PASS = "You password has been reset successfully and sent to your registered email. Please check your mailbox.";
|
80 |
const TEMPLATE_SAVED = "Email template saved.";
|
81 |
const GET_BACKUP_CODES = "<div class='custom-notice notice notice-warning backupcodes-notice'><p><p class='notice-message'><b>Please download backup codes using the 'Get backup codes' button to avoid getting locked out. Backup codes will be emailed as well as downloaded.</b></p><button class='backup_codes_dismiss notice-button'><i>NEVER SHOW AGAIN</i></button></p></div>";
|
@@ -94,7 +91,7 @@
|
|
94 |
const INVALID_CRED = 'Invalid username or password. Please try again.';
|
95 |
const REQUIRED_OTP = 'Please enter a value in OTP field.';
|
96 |
const INVALID_OTP = 'Invalid one time passcode. Please enter a valid passcode.';
|
97 |
-
const INVALID_PHONE = 'Please enter
|
98 |
const PASS_MISMATCH = 'Password and Confirm Password do not match.';
|
99 |
const CRON_DB_BACKUP_ENABLE = 'Scheduled Database Backup enabled';
|
100 |
const CRON_DB_BACKUP_DISABLE = 'Scheduled Database Backup disabled';
|
@@ -144,37 +141,6 @@
|
|
144 |
const LOW_EMAIL_TRANSACTIONS = "<div class='custom-notice notice notice-warning low_email-notice MOWrn'><p><p class='notice-message'><img style='width:15px;' src='".MO2F_PLUGIN_URL.'/includes/images/miniorange_icon.png'."'>  You have left very few Email transaction. We advise you to recharge or change 2FA method before you have no Email left.</p><a class='notice-button' href='".MoWpnsConstants::rechargeLink."' target='_blank' style='margin-right: 15px;'>RECHARGE</a><a class='notice-button' href='admin.php?page=mo_2fa_two_fa'id='setuptwofa_redirect' style='margin-right: 15px;'>SET UP ANOTHER 2FA</a><button class='email_low_dismiss notice-button' style='margin-right: 15px;'><i>DISMISS</i></button><button class='email_low_dismiss_always notice-button'><i>NEVER SHOW AGAIN</i></button></p></div>";
|
145 |
|
146 |
|
147 |
-
const FREE_TRIAL_MESSAGE_TRIAL_PAGE = "
|
148 |
-
<div class='notice notice-warning mo2f-notice-warning trial-notice MOWrn' id='mo2f_is-dismissible'>
|
149 |
-
<form id='MO2F_FREE_TRIAL_MESSAGE_TRIAL_PAGE' method='post' action=''>
|
150 |
-
<p>
|
151 |
-
<img style='width:15px;' src='".MO2F_PLUGIN_URL.'includes/images/miniorange_icon.png'."'>  Interested in the Trial of<b> 2 Factor Authentication Premium Plugins?</b> Click on the button below to get trial for <strong>7 days</strong>.
|
152 |
-
(<em>No credit card required</em>)
|
153 |
-
</p>
|
154 |
-
<p style='height:25px; padding: 10px;'>
|
155 |
-
<a class='button button-primary notice-button' href='admin.php?page=mo2f_trial' id='mo2f_trial_redirect'>Get Trial</a>
|
156 |
-
<input type='hidden' name='mo2f_dismiss_trial' value='mo2f_dismiss_trial'/>
|
157 |
-
<button type='submit' class='mo2f-trial-dismiss notice-button'><i>DISMISS</i></button>
|
158 |
-
</p>
|
159 |
-
</form>
|
160 |
-
</div>
|
161 |
-
";
|
162 |
-
|
163 |
-
const FREE_TRIAL_MESSAGE_ACCOUNT_PAGE = "
|
164 |
-
<div class='notice notice-warning mo2f-notice-warning trial-notice MOWrn'>
|
165 |
-
<form id='MO2F_FREE_TRIAL_MESSAGE_TRIAL_PAGE' method='post' action=''>
|
166 |
-
<p>
|
167 |
-
<img style='width:15px;' src='".MO2F_PLUGIN_URL.'includes/images/miniorange_icon.png'."'>  Interested in the Trial of<b> 2 Factor Authentication Premium Plugins?</b> Click on the button below to get trial for <strong>7 days</strong>.
|
168 |
-
(<em>No credit card required</em>)
|
169 |
-
</p>
|
170 |
-
<p style='height:25px; padding: 10px;'>
|
171 |
-
<a class='button button-primary notice-button' href='admin.php?page=mo_2fa_account' id='mo2f_trial_redirect'>Get Trial</a>
|
172 |
-
<input type='hidden' name='mo2f_dismiss_trial' value='mo2f_dismiss_trial'/>
|
173 |
-
<button type='submit' class='mo2f-trial-dismiss notice-button'><i>DISMISS</i></button>
|
174 |
-
</p>
|
175 |
-
</form>
|
176 |
-
</div>
|
177 |
-
";
|
178 |
|
179 |
|
180 |
|
63 |
//support form
|
64 |
const SUPPORT_FORM_VALUES = "Please submit your query along with email.";
|
65 |
const SUPPORT_FORM_SENT = "Thanks for getting in touch! We shall get back to you shortly.";
|
|
|
|
|
66 |
const SUPPORT_FORM_ERROR = "Your query could not be submitted. Please try again.";
|
67 |
// request demo form
|
68 |
const DEMO_FORM_ERROR = "Please fill out all the fields.";
|
73 |
const UNKNOWN_ERROR = "Error processing your request. Please try again.";
|
74 |
const CONFIG_SAVED = "Configuration saved successfully.";
|
75 |
const REQUIRED_FIELDS = "Please enter all the required fields";
|
|
|
76 |
const RESET_PASS = "You password has been reset successfully and sent to your registered email. Please check your mailbox.";
|
77 |
const TEMPLATE_SAVED = "Email template saved.";
|
78 |
const GET_BACKUP_CODES = "<div class='custom-notice notice notice-warning backupcodes-notice'><p><p class='notice-message'><b>Please download backup codes using the 'Get backup codes' button to avoid getting locked out. Backup codes will be emailed as well as downloaded.</b></p><button class='backup_codes_dismiss notice-button'><i>NEVER SHOW AGAIN</i></button></p></div>";
|
91 |
const INVALID_CRED = 'Invalid username or password. Please try again.';
|
92 |
const REQUIRED_OTP = 'Please enter a value in OTP field.';
|
93 |
const INVALID_OTP = 'Invalid one time passcode. Please enter a valid passcode.';
|
94 |
+
const INVALID_PHONE = 'Please enter the phone number in the following format: <b>+##country code## ##phone number##';
|
95 |
const PASS_MISMATCH = 'Password and Confirm Password do not match.';
|
96 |
const CRON_DB_BACKUP_ENABLE = 'Scheduled Database Backup enabled';
|
97 |
const CRON_DB_BACKUP_DISABLE = 'Scheduled Database Backup disabled';
|
141 |
const LOW_EMAIL_TRANSACTIONS = "<div class='custom-notice notice notice-warning low_email-notice MOWrn'><p><p class='notice-message'><img style='width:15px;' src='".MO2F_PLUGIN_URL.'/includes/images/miniorange_icon.png'."'>  You have left very few Email transaction. We advise you to recharge or change 2FA method before you have no Email left.</p><a class='notice-button' href='".MoWpnsConstants::rechargeLink."' target='_blank' style='margin-right: 15px;'>RECHARGE</a><a class='notice-button' href='admin.php?page=mo_2fa_two_fa'id='setuptwofa_redirect' style='margin-right: 15px;'>SET UP ANOTHER 2FA</a><button class='email_low_dismiss notice-button' style='margin-right: 15px;'><i>DISMISS</i></button><button class='email_low_dismiss_always notice-button'><i>NEVER SHOW AGAIN</i></button></p></div>";
|
142 |
|
143 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
|
145 |
|
146 |
|
helper/utility.php
CHANGED
@@ -69,11 +69,11 @@ class MoWpnsUtility
|
|
69 |
public static function get_client_ip()
|
70 |
{
|
71 |
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
72 |
-
return
|
73 |
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
74 |
-
return
|
75 |
} else {
|
76 |
-
return
|
77 |
}
|
78 |
return '';
|
79 |
}
|
@@ -361,15 +361,11 @@ class MoWpnsUtility
|
|
361 |
$is_plugin_active_for_network = is_plugin_active_for_network( MoWpnsConstants::TWO_FACTOR_SETTINGS);
|
362 |
$is_onprem = get_option('is_onprem');
|
363 |
$WAFEnabled = get_site_option('WAFEnabled');
|
364 |
-
$pricing_page_visits = get_site_option('mo2fa_visit',0);
|
365 |
$WAFLevel = get_site_option('WAF');
|
366 |
$NoOf2faUsers = $Mo2fdbQueries->get_no_of_2fa_users();
|
367 |
-
$is_inline_used = get_site_option('mo2f_is_inline_used');
|
368 |
-
$login_with_mfa_use = get_site_option('mo2f_login_with_mfa_use');
|
369 |
$EmailTransactions = MoWpnsUtility::get_mo2f_db_option('cmVtYWluaW5nT1RQ', 'site_option');
|
370 |
$SMSTransactions = get_site_option('cmVtYWluaW5nT1RQVHJhbnNhY3Rpb25z')?get_site_option('cmVtYWluaW5nT1RQVHJhbnNhY3Rpb25z'):0;
|
371 |
$SQLInjection = get_option('SQLInjection');
|
372 |
-
$user_profile = get_option('mo2fa_userProfile_method');
|
373 |
$XSSAttack = get_option('XSSAttack');
|
374 |
$RFIAttack = get_option('RFIAttack');
|
375 |
$LFIAttack = get_option('LFIAttack');
|
@@ -380,7 +376,6 @@ class MoWpnsUtility
|
|
380 |
$mo2f_enable_brute_force = get_option('mo2f_enable_brute_force');
|
381 |
$space = "<span> </span>";
|
382 |
$browser = $moWpnsUtility->getCurrentBrowser();
|
383 |
-
$user_count = isset((count_users())['total_users'])?(count_users())['total_users']:'';
|
384 |
$specific_plugins = array('UM_Functions'=>'Ultimate Member', 'wc_get_product'=>'WooCommerce','pmpro_gateways'=>'Paid MemberShip Pro');
|
385 |
$backup_codes_remaining = get_user_meta($user_object->ID, 'mo2f_backup_codes', true);
|
386 |
if(is_array($backup_codes_remaining)){
|
@@ -388,7 +383,7 @@ class MoWpnsUtility
|
|
388 |
}else{
|
389 |
$backup_codes_remaining = 0;
|
390 |
}
|
391 |
-
$plugin_configuration ="<br><br><I>Plugin Configuration :-</I>".$space."On-premise:".($is_onprem?"Yes":"No"). $space."
|
392 |
if(get_user_meta($user_object->ID, 'mo_backup_code_generated', true) || get_user_meta($user_object->ID, 'mo_backup_code_downloaded', true))
|
393 |
$plugin_configuration=$plugin_configuration.$space."Backup Codes:".$backup_codes_remaining."/5";
|
394 |
$plugins='';
|
@@ -403,7 +398,6 @@ class MoWpnsUtility
|
|
403 |
if(is_multisite()){
|
404 |
$plugin_configuration = $plugin_configuration.$space.($is_plugin_active_for_network?"Network activated:'Yes":"Site activated:'Yes");
|
405 |
}
|
406 |
-
$plugin_configuration=$plugin_configuration.$space."Pricing Page visits : ".$pricing_page_visits;
|
407 |
if(time()-get_site_option("mo_2fa_pnp")<2592000 && (get_site_option('mo_2fa_plan_type')|| get_site_option('mo_2fa_addon_plan_type'))){
|
408 |
$plugin_configuration=$plugin_configuration.$space."Checked plans:'";
|
409 |
if(get_site_option('mo_2fa_plan_type'))
|
69 |
public static function get_client_ip()
|
70 |
{
|
71 |
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
72 |
+
return $_SERVER['HTTP_CLIENT_IP'];
|
73 |
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
74 |
+
return $_SERVER['HTTP_X_FORWARDED_FOR'];
|
75 |
} else {
|
76 |
+
return $_SERVER['REMOTE_ADDR'];
|
77 |
}
|
78 |
return '';
|
79 |
}
|
361 |
$is_plugin_active_for_network = is_plugin_active_for_network( MoWpnsConstants::TWO_FACTOR_SETTINGS);
|
362 |
$is_onprem = get_option('is_onprem');
|
363 |
$WAFEnabled = get_site_option('WAFEnabled');
|
|
|
364 |
$WAFLevel = get_site_option('WAF');
|
365 |
$NoOf2faUsers = $Mo2fdbQueries->get_no_of_2fa_users();
|
|
|
|
|
366 |
$EmailTransactions = MoWpnsUtility::get_mo2f_db_option('cmVtYWluaW5nT1RQ', 'site_option');
|
367 |
$SMSTransactions = get_site_option('cmVtYWluaW5nT1RQVHJhbnNhY3Rpb25z')?get_site_option('cmVtYWluaW5nT1RQVHJhbnNhY3Rpb25z'):0;
|
368 |
$SQLInjection = get_option('SQLInjection');
|
|
|
369 |
$XSSAttack = get_option('XSSAttack');
|
370 |
$RFIAttack = get_option('RFIAttack');
|
371 |
$LFIAttack = get_option('LFIAttack');
|
376 |
$mo2f_enable_brute_force = get_option('mo2f_enable_brute_force');
|
377 |
$space = "<span> </span>";
|
378 |
$browser = $moWpnsUtility->getCurrentBrowser();
|
|
|
379 |
$specific_plugins = array('UM_Functions'=>'Ultimate Member', 'wc_get_product'=>'WooCommerce','pmpro_gateways'=>'Paid MemberShip Pro');
|
380 |
$backup_codes_remaining = get_user_meta($user_object->ID, 'mo2f_backup_codes', true);
|
381 |
if(is_array($backup_codes_remaining)){
|
383 |
}else{
|
384 |
$backup_codes_remaining = 0;
|
385 |
}
|
386 |
+
$plugin_configuration ="<br><br><I>Plugin Configuration :-</I>".$space."On-premise:".($is_onprem?"Yes":"No"). $space."2FA method:" . ($mo2f_configured_2FA_method==''?"Not selected":$mo2f_configured_2FA_method).$space."No. of 2FA users :".$NoOf2faUsers.$space."Methods of users:".($other_methods==''?"NONE":$other_methods).$space."Email transactions:".$EmailTransactions.$space."SMS Transactions:".$SMSTransactions.$space.(is_multisite()?"Multisite:Yes":"Single-site:Yes").((mo2f_is_customer_registered())?($space."Customer Key:".$key):($space."Customer Registered:'No")).$space."Browser:".$browser;
|
387 |
if(get_user_meta($user_object->ID, 'mo_backup_code_generated', true) || get_user_meta($user_object->ID, 'mo_backup_code_downloaded', true))
|
388 |
$plugin_configuration=$plugin_configuration.$space."Backup Codes:".$backup_codes_remaining."/5";
|
389 |
$plugins='';
|
398 |
if(is_multisite()){
|
399 |
$plugin_configuration = $plugin_configuration.$space.($is_plugin_active_for_network?"Network activated:'Yes":"Site activated:'Yes");
|
400 |
}
|
|
|
401 |
if(time()-get_site_option("mo_2fa_pnp")<2592000 && (get_site_option('mo_2fa_plan_type')|| get_site_option('mo_2fa_addon_plan_type'))){
|
402 |
$plugin_configuration=$plugin_configuration.$space."Checked plans:'";
|
403 |
if(get_site_option('mo_2fa_plan_type'))
|
includes/css/bootstrap.min.css
CHANGED
@@ -1246,21 +1246,8 @@ button.mo2f_close {
|
|
1246 |
}
|
1247 |
|
1248 |
|
1249 |
-
.mo2f-styled-radio_conf {
|
1250 |
-
width: 25px;
|
1251 |
-
height: 32px;
|
1252 |
-
position: relative;
|
1253 |
-
display: inline-block;
|
1254 |
-
border-radius: 51%;
|
1255 |
-
background-color: #e6e6e6;
|
1256 |
-
float: left;
|
1257 |
-
margin-top: -7px;
|
1258 |
-
}
|
1259 |
|
1260 |
-
|
1261 |
-
margin-left: 10px;
|
1262 |
-
font-size: medium;
|
1263 |
-
}
|
1264 |
|
1265 |
.mo2f-modal-backdrop {
|
1266 |
|
1246 |
}
|
1247 |
|
1248 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1249 |
|
1250 |
+
|
|
|
|
|
|
|
1251 |
|
1252 |
.mo2f-modal-backdrop {
|
1253 |
|
includes/css/button_styles.css
CHANGED
@@ -91,10 +91,10 @@ input:checked + .mo_wpns_slider:before {
|
|
91 |
transition: .4s;
|
92 |
}
|
93 |
input:checked + .mo_wpns_slider_small {
|
94 |
-
background-color: #
|
95 |
}
|
96 |
input:focus + .mo_wpns_slider_small {
|
97 |
-
box-shadow: 0 0 1px #
|
98 |
}
|
99 |
|
100 |
input:checked + .mo_wpns_slider_small:before {
|
91 |
transition: .4s;
|
92 |
}
|
93 |
input:checked + .mo_wpns_slider_small {
|
94 |
+
background-color: #20b2aa;
|
95 |
}
|
96 |
input:focus + .mo_wpns_slider_small {
|
97 |
+
box-shadow: 0 0 1px #20b2aa;
|
98 |
}
|
99 |
|
100 |
input:checked + .mo_wpns_slider_small:before {
|
includes/css/christmas.gif
DELETED
Binary file
|
includes/css/datetime-style-settings.css
ADDED
@@ -0,0 +1,576 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* jQuery Timepicker
|
3 |
+
* http://timepicker.co
|
4 |
+
* https://cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.css
|
5 |
+
* Enhances standard form input fields helping users to select (or type) times.
|
6 |
+
*
|
7 |
+
* Copyright (c) 2016 Willington Vega; Licensed MIT, GPL
|
8 |
+
*/
|
9 |
+
|
10 |
+
.ui-timepicker-container {
|
11 |
+
position: absolute;
|
12 |
+
overflow: hidden;
|
13 |
+
box-sizing: border-box;
|
14 |
+
}
|
15 |
+
|
16 |
+
.ui-timepicker {
|
17 |
+
box-sizing: content-box;
|
18 |
+
display: block;
|
19 |
+
height: 205px;
|
20 |
+
list-style: none outside none;
|
21 |
+
margin: 0;
|
22 |
+
padding: 0 1px;
|
23 |
+
text-align: center;
|
24 |
+
}
|
25 |
+
|
26 |
+
.ui-timepicker-viewport {
|
27 |
+
box-sizing: content-box;
|
28 |
+
display: block;
|
29 |
+
height: 148px;
|
30 |
+
margin: 0;
|
31 |
+
padding: 0;
|
32 |
+
overflow: auto;
|
33 |
+
overflow-x: hidden; /* IE */
|
34 |
+
}
|
35 |
+
|
36 |
+
.ui-timepicker-standard {
|
37 |
+
/* overwrites .ui-widget */
|
38 |
+
font-family: Verdana,Arial,sans-serif;
|
39 |
+
font-size: 1.1em;
|
40 |
+
/* overwrites .ui-widget-content */
|
41 |
+
background-color: #FFF;
|
42 |
+
border: 1px solid #AAA;
|
43 |
+
color: #222;
|
44 |
+
/* overwrites .ui-menu */
|
45 |
+
margin: 0;
|
46 |
+
padding: 2px;
|
47 |
+
height: 155px !important;
|
48 |
+
}
|
49 |
+
.ui-timepicker-standard a {
|
50 |
+
border: 1px solid transparent;
|
51 |
+
color: #222;
|
52 |
+
display: block;
|
53 |
+
padding: 0.2em 0.4em;
|
54 |
+
text-decoration: none;
|
55 |
+
}
|
56 |
+
.ui-timepicker-standard .ui-state-hover {
|
57 |
+
/* overwrites .ui-state-hover */
|
58 |
+
background-color: #DADADA;
|
59 |
+
border: 1px solid #999;
|
60 |
+
font-weight: normal;
|
61 |
+
color: #212121;
|
62 |
+
}
|
63 |
+
.ui-timepicker-standard .ui-menu-item {
|
64 |
+
/* overwrites .ui-menu and .ui-menu-item */
|
65 |
+
/*clear: left;
|
66 |
+
float: left;*/
|
67 |
+
margin: 0;
|
68 |
+
padding: 0;
|
69 |
+
}
|
70 |
+
|
71 |
+
.ui-timepicker-corners,
|
72 |
+
.ui-timepicker-corners .ui-corner-all {
|
73 |
+
-moz-border-radius: 4px;
|
74 |
+
-webkit-border-radius: 4px;
|
75 |
+
border-radius: 4px;
|
76 |
+
}
|
77 |
+
|
78 |
+
.ui-timepicker-hidden {
|
79 |
+
/* overwrites .ui-helper-hidden */
|
80 |
+
display: none;
|
81 |
+
}
|
82 |
+
|
83 |
+
.ui-timepicker-no-scrollbar .ui-timepicker {
|
84 |
+
border: none;
|
85 |
+
}
|
86 |
+
|
87 |
+
|
88 |
+
|
89 |
+
/* ADDED FOR TIMEZONE DROPDOWN - https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css */
|
90 |
+
|
91 |
+
.select2-container {
|
92 |
+
box-sizing: border-box;
|
93 |
+
display: inline-block;
|
94 |
+
margin: 0;
|
95 |
+
width: 90% !important;
|
96 |
+
position: relative;
|
97 |
+
vertical-align: middle; }
|
98 |
+
.select2-container .select2-selection--single {
|
99 |
+
box-sizing: border-box;
|
100 |
+
cursor: pointer;
|
101 |
+
display: block;
|
102 |
+
height: 28px;
|
103 |
+
user-select: none;
|
104 |
+
-webkit-user-select: none; }
|
105 |
+
.select2-container .select2-selection--single .select2-selection__rendered {
|
106 |
+
display: block;
|
107 |
+
padding-left: 8px;
|
108 |
+
padding-right: 20px;
|
109 |
+
overflow: hidden;
|
110 |
+
text-overflow: ellipsis;
|
111 |
+
white-space: nowrap; }
|
112 |
+
.select2-container .select2-selection--single .select2-selection__clear {
|
113 |
+
position: relative; }
|
114 |
+
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
|
115 |
+
padding-right: 8px;
|
116 |
+
padding-left: 20px; }
|
117 |
+
.select2-container .select2-selection--multiple {
|
118 |
+
box-sizing: border-box;
|
119 |
+
cursor: pointer;
|
120 |
+
display: block;
|
121 |
+
min-height: 32px;
|
122 |
+
user-select: none;
|
123 |
+
-webkit-user-select: none; }
|
124 |
+
.select2-container .select2-selection--multiple .select2-selection__rendered {
|
125 |
+
display: inline-block;
|
126 |
+
overflow: hidden;
|
127 |
+
padding-left: 8px;
|
128 |
+
text-overflow: ellipsis;
|
129 |
+
white-space: nowrap; }
|
130 |
+
.select2-container .select2-search--inline {
|
131 |
+
float: left; }
|
132 |
+
.select2-container .select2-search--inline .select2-search__field {
|
133 |
+
box-sizing: border-box;
|
134 |
+
border: none;
|
135 |
+
font-size: 100%;
|
136 |
+
margin-top: 5px;
|
137 |
+
padding: 0; }
|
138 |
+
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
|
139 |
+
-webkit-appearance: none; }
|
140 |
+
|
141 |
+
.select2-dropdown {
|
142 |
+
background-color: white;
|
143 |
+
border: 1px solid #aaa;
|
144 |
+
border-radius: 4px;
|
145 |
+
box-sizing: border-box;
|
146 |
+
display: block;
|
147 |
+
position: absolute;
|
148 |
+
left: -100000px;
|
149 |
+
width: 100%;
|
150 |
+
z-index: 1051; }
|
151 |
+
|
152 |
+
.select2-results {
|
153 |
+
display: block; }
|
154 |
+
|
155 |
+
.select2-results__options {
|
156 |
+
list-style: none;
|
157 |
+
margin: 0;
|
158 |
+
padding: 0; }
|
159 |
+
|
160 |
+
.select2-results__option {
|
161 |
+
padding: 6px;
|
162 |
+
user-select: none;
|
163 |
+
-webkit-user-select: none; }
|
164 |
+
.select2-results__option[aria-selected] {
|
165 |
+
cursor: pointer; }
|
166 |
+
|
167 |
+
.select2-container--open .select2-dropdown {
|
168 |
+
left: 0; }
|
169 |
+
|
170 |
+
.select2-container--open .select2-dropdown--above {
|
171 |
+
border-bottom: none;
|
172 |
+
border-bottom-left-radius: 0;
|
173 |
+
border-bottom-right-radius: 0; }
|
174 |
+
|
175 |
+
.select2-container--open .select2-dropdown--below {
|
176 |
+
border-top: none;
|
177 |
+
border-top-left-radius: 0;
|
178 |
+
border-top-right-radius: 0; }
|
179 |
+
|
180 |
+
.select2-search--dropdown {
|
181 |
+
display: block;
|
182 |
+
padding: 4px; }
|
183 |
+
.select2-search--dropdown .select2-search__field {
|
184 |
+
padding: 4px;
|
185 |
+
width: 100%;
|
186 |
+
box-sizing: border-box; }
|
187 |
+
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
|
188 |
+
-webkit-appearance: none; }
|
189 |
+
.select2-search--dropdown.select2-search--hide {
|
190 |
+
display: none; }
|
191 |
+
|
192 |
+
.select2-close-mask {
|
193 |
+
border: 0;
|
194 |
+
margin: 0;
|
195 |
+
padding: 0;
|
196 |
+
display: block;
|
197 |
+
position: fixed;
|
198 |
+
left: 0;
|
199 |
+
top: 0;
|
200 |
+
min-height: 100%;
|
201 |
+
min-width: 100%;
|
202 |
+
height: auto;
|
203 |
+
width: auto;
|
204 |
+
opacity: 0;
|
205 |
+
z-index: 99;
|
206 |
+
background-color: #fff;
|
207 |
+
filter: alpha(opacity=0); }
|
208 |
+
|
209 |
+
.select2-hidden-accessible {
|
210 |
+
border: 0 !important;
|
211 |
+
clip: rect(0 0 0 0) !important;
|
212 |
+
height: 1px !important;
|
213 |
+
margin: -1px !important;
|
214 |
+
overflow: hidden !important;
|
215 |
+
padding: 0 !important;
|
216 |
+
position: absolute !important;
|
217 |
+
width: 1px !important; }
|
218 |
+
|
219 |
+
.select2-container--default .select2-selection--single {
|
220 |
+
background-color: #fff;
|
221 |
+
border: 1px solid #aaa;
|
222 |
+
border-radius: 4px; }
|
223 |
+
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
224 |
+
color: #444;
|
225 |
+
line-height: 28px; }
|
226 |
+
.select2-container--default .select2-selection--single .select2-selection__clear {
|
227 |
+
cursor: pointer;
|
228 |
+
float: right;
|
229 |
+
font-weight: bold; }
|
230 |
+
.select2-container--default .select2-selection--single .select2-selection__placeholder {
|
231 |
+
color: #999; }
|
232 |
+
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
233 |
+
height: 26px;
|
234 |
+
position: absolute;
|
235 |
+
top: 1px;
|
236 |
+
right: 1px;
|
237 |
+
width: 20px; }
|
238 |
+
.select2-container--default .select2-selection--single .select2-selection__arrow b {
|
239 |
+
border-color: #888 transparent transparent transparent;
|
240 |
+
border-style: solid;
|
241 |
+
border-width: 5px 4px 0 4px;
|
242 |
+
height: 0;
|
243 |
+
left: 50%;
|
244 |
+
margin-left: -4px;
|
245 |
+
margin-top: -2px;
|
246 |
+
position: absolute;
|
247 |
+
top: 50%;
|
248 |
+
width: 0; }
|
249 |
+
|
250 |
+
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
251 |
+
float: left; }
|
252 |
+
|
253 |
+
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
254 |
+
left: 1px;
|
255 |
+
right: auto; }
|
256 |
+
|
257 |
+
.select2-container--default.select2-container--disabled .select2-selection--single {
|
258 |
+
background-color: #eee;
|
259 |
+
cursor: default; }
|
260 |
+
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
|
261 |
+
display: none; }
|
262 |
+
|
263 |
+
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
264 |
+
border-color: transparent transparent #888 transparent;
|
265 |
+
border-width: 0 4px 5px 4px; }
|
266 |
+
|
267 |
+
.select2-container--default .select2-selection--multiple {
|
268 |
+
background-color: white;
|
269 |
+
border: 1px solid #aaa;
|
270 |
+
border-radius: 4px;
|
271 |
+
cursor: text; }
|
272 |
+
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
|
273 |
+
box-sizing: border-box;
|
274 |
+
list-style: none;
|
275 |
+
margin: 0;
|
276 |
+
padding: 0 5px;
|
277 |
+
width: 100%; }
|
278 |
+
.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
|
279 |
+
list-style: none; }
|
280 |
+
.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
|
281 |
+
color: #999;
|
282 |
+
margin-top: 5px;
|
283 |
+
float: left; }
|
284 |
+
.select2-container--default .select2-selection--multiple .select2-selection__clear {
|
285 |
+
cursor: pointer;
|
286 |
+
float: right;
|
287 |
+
font-weight: bold;
|
288 |
+
margin-top: 5px;
|
289 |
+
margin-right: 10px; }
|
290 |
+
.select2-container--default .select2-selection--multiple .select2-selection__choice {
|
291 |
+
background-color: #e4e4e4;
|
292 |
+
border: 1px solid #aaa;
|
293 |
+
border-radius: 4px;
|
294 |
+
cursor: default;
|
295 |
+
float: left;
|
296 |
+
margin-right: 5px;
|
297 |
+
margin-top: 5px;
|
298 |
+
padding: 0 5px; }
|
299 |
+
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
300 |
+
color: #999;
|
301 |
+
cursor: pointer;
|
302 |
+
display: inline-block;
|
303 |
+
font-weight: bold;
|
304 |
+
margin-right: 2px; }
|
305 |
+
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
|
306 |
+
color: #333; }
|
307 |
+
|
308 |
+
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
|
309 |
+
float: right; }
|
310 |
+
|
311 |
+
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
312 |
+
margin-left: 5px;
|
313 |
+
margin-right: auto; }
|
314 |
+
|
315 |
+
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
316 |
+
margin-left: 2px;
|
317 |
+
margin-right: auto; }
|
318 |
+
|
319 |
+
.select2-container--default.select2-container--focus .select2-selection--multiple {
|
320 |
+
border: solid black 1px;
|
321 |
+
outline: 0; }
|
322 |
+
|
323 |
+
.select2-container--default.select2-container--disabled .select2-selection--multiple {
|
324 |
+
background-color: #eee;
|
325 |
+
cursor: default; }
|
326 |
+
|
327 |
+
.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
|
328 |
+
display: none; }
|
329 |
+
|
330 |
+
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
|
331 |
+
border-top-left-radius: 0;
|
332 |
+
border-top-right-radius: 0; }
|
333 |
+
|
334 |
+
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
|
335 |
+
border-bottom-left-radius: 0;
|
336 |
+
border-bottom-right-radius: 0; }
|
337 |
+
|
338 |
+
.select2-container--default .select2-search--dropdown .select2-search__field {
|
339 |
+
border: 1px solid #aaa; }
|
340 |
+
|
341 |
+
.select2-container--default .select2-search--inline .select2-search__field {
|
342 |
+
background: transparent;
|
343 |
+
border: none;
|
344 |
+
outline: 0;
|
345 |
+
box-shadow: none;
|
346 |
+
-webkit-appearance: textfield; }
|
347 |
+
|
348 |
+
.select2-container--default .select2-results > .select2-results__options {
|
349 |
+
max-height: 200px;
|
350 |
+
overflow-y: auto; }
|
351 |
+
|
352 |
+
.select2-container--default .select2-results__option[role=group] {
|
353 |
+
padding: 0; }
|
354 |
+
|
355 |
+
.select2-container--default .select2-results__option[aria-disabled=true] {
|
356 |
+
color: #999; }
|
357 |
+
|
358 |
+
.select2-container--default .select2-results__option[aria-selected=true] {
|
359 |
+
background-color: #ddd; }
|
360 |
+
|
361 |
+
.select2-container--default .select2-results__option .select2-results__option {
|
362 |
+
padding-left: 1em; }
|
363 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
|
364 |
+
padding-left: 0; }
|
365 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
|
366 |
+
margin-left: -1em;
|
367 |
+
padding-left: 2em; }
|
368 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
369 |
+
margin-left: -2em;
|
370 |
+
padding-left: 3em; }
|
371 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
372 |
+
margin-left: -3em;
|
373 |
+
padding-left: 4em; }
|
374 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
375 |
+
margin-left: -4em;
|
376 |
+
padding-left: 5em; }
|
377 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
378 |
+
margin-left: -5em;
|
379 |
+
padding-left: 6em; }
|
380 |
+
|
381 |
+
.select2-container--default .select2-results__option--highlighted[aria-selected] {
|
382 |
+
background-color: #5897fb;
|
383 |
+
color: white; }
|
384 |
+
|
385 |
+
.select2-container--default .select2-results__group {
|
386 |
+
cursor: default;
|
387 |
+
display: block;
|
388 |
+
padding: 6px; }
|
389 |
+
|
390 |
+
.select2-container--classic .select2-selection--single {
|
391 |
+
background-color: #f7f7f7;
|
392 |
+
border: 1px solid #aaa;
|
393 |
+
border-radius: 4px;
|
394 |
+
outline: 0;
|
395 |
+
background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
|
396 |
+
background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
|
397 |
+
background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
|
398 |
+
background-repeat: repeat-x;
|
399 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
|
400 |
+
.select2-container--classic .select2-selection--single:focus {
|
401 |
+
border: 1px solid #5897fb; }
|
402 |
+
.select2-container--classic .select2-selection--single .select2-selection__rendered {
|
403 |
+
color: #444;
|
404 |
+
line-height: 28px; }
|
405 |
+
.select2-container--classic .select2-selection--single .select2-selection__clear {
|
406 |
+
cursor: pointer;
|
407 |
+
float: right;
|
408 |
+
font-weight: bold;
|
409 |
+
margin-right: 10px; }
|
410 |
+
.select2-container--classic .select2-selection--single .select2-selection__placeholder {
|
411 |
+
color: #999; }
|
412 |
+
.select2-container--classic .select2-selection--single .select2-selection__arrow {
|
413 |
+
background-color: #ddd;
|
414 |
+
border: none;
|
415 |
+
border-left: 1px solid #aaa;
|
416 |
+
border-top-right-radius: 4px;
|
417 |
+
border-bottom-right-radius: 4px;
|
418 |
+
height: 26px;
|
419 |
+
position: absolute;
|
420 |
+
top: 1px;
|
421 |
+
right: 1px;
|
422 |
+
width: 20px;
|
423 |
+
background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
|
424 |
+
background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
|
425 |
+
background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
|
426 |
+
background-repeat: repeat-x;
|
427 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
|
428 |
+
.select2-container--classic .select2-selection--single .select2-selection__arrow b {
|
429 |
+
border-color: #888 transparent transparent transparent;
|
430 |
+
border-style: solid;
|
431 |
+
border-width: 5px 4px 0 4px;
|
432 |
+
height: 0;
|
433 |
+
left: 50%;
|
434 |
+
margin-left: -4px;
|
435 |
+
margin-top: -2px;
|
436 |
+
position: absolute;
|
437 |
+
top: 50%;
|
438 |
+
width: 0; }
|
439 |
+
|
440 |
+
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
441 |
+
float: left; }
|
442 |
+
|
443 |
+
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
444 |
+
border: none;
|
445 |
+
border-right: 1px solid #aaa;
|
446 |
+
border-radius: 0;
|
447 |
+
border-top-left-radius: 4px;
|
448 |
+
border-bottom-left-radius: 4px;
|
449 |
+
left: 1px;
|
450 |
+
right: auto; }
|
451 |
+
|
452 |
+
.select2-container--classic.select2-container--open .select2-selection--single {
|
453 |
+
border: 1px solid #5897fb; }
|
454 |
+
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
|
455 |
+
background: transparent;
|
456 |
+
border: none; }
|
457 |
+
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
458 |
+
border-color: transparent transparent #888 transparent;
|
459 |
+
border-width: 0 4px 5px 4px; }
|
460 |
+
|
461 |
+
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
|
462 |
+
border-top: none;
|
463 |
+
border-top-left-radius: 0;
|
464 |
+
border-top-right-radius: 0;
|
465 |
+
background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
|
466 |
+
background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
|
467 |
+
background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
|
468 |
+
background-repeat: repeat-x;
|
469 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
|
470 |
+
|
471 |
+
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
|
472 |
+
border-bottom: none;
|
473 |
+
border-bottom-left-radius: 0;
|
474 |
+
border-bottom-right-radius: 0;
|
475 |
+
background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
|
476 |
+
background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
|
477 |
+
background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
|
478 |
+
background-repeat: repeat-x;
|
479 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }
|
480 |
+
|
481 |
+
.select2-container--classic .select2-selection--multiple {
|
482 |
+
background-color: white;
|
483 |
+
border: 1px solid #aaa;
|
484 |
+
border-radius: 4px;
|
485 |
+
cursor: text;
|
486 |
+
outline: 0; }
|
487 |
+
.select2-container--classic .select2-selection--multiple:focus {
|
488 |
+
border: 1px solid #5897fb; }
|
489 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
|
490 |
+
list-style: none;
|
491 |
+
margin: 0;
|
492 |
+
padding: 0 5px; }
|
493 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__clear {
|
494 |
+
display: none; }
|
495 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
|
496 |
+
background-color: #e4e4e4;
|
497 |
+
border: 1px solid #aaa;
|
498 |
+
border-radius: 4px;
|
499 |
+
cursor: default;
|
500 |
+
float: left;
|
501 |
+
margin-right: 5px;
|
502 |
+
margin-top: 5px;
|
503 |
+
padding: 0 5px; }
|
504 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
|
505 |
+
color: #888;
|
506 |
+
cursor: pointer;
|
507 |
+
display: inline-block;
|
508 |
+
font-weight: bold;
|
509 |
+
margin-right: 2px; }
|
510 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
|
511 |
+
color: #555; }
|
512 |
+
|
513 |
+
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
514 |
+
float: right; }
|
515 |
+
|
516 |
+
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
517 |
+
margin-left: 5px;
|
518 |
+
margin-right: auto; }
|
519 |
+
|
520 |
+
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
521 |
+
margin-left: 2px;
|
522 |
+
margin-right: auto; }
|
523 |
+
|
524 |
+
.select2-container--classic.select2-container--open .select2-selection--multiple {
|
525 |
+
border: 1px solid #5897fb; }
|
526 |
+
|
527 |
+
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
|
528 |
+
border-top: none;
|
529 |
+
border-top-left-radius: 0;
|
530 |
+
border-top-right-radius: 0; }
|
531 |
+
|
532 |
+
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
|
533 |
+
border-bottom: none;
|
534 |
+
border-bottom-left-radius: 0;
|
535 |
+
border-bottom-right-radius: 0; }
|
536 |
+
|
537 |
+
.select2-container--classic .select2-search--dropdown .select2-search__field {
|
538 |
+
border: 1px solid #aaa;
|
539 |
+
outline: 0; }
|
540 |
+
|
541 |
+
.select2-container--classic .select2-search--inline .select2-search__field {
|
542 |
+
outline: 0;
|
543 |
+
box-shadow: none; }
|
544 |
+
|
545 |
+
.select2-container--classic .select2-dropdown {
|
546 |
+
background-color: white;
|
547 |
+
border: 1px solid transparent; }
|
548 |
+
|
549 |
+
.select2-container--classic .select2-dropdown--above {
|
550 |
+
border-bottom: none; }
|
551 |
+
|
552 |
+
.select2-container--classic .select2-dropdown--below {
|
553 |
+
border-top: none; }
|
554 |
+
|
555 |
+
.select2-container--classic .select2-results > .select2-results__options {
|
556 |
+
max-height: 200px;
|
557 |
+
overflow-y: auto; }
|
558 |
+
|
559 |
+
.select2-container--classic .select2-results__option[role=group] {
|
560 |
+
padding: 0; }
|
561 |
+
|
562 |
+
.select2-container--classic .select2-results__option[aria-disabled=true] {
|
563 |
+
color: grey; }
|
564 |
+
|
565 |
+
.select2-container--classic .select2-results__option--highlighted[aria-selected] {
|
566 |
+
background-color: #3875d7;
|
567 |
+
color: white; }
|
568 |
+
|
569 |
+
.select2-container--classic .select2-results__group {
|
570 |
+
cursor: default;
|
571 |
+
display: block;
|
572 |
+
padding: 6px; }
|
573 |
+
|
574 |
+
.select2-container--classic.select2-container--open .select2-dropdown {
|
575 |
+
border-color: #5897fb; }
|
576 |
+
|
includes/css/datetime-style-settings.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.ui-timepicker-container{position:absolute;overflow:hidden;box-sizing:border-box}.ui-timepicker{box-sizing:content-box;display:block;height:205px;list-style:none outside none;margin:0;padding:0 1px;text-align:center}.ui-timepicker-viewport{box-sizing:content-box;display:block;height:148px;margin:0;padding:0;overflow:auto;overflow-x:hidden}.ui-timepicker-standard{font-family:Verdana,Arial,sans-serif;font-size:1.1em;background-color:#fff;border:1px solid #aaa;color:#222;margin:0;padding:2px;height:155px!important}.ui-timepicker-standard a{border:1px solid transparent;color:#222;display:block;padding:.2em .4em;text-decoration:none}.ui-timepicker-standard .ui-state-hover{background-color:#dadada;border:1px solid #999;font-weight:400;color:#212121}.ui-timepicker-standard .ui-menu-item{margin:0;padding:0}.ui-timepicker-corners,.ui-timepicker-corners .ui-corner-all{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.ui-timepicker-hidden{display:none}.ui-timepicker-no-scrollbar .ui-timepicker{border:none}.select2-container{box-sizing:border-box;display:inline-block;margin:0;width:90%!important;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid #000 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:0 0;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:#fff}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top,#fff 50%,#eee 100%);background-image:-o-linear-gradient(top,#fff 50%,#eee 100%);background-image:linear-gradient(to bottom,#fff 50%,#eee 100%);background-repeat:repeat-x}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top,#eee 50%,#ccc 100%);background-image:-o-linear-gradient(top,#eee 50%,#ccc 100%);background-image:linear-gradient(to bottom,#eee 50%,#ccc 100%);background-repeat:repeat-x}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:0 0;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top,#fff 0,#eee 50%);background-image:-o-linear-gradient(top,#fff 0,#eee 50%);background-image:linear-gradient(to bottom,#fff 0,#eee 50%);background-repeat:repeat-x}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top,#eee 50%,#fff 100%);background-image:-o-linear-gradient(top,#eee 50%,#fff 100%);background-image:linear-gradient(to bottom,#eee 50%,#fff 100%);background-repeat:repeat-x}.select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
|
includes/css/hide-login-form.css
CHANGED
@@ -1,6 +1,3 @@
|
|
1 |
-
.mo2fa_visible{
|
2 |
-
top: 20px !important;
|
3 |
-
}
|
4 |
body.login div#login {
|
5 |
display: block;
|
6 |
}
|
|
|
|
|
|
|
1 |
body.login div#login {
|
2 |
display: block;
|
3 |
}
|
includes/css/jquery-ui.min.css
CHANGED
@@ -1 +1,4 @@
|
|
1 |
-
* http: //jqueryui.com * Includes: core.css,.ui-helper-hidden,accordion.css,autocomplete.css,button.css,checkboxradio.css,controlgroup.css,dialog.css,draggable.css,menu.css,progressbar.css,resizable.css,selectable.css,selectmenu.css,slider.css,sortable.css,spinner.css,tabs.css,theme.css * To view and modify this theme,tooltip.css{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default;max-height:100px;overflow-y:auto;overflow-x:hidden}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-active,.ui-menu .ui-state-focus{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:active,.ui-button:hover,.ui-button:link,.ui-button:visited{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}button.ui-button::-moz-focus-inner,input.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus,.ui-controlgroup>.ui-controlgroup-item:focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label+.ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label+.ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc(100% - 2.4em)}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0 0;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw,.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url(data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==);height:100%;opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:700;line-height:1.5;padding:2px .4em;margin:.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:0 0;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0 0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:700}.ui-widget-header a{color:#333}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:400;color:#454545}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#454545;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #ccc;background:#ededed;font-weight:400;color:#2b2b2b}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{border:1px solid #003eff;background:#007fff;font-weight:400;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:3px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666}
|
|
|
|
|
|
1 |
+
* http://jqueryui.com
|
2 |
+
* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
|
3 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px
|
4 |
+
* Copyright jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default;max-height:100px;overflow-y:auto;overflow-x:hidden}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-active,.ui-menu .ui-state-focus{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:active,.ui-button:hover,.ui-button:link,.ui-button:visited{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}button.ui-button::-moz-focus-inner,input.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus,.ui-controlgroup>.ui-controlgroup-item:focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label+.ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label+.ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc(100% - 2.4em)}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-next-hover,.ui-datepicker .ui-datepicker-prev-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0 0;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw,.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url(data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==);height:100%;opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:700;line-height:1.5;padding:2px .4em;margin:.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:0 0;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0 0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:700}.ui-widget-header a{color:#333}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:400;color:#454545}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#454545;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #ccc;background:#ededed;font-weight:400;color:#2b2b2b}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{border:1px solid #003eff;background:#007fff;font-weight:400;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:3px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666}
|
includes/css/jquery.ui.css
CHANGED
@@ -741,3 +741,178 @@ button.ui-button::-moz-focus-inner {
|
|
741 |
filter: Alpha(Opacity=30); /* support: IE8 */
|
742 |
border-radius: 8px;
|
743 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
741 |
filter: Alpha(Opacity=30); /* support: IE8 */
|
742 |
border-radius: 8px;
|
743 |
}
|
744 |
+
.ui-datepicker {
|
745 |
+
width: 17em;
|
746 |
+
padding: .2em .2em 0;
|
747 |
+
display: none;
|
748 |
+
}
|
749 |
+
.ui-datepicker .ui-datepicker-header {
|
750 |
+
position: relative;
|
751 |
+
padding: .2em 0;
|
752 |
+
}
|
753 |
+
.ui-datepicker .ui-datepicker-prev,
|
754 |
+
.ui-datepicker .ui-datepicker-next {
|
755 |
+
position: absolute;
|
756 |
+
top: 2px;
|
757 |
+
width: 1.8em;
|
758 |
+
height: 1.8em;
|
759 |
+
}
|
760 |
+
.ui-datepicker .ui-datepicker-prev-hover,
|
761 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
762 |
+
top: 1px;
|
763 |
+
}
|
764 |
+
.ui-datepicker .ui-datepicker-prev {
|
765 |
+
left: 2px;
|
766 |
+
}
|
767 |
+
.ui-datepicker .ui-datepicker-next {
|
768 |
+
right: 2px;
|
769 |
+
}
|
770 |
+
.ui-datepicker .ui-datepicker-prev-hover {
|
771 |
+
left: 1px;
|
772 |
+
}
|
773 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
774 |
+
right: 1px;
|
775 |
+
}
|
776 |
+
.ui-datepicker .ui-datepicker-prev span,
|
777 |
+
.ui-datepicker .ui-datepicker-next span {
|
778 |
+
display: block;
|
779 |
+
position: absolute;
|
780 |
+
left: 50%;
|
781 |
+
margin-left: -8px;
|
782 |
+
top: 50%;
|
783 |
+
margin-top: -8px;
|
784 |
+
}
|
785 |
+
.ui-datepicker .ui-datepicker-title {
|
786 |
+
margin: 0 2.3em;
|
787 |
+
line-height: 1.8em;
|
788 |
+
text-align: center;
|
789 |
+
}
|
790 |
+
.ui-datepicker .ui-datepicker-title select {
|
791 |
+
font-size: 1em;
|
792 |
+
margin: 1px 0;
|
793 |
+
}
|
794 |
+
.ui-datepicker select.ui-datepicker-month,
|
795 |
+
.ui-datepicker select.ui-datepicker-year {
|
796 |
+
width: 45%;
|
797 |
+
}
|
798 |
+
.ui-datepicker table {
|
799 |
+
width: 100%;
|
800 |
+
font-size: .9em;
|
801 |
+
border-collapse: collapse;
|
802 |
+
margin: 0 0 .4em;
|
803 |
+
}
|
804 |
+
.ui-datepicker th {
|
805 |
+
padding: .7em .3em;
|
806 |
+
text-align: center;
|
807 |
+
font-weight: bold;
|
808 |
+
border: 0;
|
809 |
+
}
|
810 |
+
.ui-datepicker td {
|
811 |
+
border: 0;
|
812 |
+
padding: 1px;
|
813 |
+
}
|
814 |
+
.ui-datepicker td span,
|
815 |
+
.ui-datepicker td a {
|
816 |
+
display: block;
|
817 |
+
padding: .2em;
|
818 |
+
text-align: right;
|
819 |
+
text-decoration: none;
|
820 |
+
}
|
821 |
+
.ui-datepicker .ui-datepicker-buttonpane {
|
822 |
+
background-image: none;
|
823 |
+
margin: .7em 0 0 0;
|
824 |
+
padding: 0 .2em;
|
825 |
+
border-left: 0;
|
826 |
+
border-right: 0;
|
827 |
+
border-bottom: 0;
|
828 |
+
}
|
829 |
+
.ui-datepicker .ui-datepicker-buttonpane button {
|
830 |
+
float: right;
|
831 |
+
margin: .5em .2em .4em;
|
832 |
+
cursor: pointer;
|
833 |
+
padding: .2em .6em .3em .6em;
|
834 |
+
width: auto;
|
835 |
+
overflow: visible;
|
836 |
+
}
|
837 |
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
838 |
+
float: left;
|
839 |
+
}
|
840 |
+
|
841 |
+
/* with multiple calendars */
|
842 |
+
.ui-datepicker.ui-datepicker-multi {
|
843 |
+
width: auto;
|
844 |
+
}
|
845 |
+
.ui-datepicker-multi .ui-datepicker-group {
|
846 |
+
float: left;
|
847 |
+
}
|
848 |
+
.ui-datepicker-multi .ui-datepicker-group table {
|
849 |
+
width: 95%;
|
850 |
+
margin: 0 auto .4em;
|
851 |
+
}
|
852 |
+
.ui-datepicker-multi-2 .ui-datepicker-group {
|
853 |
+
width: 50%;
|
854 |
+
}
|
855 |
+
.ui-datepicker-multi-3 .ui-datepicker-group {
|
856 |
+
width: 33.3%;
|
857 |
+
}
|
858 |
+
.ui-datepicker-multi-4 .ui-datepicker-group {
|
859 |
+
width: 25%;
|
860 |
+
}
|
861 |
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
|
862 |
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
|
863 |
+
border-left-width: 0;
|
864 |
+
}
|
865 |
+
.ui-datepicker-multi .ui-datepicker-buttonpane {
|
866 |
+
clear: left;
|
867 |
+
}
|
868 |
+
.ui-datepicker-row-break {
|
869 |
+
clear: both;
|
870 |
+
width: 100%;
|
871 |
+
font-size: 0;
|
872 |
+
}
|
873 |
+
|
874 |
+
/* RTL support */
|
875 |
+
.ui-datepicker-rtl {
|
876 |
+
direction: rtl;
|
877 |
+
}
|
878 |
+
.ui-datepicker-rtl .ui-datepicker-prev {
|
879 |
+
right: 2px;
|
880 |
+
left: auto;
|
881 |
+
}
|
882 |
+
.ui-datepicker-rtl .ui-datepicker-next {
|
883 |
+
left: 2px;
|
884 |
+
right: auto;
|
885 |
+
}
|
886 |
+
.ui-datepicker-rtl .ui-datepicker-prev:hover {
|
887 |
+
right: 1px;
|
888 |
+
left: auto;
|
889 |
+
}
|
890 |
+
.ui-datepicker-rtl .ui-datepicker-next:hover {
|
891 |
+
left: 1px;
|
892 |
+
right: auto;
|
893 |
+
}
|
894 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane {
|
895 |
+
clear: right;
|
896 |
+
}
|
897 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
|
898 |
+
float: left;
|
899 |
+
}
|
900 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
|
901 |
+
.ui-datepicker-rtl .ui-datepicker-group {
|
902 |
+
float: right;
|
903 |
+
}
|
904 |
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
|
905 |
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
|
906 |
+
border-right-width: 0;
|
907 |
+
border-left-width: 1px;
|
908 |
+
}
|
909 |
+
|
910 |
+
/* Icons */
|
911 |
+
.ui-datepicker .ui-icon {
|
912 |
+
display: block;
|
913 |
+
text-indent: -99999px;
|
914 |
+
overflow: hidden;
|
915 |
+
background-repeat: no-repeat;
|
916 |
+
left: .5em;
|
917 |
+
top: .3em;
|
918 |
+
}
|
includes/css/popup.css
CHANGED
@@ -24,7 +24,7 @@
|
|
24 |
height: 80%;
|
25 |
display: block;
|
26 |
background: white;
|
27 |
-
border: 2px solid #
|
28 |
border-radius: 20px;
|
29 |
padding: 1rem;
|
30 |
padding-top: 0px;
|
@@ -36,7 +36,7 @@
|
|
36 |
}
|
37 |
|
38 |
#mo_popup_id input[type="radio"]:checked + label {
|
39 |
-
background: #
|
40 |
color: hsla(215, 0%, 100%, 1);
|
41 |
&::after {
|
42 |
color: hsla(215, 5%, 25%, 1);
|
24 |
height: 80%;
|
25 |
display: block;
|
26 |
background: white;
|
27 |
+
border: 2px solid #20b2aa;
|
28 |
border-radius: 20px;
|
29 |
padding: 1rem;
|
30 |
padding-top: 0px;
|
36 |
}
|
37 |
|
38 |
#mo_popup_id input[type="radio"]:checked + label {
|
39 |
+
background: #20b2aa;
|
40 |
color: hsla(215, 0%, 100%, 1);
|
41 |
&::after {
|
42 |
color: hsla(215, 5%, 25%, 1);
|
includes/css/style_settings.css
CHANGED
@@ -1,10 +1,3 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
:root {
|
4 |
-
--mo2f-theme-color: #2271b1;
|
5 |
-
--white: #ffffff;
|
6 |
-
}
|
7 |
-
|
8 |
.mo2f_miniAuthApp {
|
9 |
padding: 26px;
|
10 |
font-size: 18px;
|
@@ -12,17 +5,17 @@
|
|
12 |
width: 100%;
|
13 |
height: 100%;
|
14 |
margin:-10px;
|
15 |
-
background-color:#
|
16 |
display:block;
|
17 |
}
|
18 |
.mo2f_miniAuthApp:hover {
|
19 |
-
background: #
|
20 |
}
|
21 |
input[name = 'miniOrangeAuthenticator'] {
|
22 |
visibility:hidden;
|
23 |
}
|
24 |
input[name = 'miniOrangeAuthenticator']:checked + .mo2f_miniAuthApp{
|
25 |
-
background: #
|
26 |
}
|
27 |
.mo2fa-addons-preview-alignment{
|
28 |
text-align: right;
|
@@ -123,8 +116,6 @@
|
|
123 |
text-decoration: none;
|
124 |
cursor: pointer;
|
125 |
}
|
126 |
-
|
127 |
-
|
128 |
.mo-2fa-help-button-text {
|
129 |
cursor: pointer;
|
130 |
font-size: 16px;
|
@@ -138,7 +129,6 @@
|
|
138 |
border-radius: 15px;
|
139 |
padding: 9px;
|
140 |
transition: all 3s ease-in-out;
|
141 |
-
display: none;
|
142 |
}
|
143 |
.mo_support_input_label {
|
144 |
color: #999;
|
@@ -219,6 +209,10 @@
|
|
219 |
padding: 0px;
|
220 |
}
|
221 |
|
|
|
|
|
|
|
|
|
222 |
.mo-2fa-mail-button
|
223 |
{
|
224 |
bottom: 2.5%;
|
@@ -303,8 +297,8 @@
|
|
303 |
}
|
304 |
.mo2f_2fa_plan_title
|
305 |
{
|
306 |
-
background-color:
|
307 |
-
border: 2px solid
|
308 |
}
|
309 |
.mo2f_padding_style
|
310 |
{
|
@@ -329,7 +323,7 @@
|
|
329 |
.mo2f_tooltip .mo2f_tooltiptext {
|
330 |
visibility: hidden;
|
331 |
width: 200px;
|
332 |
-
background-color:
|
333 |
color: white;
|
334 |
text-align: center;
|
335 |
border-radius: 6px;
|
@@ -406,15 +400,15 @@
|
|
406 |
border-radius: 50em;
|
407 |
border-width: 1px;
|
408 |
border-style: solid;
|
409 |
-
border-color:
|
410 |
border-image: initial;
|
411 |
}
|
412 |
-
.
|
413 |
{
|
414 |
position: relative;
|
415 |
z-index: 1;
|
416 |
display: inline-block;
|
417 |
-
float:left;
|
418 |
width: 210px;
|
419 |
height: 44px;
|
420 |
line-height: 40px;
|
@@ -645,7 +639,7 @@
|
|
645 |
background-color: white;
|
646 |
}
|
647 |
.mo_wpns_button_info_tab {
|
648 |
-
background-color:
|
649 |
border: none;
|
650 |
color: white;
|
651 |
height: 1.8em;
|
@@ -811,7 +805,7 @@
|
|
811 |
font-size: 103%;
|
812 |
margin-top: 20px;
|
813 |
margin-bottom: 20px;
|
814 |
-
border: solid 1px
|
815 |
background-color: white;
|
816 |
color: black;
|
817 |
width :162px;
|
@@ -820,16 +814,16 @@
|
|
820 |
|
821 |
/* Change background color of buttons on hover */
|
822 |
.mo_wpns_tab button:hover {
|
823 |
-
background-color:
|
824 |
color: white;
|
825 |
}
|
826 |
|
827 |
/* Create an active/current tablink class */
|
828 |
.mo_wpns_tab button.active {
|
829 |
-
background-color:
|
830 |
color: white;
|
831 |
width: 20%;
|
832 |
-
border: solid 1px
|
833 |
/*border-bottom: none;*/
|
834 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
835 |
font-weight: 600;
|
@@ -843,7 +837,7 @@
|
|
843 |
border-top: none;
|
844 |
}
|
845 |
.mo_wpsn_button {
|
846 |
-
background-color:
|
847 |
border: none;
|
848 |
color: white;
|
849 |
padding: 11px 32px;
|
@@ -866,18 +860,13 @@
|
|
866 |
padding:0px 24px 10px 10px;
|
867 |
min-height:220px;
|
868 |
}
|
869 |
-
.
|
870 |
margin-bottom: 10px;
|
871 |
margin-top: 10px;
|
872 |
-
height:
|
873 |
width:100%;
|
874 |
float:left;
|
875 |
|
876 |
-
}
|
877 |
-
.mo_wpns_offer_image{
|
878 |
-
margin-bottom: 10px;
|
879 |
-
margin-top: 10px;
|
880 |
-
float:left;
|
881 |
|
882 |
}
|
883 |
.mo_wpns_divided_layout{
|
@@ -886,6 +875,7 @@
|
|
886 |
height:auto;
|
887 |
width:100%;
|
888 |
float:left;
|
|
|
889 |
|
890 |
}
|
891 |
.mo_wpns_divided_layout_2
|
@@ -906,7 +896,7 @@
|
|
906 |
min-height: 222px;
|
907 |
overflow: hidden;
|
908 |
text-align: center;
|
909 |
-
border-top: 6px solid
|
910 |
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
|
911 |
}
|
912 |
.mo_wpns_small_layout{
|
@@ -918,23 +908,18 @@
|
|
918 |
margin: 10px;
|
919 |
padding: 5px 20px;
|
920 |
background-color: #FFFFFF;
|
921 |
-
border: 1px solid #CCCCCC
|
922 |
float: left;
|
923 |
-
width:
|
924 |
margin-left: 1%;
|
925 |
-
min-height:
|
926 |
-
overflow:
|
927 |
text-align: center;
|
928 |
-
border-top: 6px solid
|
929 |
-
|
930 |
/*font-style: italic;*/
|
931 |
|
932 |
}
|
933 |
-
|
934 |
-
.mo_wpns_small_layout:hover{
|
935 |
-
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
936 |
-
}
|
937 |
-
|
938 |
.mo_wpns_method_layout{
|
939 |
margin: 10px;
|
940 |
padding: 5px 20px;
|
@@ -946,7 +931,7 @@
|
|
946 |
min-height: 222px;
|
947 |
overflow: hidden;
|
948 |
text-align: center;
|
949 |
-
border-top: 6px solid
|
950 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
951 |
/*font-style: italic;*/
|
952 |
|
@@ -959,40 +944,34 @@
|
|
959 |
/*border: 1px solid #CCCCCC;*/
|
960 |
float: left;
|
961 |
width: 47%;
|
962 |
-
margin-left: 1%;
|
963 |
-
height:
|
964 |
text-align: center;
|
965 |
-
|
966 |
}
|
967 |
|
968 |
|
969 |
.mo_wpns_small_3_layout
|
970 |
{
|
971 |
-
|
972 |
-
align-items: center;
|
973 |
-
flex-direction: column;
|
974 |
-
justify-content: top;
|
975 |
width: 64%;
|
976 |
-
height:
|
977 |
text-align: center;
|
978 |
-
margin-top:
|
979 |
-
|
980 |
-
flex-wrap: wrap;
|
981 |
}
|
982 |
.mo_wpns_line
|
983 |
{
|
984 |
-
border: 1.2px solid
|
985 |
}
|
986 |
.mo_wpns_dashboard_layout
|
987 |
{
|
988 |
margin: 10px;
|
|
|
|
|
|
|
989 |
float: left;
|
990 |
-
width:
|
991 |
-
height:
|
992 |
-
margin-left:
|
993 |
-
background-color: #ffffff;
|
994 |
-
width: 94.5%;
|
995 |
-
/* border: 2px solid var(--mo2f-theme-color); */
|
996 |
}
|
997 |
.mo_wpns_inside_dashboard_layout
|
998 |
{
|
@@ -1005,7 +984,7 @@
|
|
1005 |
height: 100px;
|
1006 |
margin-left: 1%;
|
1007 |
font-weight: 600;
|
1008 |
-
border-top: 2px solid
|
1009 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1010 |
}
|
1011 |
.mo_wpns_sub_dashboards_layout
|
@@ -1013,15 +992,13 @@
|
|
1013 |
margin-top: 10px;
|
1014 |
padding: 5px 0px;
|
1015 |
background-color: #FFFFFF;
|
1016 |
-
border: 1px solid
|
1017 |
float: left;
|
1018 |
width: 34%;
|
1019 |
-
height:
|
1020 |
margin-left: 1%;
|
1021 |
font-weight: 600;
|
1022 |
-
border-top: 4px solid
|
1023 |
-
text-align: center;
|
1024 |
-
|
1025 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1026 |
/*font-style: italic;*/
|
1027 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
@@ -1031,15 +1008,14 @@
|
|
1031 |
margin-top: 10px;
|
1032 |
padding: 5px 0px;
|
1033 |
background-color: #FFFFFF;
|
1034 |
-
border: 1px solid
|
1035 |
float: left;
|
1036 |
width: 45%;
|
1037 |
-
min-
|
1038 |
-
min-height: 50px;
|
1039 |
overflow: hidden;
|
1040 |
margin-left: 1%;
|
1041 |
font-weight: 600;
|
1042 |
-
border-top: 3px solid
|
1043 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1044 |
/*font-style: italic;*/
|
1045 |
}
|
@@ -1114,7 +1090,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1114 |
margin-left: 0.3%;
|
1115 |
float: left;
|
1116 |
text-align: center;
|
1117 |
-
border: 2px solid
|
1118 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1119 |
}
|
1120 |
|
@@ -1126,7 +1102,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1126 |
margin-left: 1%;
|
1127 |
float: left;
|
1128 |
/*text-align: center;*/
|
1129 |
-
border: 2px solid
|
1130 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1131 |
}
|
1132 |
.mo_wpns_settings_textarea
|
@@ -1166,7 +1142,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1166 |
margin: 10px;
|
1167 |
padding: 5px 20px;
|
1168 |
background-color: #FFFFFF;
|
1169 |
-
border: 2px solid
|
1170 |
float: left;
|
1171 |
width: 593px;
|
1172 |
min-height: 200px;
|
@@ -1187,20 +1163,21 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1187 |
margin: 5px;
|
1188 |
margin-left: 0px;
|
1189 |
padding: 5px 20px 30px 20px;
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
|
|
1197 |
}
|
1198 |
.mo_wpns_setting_layout_scan
|
1199 |
{
|
1200 |
margin: 5px;
|
1201 |
padding: 5px 20px 30px 20px;
|
1202 |
background-color: #FFFFFF;
|
1203 |
-
border:
|
1204 |
float: left;
|
1205 |
width: 80%;
|
1206 |
margin-left: 10%;
|
@@ -1239,7 +1216,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1239 |
|
1240 |
/* Create an active/current tablink class */
|
1241 |
.mo_wpns_sub_nav_tab button.mo_wpns_sub_nav_active {
|
1242 |
-
background-color:
|
1243 |
color: white;
|
1244 |
}
|
1245 |
|
@@ -1278,12 +1255,12 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1278 |
width:23.3%;
|
1279 |
float:left;
|
1280 |
background-color: white;
|
1281 |
-
border-top: 4px solid
|
1282 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1283 |
font-style: italic;
|
1284 |
}
|
1285 |
.mo_wpns_button {
|
1286 |
-
background-color:
|
1287 |
border: none;
|
1288 |
color: white;
|
1289 |
padding: 11px 28px;
|
@@ -1314,7 +1291,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1314 |
|
1315 |
|
1316 |
.mo_wpns_dashboard_button {
|
1317 |
-
background-color:
|
1318 |
border: none;
|
1319 |
color: white;
|
1320 |
padding-top: 10px;
|
@@ -1349,7 +1326,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1349 |
}*/
|
1350 |
.mo_wpns_upgrade_page_button
|
1351 |
{
|
1352 |
-
border: 2px solid
|
1353 |
background-color: #2a80ca;
|
1354 |
color: white;
|
1355 |
padding: 12px 0px;
|
@@ -1418,7 +1395,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1418 |
min-height: 222px;
|
1419 |
overflow: hidden;
|
1420 |
text-align: center;
|
1421 |
-
border-top: 6px solid
|
1422 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1423 |
}
|
1424 |
|
@@ -1433,7 +1410,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1433 |
height: 220px;
|
1434 |
overflow: hidden;
|
1435 |
text-align: center;
|
1436 |
-
/*border-top: 6px solid
|
1437 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1438 |
}
|
1439 |
|
@@ -1496,7 +1473,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1496 |
background-color: #dddddd;
|
1497 |
}
|
1498 |
.mo_wpns_free_feature_button {
|
1499 |
-
/*background-color: green; /* Green
|
1500 |
border: none;
|
1501 |
color: black;
|
1502 |
padding: 11px 12px;
|
@@ -1567,7 +1544,15 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1567 |
width: 100%;
|
1568 |
|
1569 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1570 |
|
|
|
1571 |
.mo_wpns_small_layout{
|
1572 |
/*background-color:#FFFFFF;
|
1573 |
border:1px solid #CCCCCC;
|
@@ -1586,7 +1571,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1586 |
text-align: center;
|
1587 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1588 |
/*font-style: italic;*/
|
1589 |
-
border-top: 6px solid
|
1590 |
}
|
1591 |
|
1592 |
.mo_wpns_small_layout_test{
|
@@ -1610,7 +1595,39 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1610 |
|
1611 |
}
|
1612 |
|
1613 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1614 |
{
|
1615 |
margin-top: 10px;
|
1616 |
padding: 5px 0px;
|
@@ -1619,10 +1636,10 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1619 |
float: left;
|
1620 |
width: 18.5%;
|
1621 |
height: 100px;
|
1622 |
-
border-top: 2px solid
|
1623 |
font-weight: 600;
|
1624 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1625 |
-
}
|
1626 |
|
1627 |
/*.wpns_font_size {
|
1628 |
font-size: 30px;
|
@@ -1652,7 +1669,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1652 |
|
1653 |
.mo_wpns_dashboard_button
|
1654 |
{
|
1655 |
-
background-color:
|
1656 |
border: none;
|
1657 |
color: white;
|
1658 |
padding-top: 10px;
|
@@ -1685,16 +1702,52 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1685 |
text-align: center;
|
1686 |
color: black;
|
1687 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1688 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1689 |
|
1690 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1691 |
.mo_wpns_container{
|
1692 |
/*padding:10px;*/
|
1693 |
width: 100%;
|
1694 |
/*background-color: yellow;*/
|
1695 |
height: auto;
|
1696 |
}
|
1697 |
-
|
1698 |
.mo_wpns_details_layout
|
1699 |
{
|
1700 |
margin:10px;
|
@@ -1710,7 +1763,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1710 |
float:left;
|
1711 |
border: 1px solid;
|
1712 |
background-color: white;
|
1713 |
-
border-top: 4px solid
|
1714 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1715 |
font-style: italic;
|
1716 |
}
|
@@ -1724,22 +1777,35 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1724 |
font-size: 103%;
|
1725 |
margin-top: 20px;
|
1726 |
margin-bottom: 20px;
|
1727 |
-
border: solid 1px
|
1728 |
background-color: white;
|
1729 |
color: black;
|
1730 |
width: 129px;
|
1731 |
height: 55%;
|
1732 |
}
|
1733 |
.mo_wpns_tab button.active {
|
1734 |
-
background-color:
|
1735 |
color: white;
|
1736 |
width: 130px;
|
1737 |
-
border: solid 1px
|
1738 |
/*border-bottom: none;*/
|
1739 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1740 |
font-weight: 600;
|
1741 |
}
|
1742 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1743 |
.mo_wpns_third_layout{
|
1744 |
margin-top: 10px;
|
1745 |
padding: 5px 20px;
|
@@ -1770,7 +1836,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1770 |
margin: 10px;
|
1771 |
padding: 5px 20px;
|
1772 |
background-color: #FFFFFF;
|
1773 |
-
border: 2px solid
|
1774 |
float: left;
|
1775 |
width: 90%;
|
1776 |
min-height: 200px;
|
@@ -1778,9 +1844,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1778 |
text-align: center;
|
1779 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1780 |
}
|
1781 |
-
|
1782 |
-
cursor: pointer;
|
1783 |
-
}
|
1784 |
h1 .nav-tab, a .nav-tab{
|
1785 |
font-size : auto;
|
1786 |
background-color: none; /* Green
|
@@ -1793,6 +1857,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1793 |
|
1794 |
font-size: 20px;
|
1795 |
margin: 5px 0px;
|
|
|
1796 |
/*border-radius: 23px;*/
|
1797 |
width: 07.5%;
|
1798 |
border: 1px solid gray;
|
@@ -1804,20 +1869,20 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1804 |
/*background-color: #4CAF50;*/
|
1805 |
font-size: 150%;
|
1806 |
box-shadow: 3px 4px 3px #888888;
|
1807 |
-
background-color:
|
1808 |
color: white;
|
1809 |
|
1810 |
}
|
1811 |
h1 .nav-tab:hover , a .nav-tab:hover
|
1812 |
{
|
1813 |
-
background-color:
|
1814 |
color: white;
|
1815 |
/*border-bottom: none;*/
|
1816 |
}
|
1817 |
h1 .nav-tab-active:hover , a .nav-tab-active:hover
|
1818 |
{
|
1819 |
background-color: white;
|
1820 |
-
color
|
1821 |
}
|
1822 |
.mo_wpns_sub_nav_tab button {
|
1823 |
background-color: inherit;
|
@@ -1836,7 +1901,21 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1836 |
color: black;
|
1837 |
width :210px;
|
1838 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1839 |
|
|
|
|
|
|
|
|
|
1840 |
.mo_wpns_products-dollar-amount {
|
1841 |
color: #797878;
|
1842 |
font-weight: 400;
|
@@ -1862,7 +1941,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1862 |
-o-transition: border .2s ease-in-out;
|
1863 |
transition: border .2s ease-in-out
|
1864 |
}
|
1865 |
-
|
1866 |
|
1867 |
|
1868 |
.mo_wpns_table_layout td strong {
|
@@ -1882,7 +1961,7 @@ h2.mo_wpns_nav-tab-wrapper
|
|
1882 |
}
|
1883 |
|
1884 |
.fixed {
|
1885 |
-
width: 75% !important;
|
1886 |
}
|
1887 |
.mo_wpns_table_textbox {
|
1888 |
width:100%;
|
@@ -2018,57 +2097,20 @@ h2.mo_wpns_nav-tab-wrapper
|
|
2018 |
|
2019 |
.test_auth_button
|
2020 |
{
|
2021 |
-
|
2022 |
text-align: center;
|
2023 |
-
align-
|
2024 |
-
|
2025 |
}
|
2026 |
|
2027 |
.mo2f_table_layout
|
2028 |
{
|
2029 |
-
|
2030 |
-
|
2031 |
-
|
2032 |
-
padding: 25px 50px 25px 50px;
|
2033 |
-
margin: 10px;
|
2034 |
-
}
|
2035 |
-
|
2036 |
-
.mo2f_wpns_container
|
2037 |
-
{
|
2038 |
-
position: absolute;
|
2039 |
-
width: 90%;
|
2040 |
-
margin: 10px;
|
2041 |
-
}
|
2042 |
-
|
2043 |
-
|
2044 |
-
|
2045 |
-
|
2046 |
-
.mo2f_table_divide_border
|
2047 |
-
{
|
2048 |
-
padding: 10px;
|
2049 |
-
}
|
2050 |
-
|
2051 |
-
.mo2f_flexbox
|
2052 |
-
{
|
2053 |
-
display: flex;
|
2054 |
-
justify-content: space-between;
|
2055 |
-
}
|
2056 |
-
|
2057 |
-
.mo2f_support_flex
|
2058 |
-
{
|
2059 |
-
flex: 0 0 25%;
|
2060 |
-
}
|
2061 |
-
.mo2f_table_layout_support
|
2062 |
-
{
|
2063 |
margin: 10px;
|
2064 |
-
border: 1px solid #053742;
|
2065 |
-
text-align: center;
|
2066 |
-
padding: 10px;
|
2067 |
-
background-color: #dcecff;
|
2068 |
-
|
2069 |
}
|
2070 |
|
2071 |
-
|
2072 |
.ip_lookup_desc,.file_backup_desc{
|
2073 |
background-color:#E6E6E6;
|
2074 |
width:100%;
|
@@ -2443,17 +2485,22 @@ a{
|
|
2443 |
font-weight: bold;
|
2444 |
}
|
2445 |
|
2446 |
-
|
2447 |
-
|
|
|
|
|
|
|
2448 |
.wpns_font_shown {
|
2449 |
-
padding-top: 20%;
|
2450 |
font-size: 70px;
|
|
|
|
|
|
|
2451 |
}
|
2452 |
|
2453 |
/* Added for malware */
|
2454 |
.malwaresummarydiv{
|
2455 |
display: inline-flex;
|
2456 |
-
width:
|
2457 |
}
|
2458 |
.malwarescandiv{
|
2459 |
border-radius: 4px;
|
@@ -2512,6 +2559,11 @@ font-size: 70px;
|
|
2512 |
line-height: 20px; /* To center it vertically */
|
2513 |
color: white;
|
2514 |
}
|
|
|
|
|
|
|
|
|
|
|
2515 |
.mo_wpns_lightgreen{
|
2516 |
color:rgb(128, 173, 128);
|
2517 |
}
|
@@ -2554,7 +2606,7 @@ font-size: 70px;
|
|
2554 |
width: 50%;
|
2555 |
}
|
2556 |
.mo_wpns_scan_button {
|
2557 |
-
background-color:
|
2558 |
border: none;
|
2559 |
color: white;
|
2560 |
padding: 5px 5px;
|
@@ -2568,7 +2620,7 @@ font-size: 70px;
|
|
2568 |
transition-duration: 0.4s;
|
2569 |
}
|
2570 |
.mo_wpns_scan_modal_button {
|
2571 |
-
background-color:
|
2572 |
border: none;
|
2573 |
color: white;
|
2574 |
padding: 5px 80px;
|
@@ -2582,7 +2634,7 @@ font-size: 70px;
|
|
2582 |
transition-duration: 0.4s;
|
2583 |
}
|
2584 |
.mo_wpns_deep_scan_button {
|
2585 |
-
background-color:
|
2586 |
border: none;
|
2587 |
color: white;
|
2588 |
padding: 5px 5px;
|
@@ -2604,18 +2656,18 @@ font-size: 70px;
|
|
2604 |
{
|
2605 |
padding: 5px;
|
2606 |
background-color: #FFFFFF;
|
2607 |
-
border: 1px solid
|
2608 |
width: 23.5%;
|
2609 |
-
border-top: 4px solid
|
2610 |
min-height: 180px;
|
2611 |
}
|
2612 |
.mo_wpns_malwarescandiv
|
2613 |
{
|
2614 |
padding: 5px;
|
2615 |
background-color: #FFFFFF;
|
2616 |
-
border: 1px solid
|
2617 |
width: 50%;
|
2618 |
-
border-top: 4px solid
|
2619 |
}
|
2620 |
|
2621 |
|
@@ -2800,7 +2852,7 @@ font-size: 70px;
|
|
2800 |
margin: 10px;
|
2801 |
float: left;
|
2802 |
text-align: center;
|
2803 |
-
border: 2px solid
|
2804 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
2805 |
}
|
2806 |
|
@@ -2935,7 +2987,7 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
2935 |
}
|
2936 |
|
2937 |
.mo2f_thumbnail_method_desc{
|
2938 |
-
padding:
|
2939 |
font-size:17px;
|
2940 |
}
|
2941 |
|
@@ -2979,6 +3031,20 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
2979 |
.mo2fa_see_preview{
|
2980 |
font-size: 13px;
|
2981 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2982 |
.mo2f_configure_set_2_factor:hover {
|
2983 |
font-weight: bold;
|
2984 |
font-size: 14px;
|
@@ -3095,11 +3161,9 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
3095 |
color: #1a5a97!important;
|
3096 |
font-weight: 600!important;
|
3097 |
}
|
3098 |
-
|
3099 |
-
.mo2f_kba_ques:hover {
|
3100 |
color: #1a5a97!important;
|
3101 |
-
font-weight: 600
|
3102 |
-
|
3103 |
}
|
3104 |
|
3105 |
.mo2f_kba_table {
|
@@ -3192,17 +3256,7 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
3192 |
text-align: center;
|
3193 |
padding: 11px;
|
3194 |
}
|
3195 |
-
|
3196 |
-
margin-bottom:3%!important;
|
3197 |
-
width: 18em;
|
3198 |
-
}
|
3199 |
-
.mo2f_raise_support_ticket{
|
3200 |
-
margin-bottom:3%!important;
|
3201 |
-
background-color: #479814b5!important;
|
3202 |
-
color: white!important;
|
3203 |
-
width: 18em;
|
3204 |
-
border-color: white !important;
|
3205 |
-
}
|
3206 |
.mo2f_vertical-submenu a:hover {
|
3207 |
background-color: #ccc;
|
3208 |
}
|
@@ -3281,7 +3335,7 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
3281 |
margin: 0px 0px;
|
3282 |
cursor: pointer;
|
3283 |
width: 1200px;
|
3284 |
-
border: 1px solid
|
3285 |
|
3286 |
}
|
3287 |
.mo_subtab_flex-container{
|
@@ -3301,25 +3355,25 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
3301 |
margin: 0px 0px;
|
3302 |
cursor: pointer;
|
3303 |
width: 1200px;
|
3304 |
-
border: 1px solid
|
3305 |
}
|
3306 |
|
3307 |
.mo_wpns_sub_scanmode
|
3308 |
{
|
3309 |
padding: 5px;
|
3310 |
background-color: #FFFFFF;
|
3311 |
-
border: 1px solid
|
3312 |
width: 23.5%;
|
3313 |
-
border-top: 4px solid
|
3314 |
min-height: 180px;
|
3315 |
}
|
3316 |
.mo_wpns_sub_scansummary
|
3317 |
{
|
3318 |
padding: 5px;
|
3319 |
background-color: #FFFFFF;
|
3320 |
-
border: 1px solid
|
3321 |
width: 23.5%;
|
3322 |
-
border-top: 4px solid
|
3323 |
height: 120px;
|
3324 |
}
|
3325 |
.mo_wpns_scan_summary_text
|
@@ -3332,9 +3386,9 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
3332 |
{
|
3333 |
padding: 5px;
|
3334 |
background-color: #FFFFFF;
|
3335 |
-
border: 1px solid
|
3336 |
width: 50%;
|
3337 |
-
border-top: 4px solid
|
3338 |
}
|
3339 |
|
3340 |
.mo_scan_modal {
|
@@ -3492,7 +3546,7 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
3492 |
}
|
3493 |
.mo2f_addons_alignment
|
3494 |
{
|
3495 |
-
color
|
3496 |
font-size: large;
|
3497 |
float: left;
|
3498 |
margin-right: 5px;
|
@@ -3546,7 +3600,17 @@ a.mo2f_thumbnail:hover, a.mo2f_thumbnail:focus, a.mo2f_thumbnail.active {
|
|
3546 |
color: #ffffff;
|
3547 |
margin-left: 15px;
|
3548 |
}
|
3549 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3550 |
/* The switch - the box around the slider */
|
3551 |
.switch {
|
3552 |
position: relative;
|
@@ -3610,6 +3674,27 @@ input:checked + .slider:before {
|
|
3610 |
border-radius: 50%;
|
3611 |
}
|
3612 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3613 |
.mo_wpns_upgrade_page_2fa_ns_styles
|
3614 |
{
|
3615 |
background-color: #7ccbc7;
|
@@ -3799,246 +3884,67 @@ input:checked + .slider:before {
|
|
3799 |
|
3800 |
.mo2f_offer_main_div
|
3801 |
{
|
3802 |
-
|
3803 |
-
background-
|
3804 |
-
|
3805 |
-
|
3806 |
-
|
3807 |
-
width: inherit;
|
3808 |
-
border-radius: 6px;
|
3809 |
-
padding-top: 1%;
|
3810 |
-
padding-bottom: 3%;
|
3811 |
-
justify-content: space-around;
|
3812 |
}
|
3813 |
|
3814 |
.mo2f_offer_first_section
|
3815 |
{
|
3816 |
-
|
3817 |
-
|
3818 |
-
|
3819 |
-
|
3820 |
-
|
3821 |
-
padding-left: 3%;
|
3822 |
-
text-align: center;
|
3823 |
-
padding-top: 30px;
|
3824 |
-
}
|
3825 |
-
@media screen and (max-width: 768px) {
|
3826 |
-
.mo2f_offer_first_section {
|
3827 |
-
display:none;
|
3828 |
-
}
|
3829 |
-
.mo2f_offer_valid{
|
3830 |
-
display: none !important;
|
3831 |
-
}
|
3832 |
-
.mo2f_offer_timer{
|
3833 |
-
display:none !important;
|
3834 |
-
}
|
3835 |
-
.mo2f_offer_contact_us
|
3836 |
-
{
|
3837 |
-
font-size: 120% !important;
|
3838 |
-
border-radius: 30px;
|
3839 |
-
border: 1px solid #ea5ab7a1;
|
3840 |
-
color: white;
|
3841 |
-
padding: 4% 8%;
|
3842 |
-
background: #ea5ab7a1;
|
3843 |
-
text-decoration: none;
|
3844 |
-
}
|
3845 |
-
|
3846 |
-
|
3847 |
-
}
|
3848 |
|
3849 |
-
.mo2f_offer_christmas{
|
3850 |
-
letter-spacing: 5px;
|
3851 |
-
font-size: 250%;
|
3852 |
-
width: 83%;
|
3853 |
-
color: #fffafa;
|
3854 |
-
-webkit-text-stroke: 2px #ffff;
|
3855 |
-
font-family: sans-serif;
|
3856 |
-
margin: 0%;
|
3857 |
-
}
|
3858 |
-
.mo2f_offer_cyber{
|
3859 |
-
font-size: 200%;
|
3860 |
-
margin:0px;
|
3861 |
-
margin-left: -18%;
|
3862 |
-
letter-spacing: 6px;
|
3863 |
-
color: white;
|
3864 |
-
margin-top: 2%;
|
3865 |
-
font-weight: bold;
|
3866 |
}
|
3867 |
-
.
|
3868 |
-
width: 83%;
|
3869 |
-
line-height: 1%;
|
3870 |
-
margin: 7px;
|
3871 |
-
}
|
3872 |
-
.mo2fa_hr_line span{
|
3873 |
-
background: #fe161600;
|
3874 |
-
padding: 0 10px;
|
3875 |
-
color: #ffffff;
|
3876 |
-
font-weight: bold;
|
3877 |
-
font-size: 30px;
|
3878 |
-
}
|
3879 |
-
|
3880 |
-
.mo2f_offer_middle_section
|
3881 |
{
|
3882 |
-
|
3883 |
-
|
3884 |
-
|
3885 |
-
|
|
|
3886 |
|
|
|
3887 |
.mo2f_offer_get_upto
|
3888 |
{
|
3889 |
-
text-align:center;
|
3890 |
-
margin:0px;
|
3891 |
-
margin-bottom: -2%;
|
3892 |
-
margin-top: 4.5%;
|
3893 |
-
color: white;
|
3894 |
-
font-size: 200%;
|
3895 |
}
|
3896 |
-
.
|
3897 |
-
|
3898 |
-
|
3899 |
-
margin:0px;
|
3900 |
-
}
|
3901 |
-
.mo2f_offer_timer{
|
3902 |
-
text-align: center;
|
3903 |
-
margin:0px;
|
3904 |
-
font-size: 150%;
|
3905 |
-
font-weight:bold;
|
3906 |
}
|
3907 |
|
3908 |
.mo2f_offer_last_section
|
3909 |
{
|
3910 |
-
width:
|
3911 |
-
padding-top: 5%;
|
3912 |
-
float: right;
|
3913 |
-
text-align: center;
|
3914 |
}
|
3915 |
|
3916 |
.mo2f_offer_contact_us
|
3917 |
{
|
3918 |
-
font-size:
|
3919 |
-
border-radius:
|
3920 |
-
|
|
|
3921 |
color: white;
|
3922 |
-
padding:
|
3923 |
-
background: #ffffff94;
|
3924 |
-
font-weight: 500;
|
3925 |
text-decoration: none;
|
3926 |
}
|
3927 |
|
3928 |
-
.
|
3929 |
-
color: white;
|
3930 |
-
|
3931 |
-
font-size: 15px;
|
3932 |
-
float: right;
|
3933 |
-
margin-top: -70px;
|
3934 |
-
margin-right: 10px;
|
3935 |
-
border:none;
|
3936 |
-
}
|
3937 |
-
|
3938 |
-
.mo2f_close
|
3939 |
-
{
|
3940 |
-
background:none;
|
3941 |
-
}
|
3942 |
-
|
3943 |
-
.mo2f_cross
|
3944 |
-
{
|
3945 |
-
background:#d69494;
|
3946 |
-
padding: 0px 4px;
|
3947 |
-
font-weight: bold;
|
3948 |
-
cursor: pointer;
|
3949 |
-
}
|
3950 |
-
|
3951 |
-
.mo2f_offer_contact_us:hover, .mo2f_cross:hover
|
3952 |
{
|
3953 |
-
color: white;
|
3954 |
-
background: #ffffff7a;
|
3955 |
}
|
3956 |
|
3957 |
.mo2f_offer_contact_us_layout
|
3958 |
{
|
3959 |
-
border: 3px solid
|
3960 |
}
|
3961 |
|
3962 |
.mo2f_offer_contact_us_button
|
3963 |
{
|
3964 |
-
background:
|
3965 |
-
}
|
3966 |
-
|
3967 |
-
.mo2f_trial_submit_button
|
3968 |
-
{
|
3969 |
-
background: #2271b1 !important;
|
3970 |
-
background-color: #20b2aa; /* Green */
|
3971 |
-
border: none;
|
3972 |
-
color: white;
|
3973 |
-
padding: 11px 28px;
|
3974 |
-
text-align: center;
|
3975 |
-
text-decoration: none;
|
3976 |
-
display: inline-block;
|
3977 |
-
font-size: 16px;
|
3978 |
-
margin: 4px 2px;
|
3979 |
-
cursor: pointer;
|
3980 |
-
-webkit-transition-duration: 0.4s; /* Safari */
|
3981 |
-
transition-duration: 0.4s;
|
3982 |
-
}
|
3983 |
-
.mo2f_trial_submit_button:hover {
|
3984 |
-
box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19);
|
3985 |
-
color: white;
|
3986 |
-
}
|
3987 |
-
|
3988 |
-
.mo2f_trial_box{
|
3989 |
-
width: 654px;
|
3990 |
-
}
|
3991 |
-
|
3992 |
-
.mo2f_firebase_adv_container{
|
3993 |
-
display: flex;
|
3994 |
-
justify-content: top;
|
3995 |
-
align-items: center;
|
3996 |
-
flex-direction: column;
|
3997 |
-
margin: 10px;
|
3998 |
-
border: 1px solid #000000;
|
3999 |
-
height: 185px;
|
4000 |
-
padding: 10px;
|
4001 |
-
background-image: linear-gradient(rgba(255, 252, 0, 1),rgb(255,188,107));
|
4002 |
-
/* background-color: orange; */
|
4003 |
-
}
|
4004 |
-
|
4005 |
-
.mo2f_firebase_adv_img{
|
4006 |
-
display: flex;
|
4007 |
-
align-items: center;
|
4008 |
-
justify-content: space-between;
|
4009 |
-
}
|
4010 |
-
.mo2f_firebase_adv_text{
|
4011 |
-
width: 60px;
|
4012 |
-
height: 60px;
|
4013 |
-
left: 0px;
|
4014 |
-
top: 0px;
|
4015 |
-
|
4016 |
-
}
|
4017 |
-
.mo2f_firebase_adv_content{
|
4018 |
-
text-align: center;
|
4019 |
-
padding: 10px;
|
4020 |
-
font-size:15px;
|
4021 |
-
color: #434343;
|
4022 |
-
}
|
4023 |
-
|
4024 |
-
.mo2f_firebase_adv_button{
|
4025 |
-
background-color: #000000;
|
4026 |
-
border: none;
|
4027 |
-
color: #ffffff;
|
4028 |
-
padding: 10px 20px;
|
4029 |
-
text-align: center;
|
4030 |
-
text-decoration: none;
|
4031 |
-
display: inline-block;
|
4032 |
-
font-size: 16px;
|
4033 |
-
margin: 4px 2px;
|
4034 |
-
cursor: pointer;
|
4035 |
-
border-radius: 50px;
|
4036 |
-
}
|
4037 |
-
|
4038 |
-
|
4039 |
-
.mo2f_firebase_adv_button,.mo2f_firebase_adv_button:visited, .mo2f_firebase_adv_button:hover,.mo2f_firebase_adv_button:active{color:#ffffff;}
|
4040 |
-
|
4041 |
-
.mp2f-form-div{
|
4042 |
-
display: none;
|
4043 |
-
margin-top:10px;
|
4044 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
.mo2f_miniAuthApp {
|
2 |
padding: 26px;
|
3 |
font-size: 18px;
|
5 |
width: 100%;
|
6 |
height: 100%;
|
7 |
margin:-10px;
|
8 |
+
background-color:#20b2aa30;
|
9 |
display:block;
|
10 |
}
|
11 |
.mo2f_miniAuthApp:hover {
|
12 |
+
background: #20b2aa9e;
|
13 |
}
|
14 |
input[name = 'miniOrangeAuthenticator'] {
|
15 |
visibility:hidden;
|
16 |
}
|
17 |
input[name = 'miniOrangeAuthenticator']:checked + .mo2f_miniAuthApp{
|
18 |
+
background: #20b2aadb;
|
19 |
}
|
20 |
.mo2fa-addons-preview-alignment{
|
21 |
text-align: right;
|
116 |
text-decoration: none;
|
117 |
cursor: pointer;
|
118 |
}
|
|
|
|
|
119 |
.mo-2fa-help-button-text {
|
120 |
cursor: pointer;
|
121 |
font-size: 16px;
|
129 |
border-radius: 15px;
|
130 |
padding: 9px;
|
131 |
transition: all 3s ease-in-out;
|
|
|
132 |
}
|
133 |
.mo_support_input_label {
|
134 |
color: #999;
|
209 |
padding: 0px;
|
210 |
}
|
211 |
|
212 |
+
#wpfooter
|
213 |
+
{
|
214 |
+
position: relative !important;
|
215 |
+
}
|
216 |
.mo-2fa-mail-button
|
217 |
{
|
218 |
bottom: 2.5%;
|
297 |
}
|
298 |
.mo2f_2fa_plan_title
|
299 |
{
|
300 |
+
background-color: #20b2aa;
|
301 |
+
border: 2px solid #20b2aa;
|
302 |
}
|
303 |
.mo2f_padding_style
|
304 |
{
|
323 |
.mo2f_tooltip .mo2f_tooltiptext {
|
324 |
visibility: hidden;
|
325 |
width: 200px;
|
326 |
+
background-color: #20b2aa;
|
327 |
color: white;
|
328 |
text-align: center;
|
329 |
border-radius: 6px;
|
400 |
border-radius: 50em;
|
401 |
border-width: 1px;
|
402 |
border-style: solid;
|
403 |
+
border-color: #20b2aa;
|
404 |
border-image: initial;
|
405 |
}
|
406 |
+
.mo_upgrade_toggle_2fa_lable
|
407 |
{
|
408 |
position: relative;
|
409 |
z-index: 1;
|
410 |
display: inline-block;
|
411 |
+
float: left;
|
412 |
width: 210px;
|
413 |
height: 44px;
|
414 |
line-height: 40px;
|
639 |
background-color: white;
|
640 |
}
|
641 |
.mo_wpns_button_info_tab {
|
642 |
+
background-color: #20b2aa;
|
643 |
border: none;
|
644 |
color: white;
|
645 |
height: 1.8em;
|
805 |
font-size: 103%;
|
806 |
margin-top: 20px;
|
807 |
margin-bottom: 20px;
|
808 |
+
border: solid 1px #20b2aa;
|
809 |
background-color: white;
|
810 |
color: black;
|
811 |
width :162px;
|
814 |
|
815 |
/* Change background color of buttons on hover */
|
816 |
.mo_wpns_tab button:hover {
|
817 |
+
background-color: #20b2aa;
|
818 |
color: white;
|
819 |
}
|
820 |
|
821 |
/* Create an active/current tablink class */
|
822 |
.mo_wpns_tab button.active {
|
823 |
+
background-color: #20b2aa;
|
824 |
color: white;
|
825 |
width: 20%;
|
826 |
+
border: solid 1px #20b2aa;
|
827 |
/*border-bottom: none;*/
|
828 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
829 |
font-weight: 600;
|
837 |
border-top: none;
|
838 |
}
|
839 |
.mo_wpsn_button {
|
840 |
+
background-color: #20b2aa; /* Green */
|
841 |
border: none;
|
842 |
color: white;
|
843 |
padding: 11px 32px;
|
860 |
padding:0px 24px 10px 10px;
|
861 |
min-height:220px;
|
862 |
}
|
863 |
+
.mo_wpns_divided_layout_tab{
|
864 |
margin-bottom: 10px;
|
865 |
margin-top: 10px;
|
866 |
+
height:auto;
|
867 |
width:100%;
|
868 |
float:left;
|
869 |
|
|
|
|
|
|
|
|
|
|
|
870 |
|
871 |
}
|
872 |
.mo_wpns_divided_layout{
|
875 |
height:auto;
|
876 |
width:100%;
|
877 |
float:left;
|
878 |
+
|
879 |
|
880 |
}
|
881 |
.mo_wpns_divided_layout_2
|
896 |
min-height: 222px;
|
897 |
overflow: hidden;
|
898 |
text-align: center;
|
899 |
+
border-top: 6px solid lightseagreen;
|
900 |
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
|
901 |
}
|
902 |
.mo_wpns_small_layout{
|
908 |
margin: 10px;
|
909 |
padding: 5px 20px;
|
910 |
background-color: #FFFFFF;
|
911 |
+
/*border: 1px solid #CCCCCC;*/
|
912 |
float: left;
|
913 |
+
width: 42%;
|
914 |
margin-left: 1%;
|
915 |
+
min-height: 220px;
|
916 |
+
overflow: hidden;
|
917 |
text-align: center;
|
918 |
+
border-top: 6px solid lightseagreen;
|
919 |
+
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
920 |
/*font-style: italic;*/
|
921 |
|
922 |
}
|
|
|
|
|
|
|
|
|
|
|
923 |
.mo_wpns_method_layout{
|
924 |
margin: 10px;
|
925 |
padding: 5px 20px;
|
931 |
min-height: 222px;
|
932 |
overflow: hidden;
|
933 |
text-align: center;
|
934 |
+
border-top: 6px solid lightseagreen;
|
935 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
936 |
/*font-style: italic;*/
|
937 |
|
944 |
/*border: 1px solid #CCCCCC;*/
|
945 |
float: left;
|
946 |
width: 47%;
|
947 |
+
margin-left: 1%;
|
948 |
+
height: 222px;
|
949 |
text-align: center;
|
|
|
950 |
}
|
951 |
|
952 |
|
953 |
.mo_wpns_small_3_layout
|
954 |
{
|
955 |
+
float: left;
|
|
|
|
|
|
|
956 |
width: 64%;
|
957 |
+
height: 222px;
|
958 |
text-align: center;
|
959 |
+
margin-top: 35px;
|
|
|
|
|
960 |
}
|
961 |
.mo_wpns_line
|
962 |
{
|
963 |
+
border: 1.2px solid #20b2aa;
|
964 |
}
|
965 |
.mo_wpns_dashboard_layout
|
966 |
{
|
967 |
margin: 10px;
|
968 |
+
/*padding: 5px 20px;*/
|
969 |
+
background-color: none;
|
970 |
+
/*border: 1px solid #CCCCCC;*/
|
971 |
float: left;
|
972 |
+
width: 94%;
|
973 |
+
height: auto;
|
974 |
+
margin-left: 1%;
|
|
|
|
|
|
|
975 |
}
|
976 |
.mo_wpns_inside_dashboard_layout
|
977 |
{
|
984 |
height: 100px;
|
985 |
margin-left: 1%;
|
986 |
font-weight: 600;
|
987 |
+
border-top: 2px solid lightseagreen;
|
988 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
989 |
}
|
990 |
.mo_wpns_sub_dashboards_layout
|
992 |
margin-top: 10px;
|
993 |
padding: 5px 0px;
|
994 |
background-color: #FFFFFF;
|
995 |
+
border: 1px solid lightseagreen;
|
996 |
float: left;
|
997 |
width: 34%;
|
998 |
+
height: 170px;
|
999 |
margin-left: 1%;
|
1000 |
font-weight: 600;
|
1001 |
+
border-top: 4px solid lightseagreen;
|
|
|
|
|
1002 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1003 |
/*font-style: italic;*/
|
1004 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1008 |
margin-top: 10px;
|
1009 |
padding: 5px 0px;
|
1010 |
background-color: #FFFFFF;
|
1011 |
+
border: 1px solid lightseagreen;
|
1012 |
float: left;
|
1013 |
width: 45%;
|
1014 |
+
min-height: 56px;
|
|
|
1015 |
overflow: hidden;
|
1016 |
margin-left: 1%;
|
1017 |
font-weight: 600;
|
1018 |
+
border-top: 3px solid lightseagreen;
|
1019 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1020 |
/*font-style: italic;*/
|
1021 |
}
|
1090 |
margin-left: 0.3%;
|
1091 |
float: left;
|
1092 |
text-align: center;
|
1093 |
+
border: 2px solid lightseagreen;
|
1094 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1095 |
}
|
1096 |
|
1102 |
margin-left: 1%;
|
1103 |
float: left;
|
1104 |
/*text-align: center;*/
|
1105 |
+
border: 2px solid lightseagreen;
|
1106 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1107 |
}
|
1108 |
.mo_wpns_settings_textarea
|
1142 |
margin: 10px;
|
1143 |
padding: 5px 20px;
|
1144 |
background-color: #FFFFFF;
|
1145 |
+
border: 2px solid #20b2aa;
|
1146 |
float: left;
|
1147 |
width: 593px;
|
1148 |
min-height: 200px;
|
1163 |
margin: 5px;
|
1164 |
margin-left: 0px;
|
1165 |
padding: 5px 20px 30px 20px;
|
1166 |
+
background-color: #FFFFFF;
|
1167 |
+
border: 2px solid #20b2aa;
|
1168 |
+
float: left;
|
1169 |
+
width: 94%;
|
1170 |
+
|
1171 |
+
overflow: hidden;
|
1172 |
+
text-align: left;
|
1173 |
+
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1174 |
}
|
1175 |
.mo_wpns_setting_layout_scan
|
1176 |
{
|
1177 |
margin: 5px;
|
1178 |
padding: 5px 20px 30px 20px;
|
1179 |
background-color: #FFFFFF;
|
1180 |
+
border: 2px solid #20b2aa;
|
1181 |
float: left;
|
1182 |
width: 80%;
|
1183 |
margin-left: 10%;
|
1216 |
|
1217 |
/* Create an active/current tablink class */
|
1218 |
.mo_wpns_sub_nav_tab button.mo_wpns_sub_nav_active {
|
1219 |
+
background-color: #20b2aa;
|
1220 |
color: white;
|
1221 |
}
|
1222 |
|
1255 |
width:23.3%;
|
1256 |
float:left;
|
1257 |
background-color: white;
|
1258 |
+
border-top: 4px solid lightseagreen;
|
1259 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1260 |
font-style: italic;
|
1261 |
}
|
1262 |
.mo_wpns_button {
|
1263 |
+
background-color: #20b2aa; /* Green */
|
1264 |
border: none;
|
1265 |
color: white;
|
1266 |
padding: 11px 28px;
|
1291 |
|
1292 |
|
1293 |
.mo_wpns_dashboard_button {
|
1294 |
+
background-color: #20b2aa; /* Green */
|
1295 |
border: none;
|
1296 |
color: white;
|
1297 |
padding-top: 10px;
|
1326 |
}*/
|
1327 |
.mo_wpns_upgrade_page_button
|
1328 |
{
|
1329 |
+
border: 2px solid ##2a80ca;
|
1330 |
background-color: #2a80ca;
|
1331 |
color: white;
|
1332 |
padding: 12px 0px;
|
1395 |
min-height: 222px;
|
1396 |
overflow: hidden;
|
1397 |
text-align: center;
|
1398 |
+
border-top: 6px solid lightseagreen;
|
1399 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1400 |
}
|
1401 |
|
1410 |
height: 220px;
|
1411 |
overflow: hidden;
|
1412 |
text-align: center;
|
1413 |
+
/*border-top: 6px solid lightseagreen;*/
|
1414 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1415 |
}
|
1416 |
|
1473 |
background-color: #dddddd;
|
1474 |
}
|
1475 |
.mo_wpns_free_feature_button {
|
1476 |
+
/*background-color: green; /* Green */*/
|
1477 |
border: none;
|
1478 |
color: black;
|
1479 |
padding: 11px 12px;
|
1544 |
width: 100%;
|
1545 |
|
1546 |
}
|
1547 |
+
.mo_wpns_divided_layout_tab{
|
1548 |
+
margin-bottom: 10px;
|
1549 |
+
margin-top: 10px;
|
1550 |
+
height:auto;
|
1551 |
+
width:100%;
|
1552 |
+
float:left;
|
1553 |
+
|
1554 |
|
1555 |
+
}
|
1556 |
.mo_wpns_small_layout{
|
1557 |
/*background-color:#FFFFFF;
|
1558 |
border:1px solid #CCCCCC;
|
1571 |
text-align: center;
|
1572 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1573 |
/*font-style: italic;*/
|
1574 |
+
border-top: 6px solid lightseagreen;
|
1575 |
}
|
1576 |
|
1577 |
.mo_wpns_small_layout_test{
|
1595 |
|
1596 |
}
|
1597 |
|
1598 |
+
.mo_wpns_small_2_layout
|
1599 |
+
{
|
1600 |
+
/*margin: 10px;*/
|
1601 |
+
/*padding: 5px 20px;*/
|
1602 |
+
/*background-color: yellow;*/
|
1603 |
+
/*border: 1px solid #CCCCCC;*/
|
1604 |
+
float: left;
|
1605 |
+
width: 100%;
|
1606 |
+
margin-left: 1%;
|
1607 |
+
height: 120px;
|
1608 |
+
text-align: center;
|
1609 |
+
}
|
1610 |
+
.mo_wpns_small_3_layout
|
1611 |
+
{
|
1612 |
+
float: left;
|
1613 |
+
width: 68%;
|
1614 |
+
height: 222px;
|
1615 |
+
text-align: center;
|
1616 |
+
margin-top: 26px;
|
1617 |
+
}
|
1618 |
+
.mo_wpns_dashboard_layout
|
1619 |
+
{
|
1620 |
+
/*margin: 10px;*/
|
1621 |
+
padding: 5px 20px;
|
1622 |
+
background-color: none;
|
1623 |
+
|
1624 |
+
float: left;
|
1625 |
+
width: 90%;
|
1626 |
+
height: auto;
|
1627 |
+
/*margin-left: 1%;*/
|
1628 |
+
|
1629 |
+
}
|
1630 |
+
.mo_wpns_inside_dashboard_layout
|
1631 |
{
|
1632 |
margin-top: 10px;
|
1633 |
padding: 5px 0px;
|
1636 |
float: left;
|
1637 |
width: 18.5%;
|
1638 |
height: 100px;
|
1639 |
+
border-top: 2px solid lightseagreen;
|
1640 |
font-weight: 600;
|
1641 |
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1642 |
+
}
|
1643 |
|
1644 |
/*.wpns_font_size {
|
1645 |
font-size: 30px;
|
1669 |
|
1670 |
.mo_wpns_dashboard_button
|
1671 |
{
|
1672 |
+
background-color: #20b2aa; /* Green */
|
1673 |
border: none;
|
1674 |
color: white;
|
1675 |
padding-top: 10px;
|
1702 |
text-align: center;
|
1703 |
color: black;
|
1704 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1705 |
+
/*margin-top: 20px;
|
1706 |
+
padding: 5px 20px;
|
1707 |
+
background-color: #20b2aa;
|
1708 |
+
border: 1px solid #CCCCCC;
|
1709 |
+
float: left;
|
1710 |
+
width: 227px;
|
1711 |
+
height: 170px;
|
1712 |
+
margin-left: 1%;
|
1713 |
+
color: white;
|
1714 |
+
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1715 |
}
|
1716 |
+
.mo_wpns_sub_dashboards_layout
|
1717 |
+
{
|
1718 |
+
margin-top: 10px;
|
1719 |
+
padding: 5px 0px;
|
1720 |
+
background-color: #FFFFFF;
|
1721 |
+
border: 1px solid lightseagreen;
|
1722 |
+
float: left;
|
1723 |
+
width: 30%;
|
1724 |
+
height: 100px;
|
1725 |
+
margin-left: 1%;
|
1726 |
+
font-weight: 600;
|
1727 |
+
border-top: 4px solid lightseagreen;
|
1728 |
|
1729 |
+
/*box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);*/
|
1730 |
+
}
|
1731 |
+
.mo_wpns_sub_sub_dashboard_layout
|
1732 |
+
{
|
1733 |
+
margin-top: 10px;
|
1734 |
+
padding: 5px 0px;
|
1735 |
+
background-color: #FFFFFF;
|
1736 |
+
border: 1px solid lightseagreen;
|
1737 |
+
float: left;
|
1738 |
+
width: 22%;
|
1739 |
+
min-height: 74px;
|
1740 |
+
overflow: hidden;
|
1741 |
+
margin-left: 1%;
|
1742 |
+
font-weight: 600;
|
1743 |
+
border-top: 3px solid lightseagreen;
|
1744 |
+
}
|
1745 |
.mo_wpns_container{
|
1746 |
/*padding:10px;*/
|
1747 |
width: 100%;
|
1748 |
/*background-color: yellow;*/
|
1749 |
height: auto;
|
1750 |
}
|
|
|
1751 |
.mo_wpns_details_layout
|
1752 |
{
|
1753 |
margin:10px;
|
1763 |
float:left;
|
1764 |
border: 1px solid;
|
1765 |
background-color: white;
|
1766 |
+
border-top: 4px solid lightseagreen;
|
1767 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1768 |
font-style: italic;
|
1769 |
}
|
1777 |
font-size: 103%;
|
1778 |
margin-top: 20px;
|
1779 |
margin-bottom: 20px;
|
1780 |
+
border: solid 1px #20b2aa;
|
1781 |
background-color: white;
|
1782 |
color: black;
|
1783 |
width: 129px;
|
1784 |
height: 55%;
|
1785 |
}
|
1786 |
.mo_wpns_tab button.active {
|
1787 |
+
background-color: #20b2aa;
|
1788 |
color: white;
|
1789 |
width: 130px;
|
1790 |
+
border: solid 1px #20b2aa;
|
1791 |
/*border-bottom: none;*/
|
1792 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1793 |
font-weight: 600;
|
1794 |
}
|
1795 |
|
1796 |
+
|
1797 |
+
/* background-color: #4CAF50;
|
1798 |
+
border: none;
|
1799 |
+
color: white;
|
1800 |
+
padding: 15px 32px;
|
1801 |
+
text-align: center;
|
1802 |
+
text-decoration: none;
|
1803 |
+
display: inline-block;
|
1804 |
+
font-size: 16px;
|
1805 |
+
margin: 10px 14px;
|
1806 |
+
cursor: pointer;
|
1807 |
+
width: 20%;*/
|
1808 |
+
}
|
1809 |
.mo_wpns_third_layout{
|
1810 |
margin-top: 10px;
|
1811 |
padding: 5px 20px;
|
1836 |
margin: 10px;
|
1837 |
padding: 5px 20px;
|
1838 |
background-color: #FFFFFF;
|
1839 |
+
border: 2px solid #20b2aa;
|
1840 |
float: left;
|
1841 |
width: 90%;
|
1842 |
min-height: 200px;
|
1844 |
text-align: center;
|
1845 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1846 |
}
|
1847 |
+
|
|
|
|
|
1848 |
h1 .nav-tab, a .nav-tab{
|
1849 |
font-size : auto;
|
1850 |
background-color: none; /* Green
|
1857 |
|
1858 |
font-size: 20px;
|
1859 |
margin: 5px 0px;
|
1860 |
+
cursor: pointer;
|
1861 |
/*border-radius: 23px;*/
|
1862 |
width: 07.5%;
|
1863 |
border: 1px solid gray;
|
1869 |
/*background-color: #4CAF50;*/
|
1870 |
font-size: 150%;
|
1871 |
box-shadow: 3px 4px 3px #888888;
|
1872 |
+
background-color: #20b2aa;
|
1873 |
color: white;
|
1874 |
|
1875 |
}
|
1876 |
h1 .nav-tab:hover , a .nav-tab:hover
|
1877 |
{
|
1878 |
+
background-color: #20b2aa;
|
1879 |
color: white;
|
1880 |
/*border-bottom: none;*/
|
1881 |
}
|
1882 |
h1 .nav-tab-active:hover , a .nav-tab-active:hover
|
1883 |
{
|
1884 |
background-color: white;
|
1885 |
+
color:#20b2aa;
|
1886 |
}
|
1887 |
.mo_wpns_sub_nav_tab button {
|
1888 |
background-color: inherit;
|
1901 |
color: black;
|
1902 |
width :210px;
|
1903 |
}
|
1904 |
+
.mo_wpns_setting_layout
|
1905 |
+
{
|
1906 |
+
margin: 5px;
|
1907 |
+
margin-left: 0px;
|
1908 |
+
padding: 5px 20px 30px 20px;
|
1909 |
+
background-color: #FFFFFF;
|
1910 |
+
border: 2px solid #20b2aa;
|
1911 |
+
float: left;
|
1912 |
+
width: 90%;
|
1913 |
+
/*margin-left: 1%;*/
|
1914 |
|
1915 |
+
overflow: hidden;
|
1916 |
+
text-align: left;
|
1917 |
+
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
1918 |
+
}
|
1919 |
.mo_wpns_products-dollar-amount {
|
1920 |
color: #797878;
|
1921 |
font-weight: 400;
|
1941 |
-o-transition: border .2s ease-in-out;
|
1942 |
transition: border .2s ease-in-out
|
1943 |
}
|
1944 |
+
}
|
1945 |
|
1946 |
|
1947 |
.mo_wpns_table_layout td strong {
|
1961 |
}
|
1962 |
|
1963 |
.fixed {
|
1964 |
+
//width: 75% !important;
|
1965 |
}
|
1966 |
.mo_wpns_table_textbox {
|
1967 |
width:100%;
|
2097 |
|
2098 |
.test_auth_button
|
2099 |
{
|
2100 |
+
padding: 10px 25px 0 25px;
|
2101 |
text-align: center;
|
2102 |
+
align-content: center;
|
2103 |
+
margin: auto;
|
2104 |
}
|
2105 |
|
2106 |
.mo2f_table_layout
|
2107 |
{
|
2108 |
+
background-color: #FFFFFF;
|
2109 |
+
border: 1px solid #CCCCCC;
|
2110 |
+
padding: 25px 50px 25px 50px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2111 |
margin: 10px;
|
|
|
|
|
|
|
|
|
|
|
2112 |
}
|
2113 |
|
|
|
2114 |
.ip_lookup_desc,.file_backup_desc{
|
2115 |
background-color:#E6E6E6;
|
2116 |
width:100%;
|
2485 |
font-weight: bold;
|
2486 |
}
|
2487 |
|
2488 |
+
/*.wpns_font_size {
|
2489 |
+
font-size: 50px;
|
2490 |
+
margin-top: -10px;
|
2491 |
+
padding-right: 11px;
|
2492 |
+
}*/
|
2493 |
.wpns_font_shown {
|
|
|
2494 |
font-size: 70px;
|
2495 |
+
margin-top: -10px;
|
2496 |
+
margin-bottom: 5px;
|
2497 |
+
padding-right: 11px;
|
2498 |
}
|
2499 |
|
2500 |
/* Added for malware */
|
2501 |
.malwaresummarydiv{
|
2502 |
display: inline-flex;
|
2503 |
+
width: 100%;
|
2504 |
}
|
2505 |
.malwarescandiv{
|
2506 |
border-radius: 4px;
|
2559 |
line-height: 20px; /* To center it vertically */
|
2560 |
color: white;
|
2561 |
}
|
2562 |
+
/*#mo_wpns_bar {
|
2563 |
+
width: 0%;
|
2564 |
+
height: 20px;
|
2565 |
+
background-color: blue;
|
2566 |
+
}*/
|
2567 |
.mo_wpns_lightgreen{
|
2568 |
color:rgb(128, 173, 128);
|
2569 |
}
|
2606 |
width: 50%;
|
2607 |
}
|
2608 |
.mo_wpns_scan_button {
|
2609 |
+
background-color: #20b2aa; /* Green */
|
2610 |
border: none;
|
2611 |
color: white;
|
2612 |
padding: 5px 5px;
|
2620 |
transition-duration: 0.4s;
|
2621 |
}
|
2622 |
.mo_wpns_scan_modal_button {
|
2623 |
+
background-color: #20b2aa; /* Green */
|
2624 |
border: none;
|
2625 |
color: white;
|
2626 |
padding: 5px 80px;
|
2634 |
transition-duration: 0.4s;
|
2635 |
}
|
2636 |
.mo_wpns_deep_scan_button {
|
2637 |
+
background-color: #20b2aa; /* Green */
|
2638 |
border: none;
|
2639 |
color: white;
|
2640 |
padding: 5px 5px;
|
2656 |
{
|
2657 |
padding: 5px;
|
2658 |
background-color: #FFFFFF;
|
2659 |
+
border: 1px solid lightseagreen;
|
2660 |
width: 23.5%;
|
2661 |
+
border-top: 4px solid lightseagreen;
|
2662 |
min-height: 180px;
|
2663 |
}
|
2664 |
.mo_wpns_malwarescandiv
|
2665 |
{
|
2666 |
padding: 5px;
|
2667 |
background-color: #FFFFFF;
|
2668 |
+
border: 1px solid lightseagreen;
|
2669 |
width: 50%;
|
2670 |
+
border-top: 4px solid lightseagreen;
|
2671 |
}
|
2672 |
|
2673 |
|
2852 |
margin: 10px;
|
2853 |
float: left;
|
2854 |
text-align: center;
|
2855 |
+
border: 2px solid lightseagreen;
|
2856 |
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
2857 |
}
|
2858 |
|
2987 |
}
|
2988 |
|
2989 |
.mo2f_thumbnail_method_desc{
|
2990 |
+
padding:20px;
|
2991 |
font-size:17px;
|
2992 |
}
|
2993 |
|
3031 |
.mo2fa_see_preview{
|
3032 |
font-size: 13px;
|
3033 |
}
|
3034 |
+
.mo_wpns_setting_layout{
|
3035 |
+
margin: 5px;
|
3036 |
+
margin-left: 0px;
|
3037 |
+
padding: 5px 20px 30px 20px;
|
3038 |
+
background-color: #FFFFFF;
|
3039 |
+
border: 2px solid #20b2aa;
|
3040 |
+
float: left;
|
3041 |
+
width: 94%;
|
3042 |
+
/*margin-left: 1%;*/
|
3043 |
+
/*overflow: hidden;*/
|
3044 |
+
text-align: left;
|
3045 |
+
box-shadow: 0 0px 0px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.19);
|
3046 |
+
}
|
3047 |
+
|
3048 |
.mo2f_configure_set_2_factor:hover {
|
3049 |
font-weight: bold;
|
3050 |
font-size: 14px;
|
3161 |
color: #1a5a97!important;
|
3162 |
font-weight: 600!important;
|
3163 |
}
|
3164 |
+
.mo2f_kba_ques : hover{
|
|
|
3165 |
color: #1a5a97!important;
|
3166 |
+
font-weight: 600!important;
|
|
|
3167 |
}
|
3168 |
|
3169 |
.mo2f_kba_table {
|
3256 |
text-align: center;
|
3257 |
padding: 11px;
|
3258 |
}
|
3259 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3260 |
.mo2f_vertical-submenu a:hover {
|
3261 |
background-color: #ccc;
|
3262 |
}
|
3335 |
margin: 0px 0px;
|
3336 |
cursor: pointer;
|
3337 |
width: 1200px;
|
3338 |
+
border: 1px solid #20b2aa;
|
3339 |
|
3340 |
}
|
3341 |
.mo_subtab_flex-container{
|
3355 |
margin: 0px 0px;
|
3356 |
cursor: pointer;
|
3357 |
width: 1200px;
|
3358 |
+
border: 1px solid #20b2aa;
|
3359 |
}
|
3360 |
|
3361 |
.mo_wpns_sub_scanmode
|
3362 |
{
|
3363 |
padding: 5px;
|
3364 |
background-color: #FFFFFF;
|
3365 |
+
border: 1px solid lightseagreen;
|
3366 |
width: 23.5%;
|
3367 |
+
border-top: 4px solid lightseagreen;
|
3368 |
min-height: 180px;
|
3369 |
}
|
3370 |
.mo_wpns_sub_scansummary
|
3371 |
{
|
3372 |
padding: 5px;
|
3373 |
background-color: #FFFFFF;
|
3374 |
+
border: 1px solid lightseagreen;
|
3375 |
width: 23.5%;
|
3376 |
+
border-top: 4px solid lightseagreen;
|
3377 |
height: 120px;
|
3378 |
}
|
3379 |
.mo_wpns_scan_summary_text
|
3386 |
{
|
3387 |
padding: 5px;
|
3388 |
background-color: #FFFFFF;
|
3389 |
+
border: 1px solid lightseagreen;
|
3390 |
width: 50%;
|
3391 |
+
border-top: 4px solid lightseagreen;
|
3392 |
}
|
3393 |
|
3394 |
.mo_scan_modal {
|
3546 |
}
|
3547 |
.mo2f_addons_alignment
|
3548 |
{
|
3549 |
+
color:#20b2aa;
|
3550 |
font-size: large;
|
3551 |
float: left;
|
3552 |
margin-right: 5px;
|
3600 |
color: #ffffff;
|
3601 |
margin-left: 15px;
|
3602 |
}
|
3603 |
+
.call-setup-div{
|
3604 |
+
background: #F2F5FF;
|
3605 |
+
border-radius: 5px;
|
3606 |
+
margin-top: 10px;
|
3607 |
+
margin-bottom: 15px;
|
3608 |
+
padding-top: 10px;
|
3609 |
+
border-style: solid;
|
3610 |
+
border-color: #2f6062;
|
3611 |
+
padding-left: 10px;
|
3612 |
+
text-align: center;
|
3613 |
+
}
|
3614 |
/* The switch - the box around the slider */
|
3615 |
.switch {
|
3616 |
position: relative;
|
3674 |
border-radius: 50%;
|
3675 |
}
|
3676 |
|
3677 |
+
|
3678 |
+
|
3679 |
+
|
3680 |
+
|
3681 |
+
|
3682 |
+
|
3683 |
+
|
3684 |
+
|
3685 |
+
|
3686 |
+
|
3687 |
+
|
3688 |
+
|
3689 |
+
|
3690 |
+
|
3691 |
+
|
3692 |
+
|
3693 |
+
|
3694 |
+
|
3695 |
+
|
3696 |
+
|
3697 |
+
|
3698 |
.mo_wpns_upgrade_page_2fa_ns_styles
|
3699 |
{
|
3700 |
background-color: #7ccbc7;
|
3884 |
|
3885 |
.mo2f_offer_main_div
|
3886 |
{
|
3887 |
+
height:200px;
|
3888 |
+
background-color:white;
|
3889 |
+
border-top: 4px solid #a02929;
|
3890 |
+
border-bottom: 4px solid #a02929;
|
3891 |
+
width: 100%;
|
|
|
|
|
|
|
|
|
|
|
3892 |
}
|
3893 |
|
3894 |
.mo2f_offer_first_section
|
3895 |
{
|
3896 |
+
width:41%;
|
3897 |
+
color:red;
|
3898 |
+
height: 167.5px;
|
3899 |
+
float: left;
|
3900 |
+
text-align: left;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3901 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3902 |
}
|
3903 |
+
.mo2f_offer_first_section_text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3904 |
{
|
3905 |
+
font-size: 73px !important;
|
3906 |
+
text-align: center;
|
3907 |
+
margin: 0px;
|
3908 |
+
margin-bottom: 4% !important;
|
3909 |
+
color: black;
|
3910 |
|
3911 |
+
}
|
3912 |
.mo2f_offer_get_upto
|
3913 |
{
|
3914 |
+
text-align:center;margin:0px;margin-bottom: -2%;margin-top: 2%;color: black;font-size: 120%;
|
|
|
|
|
|
|
|
|
|
|
3915 |
}
|
3916 |
+
.mo2f_offer_middle_section
|
3917 |
+
{
|
3918 |
+
width:39%;color:red;height: 100px;float: left;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3919 |
}
|
3920 |
|
3921 |
.mo2f_offer_last_section
|
3922 |
{
|
3923 |
+
width:20%;color:red;height: 100px;float: left;text-align: left;
|
|
|
|
|
|
|
3924 |
}
|
3925 |
|
3926 |
.mo2f_offer_contact_us
|
3927 |
{
|
3928 |
+
font-size: 23px;
|
3929 |
+
border-radius: 4px;
|
3930 |
+
background: #a02929;
|
3931 |
+
border: 0px;
|
3932 |
color: white;
|
3933 |
+
padding: 12px 27px;
|
|
|
|
|
3934 |
text-decoration: none;
|
3935 |
}
|
3936 |
|
3937 |
+
.mo2f_offer_contact_us:hover
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3938 |
{
|
3939 |
+
color: white !important;
|
|
|
3940 |
}
|
3941 |
|
3942 |
.mo2f_offer_contact_us_layout
|
3943 |
{
|
3944 |
+
border: 3px solid #a02929 !important;
|
3945 |
}
|
3946 |
|
3947 |
.mo2f_offer_contact_us_button
|
3948 |
{
|
3949 |
+
background: #a02929 !important;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3950 |
}
|
includes/css/twofa_style_settings.css
CHANGED
@@ -155,19 +155,7 @@
|
|
155 |
filter: alpha(opacity=50);
|
156 |
opacity: .5
|
157 |
}
|
158 |
-
|
159 |
-
width: 32px;
|
160 |
-
height: 32px;
|
161 |
-
position: relative;
|
162 |
-
display: inline-block;
|
163 |
-
border-radius: 50%;
|
164 |
-
background-color: #e6e6e6;
|
165 |
-
float: left;
|
166 |
-
margin-top: -4px;
|
167 |
-
}
|
168 |
-
.mo2f-styled-radio-text_conf {
|
169 |
-
margin-left: 10px;
|
170 |
-
}
|
171 |
button.mo2f_close {
|
172 |
-webkit-appearance: none;
|
173 |
padding: 0;
|
155 |
filter: alpha(opacity=50);
|
156 |
opacity: .5
|
157 |
}
|
158 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
button.mo2f_close {
|
160 |
-webkit-appearance: none;
|
161 |
padding: 0;
|
includes/css/upgrade.css
CHANGED
@@ -1,291 +1,3 @@
|
|
1 |
-
.mo2fa_pricing_head_blue{
|
2 |
-
background-color: #1f3668;
|
3 |
-
border-radius: 1em 1em 50% 50%;
|
4 |
-
padding: 1em 1em 2em 0em;
|
5 |
-
color: white;
|
6 |
-
margin-top: -10%;
|
7 |
-
}
|
8 |
-
.mo2fa_per_tooltip_methodlist {
|
9 |
-
position: relative;
|
10 |
-
display: inline-block;
|
11 |
-
}
|
12 |
-
.mo2fa_per_tooltip_methodlist .mo2fa_methodlist {
|
13 |
-
visibility: hidden;
|
14 |
-
width: 13em;
|
15 |
-
background-color: #000000b8;
|
16 |
-
color: #fff;
|
17 |
-
text-align: left;
|
18 |
-
border-radius: 6px;
|
19 |
-
padding: 12px 2px 12px 28px;
|
20 |
-
position: absolute;
|
21 |
-
z-index: 1;
|
22 |
-
top: -2em;
|
23 |
-
left: 107%;
|
24 |
-
}
|
25 |
-
.mo2fa_per_tooltip_methodlist:hover .mo2fa_methodlist {
|
26 |
-
visibility: visible;
|
27 |
-
}
|
28 |
-
.mo2fa_per_tooltip_methodlist .mo2fa_methodlist::after {
|
29 |
-
content: "";
|
30 |
-
position: absolute;
|
31 |
-
top: 50%;
|
32 |
-
right: 100%;
|
33 |
-
margin-top: -5px;
|
34 |
-
border-width: 5px;
|
35 |
-
border-style: solid;
|
36 |
-
border-color: transparent black transparent transparent;
|
37 |
-
}
|
38 |
-
.mo2fa_on_per_tooltip_methodlist {
|
39 |
-
position: relative;
|
40 |
-
display: inline-block;
|
41 |
-
}
|
42 |
-
.mo2fa_on_per_tooltip_methodlist .mo2fa_methodlist {
|
43 |
-
visibility: hidden;
|
44 |
-
width: 14em;
|
45 |
-
background-color: #000000b8;
|
46 |
-
color: #fff;
|
47 |
-
text-align: left;
|
48 |
-
border-radius: 6px;
|
49 |
-
padding: 12px 2px 12px 28px;
|
50 |
-
position: absolute;
|
51 |
-
z-index: 1;
|
52 |
-
top: -1.6em;
|
53 |
-
left: 90%;
|
54 |
-
}
|
55 |
-
.mo2fa_on_per_tooltip_methodlist:hover .mo2fa_methodlist {
|
56 |
-
visibility: visible;
|
57 |
-
}
|
58 |
-
.mo2fa_on_per_tooltip_methodlist .mo2fa_methodlist::after {
|
59 |
-
content: "";
|
60 |
-
position: absolute;
|
61 |
-
top: 50%;
|
62 |
-
right: 100%;
|
63 |
-
margin-top: -5px;
|
64 |
-
border-width: 5px;
|
65 |
-
border-style: solid;
|
66 |
-
border-color: transparent black transparent transparent;
|
67 |
-
}
|
68 |
-
|
69 |
-
|
70 |
-
.mo2fa_cloud_per_tooltip_methodlist {
|
71 |
-
position: relative;
|
72 |
-
display: inline-block;
|
73 |
-
}
|
74 |
-
.mo2fa_cloud_per_tooltip_methodlist .mo2fa_methodlist {
|
75 |
-
visibility: hidden;
|
76 |
-
width: 14em;
|
77 |
-
background-color: #000000b8;
|
78 |
-
color: #fff;
|
79 |
-
text-align: left;
|
80 |
-
border-radius: 6px;
|
81 |
-
padding: 11px 1px 11px 43px;
|
82 |
-
position: absolute;
|
83 |
-
z-index: 1;
|
84 |
-
top: -15px;
|
85 |
-
right: 110%;
|
86 |
-
}
|
87 |
-
.mo2fa_cloud_per_tooltip_methodlist:hover .mo2fa_methodlist {
|
88 |
-
visibility: visible;
|
89 |
-
}
|
90 |
-
.mo2fa_cloud_per_tooltip_methodlist .mo2fa_methodlist::after {
|
91 |
-
content: "";
|
92 |
-
position: absolute;
|
93 |
-
top: 50%;
|
94 |
-
left: 100%;
|
95 |
-
margin-top: -5px;
|
96 |
-
border-width: 5px;
|
97 |
-
border-style: solid;
|
98 |
-
border-color: transparent transparent transparent black;
|
99 |
-
}
|
100 |
-
|
101 |
-
.mo2fa_fido_tooltip_methodlist {
|
102 |
-
position: relative;
|
103 |
-
display: inline-block;
|
104 |
-
}
|
105 |
-
.mo2fa_fido_tooltip_methodlist .mo2fa_methodlist {
|
106 |
-
visibility: hidden;
|
107 |
-
width: 16em;
|
108 |
-
background-color: #000000b8;
|
109 |
-
color: #fff;
|
110 |
-
text-align: left;
|
111 |
-
border-radius: 6px;
|
112 |
-
padding: 12px 2px 12px 28px;
|
113 |
-
position: absolute;
|
114 |
-
z-index: 1;
|
115 |
-
top: -1.9em;
|
116 |
-
left: 91%;
|
117 |
-
}
|
118 |
-
.mo2fa_fido_tooltip_methodlist:hover .mo2fa_methodlist {
|
119 |
-
visibility: visible;
|
120 |
-
}
|
121 |
-
.mo2fa_fido_tooltip_methodlist .mo2fa_methodlist::after {
|
122 |
-
content: "";
|
123 |
-
position: absolute;
|
124 |
-
top: 50%;
|
125 |
-
right: 100%;
|
126 |
-
margin-top: -5px;
|
127 |
-
border-width: 5px;
|
128 |
-
border-style: solid;
|
129 |
-
border-color: transparent black transparent transparent;
|
130 |
-
}
|
131 |
-
|
132 |
-
.mo2fa_shortcode_tooltip_methodlist {
|
133 |
-
position: relative;
|
134 |
-
display: inline-block;
|
135 |
-
}
|
136 |
-
.mo2fa_shortcode_tooltip_methodlist .mo2fa_methodlist {
|
137 |
-
visibility: hidden;
|
138 |
-
width: auto;
|
139 |
-
min-width:26em;
|
140 |
-
background-color: #000000b8;
|
141 |
-
color: #fff;
|
142 |
-
text-align: left;
|
143 |
-
border-radius: 6px;
|
144 |
-
padding: 7px 0px 8px 8px;
|
145 |
-
position: absolute;
|
146 |
-
z-index: 1;
|
147 |
-
top: -1.1em;
|
148 |
-
left: 107%;
|
149 |
-
}
|
150 |
-
.mo2fa_shortcode_tooltip_methodlist:hover .mo2fa_methodlist {
|
151 |
-
visibility: visible;
|
152 |
-
}
|
153 |
-
.mo2fa_shortcode_tooltip_methodlist .mo2fa_methodlist::after {
|
154 |
-
content: "";
|
155 |
-
position: absolute;
|
156 |
-
top: 50%;
|
157 |
-
right: 100%;
|
158 |
-
margin-top: -5px;
|
159 |
-
border-width: 5px;
|
160 |
-
border-style: solid;
|
161 |
-
border-color: transparent black transparent transparent;
|
162 |
-
}
|
163 |
-
.mo2fa_shortcode_ent_tooltip_methodlist {
|
164 |
-
position: relative;
|
165 |
-
display: inline-block;
|
166 |
-
}
|
167 |
-
.mo2fa_shortcode_ent_tooltip_methodlist .mo2fa_methodlist {
|
168 |
-
visibility: hidden;
|
169 |
-
width: auto;
|
170 |
-
min-width:26em;
|
171 |
-
background-color: #000000b8;
|
172 |
-
color: #fff;
|
173 |
-
text-align: left;
|
174 |
-
border-radius: 6px;
|
175 |
-
padding: 7px 0px 8px 8px;
|
176 |
-
position: absolute;
|
177 |
-
z-index: 1;
|
178 |
-
top: -15px;
|
179 |
-
right: 110%;
|
180 |
-
}
|
181 |
-
.mo2fa_shortcode_ent_tooltip_methodlist:hover .mo2fa_methodlist {
|
182 |
-
visibility: visible;
|
183 |
-
}
|
184 |
-
.mo2fa_shortcode_ent_tooltip_methodlist .mo2fa_methodlist::after {
|
185 |
-
content: "";
|
186 |
-
position: absolute;
|
187 |
-
top: 50%;
|
188 |
-
left: 100%;
|
189 |
-
margin-top: -5px;
|
190 |
-
border-width: 5px;
|
191 |
-
border-style: solid;
|
192 |
-
border-color: transparent transparent transparent black;
|
193 |
-
}
|
194 |
-
#mo2f_upgrade_main_div:hover > #mo2fa-ribbon{
|
195 |
-
margin-top: 0%;
|
196 |
-
transition: 1s;
|
197 |
-
}
|
198 |
-
.mo2fa_per_year{
|
199 |
-
color:white;
|
200 |
-
font-size: small;
|
201 |
-
}
|
202 |
-
.mo2fa_tooltip {
|
203 |
-
position: relative;
|
204 |
-
border-bottom: 1px dotted black;
|
205 |
-
}
|
206 |
-
.mo2fa_tooltip .mo2fa_tooltiptext {
|
207 |
-
visibility: hidden;
|
208 |
-
line-height: 1.6;
|
209 |
-
width: 248px;
|
210 |
-
background-color: white;
|
211 |
-
color: cadetblue;
|
212 |
-
border: 1px solid cadetblue;
|
213 |
-
text-align: center;
|
214 |
-
border-radius: 6px;
|
215 |
-
padding: 10px 0;
|
216 |
-
position: absolute;
|
217 |
-
z-index: 1;
|
218 |
-
top: -5px;
|
219 |
-
left: 105%;
|
220 |
-
}
|
221 |
-
.mo2fa_tooltip:hover .mo2fa_tooltiptext {
|
222 |
-
visibility: visible;
|
223 |
-
}
|
224 |
-
.mo2fa-ribbon span {
|
225 |
-
position: absolute;
|
226 |
-
width: 154px;
|
227 |
-
padding: 19px 0px 15px 68px;
|
228 |
-
background-color: #3498db;
|
229 |
-
box-shadow: 0 5px 10px rgb(0 0 0 / 10%);
|
230 |
-
color: #fff;
|
231 |
-
font: 700 14px/1 Lato,sans-serif;
|
232 |
-
text-shadow: 0 1px 1px rgb(0 0 0 / 20%);
|
233 |
-
}
|
234 |
-
.mo2fa-ribbon-top-right span {
|
235 |
-
left: 0;
|
236 |
-
top: 19px;
|
237 |
-
transform: rotate(45deg);
|
238 |
-
z-index: 1;
|
239 |
-
}
|
240 |
-
.mo2fa-ribbon {
|
241 |
-
width: 160px;
|
242 |
-
height: 160px;
|
243 |
-
overflow: hidden;
|
244 |
-
position: absolute;
|
245 |
-
z-index: 0;
|
246 |
-
}
|
247 |
-
.mo2fa-ribbon-top-right {
|
248 |
-
top: 154px;
|
249 |
-
right: 486px;
|
250 |
-
}
|
251 |
-
.mo2fa-ribbon::before {
|
252 |
-
position: absolute;
|
253 |
-
content: "";
|
254 |
-
border: 5px solid #2980b9;
|
255 |
-
}
|
256 |
-
.mo2fa-ribbon-top-right::before {
|
257 |
-
top: -2px;
|
258 |
-
left: 34px;
|
259 |
-
}
|
260 |
-
.mo2fa-ribbon::after, .mo2fa-ribbon::before {
|
261 |
-
position: absolute;
|
262 |
-
content: "";
|
263 |
-
border: 5px solid #2980b9;
|
264 |
-
}
|
265 |
-
.mo2fa-ribbon-top-right::after {
|
266 |
-
bottom: 34px;
|
267 |
-
right: 0;
|
268 |
-
}
|
269 |
-
.mo2fa_pricing_head_sky{
|
270 |
-
background-color: #327a86;
|
271 |
-
border-radius: 1em 1em 50% 50%;
|
272 |
-
padding: 1em 1em 2em 0em;
|
273 |
-
color: white;
|
274 |
-
margin-top: -10%;
|
275 |
-
height:15.5em;
|
276 |
-
}
|
277 |
-
.wp-core-ui select{
|
278 |
-
padding: 4px 24px 4px 8px;
|
279 |
-
margin-left:1em;
|
280 |
-
}
|
281 |
-
.mo2fa_plan-type{
|
282 |
-
text-align: center;
|
283 |
-
color: #1f3668;
|
284 |
-
font-size: 28px;
|
285 |
-
}
|
286 |
-
.mo2fa_ul li{
|
287 |
-
margin-bottom: 0%;
|
288 |
-
}
|
289 |
.mo2fa_pricing_feature_collection_supporter{
|
290 |
height: 32em;
|
291 |
}
|
@@ -296,14 +8,12 @@
|
|
296 |
}
|
297 |
i.fa-check {
|
298 |
color: black;
|
299 |
-
margin-left:2em;
|
300 |
margin-right: 17px;
|
301 |
margin-top: 0.5em;
|
302 |
margin-bottom: 0.5em;
|
303 |
}
|
304 |
i.fa-times {
|
305 |
color: #b6abab;
|
306 |
-
margin-left: 2em;
|
307 |
margin-right: 17px;
|
308 |
margin-top: 0.5em;
|
309 |
margin-bottom: 0.5em;
|
@@ -316,19 +26,20 @@ i.fa-times {
|
|
316 |
|
317 |
}
|
318 |
.mo2fa_pricing_feature_collection{
|
|
|
319 |
height: 31em;
|
|
|
|
|
|
|
|
|
320 |
}
|
321 |
.mo2fa_limit_pricing_feature_mo_2fa{
|
322 |
color: #b6abab;
|
323 |
font-weight: 500;
|
324 |
}
|
325 |
.mo2fa_unltimate_feature{
|
326 |
-
|
327 |
-
|
328 |
-
font-family:Open Sans;
|
329 |
-
letter-spacing: 0.3px;
|
330 |
-
padding:0.5em;
|
331 |
-
font-family:Open Sans;
|
332 |
}
|
333 |
.mo2fa_sec{
|
334 |
width: 27em;
|
@@ -338,45 +49,24 @@ i.fa-times {
|
|
338 |
border: 1px solid #ccc;
|
339 |
padding-top: 2em;
|
340 |
}
|
341 |
-
.
|
342 |
border: none;
|
343 |
-
|
344 |
-
|
345 |
color: white;
|
346 |
padding: 15px 32px;
|
347 |
width: auto;
|
348 |
-
min-width:
|
349 |
border-radius: 26px;
|
350 |
text-align: center;
|
351 |
text-decoration: none;
|
352 |
display: inline-block;
|
353 |
-
background: #
|
354 |
font-size: 16px;
|
355 |
height: auto;
|
|
|
356 |
margin-top: 24px;
|
357 |
}
|
358 |
-
.mo2fa_upgrade_my_plan_ent:hover{
|
359 |
-
border: none;
|
360 |
-
background: #8d86f5;
|
361 |
-
}
|
362 |
-
.mo2fa_upgrade_my_plan {
|
363 |
-
border: none;
|
364 |
-
top: 50%;
|
365 |
-
left: 50%;
|
366 |
-
color: white;
|
367 |
-
padding: 15px 32px;
|
368 |
-
width: auto;
|
369 |
-
min-width: 50%;
|
370 |
-
border-radius: 26px;
|
371 |
-
text-align: center;
|
372 |
-
text-decoration: none;
|
373 |
-
display: inline-block;
|
374 |
-
background: #1f3668;
|
375 |
-
font-size: 16px;
|
376 |
-
height: auto;
|
377 |
-
margin-top: 24px;
|
378 |
-
cursor:pointer;
|
379 |
-
}
|
380 |
.mo2fa_upgrade_my_plan:hover{
|
381 |
border: none;
|
382 |
background: #8d86f5;
|
@@ -387,7 +77,7 @@ i.fa-times {
|
|
387 |
.mo2fa_pricing_tabs_mo{
|
388 |
width: auto;
|
389 |
border-radius: 4px;
|
390 |
-
height:
|
391 |
border: 1px solid #ccc;
|
392 |
padding-top: 2em;
|
393 |
}
|
@@ -409,15 +99,12 @@ i.fa-times {
|
|
409 |
color: white;
|
410 |
background: #8d86f5;
|
411 |
}
|
412 |
-
.mo2fa_web_sec{
|
413 |
-
padding:20px 0;
|
414 |
-
}
|
415 |
.mo2fa_pricing_head_mo_2fa{
|
416 |
-
font-size:
|
417 |
-
|
418 |
-
|
419 |
margin-bottom: 3%;
|
420 |
-
|
421 |
}
|
422 |
.mo2fa_method-list-size{
|
423 |
font-size: 11px;
|
@@ -426,6 +113,7 @@ i.fa-times {
|
|
426 |
margin-left: 2em;
|
427 |
font-weight: 450;
|
428 |
}
|
|
|
429 |
.mo2fa_method-list-mo-size-cross{
|
430 |
font-size: 11px;
|
431 |
color: #b6abab;
|
@@ -433,23 +121,28 @@ i.fa-times {
|
|
433 |
list-style: none!important;
|
434 |
margin-left: 2em;
|
435 |
}
|
|
|
436 |
.mo2fa_price_mo_2fa{
|
437 |
font-size: 35px;
|
438 |
font-weight: bold;
|
439 |
color: black;
|
|
|
440 |
}
|
441 |
.mo2fa_purchase_user_limit_mo{
|
442 |
margin-top: 22px!important;
|
443 |
margin-bottom: 0px!important;
|
444 |
color: black;
|
445 |
}
|
|
|
446 |
.mo2fa_purchase_otp_limit{
|
447 |
margin-top: 10px!important;
|
448 |
margin-bottom: 4px!important;
|
449 |
color: black;
|
|
|
450 |
}
|
451 |
.mo2fa_increase_my_limit{
|
452 |
-
width:
|
|
|
453 |
color: black;
|
454 |
font-size: 11px;
|
455 |
background: #c9dbdb75;
|
@@ -466,14 +159,6 @@ i.fa-times {
|
|
466 |
.mo2fa_ul{
|
467 |
font-size: 15px;
|
468 |
}
|
469 |
-
.mo2fa_ul li{
|
470 |
-
font-size: 14px;
|
471 |
-
font-family: system-ui;
|
472 |
-
}
|
473 |
-
|
474 |
-
.mo2fa_ul li:nth-of-type(2n+1) {
|
475 |
-
background-color: rgba(23,61,80,.06);
|
476 |
-
}
|
477 |
.mo2fa_more_details_p,.mo2fa_more_details_p1{
|
478 |
font-size: 13px;
|
479 |
margin-bottom: -10px;
|
@@ -488,7 +173,8 @@ i.fa-times {
|
|
488 |
}
|
489 |
.mo2fa_pricing{
|
490 |
padding: 16px 55px 12px 41px;
|
491 |
-
|
|
|
492 |
}
|
493 |
.mo2fa_pricing_p{
|
494 |
font-size: 10px;
|
@@ -498,8 +184,8 @@ i.fa-times {
|
|
498 |
font-size: 46px;
|
499 |
font-weight: 600;
|
500 |
padding: 5px 5px 5px 5px;
|
501 |
-
margin-top:
|
502 |
-
color:
|
503 |
}
|
504 |
.mo2fa_country{
|
505 |
margin-top: 2px;
|
@@ -526,6 +212,7 @@ i.fa-times {
|
|
526 |
.mo2fa_starting_from{
|
527 |
font-size: 10px;
|
528 |
margin-left: -24px;
|
|
|
529 |
}
|
530 |
.mo2fa_center{
|
531 |
text-align: center;
|
@@ -535,6 +222,8 @@ i.fa-times {
|
|
535 |
border: none!important;
|
536 |
}
|
537 |
.mo2fa_pricing_tabs_mo_premium{
|
|
|
|
|
538 |
background: ffffffad;
|
539 |
border: none;
|
540 |
box-shadow: 12px;
|
@@ -553,6 +242,7 @@ i.fa-times {
|
|
553 |
background: #2a80caa6;
|
554 |
color: white;
|
555 |
height: 3em;
|
|
|
556 |
margin-left: 0px;
|
557 |
margin-top: -2em;
|
558 |
font-size: 16px;
|
@@ -586,7 +276,7 @@ i.fa-times {
|
|
586 |
height: 28px;
|
587 |
width:auto;
|
588 |
}
|
589 |
-
.
|
590 |
font-size: 16px;
|
591 |
font-weight: 600;
|
592 |
padding-bottom: 0.3em;
|
@@ -597,12 +287,12 @@ background: #d5d5d5!important;
|
|
597 |
margin-top: 0.3em;
|
598 |
margin-bottom: 0.3em;
|
599 |
}
|
600 |
-
.
|
601 |
font-size: 17px;
|
602 |
border :0.5px solid #c1c1c1 ;
|
603 |
background: #c9dbdb!important
|
604 |
}
|
605 |
-
.
|
606 |
font-size: 13px!important;
|
607 |
font-weight: 400;
|
608 |
}
|
@@ -660,6 +350,7 @@ table.mo2fa_table_features tr:last-child
|
|
660 |
top: 0px;
|
661 |
left: 107%;
|
662 |
}
|
|
|
663 |
.mo2fa_tooltip_sms_info .mo2fa_sms_info::after {
|
664 |
content: "";
|
665 |
position: absolute;
|
@@ -673,24 +364,27 @@ table.mo2fa_table_features tr:last-child
|
|
673 |
.mo2fa_tooltip_sms_info:hover .mo2fa_sms_info {
|
674 |
visibility: visible;
|
675 |
}
|
|
|
676 |
.mo2fa_tooltip_methodlist {
|
677 |
position: relative;
|
678 |
display: inline-block;
|
679 |
}
|
680 |
-
|
|
|
681 |
visibility: hidden;
|
682 |
width: 14em;
|
683 |
background-color: #000000b8;
|
684 |
color: #fff;
|
685 |
text-align: left;
|
686 |
border-radius: 6px;
|
687 |
-
padding:
|
688 |
position: absolute;
|
689 |
z-index: 1;
|
690 |
-
top: -
|
691 |
-
left:
|
692 |
}
|
693 |
-
|
|
|
694 |
content: "";
|
695 |
position: absolute;
|
696 |
top: 50%;
|
@@ -700,346 +394,9 @@ table.mo2fa_table_features tr:last-child
|
|
700 |
border-style: solid;
|
701 |
border-color: transparent black transparent transparent;
|
702 |
}
|
703 |
-
.mo2fa_tooltip_methodlist:hover .
|
704 |
visibility: visible;
|
705 |
}
|
706 |
-
|
707 |
-
.mo2fa_ent_tooltip_methodlist {
|
708 |
-
position: relative;
|
709 |
-
display: inline-block;
|
710 |
-
}
|
711 |
-
.mo2fa_ent_tooltip_methodlist .mo2fa_methodlist {
|
712 |
-
visibility: hidden;
|
713 |
-
width: 14em;
|
714 |
-
background-color: #000000b8;
|
715 |
-
color: #fff;
|
716 |
-
text-align: left;
|
717 |
-
border-radius: 6px;
|
718 |
-
padding: 11px 1px 11px 43px;
|
719 |
-
position: absolute;
|
720 |
-
z-index: 1;
|
721 |
-
top: -128px;
|
722 |
-
right: 110%;
|
723 |
-
}
|
724 |
-
.mo2fa_ent_tooltip_methodlist .mo2fa_methodlist::after {
|
725 |
-
content: "";
|
726 |
-
position: absolute;
|
727 |
-
top: 50%;
|
728 |
-
left: 100%;
|
729 |
-
margin-top: -5px;
|
730 |
-
border-width: 5px;
|
731 |
-
border-style: solid;
|
732 |
-
border-color: transparent transparent transparent black;
|
733 |
-
}
|
734 |
-
.mo2fa_ent_tooltip_methodlist:hover .mo2fa_methodlist {
|
735 |
-
visibility: visible;
|
736 |
-
}
|
737 |
-
.mo2fa_rba_tooltip_methodlist {
|
738 |
-
position: relative;
|
739 |
-
display: inline-block;
|
740 |
-
}
|
741 |
-
.mo2fa_rba_tooltip_methodlist .mo2fa_methodlist {
|
742 |
-
visibility: hidden;
|
743 |
-
width: 14em;
|
744 |
-
background-color: #000000b8;
|
745 |
-
color: #fff;
|
746 |
-
text-align: left;
|
747 |
-
border-radius: 6px;
|
748 |
-
padding: 7px 0px 8px 11px;
|
749 |
-
position: absolute;
|
750 |
-
z-index: 1;
|
751 |
-
top: -2.6em;
|
752 |
-
left: 93%;
|
753 |
-
}
|
754 |
-
.mo2fa_rba_tooltip_methodlist .mo2fa_methodlist::after {
|
755 |
-
content: "";
|
756 |
-
position: absolute;
|
757 |
-
top: 50%;
|
758 |
-
right: 100%;
|
759 |
-
margin-top: -5px;
|
760 |
-
border-width: 5px;
|
761 |
-
border-style: solid;
|
762 |
-
border-color: transparent black transparent transparent;
|
763 |
-
}
|
764 |
-
.mo2fa_rba_tooltip_methodlist:hover .mo2fa_methodlist {
|
765 |
-
visibility: visible;
|
766 |
-
}
|
767 |
-
.mo2fa_ent_rba_tooltip_methodlist {
|
768 |
-
position: relative;
|
769 |
-
display: inline-block;
|
770 |
-
}
|
771 |
-
.mo2fa_ent_rba_tooltip_methodlist .mo2fa_methodlist {
|
772 |
-
visibility: hidden;
|
773 |
-
width: auto;
|
774 |
-
min-width:10em;
|
775 |
-
background-color: #000000b8;
|
776 |
-
color: #fff;
|
777 |
-
text-align: left;
|
778 |
-
border-radius: 6px;
|
779 |
-
padding: 11px 6px 11px 17px;
|
780 |
-
position: absolute;
|
781 |
-
z-index: 1;
|
782 |
-
top: -37px;
|
783 |
-
right: 108%;
|
784 |
-
}
|
785 |
-
.mo2fa_ent_rba_tooltip_methodlist .mo2fa_methodlist::after {
|
786 |
-
content: "";
|
787 |
-
position: absolute;
|
788 |
-
top: 50%;
|
789 |
-
left: 100%;
|
790 |
-
margin-top: -5px;
|
791 |
-
border-width: 5px;
|
792 |
-
border-style: solid;
|
793 |
-
border-color: transparent transparent transparent black;
|
794 |
-
}
|
795 |
-
.mo2fa_ent_rba_tooltip_methodlist:hover .mo2fa_methodlist {
|
796 |
-
visibility: visible;
|
797 |
-
}
|
798 |
-
.mo2fa_redirect_tooltip_methodlist {
|
799 |
-
position: relative;
|
800 |
-
display: inline-block;
|
801 |
-
}
|
802 |
-
.mo2fa_redirect_tooltip_methodlist .mo2fa_methodlist {
|
803 |
-
visibility: hidden;
|
804 |
-
width: 17em;
|
805 |
-
background-color: #000000b8;
|
806 |
-
color: #fff;
|
807 |
-
text-align: left;
|
808 |
-
border-radius: 6px;
|
809 |
-
padding: 10px 3px 10px 34px;
|
810 |
-
position: absolute;
|
811 |
-
z-index: 1;
|
812 |
-
top: -2.1em;
|
813 |
-
left: 93%;
|
814 |
-
}
|
815 |
-
.mo2fa_redirect_tooltip_methodlist .mo2fa_methodlist::after {
|
816 |
-
content: "";
|
817 |
-
position: absolute;
|
818 |
-
top: 50%;
|
819 |
-
right: 100%;
|
820 |
-
margin-top: -5px;
|
821 |
-
border-width: 5px;
|
822 |
-
border-style: solid;
|
823 |
-
border-color: transparent black transparent transparent;
|
824 |
-
}
|
825 |
-
.mo2fa_redirect_tooltip_methodlist:hover .mo2fa_methodlist {
|
826 |
-
visibility: visible;
|
827 |
-
}
|
828 |
-
.mo2fa_ent_redirect_tooltip_methodlist {
|
829 |
-
position: relative;
|
830 |
-
display: inline-block;
|
831 |
-
}
|
832 |
-
.mo2fa_ent_redirect_tooltip_methodlist .mo2fa_methodlist {
|
833 |
-
visibility: hidden;
|
834 |
-
width: auto;
|
835 |
-
min-width:20em;
|
836 |
-
background-color: #000000b8;
|
837 |
-
color: #fff;
|
838 |
-
text-align: left;
|
839 |
-
border-radius: 6px;
|
840 |
-
padding: 11px 1px 11px 13px;
|
841 |
-
position: absolute;
|
842 |
-
z-index: 1;
|
843 |
-
top: -28px;
|
844 |
-
right: 105%;
|
845 |
-
}
|
846 |
-
.mo2fa_ent_redirect_tooltip_methodlist .mo2fa_methodlist::after {
|
847 |
-
content: "";
|
848 |
-
position: absolute;
|
849 |
-
top: 50%;
|
850 |
-
left: 100%;
|
851 |
-
margin-top: -5px;
|
852 |
-
border-width: 5px;
|
853 |
-
border-style: solid;
|
854 |
-
border-color: transparent transparent transparent black;
|
855 |
-
}
|
856 |
-
.mo2fa_ent_redirect_tooltip_methodlist:hover .mo2fa_methodlist {
|
857 |
-
visibility: visible;
|
858 |
-
}
|
859 |
-
.mo2fa_role_tooltip_methodlist {
|
860 |
-
position: relative;
|
861 |
-
display: inline-block;
|
862 |
-
}
|
863 |
-
.mo2fa_role_tooltip_methodlist .mo2fa_methodlist {
|
864 |
-
visibility: hidden;
|
865 |
-
width: auto;
|
866 |
-
min-width:10em;
|
867 |
-
background-color: #000000b8;
|
868 |
-
color: #fff;
|
869 |
-
text-align: left;
|
870 |
-
border-radius: 6px;
|
871 |
-
padding: 6px 7px 8px 17px;
|
872 |
-
position: absolute;
|
873 |
-
z-index: 1;
|
874 |
-
top: -1.1em;
|
875 |
-
left: 90%;
|
876 |
-
}
|
877 |
-
.mo2fa_role_tooltip_methodlist .mo2fa_methodlist::after {
|
878 |
-
content: "";
|
879 |
-
position: absolute;
|
880 |
-
top: 50%;
|
881 |
-
right: 100%;
|
882 |
-
margin-top: -5px;
|
883 |
-
border-width: 5px;
|
884 |
-
border-style: solid;
|
885 |
-
border-color: transparent black transparent transparent;
|
886 |
-
}
|
887 |
-
.mo2fa_role_tooltip_methodlist:hover .mo2fa_methodlist {
|
888 |
-
visibility: visible;
|
889 |
-
}
|
890 |
-
.mo2fa_ent_role_tooltip_methodlist {
|
891 |
-
position: relative;
|
892 |
-
display: inline-block;
|
893 |
-
}
|
894 |
-
.mo2fa_ent_role_tooltip_methodlist .mo2fa_methodlist {
|
895 |
-
visibility: hidden;
|
896 |
-
width: auto;
|
897 |
-
min-width:10em;
|
898 |
-
background-color: #000000b8;
|
899 |
-
color: #fff;
|
900 |
-
text-align: left;
|
901 |
-
border-radius: 6px;
|
902 |
-
padding: 6px 7px 8px 17px;
|
903 |
-
position: absolute;
|
904 |
-
z-index: 1;
|
905 |
-
top: -17px;
|
906 |
-
right: 110%;
|
907 |
-
}
|
908 |
-
.mo2fa_ent_role_tooltip_methodlist .mo2fa_methodlist::after {
|
909 |
-
content: "";
|
910 |
-
position: absolute;
|
911 |
-
top: 50%;
|
912 |
-
left: 100%;
|
913 |
-
margin-top: -5px;
|
914 |
-
border-width: 5px;
|
915 |
-
border-style: solid;
|
916 |
-
border-color: transparent transparent transparent black;
|
917 |
-
}
|
918 |
-
.mo2fa_ent_role_tooltip_methodlist:hover .mo2fa_methodlist {
|
919 |
-
visibility: visible;
|
920 |
-
}
|
921 |
-
.mo2fa_custom_sms_tooltip_methodlist {
|
922 |
-
position: relative;
|
923 |
-
display: inline-block;
|
924 |
-
}
|
925 |
-
.mo2fa_custom_sms_tooltip_methodlist .mo2fa_methodlist {
|
926 |
-
visibility: hidden;
|
927 |
-
width: auto;
|
928 |
-
min-width:16em;
|
929 |
-
background-color: #000000b8;
|
930 |
-
color: #fff;
|
931 |
-
text-align: left;
|
932 |
-
border-radius: 6px;
|
933 |
-
padding: 7px 0px 8px 21px;
|
934 |
-
position: absolute;
|
935 |
-
z-index: 1;
|
936 |
-
top: -1.1em;
|
937 |
-
left: 107%;
|
938 |
-
}
|
939 |
-
.mo2fa_custom_sms_tooltip_methodlist .mo2fa_methodlist::after {
|
940 |
-
content: "";
|
941 |
-
position: absolute;
|
942 |
-
top: 50%;
|
943 |
-
right: 100%;
|
944 |
-
margin-top: -5px;
|
945 |
-
border-width: 5px;
|
946 |
-
border-style: solid;
|
947 |
-
border-color: transparent black transparent transparent;
|
948 |
-
}
|
949 |
-
.mo2fa_custom_sms_tooltip_methodlist:hover .mo2fa_methodlist {
|
950 |
-
visibility: visible;
|
951 |
-
}
|
952 |
-
.mo2fa_ent_custom_sms_tooltip_methodlist {
|
953 |
-
position: relative;
|
954 |
-
display: inline-block;
|
955 |
-
}
|
956 |
-
.mo2fa_ent_custom_sms_tooltip_methodlist .mo2fa_methodlist {
|
957 |
-
visibility: hidden;
|
958 |
-
width: auto;
|
959 |
-
min-width:16em;
|
960 |
-
background-color: #000000b8;
|
961 |
-
color: #fff;
|
962 |
-
text-align: left;
|
963 |
-
border-radius: 6px;
|
964 |
-
padding: 7px 0px 8px 21px;
|
965 |
-
position: absolute;
|
966 |
-
z-index: 1;
|
967 |
-
top: -17px;
|
968 |
-
right: 106%;
|
969 |
-
}
|
970 |
-
.mo2fa_ent_custom_sms_tooltip_methodlist .mo2fa_methodlist::after {
|
971 |
-
content: "";
|
972 |
-
position: absolute;
|
973 |
-
top: 50%;
|
974 |
-
left: 100%;
|
975 |
-
margin-top: -5px;
|
976 |
-
border-width: 5px;
|
977 |
-
border-style: solid;
|
978 |
-
border-color: transparent transparent transparent black;
|
979 |
-
}
|
980 |
-
.mo2fa_ent_custom_sms_tooltip_methodlist:hover .mo2fa_methodlist {
|
981 |
-
visibility: visible;
|
982 |
-
}
|
983 |
-
.mo2fa_enforce_2fa_tooltip_methodlist {
|
984 |
-
position: relative;
|
985 |
-
display: inline-block;
|
986 |
-
}
|
987 |
-
.mo2fa_enforce_2fa_tooltip_methodlist .mo2fa_methodlist {
|
988 |
-
visibility: hidden;
|
989 |
-
width: 14em;
|
990 |
-
background-color: #000000b8;
|
991 |
-
color: #fff;
|
992 |
-
text-align: left;
|
993 |
-
border-radius: 6px;
|
994 |
-
padding: 8px 22px 8px 22px;
|
995 |
-
position: absolute;
|
996 |
-
z-index: 1;
|
997 |
-
top: -1.1em;
|
998 |
-
left: 94%;
|
999 |
-
}
|
1000 |
-
.mo2fa_enforce_2fa_tooltip_methodlist .mo2fa_methodlist::after {
|
1001 |
-
content: "";
|
1002 |
-
position: absolute;
|
1003 |
-
top: 50%;
|
1004 |
-
right: 100%;
|
1005 |
-
margin-top: -5px;
|
1006 |
-
border-width: 5px;
|
1007 |
-
border-style: solid;
|
1008 |
-
border-color: transparent black transparent transparent;
|
1009 |
-
}
|
1010 |
-
.mo2fa_enforce_2fa_tooltip_methodlist:hover .mo2fa_methodlist {
|
1011 |
-
visibility: visible;
|
1012 |
-
}
|
1013 |
-
.mo2fa_ent_enforce_2fa_tooltip_methodlist {
|
1014 |
-
position: relative;
|
1015 |
-
display: inline-block;
|
1016 |
-
}
|
1017 |
-
.mo2fa_ent_enforce_2fa_tooltip_methodlist .mo2fa_methodlist {
|
1018 |
-
visibility: hidden;
|
1019 |
-
width: 18em;
|
1020 |
-
background-color: #000000b8;
|
1021 |
-
color: #fff;
|
1022 |
-
text-align: left;
|
1023 |
-
border-radius: 6px;
|
1024 |
-
padding: 11px 1px 11px 43px;
|
1025 |
-
position: absolute;
|
1026 |
-
z-index: 1;
|
1027 |
-
top: -26px;
|
1028 |
-
right: 110%;
|
1029 |
-
}
|
1030 |
-
.mo2fa_ent_enforce_2fa_tooltip_methodlist .mo2fa_methodlist::after {
|
1031 |
-
content: "";
|
1032 |
-
position: absolute;
|
1033 |
-
top: 50%;
|
1034 |
-
left: 100%;
|
1035 |
-
margin-top: -5px;
|
1036 |
-
border-width: 5px;
|
1037 |
-
border-style: solid;
|
1038 |
-
border-color: transparent transparent transparent black;
|
1039 |
-
}
|
1040 |
-
.mo2fa_ent_enforce_2fa_tooltip_methodlist:hover .mo2fa_methodlist {
|
1041 |
-
visibility: visible;
|
1042 |
-
}
|
1043 |
.mo2fa_enterprise_getting_started{
|
1044 |
margin-top: -1em;
|
1045 |
}
|
@@ -1073,7 +430,7 @@ table.mo2fa_table_features tr:last-child
|
|
1073 |
.mo_2fa_card{
|
1074 |
width: 98%;
|
1075 |
}
|
1076 |
-
.
|
1077 |
font-size: 1em;
|
1078 |
width: 12em;
|
1079 |
}
|
@@ -1084,41 +441,3 @@ table.mo2fa_table_features tr:last-child
|
|
1084 |
display: grid;
|
1085 |
}
|
1086 |
}
|
1087 |
-
@media only screen and (min-width: 768px) and (max-width: 1024px){
|
1088 |
-
.mo2fa_pricing_head_blue{
|
1089 |
-
background-color: #1f3668;
|
1090 |
-
border-radius: 1em 1em 50% 50%;
|
1091 |
-
padding: 1em 1em 2em 0em;
|
1092 |
-
margin-top: -13%;
|
1093 |
-
}
|
1094 |
-
.mo2fa_pricing_head_sky{
|
1095 |
-
background-color: #327a86;
|
1096 |
-
border-radius: 1em 1em 50% 50%;
|
1097 |
-
padding: 1em 1em 2em 0em;
|
1098 |
-
margin-top: -14%;
|
1099 |
-
height:15.5em;
|
1100 |
-
}
|
1101 |
-
.mo2fa_pricing_tabs_mo{
|
1102 |
-
height: 95em;
|
1103 |
-
}
|
1104 |
-
.mo2fa_increase_my_limit{
|
1105 |
-
width:6em;
|
1106 |
-
}
|
1107 |
-
.mo2fa_unltimate_feature{
|
1108 |
-
height:2em;
|
1109 |
-
}
|
1110 |
-
.mo2f_upgrade_main_div{
|
1111 |
-
Width:auto;
|
1112 |
-
}
|
1113 |
-
.mo2fa_upgrade_my_plan {
|
1114 |
-
border: none;
|
1115 |
-
color: white;
|
1116 |
-
padding: 15px 32px;
|
1117 |
-
width: auto;
|
1118 |
-
min-width: 50%;
|
1119 |
-
border-radius: 26px;
|
1120 |
-
text-align: center;
|
1121 |
-
text-decoration: none;
|
1122 |
-
display: inline-block;
|
1123 |
-
}
|
1124 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
.mo2fa_pricing_feature_collection_supporter{
|
2 |
height: 32em;
|
3 |
}
|
8 |
}
|
9 |
i.fa-check {
|
10 |
color: black;
|
|
|
11 |
margin-right: 17px;
|
12 |
margin-top: 0.5em;
|
13 |
margin-bottom: 0.5em;
|
14 |
}
|
15 |
i.fa-times {
|
16 |
color: #b6abab;
|
|
|
17 |
margin-right: 17px;
|
18 |
margin-top: 0.5em;
|
19 |
margin-bottom: 0.5em;
|
26 |
|
27 |
}
|
28 |
.mo2fa_pricing_feature_collection{
|
29 |
+
width: 24em;
|
30 |
height: 31em;
|
31 |
+
margin-top: 13px;
|
32 |
+
padding-top: 18px;
|
33 |
+
margin-left: 21px;
|
34 |
+
margin-right: 28px;
|
35 |
}
|
36 |
.mo2fa_limit_pricing_feature_mo_2fa{
|
37 |
color: #b6abab;
|
38 |
font-weight: 500;
|
39 |
}
|
40 |
.mo2fa_unltimate_feature{
|
41 |
+
color: #00000;
|
42 |
+
font-weight: 500;
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
.mo2fa_sec{
|
45 |
width: 27em;
|
49 |
border: 1px solid #ccc;
|
50 |
padding-top: 2em;
|
51 |
}
|
52 |
+
.mo2fa_upgrade_my_plan{
|
53 |
border: none;
|
54 |
+
top: 50%;
|
55 |
+
left: 50%;
|
56 |
color: white;
|
57 |
padding: 15px 32px;
|
58 |
width: auto;
|
59 |
+
min-width: 70%;
|
60 |
border-radius: 26px;
|
61 |
text-align: center;
|
62 |
text-decoration: none;
|
63 |
display: inline-block;
|
64 |
+
background: #2a80ca;
|
65 |
font-size: 16px;
|
66 |
height: auto;
|
67 |
+
/*margin: 2px 18px 2px -27px;*/
|
68 |
margin-top: 24px;
|
69 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
.mo2fa_upgrade_my_plan:hover{
|
71 |
border: none;
|
72 |
background: #8d86f5;
|
77 |
.mo2fa_pricing_tabs_mo{
|
78 |
width: auto;
|
79 |
border-radius: 4px;
|
80 |
+
height: 85em;
|
81 |
border: 1px solid #ccc;
|
82 |
padding-top: 2em;
|
83 |
}
|
99 |
color: white;
|
100 |
background: #8d86f5;
|
101 |
}
|
|
|
|
|
|
|
102 |
.mo2fa_pricing_head_mo_2fa{
|
103 |
+
font-size: 33px;
|
104 |
+
font-weight: bold;
|
105 |
+
color: black;
|
106 |
margin-bottom: 3%;
|
107 |
+
/*margin-top: 10%;*/
|
108 |
}
|
109 |
.mo2fa_method-list-size{
|
110 |
font-size: 11px;
|
113 |
margin-left: 2em;
|
114 |
font-weight: 450;
|
115 |
}
|
116 |
+
|
117 |
.mo2fa_method-list-mo-size-cross{
|
118 |
font-size: 11px;
|
119 |
color: #b6abab;
|
121 |
list-style: none!important;
|
122 |
margin-left: 2em;
|
123 |
}
|
124 |
+
|
125 |
.mo2fa_price_mo_2fa{
|
126 |
font-size: 35px;
|
127 |
font-weight: bold;
|
128 |
color: black;
|
129 |
+
|
130 |
}
|
131 |
.mo2fa_purchase_user_limit_mo{
|
132 |
margin-top: 22px!important;
|
133 |
margin-bottom: 0px!important;
|
134 |
color: black;
|
135 |
}
|
136 |
+
|
137 |
.mo2fa_purchase_otp_limit{
|
138 |
margin-top: 10px!important;
|
139 |
margin-bottom: 4px!important;
|
140 |
color: black;
|
141 |
+
|
142 |
}
|
143 |
.mo2fa_increase_my_limit{
|
144 |
+
width:auto;
|
145 |
+
min-width: 85%;
|
146 |
color: black;
|
147 |
font-size: 11px;
|
148 |
background: #c9dbdb75;
|
159 |
.mo2fa_ul{
|
160 |
font-size: 15px;
|
161 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
.mo2fa_more_details_p,.mo2fa_more_details_p1{
|
163 |
font-size: 13px;
|
164 |
margin-bottom: -10px;
|
173 |
}
|
174 |
.mo2fa_pricing{
|
175 |
padding: 16px 55px 12px 41px;
|
176 |
+
margin-top: 9em;
|
177 |
+
height: 25em;
|
178 |
}
|
179 |
.mo2fa_pricing_p{
|
180 |
font-size: 10px;
|
184 |
font-size: 46px;
|
185 |
font-weight: 600;
|
186 |
padding: 5px 5px 5px 5px;
|
187 |
+
margin-top: 18px;
|
188 |
+
color:black;
|
189 |
}
|
190 |
.mo2fa_country{
|
191 |
margin-top: 2px;
|
212 |
.mo2fa_starting_from{
|
213 |
font-size: 10px;
|
214 |
margin-left: -24px;
|
215 |
+
/*margin-top: -17px;*/
|
216 |
}
|
217 |
.mo2fa_center{
|
218 |
text-align: center;
|
222 |
border: none!important;
|
223 |
}
|
224 |
.mo2fa_pricing_tabs_mo_premium{
|
225 |
+
height: 84em!important;
|
226 |
+
margin-top: -4em;
|
227 |
background: ffffffad;
|
228 |
border: none;
|
229 |
box-shadow: 12px;
|
242 |
background: #2a80caa6;
|
243 |
color: white;
|
244 |
height: 3em;
|
245 |
+
/* border-radius: 1px 25px 25px 0px; */
|
246 |
margin-left: 0px;
|
247 |
margin-top: -2em;
|
248 |
font-size: 16px;
|
276 |
height: 28px;
|
277 |
width:auto;
|
278 |
}
|
279 |
+
.category_feature_mo_2fa{
|
280 |
font-size: 16px;
|
281 |
font-weight: 600;
|
282 |
padding-bottom: 0.3em;
|
287 |
margin-top: 0.3em;
|
288 |
margin-bottom: 0.3em;
|
289 |
}
|
290 |
+
.bg_category_main_mo_2fa{
|
291 |
font-size: 17px;
|
292 |
border :0.5px solid #c1c1c1 ;
|
293 |
background: #c9dbdb!important
|
294 |
}
|
295 |
+
.description_mo_2fa{
|
296 |
font-size: 13px!important;
|
297 |
font-weight: 400;
|
298 |
}
|
350 |
top: 0px;
|
351 |
left: 107%;
|
352 |
}
|
353 |
+
|
354 |
.mo2fa_tooltip_sms_info .mo2fa_sms_info::after {
|
355 |
content: "";
|
356 |
position: absolute;
|
364 |
.mo2fa_tooltip_sms_info:hover .mo2fa_sms_info {
|
365 |
visibility: visible;
|
366 |
}
|
367 |
+
|
368 |
.mo2fa_tooltip_methodlist {
|
369 |
position: relative;
|
370 |
display: inline-block;
|
371 |
}
|
372 |
+
|
373 |
+
.mo2fa_tooltip_methodlist .methodlist {
|
374 |
visibility: hidden;
|
375 |
width: 14em;
|
376 |
background-color: #000000b8;
|
377 |
color: #fff;
|
378 |
text-align: left;
|
379 |
border-radius: 6px;
|
380 |
+
padding: 7px 0px 8px 61px;
|
381 |
position: absolute;
|
382 |
z-index: 1;
|
383 |
+
top: -11em;
|
384 |
+
left: 107%;
|
385 |
}
|
386 |
+
|
387 |
+
.mo2fa_tooltip_methodlist .methodlist::after {
|
388 |
content: "";
|
389 |
position: absolute;
|
390 |
top: 50%;
|
394 |
border-style: solid;
|
395 |
border-color: transparent black transparent transparent;
|
396 |
}
|
397 |
+
.mo2fa_tooltip_methodlist:hover .methodlist {
|
398 |
visibility: visible;
|
399 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
400 |
.mo2fa_enterprise_getting_started{
|
401 |
margin-top: -1em;
|
402 |
}
|
430 |
.mo_2fa_card{
|
431 |
width: 98%;
|
432 |
}
|
433 |
+
.mo_upgrade_toggle_2fa_lable{
|
434 |
font-size: 1em;
|
435 |
width: 12em;
|
436 |
}
|
441 |
display: grid;
|
442 |
}
|
443 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/css/user-profile.css
DELETED
@@ -1,179 +0,0 @@
|
|
1 |
-
#mo2fa_form-table-user-profile th{
|
2 |
-
padding:0px 0px 0px 0px !important;
|
3 |
-
text-align: center;
|
4 |
-
|
5 |
-
}
|
6 |
-
.mo2fa_form-table td{
|
7 |
-
padding:6px 10px;
|
8 |
-
}
|
9 |
-
.miniOrange-2FA-methods-table {
|
10 |
-
background-color: #fff;
|
11 |
-
border: 1px solid #e5e5e5;
|
12 |
-
border-spacing: 0;
|
13 |
-
}
|
14 |
-
|
15 |
-
.miniOrange-2FA-methods-table thead,
|
16 |
-
.miniOrange-2FA-methods-table tfoot {
|
17 |
-
background: #fff;
|
18 |
-
}
|
19 |
-
|
20 |
-
.miniOrange-2FA-methods-table thead th {
|
21 |
-
padding: 0.5em;
|
22 |
-
}
|
23 |
-
|
24 |
-
.miniOrange-2FA-methods-table .col-primary,
|
25 |
-
.miniOrange-2FA-methods-table .col-enabled {
|
26 |
-
width: 5%;
|
27 |
-
}
|
28 |
-
|
29 |
-
.miniOrange-2FA-methods-table .col-name {
|
30 |
-
width: 90%;
|
31 |
-
}
|
32 |
-
.miniOrange-2FA-methods-
|
33 |
-
.miniOrange-2FA-methods-table tbody th {
|
34 |
-
text-align: center;
|
35 |
-
}
|
36 |
-
|
37 |
-
.miniOrange-2FA-methods-table tbody th,
|
38 |
-
.miniOrange-2FA-methods-table tbody td {
|
39 |
-
vertical-align: top;
|
40 |
-
}
|
41 |
-
|
42 |
-
.miniOrange-2FA-methods-table tbody tr:nth-child(odd) {
|
43 |
-
background-color: #f9f9f9;
|
44 |
-
|
45 |
-
/*background-color: nome;*/
|
46 |
-
}
|
47 |
-
#mo2f_configure_kba{
|
48 |
-
border:1px solid;
|
49 |
-
text-align: center;
|
50 |
-
border: 1px solid #52523b;
|
51 |
-
}
|
52 |
-
.mo2f_kba_header thead th{
|
53 |
-
border-bottom: 1px solid black;
|
54 |
-
}
|
55 |
-
.miniOrange-2FA-methods-table tbody th, .miniOrange-2FA-methods-table tbody td{
|
56 |
-
/*text-align: center;*/
|
57 |
-
}
|
58 |
-
#mo2f_setup_sms{
|
59 |
-
/*margin:0 auto;*/
|
60 |
-
}
|
61 |
-
#mo2f_setup_sms tr{
|
62 |
-
background-color: transparent;
|
63 |
-
}
|
64 |
-
.mo2f_qr{
|
65 |
-
margin-left: 5%;
|
66 |
-
}
|
67 |
-
.mcol-2{
|
68 |
-
margin-left: 2%;
|
69 |
-
}
|
70 |
-
.mo2fa_popup_text
|
71 |
-
{
|
72 |
-
color:black;
|
73 |
-
margin-top: 2%;
|
74 |
-
font-weight: 600;
|
75 |
-
font-size: 12px !important;;
|
76 |
-
|
77 |
-
}
|
78 |
-
.mo2fa_overlay_success {
|
79 |
-
width: min-content;
|
80 |
-
height: 40px;
|
81 |
-
position: fixed;
|
82 |
-
float: right;
|
83 |
-
z-index: 1;
|
84 |
-
top: 0;
|
85 |
-
right: 0;
|
86 |
-
margin-top: 7%;
|
87 |
-
background-color:#bcffb4 !important ;
|
88 |
-
/* overflow-x: hidden; */
|
89 |
-
border-left: 4px solid #46b450;
|
90 |
-
}
|
91 |
-
.mo2fa_overlay_error {
|
92 |
-
width: min-content;
|
93 |
-
height: min-content;
|
94 |
-
padding-bottom: 1%;
|
95 |
-
position: fixed;
|
96 |
-
float: right;
|
97 |
-
z-index: 1;
|
98 |
-
top: 0;
|
99 |
-
right: 0;
|
100 |
-
margin-top: 7%;
|
101 |
-
background-color:bisque !important ;
|
102 |
-
/* overflow-x: hidden; */
|
103 |
-
border-left: 4px solid red;
|
104 |
-
}
|
105 |
-
|
106 |
-
* {box-sizing: border-box}
|
107 |
-
|
108 |
-
/* Style the tab */
|
109 |
-
.mo2fa_tab {
|
110 |
-
float: left;
|
111 |
-
border: 1px solid #ccc;
|
112 |
-
background-color: #f1f1f1;
|
113 |
-
width: 15%;
|
114 |
-
height: 324px;
|
115 |
-
min-height: 300px;
|
116 |
-
/*margin-left: 210px;*/
|
117 |
-
}
|
118 |
-
|
119 |
-
/* Style the buttons that are used to open the tab content */
|
120 |
-
.mo2fa_tab button {
|
121 |
-
display: block;
|
122 |
-
background-color: inherit;
|
123 |
-
color: black;
|
124 |
-
padding: 8px 20px;
|
125 |
-
width: 100%;
|
126 |
-
border: none;
|
127 |
-
outline: none;
|
128 |
-
text-align: left;
|
129 |
-
cursor: pointer;
|
130 |
-
transition: 0.3s;
|
131 |
-
}
|
132 |
-
|
133 |
-
/* Change background color of buttons on hover */
|
134 |
-
.mo2fa_tab button:hover {
|
135 |
-
background-color: #ddd;
|
136 |
-
}
|
137 |
-
|
138 |
-
/* Create an active/current "tab button" class */
|
139 |
-
.mo2fa_tab button.active {
|
140 |
-
background-color: #ccc;
|
141 |
-
}
|
142 |
-
|
143 |
-
/* Style the tab content */
|
144 |
-
.mo2fa_tabcontent {
|
145 |
-
float: left;
|
146 |
-
padding: 0px 12px;
|
147 |
-
border: 1px solid #ccc;
|
148 |
-
width: 80%;
|
149 |
-
border-left: none;
|
150 |
-
/*height: autoffrom;*/
|
151 |
-
height: 324px;
|
152 |
-
}
|
153 |
-
|
154 |
-
.mo2f_miniAuthApp {
|
155 |
-
color: #2271b1;
|
156 |
-
padding:0.5% 3%;
|
157 |
-
/*font-size: 18px;*/
|
158 |
-
/*font-weight: 600;*/
|
159 |
-
/*width: 50%;*/
|
160 |
-
/*height: 20%;*/
|
161 |
-
margin:1px;
|
162 |
-
border: 1px solid black;
|
163 |
-
border-color: #2271b1;
|
164 |
-
background-color:#f6f7f7;
|
165 |
-
border-radius: 2px;
|
166 |
-
}
|
167 |
-
.mo2f_miniAuthApp:hover {
|
168 |
-
/*background: #20b2aa9e;*/
|
169 |
-
background: transparent;
|
170 |
-
}
|
171 |
-
input[name = 'miniOrangeAuthenticator'] {
|
172 |
-
visibility:hidden;
|
173 |
-
}
|
174 |
-
input[name = 'miniOrangeAuthenticator']:checked + .mo2f_miniAuthApp{
|
175 |
-
background: #e5e5ea;
|
176 |
-
}
|
177 |
-
.mo2fa_select_method{
|
178 |
-
width: auto !important;
|
179 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/email-New-release.php
CHANGED
@@ -1,567 +1,257 @@
|
|
1 |
<?php
|
2 |
function mail_tem()
|
3 |
{
|
4 |
-
return '
|
5 |
-
|
6 |
-
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
|
7 |
<head>
|
8 |
-
|
9 |
-
|
10 |
-
<meta name="x-apple-disable-message-reformatting">
|
11 |
-
<!--[if !mso]><!--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--<![endif]-->
|
12 |
-
<title></title>
|
13 |
-
|
14 |
-
<style type="text/css">
|
15 |
-
table, td { color: #000000; } a { color: #0000ee; text-decoration: underline; }
|
16 |
-
@media only screen and (min-width: 520px) {
|
17 |
-
.u-row {
|
18 |
-
width: 500px !important;
|
19 |
-
}
|
20 |
-
.u-row .u-col {
|
21 |
-
vertical-align: top;
|
22 |
-
}
|
23 |
-
|
24 |
-
.u-row .u-col-50 {
|
25 |
-
width: 250px !important;
|
26 |
-
}
|
27 |
-
|
28 |
-
.u-row .u-col-100 {
|
29 |
-
width: 500px !important;
|
30 |
-
}
|
31 |
-
|
32 |
-
}
|
33 |
-
|
34 |
-
@media (max-width: 520px) {
|
35 |
-
.u-row-container {
|
36 |
-
max-width: 100% !important;
|
37 |
-
padding-left: 0px !important;
|
38 |
-
padding-right: 0px !important;
|
39 |
-
}
|
40 |
-
.u-row .u-col {
|
41 |
-
min-width: 320px !important;
|
42 |
-
max-width: 100% !important;
|
43 |
-
display: block !important;
|
44 |
-
}
|
45 |
-
.u-row {
|
46 |
-
width: calc(100% - 40px) !important;
|
47 |
-
}
|
48 |
-
.u-col {
|
49 |
-
width: 100% !important;
|
50 |
-
}
|
51 |
-
.u-col > div {
|
52 |
-
margin: 0 auto;
|
53 |
-
}
|
54 |
-
}
|
55 |
-
body {
|
56 |
-
margin: 0;
|
57 |
-
padding: 0;
|
58 |
-
}
|
59 |
-
|
60 |
-
table,
|
61 |
-
tr,
|
62 |
-
td {
|
63 |
-
vertical-align: top;
|
64 |
-
border-collapse: collapse;
|
65 |
-
}
|
66 |
-
|
67 |
-
p {
|
68 |
-
margin: 0;
|
69 |
-
}
|
70 |
-
|
71 |
-
.ie-container table,
|
72 |
-
.mso-container table {
|
73 |
-
table-layout: fixed;
|
74 |
-
}
|
75 |
-
|
76 |
-
* {
|
77 |
-
line-height: inherit;
|
78 |
-
}
|
79 |
-
|
80 |
-
a[x-apple-data-detectors=\'true\'] {
|
81 |
-
color: inherit !important;
|
82 |
-
text-decoration: none !important;
|
83 |
-
}
|
84 |
-
|
85 |
-
</style>
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
</head>
|
90 |
-
|
91 |
-
<
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
</ul>
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
</
|
216 |
-
|
217 |
-
<!--[if (!mso)&(!IE)]><!--></div><!--<![endif]-->
|
218 |
-
</div>
|
219 |
-
</div>
|
220 |
-
<!--[if (mso)|(IE)]></td><![endif]-->
|
221 |
-
<!--[if (mso)|(IE)]></tr></table></td></tr></table><![endif]-->
|
222 |
-
</div>
|
223 |
-
</div>
|
224 |
-
</div>
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
<div class="u-row-container" style="padding: 0px;background-color: #ffffff">
|
229 |
-
<div class="u-row" style="Margin: 0 auto;min-width: 320px;max-width: 500px;overflow-wrap: break-word;word-wrap: break-word;word-break: break-word;background-color: #f5f3f3;">
|
230 |
-
<div style="border-collapse: collapse;display: table;width: 100%;background-color: transparent;">
|
231 |
-
<!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding: 0px;background-color: #ffffff;" align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:500px;"><tr style="background-color: #f5f3f3;"><![endif]-->
|
232 |
-
|
233 |
-
<!--[if (mso)|(IE)]><td align="center" width="250" style="width: 250px;padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;" valign="top"><![endif]-->
|
234 |
-
<div class="u-col u-col-50" style="max-width: 320px;min-width: 250px;display: table-cell;vertical-align: top;">
|
235 |
-
<div style="width: 100% !important;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;">
|
236 |
-
<!--[if (!mso)&(!IE)]><!--><div style="padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;"><!--<![endif]-->
|
237 |
-
|
238 |
-
<table style="font-family:arial,helvetica,sans-serif;" role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
|
239 |
-
<tbody>
|
240 |
-
<tr>
|
241 |
-
<td style="overflow-wrap:break-word;word-break:break-word;padding:10px;font-family:arial,helvetica,sans-serif;" align="left">
|
242 |
-
|
243 |
-
<div>
|
244 |
-
<div class="mo_2fa_email_feature_details" style="background-color: white;text-align: center;min-height: 160px;color: black;font-family: inherit;border-radius: 15px;border: 1px solid #20b2aa;font-size: 12px;">
|
245 |
-
<h2 class="mo_2fa_email_feature_title" style="margin-top: 10%;text-align: center;padding: 0% 2%;">Email Notification</h2>
|
246 |
-
<ul class="mo_2fa_feature_EN" style="text-align: left;padding-left: 15%;margin-top: -4%;padding-right: 7%;">
|
247 |
-
<li>Gives you important alerts via email</li>
|
248 |
-
<li>Very helpful for the user to know about account acitivities</li>
|
249 |
-
|
250 |
</ul>
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
</
|
258 |
-
|
259 |
-
<!--[if (!mso)&(!IE)]><!--></div><!--<![endif]-->
|
260 |
-
</div>
|
261 |
-
</div>
|
262 |
-
<!--[if (mso)|(IE)]></td><![endif]-->
|
263 |
-
<!--[if (mso)|(IE)]><td align="center" width="250" style="width: 250px;padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;" valign="top"><![endif]-->
|
264 |
-
<div class="u-col u-col-50" style="max-width: 320px;min-width: 250px;display: table-cell;vertical-align: top;">
|
265 |
-
<div style="width: 100% !important;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;">
|
266 |
-
<!--[if (!mso)&(!IE)]><!--><div style="padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;"><!--<![endif]-->
|
267 |
-
|
268 |
-
<table style="font-family:arial,helvetica,sans-serif;" role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
|
269 |
-
<tbody>
|
270 |
-
<tr>
|
271 |
-
<td style="overflow-wrap:break-word;word-break:break-word;padding:10px;font-family:arial,helvetica,sans-serif;" align="left">
|
272 |
-
|
273 |
-
<div>
|
274 |
-
<div class="mo_2fa_email_feature_details" style="background-color: white;text-align: center;min-height: 160px;color: black;font-family: inherit;border-radius: 15px;border: 1px solid #20b2aa;font-size: 12px;">
|
275 |
-
<h2>MFA</h2>
|
276 |
-
<ul class="mo_2fa_feature_MFA" style="text-align: left;padding-left: 15%;padding-right: 7%;">
|
277 |
-
<li>Login with any of the configured methods: <br>Authenticator Apps, OTP over Email and SMS, KBA, etc. </li>
|
278 |
-
|
279 |
</ul>
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
</
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
</div>
|
291 |
-
<!--
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
<
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
<
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
</div>
|
321 |
-
|
322 |
-
</td>
|
323 |
-
</tr>
|
324 |
-
</tbody>
|
325 |
-
</table>
|
326 |
-
|
327 |
-
<!--[if (!mso)&(!IE)]><!--></div><!--<![endif]-->
|
328 |
-
</div>
|
329 |
-
</div>
|
330 |
-
<!--[if (mso)|(IE)]></td><![endif]-->
|
331 |
-
<!--[if (mso)|(IE)]></tr></table></td></tr></table><![endif]-->
|
332 |
-
</div>
|
333 |
-
</div>
|
334 |
-
</div>
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
<div class="u-row-container" style="padding: 0px;background-color: #ffffff">
|
339 |
-
<div class="u-row" style="Margin: 0 auto;min-width: 320px;max-width: 500px;overflow-wrap: break-word;word-wrap: break-word;word-break: break-word;background-color: #f5f3f3;">
|
340 |
-
<div style="border-collapse: collapse;display: table;width: 100%;background-color: transparent;">
|
341 |
-
<!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding: 0px;background-color: #ffffff;" align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:500px;"><tr style="background-color: #f5f3f3;"><![endif]-->
|
342 |
-
|
343 |
-
<!--[if (mso)|(IE)]><td align="center" width="250" style="width: 250px;padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;" valign="top"><![endif]-->
|
344 |
-
<div class="u-col u-col-50" style="max-width: 320px;min-width: 250px;display: table-cell;vertical-align: top;">
|
345 |
-
<div style="width: 100% !important;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;">
|
346 |
-
<!--[if (!mso)&(!IE)]><!--><div style="padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;"><!--<![endif]-->
|
347 |
-
|
348 |
-
<table style="font-family:arial,helvetica,sans-serif;" role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
|
349 |
-
<tbody>
|
350 |
-
<tr>
|
351 |
-
<td style="overflow-wrap:break-word;word-break:break-word;padding:10px 10px 10px 26px;font-family:arial,helvetica,sans-serif;" align="left">
|
352 |
-
|
353 |
-
<div>
|
354 |
-
<div class="mo_2fa_email_template_details" style="background-color: white;border-top: 5px solid #20b2aa;min-height: 250px;text-align: center;overflow: hidden;font-size: 15px;">
|
355 |
-
<i class="fa fa-globe mo_2fa_email_icon" style="display: inline-block;font: normal normal normal 14px/1 FontAwesome;font-size: 50px;text-rendering: auto;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;color: black;margin-top: 6%;"></i>
|
356 |
-
<div style="min-height: 150px;">
|
357 |
-
<h2 style="color: black;margin: 2%;">Website</h2>
|
358 |
-
<p class="mo_2fa_feature_text" style="color: black;padding: 0px 27px;text-align: center;">miniOrange provides easy to use 2 Factor authentication for secure login to your WordPress site
|
359 |
-
<br><a class="mo_2fa_ef_read_more" href="https://plugins.miniorange.com/" style="color: black;">...Know More</a></p>
|
360 |
-
</div>
|
361 |
-
</div>
|
362 |
-
</div>
|
363 |
-
|
364 |
-
</td>
|
365 |
-
</tr>
|
366 |
-
</tbody>
|
367 |
-
</table>
|
368 |
-
|
369 |
-
<!--[if (!mso)&(!IE)]><!--></div><!--<![endif]-->
|
370 |
-
</div>
|
371 |
-
</div>
|
372 |
-
<!--[if (mso)|(IE)]></td><![endif]-->
|
373 |
-
<!--[if (mso)|(IE)]><td align="center" width="250" style="width: 250px;padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;" valign="top"><![endif]-->
|
374 |
-
<div class="u-col u-col-50" style="max-width: 320px;min-width: 250px;display: table-cell;vertical-align: top;">
|
375 |
-
<div style="width: 100% !important;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;">
|
376 |
-
<!--[if (!mso)&(!IE)]><!--><div style="padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;"><!--<![endif]-->
|
377 |
-
|
378 |
-
<table style="font-family:arial,helvetica,sans-serif;" role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
|
379 |
-
<tbody>
|
380 |
-
<tr>
|
381 |
-
<td style="overflow-wrap:break-word;word-break:break-word;padding:10px 26px 10px 10px;font-family:arial,helvetica,sans-serif;" align="left">
|
382 |
-
|
383 |
-
<div>
|
384 |
-
<div class="mo_2fa_email_template_details" style="background-color: white;border-top: 5px solid #20b2aa;min-height: 250px;text-align: center;overflow: hidden;font-size: 15px;">
|
385 |
-
<i class="fa fa-headphones mo_2fa_email_icon" style="display: inline-block;font: normal normal normal 14px/1 FontAwesome;font-size: 50px;text-rendering: auto;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;color: black;margin-top: 6%;"></i>
|
386 |
-
<div style="min-height: 150px;">
|
387 |
-
<h2 style="color: black;margin: 2%;">Documentation</h2>
|
388 |
-
<p class="mo_2fa_feature_text" style="color: black;padding: 0px 27px;text-align: center;">miniOrange Two-Factor Authentication in which you have to provide two factors to gain the access <br>
|
389 |
-
<br><a class="mo_2fa_ef_read_more" href="https://developers.miniorange.com/docs/security/wordpress/wp-security" style="color: black;">...Know More</a></p>
|
390 |
-
</div>
|
391 |
-
</div>
|
392 |
-
</div>
|
393 |
-
|
394 |
-
</td>
|
395 |
-
</tr>
|
396 |
-
</tbody>
|
397 |
-
</table>
|
398 |
-
|
399 |
-
<!--[if (!mso)&(!IE)]><!--></div><!--<![endif]-->
|
400 |
-
</div>
|
401 |
</div>
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
406 |
</div>
|
407 |
|
408 |
-
|
409 |
-
|
410 |
-
<div class="u-row-container" style="padding: 0px;background-color: #ffffff">
|
411 |
-
<div class="u-row" style="Margin: 0 auto;min-width: 320px;max-width: 500px;overflow-wrap: break-word;word-wrap: break-word;word-break: break-word;background-color: #f5f3f3;">
|
412 |
-
<div style="border-collapse: collapse;display: table;width: 100%;background-color: transparent;">
|
413 |
-
<!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding: 0px;background-color: #ffffff;" align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:500px;"><tr style="background-color: #f5f3f3;"><![endif]-->
|
414 |
-
|
415 |
-
<!--[if (mso)|(IE)]><td align="center" width="250" style="width: 250px;padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;" valign="top"><![endif]-->
|
416 |
-
<div class="u-col u-col-50" style="max-width: 320px;min-width: 250px;display: table-cell;vertical-align: top;">
|
417 |
-
<div style="width: 100% !important;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;">
|
418 |
-
<!--[if (!mso)&(!IE)]><!--><div style="padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;"><!--<![endif]-->
|
419 |
-
|
420 |
-
<table style="font-family:arial,helvetica,sans-serif;" role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
|
421 |
-
<tbody>
|
422 |
-
<tr>
|
423 |
-
<td style="overflow-wrap:break-word;word-break:break-word;padding:10px 10px 10px 26px;font-family:arial,helvetica,sans-serif;" align="left">
|
424 |
-
|
425 |
-
<div>
|
426 |
-
<div class="mo_2fa_email_template_details" style="background-color: white;border-top: 5px solid #20b2aa;min-height: 250px;text-align: center;overflow: hidden;font-size: 15px;">
|
427 |
-
<i class="fa fa-file-text mo_2fa_email_icon" style="display: inline-block;font: normal normal normal 14px/1 FontAwesome;font-size: 50px;text-rendering: auto;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;color: black;margin-top: 6%;"></i>
|
428 |
-
<div style="min-height: 120px;">
|
429 |
-
<h2 style="color: black;margin: 2%;">Support</h2>
|
430 |
-
<p class="mo_2fa_feature_text" style="color: black;padding: 0px 27px;text-align: center;">You are not going to hit a ridiculously long phone menu when you call us or contact us.<br>
|
431 |
-
<br><a class="mo_2fa_ef_read_more" href="https://www.miniorange.com/contact" style="color: black;">...Know More</a></p>
|
432 |
-
</div>
|
433 |
-
</div>
|
434 |
-
</div>
|
435 |
-
|
436 |
-
</td>
|
437 |
-
</tr>
|
438 |
-
</tbody>
|
439 |
-
</table>
|
440 |
-
|
441 |
-
<!--[if (!mso)&(!IE)]><!--></div><!--<![endif]-->
|
442 |
-
</div>
|
443 |
-
</div>
|
444 |
-
<!--[if (mso)|(IE)]></td><![endif]-->
|
445 |
-
<!--[if (mso)|(IE)]><td align="center" width="250" style="width: 250px;padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;" valign="top"><![endif]-->
|
446 |
-
<div class="u-col u-col-50" style="max-width: 320px;min-width: 250px;display: table-cell;vertical-align: top;">
|
447 |
-
<div style="width: 100% !important;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;">
|
448 |
-
<!--[if (!mso)&(!IE)]><!--><div style="padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;"><!--<![endif]-->
|
449 |
-
|
450 |
-
<table style="font-family:arial,helvetica,sans-serif;" role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
|
451 |
-
<tbody>
|
452 |
-
<tr>
|
453 |
-
<td style="overflow-wrap:break-word;word-break:break-word;padding:10px 26px 10px 10px;font-family:arial,helvetica,sans-serif;" align="left">
|
454 |
-
|
455 |
-
<div>
|
456 |
-
<div class="mo_2fa_email_template_details" style="background-color: white;border-top: 5px solid #20b2aa;min-height: 250px;text-align: center;overflow: hidden;font-size: 15px;">
|
457 |
-
<i class="fa fa-shield mo_2fa_email_icon" style="display: inline-block;font: normal normal normal 14px/1 FontAwesome;font-size: 50px;text-rendering: auto;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;color: black;margin-top: 6%;"></i>
|
458 |
-
<div style="min-height: 110px;">
|
459 |
-
<h2 style="color: black;margin: 2%;">Security site</h2>
|
460 |
-
<p class="mo_2fa_feature_text" style="color: black;padding: 0px 27px;text-align: center;">miniOrange combines Web Application Firewall (WAF), Malware Scanner, Encrypted Database and File backup<br>
|
461 |
-
<a class="mo_2fa_ef_read_more" href="https://security.miniorange.com/" style="color: black;">...Know More</a></p>
|
462 |
-
</div>
|
463 |
-
</div>
|
464 |
-
</div>
|
465 |
-
|
466 |
-
</td>
|
467 |
-
</tr>
|
468 |
-
</tbody>
|
469 |
-
</table>
|
470 |
-
|
471 |
-
<!--[if (!mso)&(!IE)]><!--></div><!--<![endif]-->
|
472 |
-
</div>
|
473 |
-
</div>
|
474 |
-
<!--[if (mso)|(IE)]></td><![endif]-->
|
475 |
-
<!--[if (mso)|(IE)]></tr></table></td></tr></table><![endif]-->
|
476 |
-
</div>
|
477 |
-
</div>
|
478 |
-
</div>
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
<div class="u-row-container" style="padding: 0px;background-color: #ffffff">
|
483 |
-
<div class="u-row" style="Margin: 0 auto;min-width: 320px;max-width: 500px;overflow-wrap: break-word;word-wrap: break-word;word-break: break-word;background-color: #20b2aa;">
|
484 |
-
<div style="border-collapse: collapse;display: table;width: 100%;background-color: transparent;">
|
485 |
-
<!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding: 0px;background-color: #ffffff;" align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:500px;"><tr style="background-color: #20b2aa;"><![endif]-->
|
486 |
-
|
487 |
-
<!--[if (mso)|(IE)]><td align="center" width="500" style="width: 500px;padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;" valign="top"><![endif]-->
|
488 |
-
<div class="u-col u-col-100" style="max-width: 320px;min-width: 500px;display: table-cell;vertical-align: top;">
|
489 |
-
<div style="width: 100% !important;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;">
|
490 |
-
<!--[if (!mso)&(!IE)]><!--><div style="padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;"><!--<![endif]-->
|
491 |
-
|
492 |
-
<table style="font-family:arial,helvetica,sans-serif;" role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
|
493 |
-
<tbody>
|
494 |
-
<tr>
|
495 |
-
<td style="overflow-wrap:break-word;word-break:break-word;padding:10px;font-family:arial,helvetica,sans-serif;" align="left">
|
496 |
-
|
497 |
-
<div style="line-height: 140%; text-align: center; word-wrap: break-word;">
|
498 |
-
<p style="font-size: 14px; line-height: 140%;"><span style="color: #ffffff; font-size: 14px; line-height: 19.6px;">You are welcome to use our New Features</span></p>
|
499 |
-
<p style="font-size: 14px; line-height: 140%;"> </p>
|
500 |
-
<p style="font-size: 14px; line-height: 140%;"><span style="color: #ffffff; font-size: 14px; line-height: 19.6px;">If you need any help we are just a mail away</span></p>
|
501 |
-
</div>
|
502 |
-
|
503 |
-
</td>
|
504 |
-
</tr>
|
505 |
-
</tbody>
|
506 |
-
</table>
|
507 |
-
|
508 |
-
<!--[if (!mso)&(!IE)]><!--></div><!--<![endif]-->
|
509 |
-
</div>
|
510 |
-
</div>
|
511 |
-
<!--[if (mso)|(IE)]></td><![endif]-->
|
512 |
-
<!--[if (mso)|(IE)]></tr></table></td></tr></table><![endif]-->
|
513 |
-
</div>
|
514 |
-
</div>
|
515 |
-
</div>
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
<div class="u-row-container" style="padding: 0px;background-color: #ffffff">
|
520 |
-
<div class="u-row" style="Margin: 0 auto;min-width: 320px;max-width: 500px;overflow-wrap: break-word;word-wrap: break-word;word-break: break-word;background-color: #f5f3f3;">
|
521 |
-
<div style="border-collapse: collapse;display: table;width: 100%;background-color: transparent;">
|
522 |
-
<!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding: 0px;background-color: #ffffff;" align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:500px;"><tr style="background-color: #f5f3f3;"><![endif]-->
|
523 |
-
|
524 |
-
<!--[if (mso)|(IE)]><td align="center" width="500" style="width: 500px;padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;" valign="top"><![endif]-->
|
525 |
-
<div class="u-col u-col-100" style="max-width: 320px;min-width: 500px;display: table-cell;vertical-align: top;">
|
526 |
-
<div style="width: 100% !important;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;">
|
527 |
-
<!--[if (!mso)&(!IE)]><!--><div style="padding: 0px;border-top: 0px solid transparent;border-left: 0px solid transparent;border-right: 0px solid transparent;border-bottom: 0px solid transparent;border-radius: 0px;-webkit-border-radius: 0px; -moz-border-radius: 0px;"><!--<![endif]-->
|
528 |
-
|
529 |
-
<table style="font-family:arial,helvetica,sans-serif;" role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
|
530 |
-
<tbody>
|
531 |
-
<tr>
|
532 |
-
<td style="overflow-wrap:break-word;word-break:break-word;padding:10px;font-family:arial,helvetica,sans-serif;" align="left">
|
533 |
-
|
534 |
-
<div style="line-height: 140%; text-align: center; word-wrap: break-word;">
|
535 |
-
<p style="font-size: 14px; line-height: 140%;">Contact us at :- <strong>info@xecurify.com / 2fasupport@xecurify.com</strong></p>
|
536 |
-
</div>
|
537 |
-
|
538 |
-
</td>
|
539 |
-
</tr>
|
540 |
-
</tbody>
|
541 |
-
</table>
|
542 |
-
|
543 |
-
<!--[if (!mso)&(!IE)]><!--></div><!--<![endif]-->
|
544 |
-
</div>
|
545 |
-
</div>
|
546 |
-
<!--[if (mso)|(IE)]></td><![endif]-->
|
547 |
-
<!--[if (mso)|(IE)]></tr></table></td></tr></table><![endif]-->
|
548 |
-
</div>
|
549 |
-
</div>
|
550 |
-
</div>
|
551 |
-
|
552 |
-
|
553 |
-
<!--[if (mso)|(IE)]></td></tr></table><![endif]-->
|
554 |
-
</td>
|
555 |
-
</tr>
|
556 |
-
</tbody>
|
557 |
-
</table>
|
558 |
-
<!--[if mso]></div><![endif]-->
|
559 |
-
<!--[if IE]></div><![endif]-->
|
560 |
</body>
|
561 |
-
|
562 |
-
</html>
|
563 |
-
|
564 |
-
|
565 |
-
';
|
566 |
}
|
567 |
?>
|
1 |
<?php
|
2 |
function mail_tem()
|
3 |
{
|
4 |
+
return '<!DOCTYPE html>
|
5 |
+
<html>
|
|
|
6 |
<head>
|
7 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
8 |
+
<title></title>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
</head>
|
10 |
+
<body style=background-color:#f6f4f4>
|
11 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
12 |
+
<style>
|
13 |
+
.mo_2fa_description
|
14 |
+
{
|
15 |
+
/*min-height: 400px;*/
|
16 |
+
/*background-color: yellow;*/
|
17 |
+
/*width: 40%;*/
|
18 |
+
margin: 0%;
|
19 |
+
/*float: left;*/
|
20 |
+
text-align: center;
|
21 |
+
|
22 |
+
}
|
23 |
+
.mo_2fa_feature
|
24 |
+
{
|
25 |
+
width: 100%;
|
26 |
+
/*margin: 2%;*/
|
27 |
+
float: left;
|
28 |
+
/*background-color: white;*/
|
29 |
+
/*border: 1px solid gray;*/
|
30 |
+
min-height: 400px;
|
31 |
+
overflow: hidden;
|
32 |
+
}
|
33 |
+
.mo_2fa_email_template_details
|
34 |
+
{
|
35 |
+
width: 40%;
|
36 |
+
margin: 1%;
|
37 |
+
float: left;
|
38 |
+
background-color: white;
|
39 |
+
border-top: 5px solid #20b2aa;
|
40 |
+
min-height: 320px;
|
41 |
+
text-align: center;
|
42 |
+
overflow: hidden;
|
43 |
+
font-size:23px;
|
44 |
+
}
|
45 |
+
.mo_2fa_email_template_details:hover
|
46 |
+
{
|
47 |
+
box-shadow: 0 0px 0px 0 #9894f6, 0 6px 10px 0 #837fea;
|
48 |
+
border-top: 4px solid black;
|
49 |
+
margin-top: -0.5%;
|
50 |
+
}
|
51 |
+
.mo_2fa_email_feature_details
|
52 |
+
{
|
53 |
+
width: 30%;
|
54 |
+
margin: 1%;
|
55 |
+
margin-bottom: 5%;
|
56 |
+
float: left;
|
57 |
+
background-color: white;
|
58 |
+
text-align: center;
|
59 |
+
min-height: 250px;
|
60 |
+
overflow: hidden;
|
61 |
+
color: black;
|
62 |
+
font-family: inherit;
|
63 |
+
border-radius: 15px;
|
64 |
+
box-shadow: 0 0px 0px 0 #b5b2f6, 0 6px 10px 0 #bcbaf4;
|
65 |
+
border: 1px solid #20b2aa;
|
66 |
+
font-size:17px;
|
67 |
+
|
68 |
+
}
|
69 |
+
.mo_2fa_email_feature_details:hover
|
70 |
+
{
|
71 |
+
color: #20b2aa;
|
72 |
+
box-shadow: 0 0px 0px 0 #9894f6, 0 6px 10px 0 #837fea;
|
73 |
+
}
|
74 |
+
.mo_2fa_ef_button:hover
|
75 |
+
{
|
76 |
+
box-shadow: 0 0px 0px 0 #ffa792, 0 6px 10px 0 grey;
|
77 |
+
}
|
78 |
+
.mo_2fa_feature_block
|
79 |
+
{
|
80 |
+
/*width: 91%;*/
|
81 |
+
margin-left: 3%;
|
82 |
+
display: flex;
|
83 |
+
color:white;
|
84 |
+
}
|
85 |
+
.mo_2fa_ef_h2
|
86 |
+
{
|
87 |
+
color: #ad2100;
|
88 |
+
font-family: cursive;
|
89 |
+
}
|
90 |
+
.mo_2fa_ef_h1
|
91 |
+
{
|
92 |
+
color: #100505;
|
93 |
+
font-size: 35px;
|
94 |
+
}
|
95 |
+
.mo_2fa_ef_button
|
96 |
+
{
|
97 |
+
font-size: x-large;
|
98 |
+
background-color:#20b2aa;
|
99 |
+
color: white;
|
100 |
+
padding: 17px 127px;
|
101 |
+
font-family: cursive;
|
102 |
+
margin-left: -42px;
|
103 |
+
}
|
104 |
+
.mo_2fa_ef_read_more
|
105 |
+
{
|
106 |
+
color: #20b2aa;
|
107 |
+
border: 2px solid #20b2aa;
|
108 |
+
padding: 17px 27px;
|
109 |
+
font-family: cursive;
|
110 |
+
}
|
111 |
+
.mo_2fa_ef_read_more:hover
|
112 |
+
{
|
113 |
+
/*font-size: x-large;*/
|
114 |
+
background-color: #20b2aa;
|
115 |
+
color: white;
|
116 |
+
border: 1px solid white;
|
117 |
+
padding: 17px 27px;
|
118 |
+
font-family: cursive;
|
119 |
+
}
|
120 |
+
.mo_2fa_ef_hr
|
121 |
+
{
|
122 |
+
border: 2px solid #100505;
|
123 |
+
margin: 0px 7%;
|
124 |
+
}
|
125 |
+
.myDiv
|
126 |
+
{
|
127 |
+
|
128 |
+
/*min-height: 300px;*/
|
129 |
+
background-color: #18272a;
|
130 |
+
/*width: 29%;*/
|
131 |
+
/*float: left;*/
|
132 |
+
text-align: center;
|
133 |
+
color: white;
|
134 |
+
padding: 2px 2px;
|
135 |
+
font-size:18px;
|
136 |
+
margin-top:14px;
|
137 |
+
}
|
138 |
+
</style>
|
139 |
+
<div style="border: 2px solid black;">
|
140 |
+
<center><img src="https://s3.amazonaws.com/Snowcovered_C_Images/40290_shield.png" alt="miniorange" width="350" height="175" ></center>
|
141 |
+
<div>
|
142 |
+
<div class="mo_2fa_description">
|
143 |
+
<h1 class="mo_2fa_ef_h1">miniOrange 2FA Plugin List of Latest Features</h1>
|
144 |
+
</div>
|
145 |
+
</div>
|
146 |
+
|
147 |
+
<div>
|
148 |
+
<div class="mo_2fa_feature_block">
|
149 |
+
<div class="mo_2fa_feature">
|
150 |
+
<div class="mo_2fa_email_feature_details">
|
151 |
+
<h2>Backup Codes</h2>
|
152 |
+
<ul style="text-align: left;">
|
153 |
+
<li> This will help you to come out from lockdown situation </li>
|
154 |
+
<li> We will provide five backup codes </li>
|
155 |
+
<li> All are one time usable </li>
|
156 |
</ul>
|
157 |
+
</div>
|
158 |
+
<div class="mo_2fa_email_feature_details">
|
159 |
+
<h2>Microsoft Authenticator</h2>
|
160 |
+
<ul style="text-align: left;">
|
161 |
+
<li>It will genrate the otp on every login</li>
|
162 |
+
<li>It Provide multi-factor authentication with extra layer</li>
|
163 |
+
<li> It is very easy to use and secure access</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
</ul>
|
165 |
+
</div>
|
166 |
+
<div class="mo_2fa_email_feature_details">
|
167 |
+
<h2>Email Notification</h2>
|
168 |
+
<ul style="text-align: left;">
|
169 |
+
<li>This feature will give important alert </li>
|
170 |
+
<li>Very helpful for the user to be used</li>
|
171 |
+
<li>Notification regarding important alerts</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
</ul>
|
173 |
+
</div>
|
174 |
+
<div>
|
175 |
+
<br><br>
|
176 |
+
<center>
|
177 |
+
<a class="mo_2fa_ef_button" href="https://plugins.miniorange.com/2-factor-authentication-for-wordpress">Feature Details</a>
|
178 |
+
</center>
|
179 |
+
</div>
|
180 |
+
</div>
|
181 |
+
</div>
|
182 |
+
<!-- <br><br> -->
|
183 |
+
</div>
|
184 |
+
<!-- <hr class="mo_2fa_ef_hr"> -->
|
185 |
+
<br><br>
|
186 |
+
<div class="mo_2fa_feature_block" style="margin-left: 14%;">
|
187 |
+
<div class="mo_2fa_email_template_details">
|
188 |
+
<i class="fa fa-globe" style="font-size:50px;color: black;margin-top: 6%"></i>
|
189 |
+
<div style="min-height: 150px;">
|
190 |
+
<h2 style="color: black;">Website</h2>
|
191 |
+
<p style="color: black;padding: 0px 27px;text-align: justify;">miniOrange provides easy to use 2 Factor authentication for secure login to your WordPress site</p>
|
192 |
+
</div>
|
193 |
+
<div>
|
194 |
+
<br><br>
|
195 |
+
<center>
|
196 |
+
<a class="mo_2fa_ef_read_more" href="https://plugins.miniorange.com/">Read More</a>
|
197 |
+
</center>
|
198 |
+
</div>
|
199 |
+
</div>
|
200 |
+
<div class="mo_2fa_email_template_details">
|
201 |
+
<i class="fa fa-headphones" style="font-size:50px;color: black;margin-top: 6%"></i>
|
202 |
+
<div style="min-height: 150px;">
|
203 |
+
<h2 style="color: black;">Documentation</h2>
|
204 |
+
<p style="color: black;padding: 0px 27px;text-align: justify;">miniOrange Two-Factor Authentication in which you have to provide two factors to gain the access</p>
|
205 |
+
</div>
|
206 |
+
<div>
|
207 |
+
<br><br>
|
208 |
+
<center>
|
209 |
+
<a class="mo_2fa_ef_read_more" href="https://developers.miniorange.com/docs/security/wordpress/wp-security">Read More</a>
|
210 |
+
</center>
|
211 |
+
</div>
|
212 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
</div>
|
214 |
+
<div class="mo_2fa_feature_block" style="margin-left: 14%;">
|
215 |
+
<div class="mo_2fa_email_template_details">
|
216 |
+
<i class="fa fa-file-text" style="font-size:50px;color: black;margin-top: 6%"></i>
|
217 |
+
<div style="min-height: 150px;">
|
218 |
+
<h2 style="color: black;">Support</h2>
|
219 |
+
<p style="color: black;padding: 0px 27px;text-align: justify;">You are not going to hit a ridiculously long phone menu when you call us or contact us.</p>
|
220 |
+
</div>
|
221 |
+
<div>
|
222 |
+
<br><br>
|
223 |
+
<center>
|
224 |
+
<a class="mo_2fa_ef_read_more" href="https://www.miniorange.com/contact">Read More</a>
|
225 |
+
</center>
|
226 |
+
</div>
|
227 |
+
</div>
|
228 |
+
<div class="mo_2fa_email_template_details">
|
229 |
+
<i class="fa fa-shield" style="font-size:50px;color: black;margin-top: 6%"></i>
|
230 |
+
<div style="min-height: 150px;">
|
231 |
+
<h2 style="color: black;">Security site</h2>
|
232 |
+
<p style="color: black;padding: 0px 27px;text-align: justify;">miniOrange combines Web Application Firewall (WAF),Malware Scanner,Encrypted Database and File backup</p>
|
233 |
+
</div>
|
234 |
+
<div>
|
235 |
+
<br><br>
|
236 |
+
<center>
|
237 |
+
<a class="mo_2fa_ef_read_more" href="https://security.miniorange.com/">Read More</a>
|
238 |
+
</center>
|
239 |
+
</div>
|
240 |
+
</div>
|
241 |
+
</div>
|
242 |
+
|
243 |
+
<div class="myDiv">
|
244 |
+
<h2 style="margin-bottom: -36px;"><b>You are welcome to use our New Features</b></h2>.
|
245 |
+
<h2 style="margin-bottom: -36px;" > Thank you</h2><br>
|
246 |
+
<p style="margin-top: 26px;">If you need any help we are just a mail away <p> <br>
|
247 |
+
<p style="margin-top: -47px;"> Contact us at :- <b>info@xecurify.com /2fasupport@xecurify.com<b></p><br>
|
248 |
+
<p style="margin-top: -10px;"> If you want to disable this notification please turn of the toggle of email from Notification TAB
|
249 |
+
</p>
|
250 |
+
|
251 |
+
</div>
|
252 |
</div>
|
253 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
254 |
</body>
|
255 |
+
</html>';
|
|
|
|
|
|
|
|
|
256 |
}
|
257 |
?>
|
includes/images/firebase.png
DELETED
Binary file
|
includes/js/mo2fa_elementor.js
DELETED
@@ -1,122 +0,0 @@
|
|
1 |
-
jQuery(window).bind('load', function()
|
2 |
-
{
|
3 |
-
mo2fa_has_elementor_class = jQuery('.htmega-login-form-wrapper');
|
4 |
-
|
5 |
-
if(mo2fa_has_elementor_class.length){
|
6 |
-
|
7 |
-
var mo2fa_input = document.getElementsByTagName('input');
|
8 |
-
var mo2fa_on_submit = mo2fa_input[3].getAttribute('id');
|
9 |
-
mo2fa_on_submit = '#' +mo2fa_on_submit;
|
10 |
-
|
11 |
-
var mo2fa_form_id = jQuery('form').attr('id');
|
12 |
-
mo2fa_form_id = '#'+mo2fa_form_id ;
|
13 |
-
jQuery(mo2fa_form_id).removeAttr('action');
|
14 |
-
var mo2fa_log_user = document.getElementsByName('login_username');
|
15 |
-
var mo2fa_log_pass = document.getElementsByName('login_password');
|
16 |
-
mo2fa_log_user[0].setAttribute("name","mo2fa_user_name");
|
17 |
-
mo2fa_log_pass[0].setAttribute("name","mo2fa_user_password");
|
18 |
-
|
19 |
-
var mo2fa_pwd = document.getElementsByName("mo2fa_user_password");
|
20 |
-
mo2fa_pwd = mo2fa_pwd[0];
|
21 |
-
var mo2fa_pwd = document.getElementById(mo2fa_pwd.id);
|
22 |
-
mo2fa_pwd.setAttribute("id","mo2fa_user_password");
|
23 |
-
|
24 |
-
var mo2fa_user = document.getElementsByName("mo2fa_user_name");
|
25 |
-
mo2fa_user = mo2fa_user[0];
|
26 |
-
var element = document.getElementById(mo2fa_user.id);
|
27 |
-
element.setAttribute("id","mo2fa_user_name");
|
28 |
-
|
29 |
-
if(my_ajax_object.mo2f_login_option == '0'){
|
30 |
-
|
31 |
-
jQuery(mo2fa_form_id).after('<form name="f" id="mo2f_show_loginform" method="post" action="" hidden>'+
|
32 |
-
'<input type="text" name="mo2fa_username" id="mo2fa_username" hidden/>'+
|
33 |
-
'<input type="hidden" name="miniorange_login_nonce" value="'+my_ajax_object.nonce+'"/>'+'</form>'+
|
34 |
-
'<form name="f" id="mo2f_loginform" method="post" action="" hidden>'+
|
35 |
-
'<input type="text" name="mo2fa_elementor_user_name" id="mo2fa_elementor_user_name" hidden/>'+
|
36 |
-
'<input type="text" name="mo2fa_elementor_user_password" id="mo2fa_elementor_user_password" hidden/>'+
|
37 |
-
'<input type="hidden" name="miniorange_elementor_login_nonce" value="'+my_ajax_object.nonce+'"/>'+'</form>');
|
38 |
-
|
39 |
-
if(my_ajax_object.mo2f_enable_login_with_2nd_factor == '0'){
|
40 |
-
jQuery(mo2fa_pwd).after('<h2 style="text-align: center;">or</h2><input type="text" name="mo2fa_usernamekey" id="mo2fa_usernamekey" autofocus="true" placeholder="Username"/>'+
|
41 |
-
'<button style="padding:1px 4px 1px 4px; width:100%" name="miniorange_login_submit" id="miniorange_login_submit">Login with 2nd factor </button>');
|
42 |
-
}else{
|
43 |
-
jQuery("label[for='Password']").hide();
|
44 |
-
jQuery("#mo2fa_user_password").hide();
|
45 |
-
mo2fa_user = document.getElementsByName("mo2fa_user_name");
|
46 |
-
mo2fa_user[0].setAttribute("name","mo2fa_usernamekey");
|
47 |
-
mo2fa_log_user = document.getElementsByName("mo2fa_usernamekey");
|
48 |
-
mo2fa_log_user[0].setAttribute("id","mo2fa_usernamekey");
|
49 |
-
}
|
50 |
-
}
|
51 |
-
else{
|
52 |
-
jQuery(mo2fa_form_id).after('<form name="f" id="mo2f_loginform" method="post" action="" hidden>'+
|
53 |
-
'<input type="text" name="mo2fa_elementor_user_name" id="mo2fa_elementor_user_name" hidden/>'+
|
54 |
-
'<input type="text" name="mo2fa_elementor_user_password" id="mo2fa_elementor_user_password" hidden/>'+
|
55 |
-
'<input type="hidden" name="miniorange_elementor_login_nonce" value="'+my_ajax_object.nonce+'"/>'+'</form>');
|
56 |
-
}
|
57 |
-
|
58 |
-
jQuery('#mo2fa_user_password').keypress(function (e) {
|
59 |
-
if (e.which == 13) {//Enter key pressed
|
60 |
-
e.preventDefault();
|
61 |
-
mo2fa_elementor();
|
62 |
-
}
|
63 |
-
});
|
64 |
-
jQuery(mo2fa_on_submit).click(function(e){
|
65 |
-
if (e.which == 1) {//Enter key pressed
|
66 |
-
e.preventDefault();
|
67 |
-
mo2fa_elementor();
|
68 |
-
}
|
69 |
-
});
|
70 |
-
jQuery('#mo2fa_user_name').keypress(function (e){
|
71 |
-
if (e.which == 13) {//Enter key pressed
|
72 |
-
e.preventDefault();
|
73 |
-
mo2fa_elementor();
|
74 |
-
}
|
75 |
-
});
|
76 |
-
jQuery('#mo2fa_usernamekey').keypress(function (e) {
|
77 |
-
if (e.which == 13) {//Enter key pressed
|
78 |
-
e.preventDefault();
|
79 |
-
var username = jQuery('#mo2fa_usernamekey').val();
|
80 |
-
document.getElementById("mo2f_show_loginform").elements[0].value = username;
|
81 |
-
jQuery('#mo2f_show_loginform').submit();
|
82 |
-
}
|
83 |
-
|
84 |
-
});
|
85 |
-
jQuery('.htmega-login-form-wrapper' ).on( 'submit', mo2fa_form_id, function(e) {
|
86 |
-
e.preventDefault();
|
87 |
-
mo2f_login();
|
88 |
-
|
89 |
-
});
|
90 |
-
function mo2fa_elementor(){
|
91 |
-
if(my_ajax_object.mo2f_login_option == '1' || (my_ajax_object.mo2f_login_option == '0' && my_ajax_object.mo2f_enable_login_with_2nd_factor == '0' )){
|
92 |
-
mo2f_login();
|
93 |
-
}
|
94 |
-
else{
|
95 |
-
var username = jQuery('#mo2fa_usernamekey').val();
|
96 |
-
document.getElementById("mo2f_show_loginform").elements[0].value = username;
|
97 |
-
jQuery('#mo2f_show_loginform').submit();
|
98 |
-
}
|
99 |
-
}
|
100 |
-
|
101 |
-
jQuery('#miniorange_login_submit').click(function(e){
|
102 |
-
e.preventDefault();
|
103 |
-
var username = jQuery('#mo2fa_usernamekey').val();
|
104 |
-
|
105 |
-
document.getElementById("mo2f_show_loginform").elements[0].value = username;
|
106 |
-
|
107 |
-
jQuery('#mo2f_show_loginform').submit();
|
108 |
-
});
|
109 |
-
|
110 |
-
function mo2f_login(){
|
111 |
-
var username = jQuery('#mo2fa_user_name').val();
|
112 |
-
var password = jQuery('#mo2fa_user_password').val();
|
113 |
-
|
114 |
-
document.getElementById("mo2f_loginform").elements[0].value = username;
|
115 |
-
document.getElementById("mo2f_loginform").elements[1].value = password;
|
116 |
-
|
117 |
-
jQuery('#mo2f_loginform').submit();
|
118 |
-
}
|
119 |
-
|
120 |
-
}
|
121 |
-
|
122 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/js/pointers.js
CHANGED
@@ -399,13 +399,13 @@
|
|
399 |
jQuery(data.anchor_id).css('position','');
|
400 |
switch(data.anchor_id){
|
401 |
case '#scan_status_table':
|
402 |
-
document.getElementById("
|
403 |
break;
|
404 |
case '#mo2f_select_scanning_files':
|
405 |
-
document.getElementById("
|
406 |
break;
|
407 |
case '#scan_report_table':
|
408 |
-
document.getElementById("
|
409 |
break;
|
410 |
case '#mo2f_scan_dash':
|
411 |
jQuery('#mo_2fa_upgrade_tour').css('z-index',1);
|
399 |
jQuery(data.anchor_id).css('position','');
|
400 |
switch(data.anchor_id){
|
401 |
case '#scan_status_table':
|
402 |
+
document.getElementById("scan_set").click();
|
403 |
break;
|
404 |
case '#mo2f_select_scanning_files':
|
405 |
+
document.getElementById("report_scan").click();
|
406 |
break;
|
407 |
case '#scan_report_table':
|
408 |
+
document.getElementById("malware_view").click();
|
409 |
break;
|
410 |
case '#mo2f_scan_dash':
|
411 |
jQuery('#mo_2fa_upgrade_tour').css('z-index',1);
|
includes/js/settings_page.js
CHANGED
@@ -100,8 +100,7 @@ jQuery(document).ready(function () {
|
|
100 |
$(".new_plugin_dismiss").click(function(){
|
101 |
ajaxCall("dismissplugin",".plugin_warning_hide-notice",true);
|
102 |
});
|
103 |
-
|
104 |
-
|
105 |
|
106 |
$(".dismiss_website_backup_notice").click(function(){
|
107 |
ajaxCall("dismissbackup",".plugin_warning_hide-notice",true);
|
@@ -123,10 +122,6 @@ jQuery(document).ready(function () {
|
|
123 |
ajaxCall("plugin_warning_never_show_again",".plugin_warning_hide-notice",true);
|
124 |
});
|
125 |
|
126 |
-
$(".mo2f_banner_never_show_again").click(function(){
|
127 |
-
ajaxCall("mo2f_banner_never_show_again",".mo2f_offer_main_div",true);
|
128 |
-
});
|
129 |
-
|
130 |
$(".wpns_premium_option :input").attr("disabled",true);
|
131 |
|
132 |
$("#setuptwofa_redirect").click(function(e){
|
@@ -165,34 +160,6 @@ window.onload = nav_popup();
|
|
165 |
}
|
166 |
|
167 |
function nav_popup() {
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
}
|
172 |
-
}
|
173 |
-
|
174 |
-
// OFFER TIMER
|
175 |
-
var countDownDate = new Date("Jan 15, 2022 23:59:59").getTime();
|
176 |
-
|
177 |
-
var x = setInterval(function() {
|
178 |
-
|
179 |
-
var now = new Date().getTime();
|
180 |
-
var distance = countDownDate - now;
|
181 |
-
|
182 |
-
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
|
183 |
-
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
184 |
-
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
185 |
-
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
186 |
-
if(document.getElementById("mo2f_offer_timer")!= null){
|
187 |
-
document.getElementById("mo2f_offer_timer").innerHTML = days + "d " + hours + "h "
|
188 |
-
+ minutes + "m " + seconds + "s ";
|
189 |
-
}
|
190 |
-
|
191 |
-
if (distance < 0) {
|
192 |
-
clearInterval(x);
|
193 |
-
if(document.getElementById("mo2f_offer_timer")!= null){
|
194 |
-
document.getElementById("mo2f_offer_timer").innerHTML = "EXPIRED";
|
195 |
-
}
|
196 |
-
}
|
197 |
-
}, 1000);
|
198 |
-
// -----OFFER TIMER
|
100 |
$(".new_plugin_dismiss").click(function(){
|
101 |
ajaxCall("dismissplugin",".plugin_warning_hide-notice",true);
|
102 |
});
|
103 |
+
|
|
|
104 |
|
105 |
$(".dismiss_website_backup_notice").click(function(){
|
106 |
ajaxCall("dismissbackup",".plugin_warning_hide-notice",true);
|
122 |
ajaxCall("plugin_warning_never_show_again",".plugin_warning_hide-notice",true);
|
123 |
});
|
124 |
|
|
|
|
|
|
|
|
|
125 |
$(".wpns_premium_option :input").attr("disabled",true);
|
126 |
|
127 |
$("#setuptwofa_redirect").click(function(e){
|
160 |
}
|
161 |
|
162 |
function nav_popup() {
|
163 |
+
document.getElementById("notice_div").style.width = "40%";
|
164 |
+
setTimeout(function(){ jQuery('#notice_div').fadeOut('slow'); }, 3000);
|
165 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/js/setup-wizard-2fa.js
CHANGED
@@ -105,13 +105,15 @@
|
|
105 |
},
|
106 |
"31f1": function(t, e, i) {
|
107 |
var s = {
|
108 |
-
"./
|
109 |
-
"./
|
110 |
-
"./
|
111 |
-
"./
|
112 |
-
"./
|
113 |
-
"./
|
114 |
-
"./
|
|
|
|
|
115 |
};
|
116 |
|
117 |
function a(t) {
|
105 |
},
|
106 |
"31f1": function(t, e, i) {
|
107 |
var s = {
|
108 |
+
"./amazonses.svg": "7de8",
|
109 |
+
"./gmail.svg": "ddc9",
|
110 |
+
"./mailgun.svg": "776b",
|
111 |
+
"./outlook.svg": "2db4",
|
112 |
+
"./sendgrid.svg": "b1c2",
|
113 |
+
"./sendinblue.svg": "7f3e",
|
114 |
+
"./smtp.svg": "5f30",
|
115 |
+
"./smtpcom.svg": "78cb",
|
116 |
+
"./zoho.svg": "2bc2"
|
117 |
};
|
118 |
|
119 |
function a(t) {
|
includes/js/skip_tour.js
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
jQuery(document).ready( function(){
|
2 |
-
|
3 |
-
jQuery('#skip-plugin-tour').onclick(function(e) {
|
4 |
-
e.preventDefault();
|
5 |
-
var rml_post_id = jQuery(this).data( 'id' );
|
6 |
-
jQuery.ajax({
|
7 |
-
url : readmelater_ajax.ajax_url,
|
8 |
-
type : 'post',
|
9 |
-
data : {
|
10 |
-
action : 'read_me_later',
|
11 |
-
post_id : rml_post_id
|
12 |
-
},
|
13 |
-
success : function( response ) {
|
14 |
-
jQuery('.rml_contents').html(response);
|
15 |
-
}
|
16 |
-
});
|
17 |
-
jQuery(this).hide();
|
18 |
-
});
|
19 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/js/user-profile-twofa.js
DELETED
@@ -1,194 +0,0 @@
|
|
1 |
-
function mo2fa_viewMethod(evt, selected_method)
|
2 |
-
{
|
3 |
-
var i, tabcontent, tablinks;
|
4 |
-
var is_registered = jQuery('input[name=\'is_registered\']').val();
|
5 |
-
var trimmed_method = selected_method.replace(/ /g,'');
|
6 |
-
jQuery('#method').val(selected_method);
|
7 |
-
tabcontent = document.getElementsByClassName("mo2fa_tabcontent");
|
8 |
-
for (i = 0; i < tabcontent.length; i++) {
|
9 |
-
tabcontent[i].style.display = "none";
|
10 |
-
}
|
11 |
-
tablinks = document.getElementsByClassName("mo2fa_tablinks");
|
12 |
-
for (i = 0; i < tablinks.length; i++) {
|
13 |
-
tablinks[i].className = tablinks[i].className.replace(" active", "");
|
14 |
-
}
|
15 |
-
mo2fa_viewMethod.calledTimes++;
|
16 |
-
jQuery("#mo2fa_count").val(mo2fa_viewMethod.calledTimes);
|
17 |
-
document.getElementById(selected_method).style.display = "block";
|
18 |
-
evt.currentTarget.className += " active";
|
19 |
-
var same_user = jQuery('input[name=\'same_user\']').val();
|
20 |
-
var textbox_id = 'textbox-'+trimmed_method;
|
21 |
-
var textbox_element = document.getElementById(textbox_id);
|
22 |
-
if(selected_method == 'SecurityQuestions')
|
23 |
-
document.getElementById("mo2f_kbaquestion_1").focus();
|
24 |
-
else if(selected_method == 'OTPOverSMS' && is_registered)
|
25 |
-
document.getElementById("textbox-OTPOverSMS").focus();
|
26 |
-
else if(textbox_element !== null && same_user && (is_registered && ((trimmed_method!="EmailVerification" && trimmed_method !='OTPOverEmail')) || (!is_registered && (trimmed_method=="GoogleAuthenticator" || trimmed_method=="AuthyAuthenticator" || trimmed_method=='SecurityQuestions'))))
|
27 |
-
document.getElementById(textbox_id).focus();
|
28 |
-
var save_button_id = jQuery('#'+'save-'+trimmed_method);
|
29 |
-
var form_id = jQuery('#'+'mo2f_verify_form-'+trimmed_method);
|
30 |
-
jQuery(form_id).submit(function(e){
|
31 |
-
e.preventDefault();
|
32 |
-
jQuery(save_button_id).click();
|
33 |
-
});
|
34 |
-
var MO2F_IS_ONPREM = jQuery('input[name=\'MO2F_IS_ONPREM\']').val();
|
35 |
-
var cloud_methods = ["miniOrangeQRCodeAuthentication", "miniOrangeSoftToken","miniOrangePushNotification","OTPOverSMS","miniOrangeAuthenticator"];
|
36 |
-
if(MO2F_IS_ONPREM == 0 && !is_registered)
|
37 |
-
{
|
38 |
-
jQuery('#wpns_nav_message').empty();
|
39 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='mo2fa_overlay_error'><div class='mo2fa_popup_text'> <b>Please register with miniOrange for using this method</b> </div></div>");
|
40 |
-
window.onload = nav_popup();
|
41 |
-
return;
|
42 |
-
}
|
43 |
-
for(method of cloud_methods)
|
44 |
-
{
|
45 |
-
if((selected_method==method && !is_registered) || !MO2F_IS_ONPREM)
|
46 |
-
{
|
47 |
-
jQuery('#wpns_nav_message').empty();
|
48 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='mo2fa_overlay_error'><div class='mo2fa_popup_text'> <b>Please register with miniOrange for using this method</b> </div></div>");
|
49 |
-
window.onload = nav_popup();
|
50 |
-
}
|
51 |
-
}
|
52 |
-
}
|
53 |
-
|
54 |
-
jQuery('#mo2f_qrcode').hide();
|
55 |
-
jQuery('.mo2f_miniAuthApp').click(function(){
|
56 |
-
jQuery('#mo2f_qrcode').show();
|
57 |
-
jQuery('#mo2fa_display_mo_methods').hide();
|
58 |
-
var method = jQuery('input[name="miniOrangeAuthenticator"]:checked').val();
|
59 |
-
});
|
60 |
-
|
61 |
-
jQuery('.mo2f_miniAuthApp').click(function(){
|
62 |
-
var method = jQuery('input[name="miniOrangeAuthenticator"]:checked').val();
|
63 |
-
});
|
64 |
-
|
65 |
-
jQuery('#miniOrangeSoftTokenButton').click(function() {
|
66 |
-
jQuery('#method').val('miniOrangeSoftToken');
|
67 |
-
jQuery("#save-miniOrangeAuthenticator").click(function(e){
|
68 |
-
set_mo_methods('miniOrangeSoftToken');
|
69 |
-
});
|
70 |
-
});
|
71 |
-
jQuery('#miniOrangeQRCodeAuthenticationButton').click(function() {
|
72 |
-
jQuery('#method').val('miniOrangeQRCodeAuthentication');
|
73 |
-
jQuery("#save-miniOrangeAuthenticator").click(function(e){
|
74 |
-
set_mo_methods('miniOrangeQRCodeAuthentication');
|
75 |
-
});
|
76 |
-
});
|
77 |
-
jQuery('#miniOrangePushNotificationButton').click(function() {
|
78 |
-
jQuery('#method').val('miniOrangePushNotification');
|
79 |
-
jQuery("#save-miniOrangeAuthenticator").click(function(e){
|
80 |
-
set_mo_methods('miniOrangePushNotification');
|
81 |
-
});
|
82 |
-
});
|
83 |
-
|
84 |
-
|
85 |
-
function set_mo_methods(trimmed_method){
|
86 |
-
var textbox_id_element = jQuery('#'+'textbox-'+trimmed_method);
|
87 |
-
var code = jQuery('#textbox-miniOrangeAuthenticator').val();
|
88 |
-
var nonce = jQuery('input[name=\'mo2f-update-mobile-nonce\']').val();
|
89 |
-
var transient_id = jQuery('input[name=\'transient_id\']').val();
|
90 |
-
var is_registered = jQuery('input[name=\'is_registered\']').val();
|
91 |
-
if(!is_registered)
|
92 |
-
{
|
93 |
-
jQuery('#wpns_nav_message').empty();
|
94 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='mo2fa_overlay_error'><div class='mo2fa_popup_text'> <b>Please register with miniOrange for using this method</b> </div></div>");
|
95 |
-
window.onload = nav_popup();
|
96 |
-
}
|
97 |
-
else
|
98 |
-
{
|
99 |
-
var data = {
|
100 |
-
'action' : 'mo_two_factor_ajax',
|
101 |
-
'mo_2f_two_factor_ajax' : 'mo2f_set_miniorange_methods',
|
102 |
-
'nonce' : nonce,
|
103 |
-
'code' : code,
|
104 |
-
'transient_id' : transient_id,
|
105 |
-
};
|
106 |
-
jQuery.post(ajaxurl, data, function(response) {
|
107 |
-
if(response['status'] == "SUCCESS")
|
108 |
-
{
|
109 |
-
$("#mo2f_configuration_status").val(response['status']);
|
110 |
-
}
|
111 |
-
jQuery('#wpns_nav_message').empty();
|
112 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='"+(response['status']=="SUCCESS"?"mo2fa_overlay_success":"mo2fa_overlay_error")+"'><div class='mo2fa_popup_text'> <b>"+response['status']+"</b> : "+response['message']+"</div></div>");
|
113 |
-
window.onload = nav_popup();
|
114 |
-
});
|
115 |
-
}
|
116 |
-
}
|
117 |
-
function mo2fa_set_ga(code){
|
118 |
-
var nonce = jQuery('input[name=\'mo2f-update-mobile-nonce\']').val();
|
119 |
-
var transient_id = jQuery('input[name=\'transient_id\']').val();
|
120 |
-
var ga_secret = jQuery('input[name=\'ga_secret\']').val();
|
121 |
-
var data = {
|
122 |
-
'action' : 'mo_two_factor_ajax',
|
123 |
-
'mo_2f_two_factor_ajax' : 'mo2f_set_GA',
|
124 |
-
'nonce' : nonce,
|
125 |
-
'code' : code,
|
126 |
-
'transient_id' : transient_id,
|
127 |
-
'ga_secret' : ga_secret
|
128 |
-
};
|
129 |
-
jQuery.post(ajaxurl, data, function(response) {
|
130 |
-
jQuery('#wpns_nav_message').empty();
|
131 |
-
if(response == "SUCCESS"){
|
132 |
-
jQuery("#mo2f_configuration_status").val(response);
|
133 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='mo2fa_overlay_success'><div class='mo2fa_popup_text'> <b>SUCCESS</b> : Entered Passcode is correct. Click on Update Profile.</div></div>");
|
134 |
-
}else if(response == "UserIdNotFound"){
|
135 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='mo2fa_overlay_error'><div class='mo2fa_popup_text'> Error occured validating the user. </div></div>");
|
136 |
-
}else{
|
137 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='mo2fa_overlay_error'><div class='mo2fa_popup_text'> <b>ERROR</b> : Entered Passcode is incorrect. </div></div>");
|
138 |
-
}
|
139 |
-
window.onload = nav_popup();
|
140 |
-
});
|
141 |
-
}
|
142 |
-
var MO2F_IS_ONPREM = jQuery('input[name=\'MO2F_IS_ONPREM\']').val();
|
143 |
-
if(MO2F_IS_ONPREM == 1){
|
144 |
-
jQuery(document).ready(function() {
|
145 |
-
jQuery('.mo2f_gauth').qrcode({
|
146 |
-
'render': 'image',
|
147 |
-
size: 175,
|
148 |
-
'text': jQuery('.mo2f_gauth').data('qrcode')
|
149 |
-
});
|
150 |
-
});
|
151 |
-
}
|
152 |
-
|
153 |
-
jQuery("#save-GoogleAuthenticator").click(function(e){
|
154 |
-
var code = jQuery('#textbox-GoogleAuthenticator').val();
|
155 |
-
mo2fa_set_ga(code);
|
156 |
-
});
|
157 |
-
jQuery("#save-AuthyAuthenticator").click(function(e){
|
158 |
-
var code = jQuery('#textbox-AuthyAuthenticator').val();
|
159 |
-
mo2fa_set_ga(code);
|
160 |
-
});
|
161 |
-
jQuery("#save-OTPOverSMS").click(function(e){
|
162 |
-
var nonce = jQuery('input[name=\'mo2f-update-mobile-nonce\']').val();
|
163 |
-
var transient_id = jQuery('input[name=\'transient_id\']').val();
|
164 |
-
var phone = jQuery("#textbox-OTPOverSMS").val();
|
165 |
-
var is_registered = jQuery('input[name=\'is_registered\']').val();
|
166 |
-
if(!is_registered){
|
167 |
-
jQuery('#wpns_nav_message').empty();
|
168 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='mo2fa_overlay_error'><div class='mo2fa_popup_text'> <b>Please register with miniOrange for using this method</b> </div></div>");
|
169 |
-
window.onload = nav_popup();
|
170 |
-
}
|
171 |
-
else{
|
172 |
-
var data = {
|
173 |
-
'action' : 'mo_two_factor_ajax',
|
174 |
-
'mo_2f_two_factor_ajax' : 'mo2f_set_otp_over_sms',
|
175 |
-
'nonce' : nonce,
|
176 |
-
'transient_id' : transient_id,
|
177 |
-
'phone' : phone
|
178 |
-
};
|
179 |
-
jQuery.post(ajaxurl, data, function(response) {
|
180 |
-
jQuery('#wpns_nav_message').empty();
|
181 |
-
if(response == "UserIdNotFound"){
|
182 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='mo2fa_overlay_error'><div class='mo2fa_popup_text'> Error occured validating the user. </div></div>");
|
183 |
-
}else if(response != "ERROR"){
|
184 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='mo2fa_overlay_success'><div class='mo2fa_popup_text'> Phone no. has been saved. Click on Update Profile.</div></div>");
|
185 |
-
}else{
|
186 |
-
jQuery('#wpns_nav_message').append("<div id='notice_div' class='mo2fa_overlay_error'><div class='mo2fa_popup_text'> There was an error saving your phone no. </div></div>");
|
187 |
-
}
|
188 |
-
window.onload = nav_popup();
|
189 |
-
});
|
190 |
-
}
|
191 |
-
})
|
192 |
-
mo2fa_viewMethod.calledTimes = 0;
|
193 |
-
document.getElementById("defaultOpen").click();
|
194 |
-
jQuery("#textbox-OTPOverSMS").intlTelInput();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/lib/mo-2fa-options-enum.php
ADDED
@@ -0,0 +1,435 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
include "Mo2FABasicEnum.php";
|
3 |
+
|
4 |
+
class mo_2fa_options_enum_pointers extends Mo2FABasicEnum{
|
5 |
+
public static
|
6 |
+
$DEFAULT = array(
|
7 |
+
'custom_admin_pointers4_8_52_default-miniorange-sp-metadata-url',
|
8 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-select-authentication',
|
9 |
+
|
10 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-configure',
|
11 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-choose_app',
|
12 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-download_app',
|
13 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-choose_name_on_app',
|
14 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-scan-qrcode',
|
15 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-enter_code_manually',
|
16 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-enter-otp',
|
17 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-save-otp',
|
18 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-test',
|
19 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-customizations',
|
20 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-inline-registration',
|
21 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-integration',
|
22 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-premium-features',
|
23 |
+
|
24 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-upgrade',
|
25 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-support',
|
26 |
+
'custom_admin_pointers4_8_52_default-miniorange-2fa-support_open',
|
27 |
+
|
28 |
+
|
29 |
+
'custom_admin_pointers4_8_52_default-miniorange-firewall-level',
|
30 |
+
'custom_admin_pointers4_8_52_default-miniorange-firewall-attacks',
|
31 |
+
'custom_admin_pointers4_8_52_default-miniorange-firewall-attack-limit',
|
32 |
+
'custom_admin_pointers4_8_52_default-miniorange-firewall-rate-limit',
|
33 |
+
'custom_admin_pointers4_8_52_default-miniorange-firewall-check-attacks',
|
34 |
+
'custom_admin_pointers4_8_52_default-miniorange-firewall-support',
|
35 |
+
'custom_admin_pointers4_8_52_default-miniorange-firewall-support_open',
|
36 |
+
|
37 |
+
|
38 |
+
'custom_admin_pointers4_8_52_default-miniorange-malware-scan-modes',
|
39 |
+
'custom_admin_pointers4_8_52_default-miniorange-malware-custom-scan-files',
|
40 |
+
'custom_admin_pointers4_8_52_default-miniorange-malware-scan-reports',
|
41 |
+
'custom_admin_pointers4_8_52_default-miniorange-malware-scan-dashboard',
|
42 |
+
'custom_admin_pointers4_8_52_default-miniorange-malware-support',
|
43 |
+
'custom_admin_pointers4_8_52_default-miniorange-malware-support_open',
|
44 |
+
|
45 |
+
|
46 |
+
'custom_admin_pointers4_8_52_default-miniorange-advance-blocking-IP-blocking',
|
47 |
+
'custom_admin_pointers4_8_52_default-miniorange-advance-blocking-IP-whitelisting',
|
48 |
+
'custom_admin_pointers4_8_52_default-miniorange-advance-blocking-IP-lookup',
|
49 |
+
'custom_admin_pointers4_8_52_default-miniorange-advance-blocking-IP-range',
|
50 |
+
'custom_admin_pointers4_8_52_default-miniorange-advance-blocking-htaccess-blocking',
|
51 |
+
'custom_admin_pointers4_8_52_default-miniorange-advance-blocking-browser-blocking',
|
52 |
+
'custom_admin_pointers4_8_52_default-miniorange-advance-blocking-country-blocking',
|
53 |
+
'custom_admin_pointers4_8_52_default-miniorange-advance-blocking-support',
|
54 |
+
'custom_admin_pointers4_8_52_default-miniorange-advance-blocking-support_open',
|
55 |
+
|
56 |
+
|
57 |
+
'custom_admin_pointers4_8_52_default-miniorange-backup-manual-db',
|
58 |
+
'custom_admin_pointers4_8_52_default-miniorange-backup-auto-db',
|
59 |
+
'custom_admin_pointers4_8_52_default-miniorange-backup-file',
|
60 |
+
'custom_admin_pointers4_8_52_default-miniorange-backup-report',
|
61 |
+
'custom_admin_pointers4_8_52_default-miniorange-backup-support',
|
62 |
+
'custom_admin_pointers4_8_52_default-miniorange-backup-support_open',
|
63 |
+
|
64 |
+
|
65 |
+
|
66 |
+
'custom_admin_pointers4_8_52_default-miniorange-login-spam-bruteforce',
|
67 |
+
'custom_admin_pointers4_8_52_default-miniorange-login-spam-recaptcha',
|
68 |
+
'custom_admin_pointers4_8_52_default-miniorange-login-spam-strong-pass',
|
69 |
+
'custom_admin_pointers4_8_52_default-miniorange-login-spam-fake-registration',
|
70 |
+
'custom_admin_pointers4_8_52_default-miniorange-login-spam-content',
|
71 |
+
'custom_admin_pointers4_8_52_default-miniorange-login-spam-block-spam',
|
72 |
+
'custom_admin_pointers4_8_52_default-miniorange-login-spam-support',
|
73 |
+
'custom_admin_pointers4_8_52_default-miniorange-login-spam-support_open'
|
74 |
+
);
|
75 |
+
|
76 |
+
|
77 |
+
}
|
78 |
+
|
79 |
+
|
80 |
+
class mo_2fa_time_zones {
|
81 |
+
|
82 |
+
public static $time_zones = array(
|
83 |
+
"(GMT-11:00) Niue Time" => "Pacific/Niue",
|
84 |
+
"(GMT-11:00) Samoa Standard Time" => "Pacific/Pago_Pago",
|
85 |
+
"(GMT-10:00) Cook Islands Standard Time" => "Pacific/Rarotonga",
|
86 |
+
"(GMT-10:00) Hawaii-Aleutian Standard Time" => "Pacific/Honolulu",
|
87 |
+
"(GMT-10:00) Tahiti Time" => "Pacific/Tahiti",
|
88 |
+
"(GMT-09:30) Marquesas Time" => "Pacific/Marquesas",
|
89 |
+
"(GMT-09:00) Gambier Time" => "Pacific/Gambier",
|
90 |
+
"(GMT-09:00) Hawaii-Aleutian Time (Adak)" => "America/Adak",
|
91 |
+
"(GMT-08:00) Alaska Time - Anchorage" => "America/Anchorage",
|
92 |
+
"(GMT-08:00) Alaska Time - Juneau" => "America/Juneau",
|
93 |
+
"(GMT-08:00) Alaska Time - Metlakatla" => "America/Metlakatla",
|
94 |
+
"(GMT-08:00) Alaska Time - Nome" => "America/Nome",
|
95 |
+
"(GMT-08:00) Alaska Time - Sitka" => "America/Sitka",
|
96 |
+
"(GMT-08:00) Alaska Time - Yakutat" => "America/Yakutat",
|
97 |
+
"(GMT-08:00) Pitcairn Time" => "Pacific/Pitcairn",
|
98 |
+
"(GMT-07:00) Mexican Pacific Standard Time" => "America/Hermosillo",
|
99 |
+
"(GMT-07:00) Mountain Standard Time - Creston" => "America/Creston",
|
100 |
+
"(GMT-07:00) Mountain Standard Time - Dawson" => "America/Dawson",
|
101 |
+
"(GMT-07:00) Mountain Standard Time - Dawson Creek" => "America/Dawson_Creek",
|
102 |
+
"(GMT-07:00) Mountain Standard Time - Fort Nelson" => "America/Fort_Nelson",
|
103 |
+
"(GMT-07:00) Mountain Standard Time - Phoenix" => "America/Phoenix",
|
104 |
+
"(GMT-07:00) Mountain Standard Time - Whitehorse" => "America/Whitehorse",
|
105 |
+
"(GMT-07:00) Pacific Time - Los Angeles" => "America/Los_Angeles",
|
106 |
+
"(GMT-07:00) Pacific Time - Tijuana" => "America/Tijuana",
|
107 |
+
"(GMT-07:00) Pacific Time - Vancouver" => "America/Vancouver",
|
108 |
+
"(GMT-06:00) Central Standard Time - Belize" => "America/Belize",
|
109 |
+
"(GMT-06:00) Central Standard Time - Costa Rica" => "America/Costa_Rica",
|
110 |
+
"(GMT-06:00) Central Standard Time - El Salvador" => "America/El_Salvador",
|
111 |
+
"(GMT-06:00) Central Standard Time - Guatemala" => "America/Guatemala",
|
112 |
+
"(GMT-06:00) Central Standard Time - Managua" => "America/Managua",
|
113 |
+
"(GMT-06:00) Central Standard Time - Regina" => "America/Regina",
|
114 |
+
"(GMT-06:00) Central Standard Time - Swift Current" => "America/Swift_Current",
|
115 |
+
"(GMT-06:00) Central Standard Time - Tegucigalpa" => "America/Tegucigalpa",
|
116 |
+
"(GMT-06:00) Easter Island Time" => "Pacific/Easter",
|
117 |
+
"(GMT-06:00) Galapagos Time" => "Pacific/Galapagos",
|
118 |
+
"(GMT-06:00) Mexican Pacific Time - Chihuahua" => "America/Chihuahua",
|
119 |
+
"(GMT-06:00) Mexican Pacific Time - Mazatlan" => "America/Mazatlan",
|
120 |
+
"(GMT-06:00) Mountain Time - Boise" => "America/Boise",
|
121 |
+
"(GMT-06:00) Mountain Time - Cambridge Bay" => "America/Cambridge_Bay",
|
122 |
+
"(GMT-06:00) Mountain Time - Denver" => "America/Denver",
|
123 |
+
"(GMT-06:00) Mountain Time - Edmonton" => "America/Edmonton",
|
124 |
+
"(GMT-06:00) Mountain Time - Inuvik" => "America/Inuvik",
|
125 |
+
"(GMT-06:00) Mountain Time - Ojinaga" => "America/Ojinaga",
|
126 |
+
"(GMT-06:00) Mountain Time - Yellowknife" => "America/Yellowknife",
|
127 |
+
"(GMT-05:00) Acre Standard Time - Eirunepe" => "America/Eirunepe",
|
128 |
+
"(GMT-05:00) Acre Standard Time - Rio Branco" => "America/Rio_Branco",
|
129 |
+
"(GMT-05:00) Central Time - Bahia Banderas" => "America/Bahia_Banderas",
|
130 |
+
"(GMT-05:00) Central Time - Beulah, North Dakota" => "America/North_Dakota/Beulah",
|
131 |
+
"(GMT-05:00) Central Time - Center, North Dakota" => "America/North_Dakota/Center",
|
132 |
+
"(GMT-05:00) Central Time - Chicago" => "America/Chicago",
|
133 |
+
"(GMT-05:00) Central Time - Knox, Indiana" => "America/Indiana/Knox",
|
134 |
+
"(GMT-05:00) Central Time - Matamoros" => "America/Matamoros",
|
135 |
+
"(GMT-05:00) Central Time - Menominee" => "America/Menominee",
|
136 |
+
"(GMT-05:00) Central Time - Merida" => "America/Merida",
|
137 |
+
"(GMT-05:00) Central Time - Mexico City" => "America/Mexico_City",
|
138 |
+
"(GMT-05:00) Central Time - Monterrey" => "America/Monterrey",
|
139 |
+
"(GMT-05:00) Central Time - New Salem, North Dakota" => "America/North_Dakota/New_Salem",
|
140 |
+
"(GMT-05:00) Central Time - Rainy River" => "America/Rainy_River",
|
141 |
+
"(GMT-05:00) Central Time - Rankin Inlet" => "America/Rankin_Inlet",
|
142 |
+
"(GMT-05:00) Central Time - Resolute" => "America/Resolute",
|
143 |
+
"(GMT-05:00) Central Time - Tell City, Indiana" => "America/Indiana/Tell_City",
|
144 |
+
"(GMT-05:00) Central Time - Winnipeg" => "America/Winnipeg",
|
145 |
+
"(GMT-05:00) Colombia Standard Time" => "America/Bogota",
|
146 |
+
"(GMT-05:00) Eastern Standard Time - Atikokan" => "America/Atikokan",
|
147 |
+
"(GMT-05:00) Eastern Standard Time - Cancun" => "America/Cancun",
|
148 |
+
"(GMT-05:00) Eastern Standard Time - Jamaica" => "America/Jamaica",
|
149 |
+
"(GMT-05:00) Eastern Standard Time - Panama" => "America/Panama",
|
150 |
+
"(GMT-05:00) Ecuador Time" => "America/Guayaquil",
|
151 |
+
"(GMT-05:00) Peru Standard Time" => "America/Lima",
|
152 |
+
"(GMT-04:00) Amazon Standard Time - Boa Vista" => "America/Boa_Vista",
|
153 |
+
"(GMT-04:00) Amazon Standard Time - Campo Grande" => "America/Campo_Grande",
|
154 |
+
"(GMT-04:00) Amazon Standard Time - Cuiaba" => "America/Cuiaba",
|
155 |
+
"(GMT-04:00) Amazon Standard Time - Manaus" => "America/Manaus",
|
156 |
+
"(GMT-04:00) Amazon Standard Time - Porto Velho" => "America/Porto_Velho",
|
157 |
+
"(GMT-04:00) Atlantic Standard Time - Barbados" => "America/Barbados",
|
158 |
+
"(GMT-04:00) Atlantic Standard Time - Blanc-Sablon" => "America/Blanc-Sablon",
|
159 |
+
"(GMT-04:00) Atlantic Standard Time - Cura�ao" => "America/Curacao",
|
160 |
+
"(GMT-04:00) Atlantic Standard Time - Martinique" => "America/Martinique",
|
161 |
+
"(GMT-04:00) Atlantic Standard Time - Port of Spain" => "America/Port_of_Spain",
|
162 |
+
"(GMT-04:00) Atlantic Standard Time - Puerto Rico" => "America/Puerto_Rico",
|
163 |
+
"(GMT-04:00) Atlantic Standard Time - Santo Domingo" => "America/Santo_Domingo",
|
164 |
+
"(GMT-04:00) Bolivia Time" => "America/La_Paz",
|
165 |
+
"(GMT-04:00) Chile Time" => "America/Santiago",
|
166 |
+
"(GMT-04:00) Cuba Time" => "America/Havana",
|
167 |
+
"(GMT-04:00) Eastern Time - Detroit" => "America/Detroit",
|
168 |
+
"(GMT-04:00) Eastern Time - Grand Turk" => "America/Grand_Turk",
|
169 |
+
"(GMT-04:00) Eastern Time - Indianapolis" => "America/Indiana/Indianapolis",
|
170 |
+
"(GMT-04:00) Eastern Time - Iqaluit" => "America/Iqaluit",
|
171 |
+
"(GMT-04:00) Eastern Time - Louisville" => "America/Kentucky/Louisville",
|
172 |
+
"(GMT-04:00) Eastern Time - Marengo, Indiana" => "America/Indiana/Marengo",
|
173 |
+
"(GMT-04:00) Eastern Time - Monticello, Kentucky" => "America/Kentucky/Monticello",
|
174 |
+
"(GMT-04:00) Eastern Time - Nassau" => "America/Nassau",
|
175 |
+
"(GMT-04:00) Eastern Time - New York" => "America/New_York",
|
176 |
+
"(GMT-04:00) Eastern Time - Nipigon" => "America/Nipigon",
|
177 |
+
"(GMT-04:00) Eastern Time - Pangnirtung" => "America/Pangnirtung",
|
178 |
+
"(GMT-04:00) Eastern Time - Petersburg, Indiana" => "America/Indiana/Petersburg",
|
179 |
+
"(GMT-04:00) Eastern Time - Port-au-Prince" => "America/Port-au-Prince",
|
180 |
+
"(GMT-04:00) Eastern Time - Thunder Bay" => "America/Thunder_Bay",
|
181 |
+
"(GMT-04:00) Eastern Time - Toronto" => "America/Toronto",
|
182 |
+
"(GMT-04:00) Eastern Time - Vevay, Indiana" => "America/Indiana/Vevay",
|
183 |
+
"(GMT-04:00) Eastern Time - Vincennes, Indiana" => "America/Indiana/Vincennes",
|
184 |
+
"(GMT-04:00) Eastern Time - Winamac, Indiana" => "America/Indiana/Winamac",
|
185 |
+
"(GMT-04:00) Guyana Time" => "America/Guyana",
|
186 |
+
"(GMT-04:00) Paraguay Time" => "America/Asuncion",
|
187 |
+
"(GMT-04:00) Venezuela Time" => "America/Caracas",
|
188 |
+
"(GMT-03:00) Argentina Standard Time - Buenos Aires" => "America/Argentina/Buenos_Aires",
|
189 |
+
"(GMT-03:00) Argentina Standard Time - Catamarca" => "America/Argentina/Catamarca",
|
190 |
+
"(GMT-03:00) Argentina Standard Time - Cordoba" => "America/Argentina/Cordoba",
|
191 |
+
"(GMT-03:00) Argentina Standard Time - Jujuy" => "America/Argentina/Jujuy",
|
192 |
+
"(GMT-03:00) Argentina Standard Time - La Rioja" => "America/Argentina/La_Rioja",
|
193 |
+
"(GMT-03:00) Argentina Standard Time - Mendoza" => "America/Argentina/Mendoza",
|
194 |
+
"(GMT-03:00) Argentina Standard Time - Rio Gallegos" => "America/Argentina/Rio_Gallegos",
|
195 |
+
"(GMT-03:00) Argentina Standard Time - Salta" => "America/Argentina/Salta",
|
196 |
+
"(GMT-03:00) Argentina Standard Time - San Juan" => "America/Argentina/San_Juan",
|
197 |
+
"(GMT-03:00) Argentina Standard Time - San Luis" => "America/Argentina/San_Luis",
|
198 |
+
"(GMT-03:00) Argentina Standard Time - Tucuman" => "America/Argentina/Tucuman",
|
199 |
+
"(GMT-03:00) Argentina Standard Time - Ushuaia" => "America/Argentina/Ushuaia",
|
200 |
+
"(GMT-03:00) Atlantic Time - Bermuda" => "Atlantic/Bermuda",
|
201 |
+
"(GMT-03:00) Atlantic Time - Glace Bay" => "America/Glace_Bay",
|
202 |
+
"(GMT-03:00) Atlantic Time - Goose Bay" => "America/Goose_Bay",
|
203 |
+
"(GMT-03:00) Atlantic Time - Halifax" => "America/Halifax",
|
204 |
+
"(GMT-03:00) Atlantic Time - Moncton" => "America/Moncton",
|
205 |
+
"(GMT-03:00) Atlantic Time - Thule" => "America/Thule",
|
206 |
+
"(GMT-03:00) Brasilia Standard Time - Araguaina" => "America/Araguaina",
|
207 |
+
"(GMT-03:00) Brasilia Standard Time - Bahia" => "America/Bahia",
|
208 |
+
"(GMT-03:00) Brasilia Standard Time - Belem" => "America/Belem",
|
209 |
+
"(GMT-03:00) Brasilia Standard Time - Fortaleza" => "America/Fortaleza",
|
210 |
+
"(GMT-03:00) Brasilia Standard Time - Maceio" => "America/Maceio",
|
211 |
+
"(GMT-03:00) Brasilia Standard Time - Recife" => "America/Recife",
|
212 |
+
"(GMT-03:00) Brasilia Standard Time - Santarem" => "America/Santarem",
|
213 |
+
"(GMT-03:00) Brasilia Standard Time - Sao Paulo" => "America/Sao_Paulo",
|
214 |
+
"(GMT-03:00) Chile Time" => "America/Santiago",
|
215 |
+
"(GMT-03:00) Falkland Islands Standard Time" => "Atlantic/Stanley",
|
216 |
+
"(GMT-03:00) French Guiana Time" => "America/Cayenne",
|
217 |
+
"(GMT-03:00) Palmer Time" => "Antarctica/Palmer",
|
218 |
+
"(GMT-03:00) Punta Arenas Time" => "America/Punta_Arenas",
|
219 |
+
"(GMT-03:00) Rothera Time" => "Antarctica/Rothera",
|
220 |
+
"(GMT-03:00) Suriname Time" => "America/Paramaribo",
|
221 |
+
"(GMT-03:00) Uruguay Standard Time" => "America/Montevideo",
|
222 |
+
"(GMT-02:30) Newfoundland Time" => "America/St_Johns",
|
223 |
+
"(GMT-02:00) Fernando de Noronha Standard Time" => "America/Noronha",
|
224 |
+
"(GMT-02:00) South Georgia Time" => "Atlantic/South_Georgia",
|
225 |
+
"(GMT-02:00) St. Pierre & Miquelon Time" => "America/Miquelon",
|
226 |
+
"(GMT-02:00) West Greenland Time" => "America/Nuuk",
|
227 |
+
"(GMT-01:00) Cape Verde Standard Time" => "Atlantic/Cape_Verde",
|
228 |
+
"(GMT+00:00) Azores Time" => "Atlantic/Azores",
|
229 |
+
"(GMT+00:00) Coordinated Universal Time" => "UTC",
|
230 |
+
"(GMT+00:00) East Greenland Time" => "America/Scoresbysund",
|
231 |
+
"(GMT+00:00) Greenwich Mean Time" => "Etc/GMT",
|
232 |
+
"(GMT+00:00) Greenwich Mean Time - Abidjan" => "Africa/Abidjan",
|
233 |
+
"(GMT+00:00) Greenwich Mean Time - Accra" => "Africa/Accra",
|
234 |
+
"(GMT+00:00) Greenwich Mean Time - Bissau" => "Africa/Bissau",
|
235 |
+
"(GMT+00:00) Greenwich Mean Time - Danmarkshavn" => "America/Danmarkshavn",
|
236 |
+
"(GMT+00:00) Greenwich Mean Time - Monrovia" => "Africa/Monrovia",
|
237 |
+
"(GMT+00:00) Greenwich Mean Time - Reykjavik" => "Atlantic/Reykjavik",
|
238 |
+
"(GMT+00:00) Greenwich Mean Time - S�o Tom�" => "Africa/Sao_Tome",
|
239 |
+
"(GMT+01:00) Central European Standard Time - Algiers" => "Africa/Algiers",
|
240 |
+
"(GMT+01:00) Central European Standard Time - Tunis" => "Africa/Tunis",
|
241 |
+
"(GMT+01:00) Ireland Time" => "Europe/Dublin",
|
242 |
+
"(GMT+01:00) Morocco Time" => "Africa/Casablanca",
|
243 |
+
"(GMT+01:00) United Kingdom Time" => "Europe/London",
|
244 |
+
"(GMT+01:00) West Africa Standard Time - Lagos" => "Africa/Lagos",
|
245 |
+
"(GMT+01:00) West Africa Standard Time - Ndjamena" => "Africa/Ndjamena",
|
246 |
+
"(GMT+01:00) Western European Time - Canary" => "Atlantic/Canary",
|
247 |
+
"(GMT+01:00) Western European Time - Faroe" => "Atlantic/Faroe",
|
248 |
+
"(GMT+01:00) Western European Time - Lisbon" => "Europe/Lisbon",
|
249 |
+
"(GMT+01:00) Western European Time - Madeira" => "Atlantic/Madeira",
|
250 |
+
"(GMT+01:00) Western Sahara Time" => "Africa/El_Aaiun",
|
251 |
+
"(GMT+02:00) Central Africa Time - Khartoum" => "Africa/Khartoum",
|
252 |
+
"(GMT+02:00) Central Africa Time - Maputo" => "Africa/Maputo",
|
253 |
+
"(GMT+02:00) Central Africa Time - Windhoek" => "Africa/Windhoek",
|
254 |
+
"(GMT+02:00) Central European Time - Amsterdam" => "Europe/Amsterdam",
|
255 |
+
"(GMT+02:00) Central European Time - Andorra" => "Europe/Andorra",
|
256 |
+
"(GMT+02:00) Central European Time - Belgrade" => "Europe/Belgrade",
|
257 |
+
"(GMT+02:00) Central European Time - Berlin" => "Europe/Berlin",
|
258 |
+
"(GMT+02:00) Central European Time - Brussels" => "Europe/Brussels",
|
259 |
+
"(GMT+02:00) Central European Time - Budapest" => "Europe/Budapest",
|
260 |
+
"(GMT+02:00) Central European Time - Ceuta" => "Africa/Ceuta",
|
261 |
+
"(GMT+02:00) Central European Time - Copenhagen" => "Europe/Copenhagen",
|
262 |
+
"(GMT+02:00) Central European Time - Gibraltar" => "Europe/Gibraltar",
|
263 |
+
"(GMT+02:00) Central European Time - Luxembourg" => "Europe/Luxembourg",
|
264 |
+
"(GMT+02:00) Central European Time - Madrid" => "Europe/Madrid",
|
265 |
+
"(GMT+02:00) Central European Time - Malta" => "Europe/Malta",
|
266 |
+
"(GMT+02:00) Central European Time - Monaco" => "Europe/Monaco",
|
267 |
+
"(GMT+02:00) Central European Time - Oslo" => "Europe/Oslo",
|
268 |
+
"(GMT+02:00) Central European Time - Paris" => "Europe/Paris",
|
269 |
+
"(GMT+02:00) Central European Time - Prague" => "Europe/Prague",
|
270 |
+
"(GMT+02:00) Central European Time - Rome" => "Europe/Rome",
|
271 |
+
"(GMT+02:00) Central European Time - Stockholm" => "Europe/Stockholm",
|
272 |
+
"(GMT+02:00) Central European Time - Tirane" => "Europe/Tirane",
|
273 |
+
"(GMT+02:00) Central European Time - Vienna" => "Europe/Vienna",
|
274 |
+
"(GMT+02:00) Central European Time - Warsaw" => "Europe/Warsaw",
|
275 |
+
"(GMT+02:00) Central European Time - Zurich" => "Europe/Zurich",
|
276 |
+
"(GMT+02:00) Eastern European Standard Time - Cairo" => "Africa/Cairo",
|
277 |
+
"(GMT+02:00) Eastern European Standard Time - Kaliningrad" => "Europe/Kaliningrad",
|
278 |
+
"(GMT+02:00) Eastern European Standard Time - Tripoli" => "Africa/Tripoli",
|
279 |
+
"(GMT+02:00) South Africa Standard Time" => "Africa/Johannesburg",
|
280 |
+
"(GMT+02:00) Troll Time" => "Antarctica/Troll",
|
281 |
+
"(GMT+03:00) Arabian Standard Time - Baghdad" => "Asia/Baghdad",
|
282 |
+
"(GMT+03:00) Arabian Standard Time - Qatar" => "Asia/Qatar",
|
283 |
+
"(GMT+03:00) Arabian Standard Time - Riyadh" => "Asia/Riyadh",
|
284 |
+
"(GMT+03:00) East Africa Time - Juba" => "Africa/Juba",
|
285 |
+
"(GMT+03:00) East Africa Time - Nairobi" => "Africa/Nairobi",
|
286 |
+
"(GMT+03:00) Eastern European Time - Amman" => "Asia/Amman",
|
287 |
+
"(GMT+03:00) Eastern European Time - Athens" => "Europe/Athens",
|
288 |
+
"(GMT+03:00) Eastern European Time - Beirut" => "Asia/Beirut",
|
289 |
+
"(GMT+03:00) Eastern European Time - Bucharest" => "Europe/Bucharest",
|
290 |
+
"(GMT+03:00) Eastern European Time - Chisinau" => "Europe/Chisinau",
|
291 |
+
"(GMT+03:00) Eastern European Time - Damascus" => "Asia/Damascus",
|
292 |
+
"(GMT+03:00) Eastern European Time - Gaza" => "Asia/Gaza",
|
293 |
+
"(GMT+03:00) Eastern European Time - Hebron" => "Asia/Hebron",
|
294 |
+
"(GMT+03:00) Eastern European Time - Helsinki" => "Europe/Helsinki",
|
295 |
+
"(GMT+03:00) Eastern European Time - Kiev" => "Europe/Kiev",
|
296 |
+
"(GMT+03:00) Eastern European Time - Nicosia" => "Asia/Nicosia",
|
297 |
+
"(GMT+03:00) Eastern European Time - Riga" => "Europe/Riga",
|
298 |
+
"(GMT+03:00) Eastern European Time - Sofia" => "Europe/Sofia",
|
299 |
+
"(GMT+03:00) Eastern European Time - Tallinn" => "Europe/Tallinn",
|
300 |
+
"(GMT+03:00) Eastern European Time - Uzhhorod" => "Europe/Uzhgorod",
|
301 |
+
"(GMT+03:00) Eastern European Time - Vilnius" => "Europe/Vilnius",
|
302 |
+
"(GMT+03:00) Eastern European Time - Zaporozhye" => "Europe/Zaporozhye",
|
303 |
+
"(GMT+03:00) Famagusta Time" => "Asia/Famagusta",
|
304 |
+
"(GMT+03:00) Israel Time" => "Asia/Jerusalem",
|
305 |
+
"(GMT+03:00) Kirov Time" => "Europe/Kirov",
|
306 |
+
"(GMT+03:00) Moscow Standard Time - Minsk" => "Europe/Minsk",
|
307 |
+
"(GMT+03:00) Moscow Standard Time - Moscow" => "Europe/Moscow",
|
308 |
+
"(GMT+03:00) Moscow Standard Time - Simferopol" => "Europe/Simferopol",
|
309 |
+
"(GMT+03:00) Syowa Time" => "Antarctica/Syowa",
|
310 |
+
"(GMT+03:00) Turkey Time" => "Europe/Istanbul",
|
311 |
+
"(GMT+04:00) Armenia Standard Time" => "Asia/Yerevan",
|
312 |
+
"(GMT+04:00) Astrakhan Time" => "Europe/Astrakhan",
|
313 |
+
"(GMT+04:00) Azerbaijan Standard Time" => "Asia/Baku",
|
314 |
+
"(GMT+04:00) Georgia Standard Time" => "Asia/Tbilisi",
|
315 |
+
"(GMT+04:00) Gulf Standard Time" => "Asia/Dubai",
|
316 |
+
"(GMT+04:00) Mauritius Standard Time" => "Indian/Mauritius",
|
317 |
+
"(GMT+04:00) R�union Time" => "Indian/Reunion",
|
318 |
+
"(GMT+04:00) Samara Standard Time" => "Europe/Samara",
|
319 |
+
"(GMT+04:00) Saratov Time" => "Europe/Saratov",
|
320 |
+
"(GMT+04:00) Seychelles Time" => "Indian/Mahe",
|
321 |
+
"(GMT+04:00) Ulyanovsk Time" => "Europe/Ulyanovsk",
|
322 |
+
"(GMT+04:00) Volgograd Standard Time" => "Europe/Volgograd",
|
323 |
+
"(GMT+04:30) Afghanistan Time" => "Asia/Kabul",
|
324 |
+
"(GMT+04:30) Iran Time" => "Asia/Tehran",
|
325 |
+
"(GMT+05:00) French Southern & Antarctic Time" => "Indian/Kerguelen",
|
326 |
+
"(GMT+05:00) Maldives Time" => "Indian/Maldives",
|
327 |
+
"(GMT+05:00) Mawson Time" => "Antarctica/Mawson",
|
328 |
+
"(GMT+05:00) Pakistan Standard Time" => "Asia/Karachi",
|
329 |
+
"(GMT+05:00) Tajikistan Time" => "Asia/Dushanbe",
|
330 |
+
"(GMT+05:00) Turkmenistan Standard Time" => "Asia/Ashgabat",
|
331 |
+
"(GMT+05:00) Uzbekistan Standard Time - Samarkand" => "Asia/Samarkand",
|
332 |
+
"(GMT+05:00) Uzbekistan Standard Time - Tashkent" => "Asia/Tashkent",
|
333 |
+
"(GMT+05:00) West Kazakhstan Time - Aqtau" => "Asia/Aqtau",
|
334 |
+
"(GMT+05:00) West Kazakhstan Time - Aqtobe" => "Asia/Aqtobe",
|
335 |
+
"(GMT+05:00) West Kazakhstan Time - Atyrau" => "Asia/Atyrau",
|
336 |
+
"(GMT+05:00) West Kazakhstan Time - Oral" => "Asia/Oral",
|
337 |
+
"(GMT+05:00) West Kazakhstan Time - Qyzylorda" => "Asia/Qyzylorda",
|
338 |
+
"(GMT+05:00) Yekaterinburg Standard Time" => "Asia/Yekaterinburg",
|
339 |
+
"(GMT+05:30) Indian Standard Time - Colombo" => "Asia/Colombo",
|
340 |
+
"(GMT+05:30) Indian Standard Time - Kolkata" => "Asia/Kolkata",
|
341 |
+
"(GMT+05:45) Nepal Time" => "Asia/Kathmandu",
|
342 |
+
"(GMT+06:00) Bangladesh Standard Time" => "Asia/Dhaka",
|
343 |
+
"(GMT+06:00) Bhutan Time" => "Asia/Thimphu",
|
344 |
+
"(GMT+06:00) East Kazakhstan Time - Almaty" => "Asia/Almaty",
|
345 |
+
"(GMT+06:00) East Kazakhstan Time - Kostanay" => "Asia/Qostanay",
|
346 |
+
"(GMT+06:00) Indian Ocean Time" => "Indian/Chagos",
|
347 |
+
"(GMT+06:00) Kyrgyzstan Time" => "Asia/Bishkek",
|
348 |
+
"(GMT+06:00) Omsk Standard Time" => "Asia/Omsk",
|
349 |
+
"(GMT+06:00) Urumqi Time" => "Asia/Urumqi",
|
350 |
+
"(GMT+06:00) Vostok Time" => "Antarctica/Vostok",
|
351 |
+
"(GMT+06:30) Cocos Islands Time" => "Indian/Cocos",
|
352 |
+
"(GMT+06:30) Myanmar Time" => "Asia/Yangon",
|
353 |
+
"(GMT+07:00) Barnaul Time" => "Asia/Barnaul",
|
354 |
+
"(GMT+07:00) Christmas Island Time" => "Indian/Christmas",
|
355 |
+
"(GMT+07:00) Davis Time" => "Antarctica/Davis",
|
356 |
+
"(GMT+07:00) Hovd Standard Time" => "Asia/Hovd",
|
357 |
+
"(GMT+07:00) Indochina Time - Bangkok" => "Asia/Bangkok",
|
358 |
+
"(GMT+07:00) Indochina Time - Ho Chi Minh City" => "Asia/Ho_Chi_Minh",
|
359 |
+
"(GMT+07:00) Krasnoyarsk Standard Time - Krasnoyarsk" => "Asia/Krasnoyarsk",
|
360 |
+
"(GMT+07:00) Krasnoyarsk Standard Time - Novokuznetsk" => "Asia/Novokuznetsk",
|
361 |
+
"(GMT+07:00) Novosibirsk Standard Time" => "Asia/Novosibirsk",
|
362 |
+
"(GMT+07:00) Tomsk Time" => "Asia/Tomsk",
|
363 |
+
"(GMT+07:00) Western Indonesia Time - Jakarta" => "Asia/Jakarta",
|
364 |
+
"(GMT+07:00) Western Indonesia Time - Pontianak" => "Asia/Pontianak",
|
365 |
+
"(GMT+08:00) Australian Western Standard Time - Casey" => "Antarctica/Casey",
|
366 |
+
"(GMT+08:00) Australian Western Standard Time - Perth" => "Australia/Perth",
|
367 |
+
"(GMT+08:00) Brunei Darussalam Time" => "Asia/Brunei",
|
368 |
+
"(GMT+08:00) Central Indonesia Time" => "Asia/Makassar",
|
369 |
+
"(GMT+08:00) China Standard Time - Macao" => "Asia/Macau",
|
370 |
+
"(GMT+08:00) China Standard Time - Shanghai" => "Asia/Shanghai",
|
371 |
+
"(GMT+08:00) Hong Kong Standard Time" => "Asia/Hong_Kong",
|
372 |
+
"(GMT+08:00) Irkutsk Standard Time" => "Asia/Irkutsk",
|
373 |
+
"(GMT+08:00) Malaysia Time - Kuala Lumpur" => "Asia/Kuala_Lumpur",
|
374 |
+
"(GMT+08:00) Malaysia Time - Kuching" => "Asia/Kuching",
|
375 |
+
"(GMT+08:00) Philippine Standard Time" => "Asia/Manila",
|
376 |
+
"(GMT+08:00) Singapore Standard Time" => "Asia/Singapore",
|
377 |
+
"(GMT+08:00) Taipei Standard Time" => "Asia/Taipei",
|
378 |
+
"(GMT+08:00) Ulaanbaatar Standard Time - Choibalsan" => "Asia/Choibalsan",
|
379 |
+
"(GMT+08:00) Ulaanbaatar Standard Time - Ulaanbaatar" => "Asia/Ulaanbaatar",
|
380 |
+
"(GMT+08:45) Australian Central Western Standard Time" => "Australia/Eucla",
|
381 |
+
"(GMT+09:00) East Timor Time" => "Asia/Dili",
|
382 |
+
"(GMT+09:00) Eastern Indonesia Time" => "Asia/Jayapura",
|
383 |
+
"(GMT+09:00) Japan Standard Time" => "Asia/Tokyo",
|
384 |
+
"(GMT+09:00) Korean Standard Time - Pyongyang" => "Asia/Pyongyang",
|
385 |
+
"(GMT+09:00) Korean Standard Time - Seoul" => "Asia/Seoul",
|
386 |
+
"(GMT+09:00) Palau Time" => "Pacific/Palau",
|
387 |
+
"(GMT+09:00) Yakutsk Standard Time - Chita" => "Asia/Chita",
|
388 |
+
"(GMT+09:00) Yakutsk Standard Time - Khandyga" => "Asia/Khandyga",
|
389 |
+
"(GMT+09:00) Yakutsk Standard Time - Yakutsk" => "Asia/Yakutsk",
|
390 |
+
"(GMT+09:30) Australian Central Standard Time" => "Australia/Darwin",
|
391 |
+
"(GMT+09:30) Central Australia Time - Adelaide" => "Australia/Adelaide",
|
392 |
+
"(GMT+09:30) Central Australia Time - Broken Hill" => "Australia/Broken_Hill",
|
393 |
+
"(GMT+10:00) Australian Eastern Standard Time - Brisbane" => "Australia/Brisbane",
|
394 |
+
"(GMT+10:00) Australian Eastern Standard Time - Lindeman" => "Australia/Lindeman",
|
395 |
+
"(GMT+10:00) Chamorro Standard Time" => "Pacific/Guam",
|
396 |
+
"(GMT+10:00) Chuuk Time" => "Pacific/Chuuk",
|
397 |
+
"(GMT+10:00) Dumont-d�Urville Time" => "Antarctica/DumontDUrville",
|
398 |
+
"(GMT+10:00) Eastern Australia Time - Currie" => "Australia/Currie",
|
399 |
+
"(GMT+10:00) Eastern Australia Time - Hobart" => "Australia/Hobart",
|
400 |
+
"(GMT+10:00) Eastern Australia Time - Melbourne" => "Australia/Melbourne",
|
401 |
+
"(GMT+10:00) Eastern Australia Time - Sydney" => "Australia/Sydney",
|
402 |
+
"(GMT+10:00) Papua New Guinea Time" => "Pacific/Port_Moresby",
|
403 |
+
"(GMT+10:00) Vladivostok Standard Time - Ust-Nera" => "Asia/Ust-Nera",
|
404 |
+
"(GMT+10:00) Vladivostok Standard Time - Vladivostok" => "Asia/Vladivostok",
|
405 |
+
"(GMT+10:30) Lord Howe Time" => "Australia/Lord_Howe",
|
406 |
+
"(GMT+11:00) Bougainville Time" => "Pacific/Bougainville",
|
407 |
+
"(GMT+11:00) Kosrae Time" => "Pacific/Kosrae",
|
408 |
+
"(GMT+11:00) Macquarie Island Time" => "Antarctica/Macquarie",
|
409 |
+
"(GMT+11:00) Magadan Standard Time" => "Asia/Magadan",
|
410 |
+
"(GMT+11:00) New Caledonia Standard Time" => "Pacific/Noumea",
|
411 |
+
"(GMT+11:00) Norfolk Island Time" => "Pacific/Norfolk",
|
412 |
+
"(GMT+11:00) Ponape Time" => "Pacific/Pohnpei",
|
413 |
+
"(GMT+11:00) Sakhalin Standard Time" => "Asia/Sakhalin",
|
414 |
+
"(GMT+11:00) Solomon Islands Time" => "Pacific/Guadalcanal",
|
415 |
+
"(GMT+11:00) Srednekolymsk Time" => "Asia/Srednekolymsk",
|
416 |
+
"(GMT+11:00) Vanuatu Standard Time" => "Pacific/Efate",
|
417 |
+
"(GMT+12:00) Anadyr Standard Time" => "Asia/Anadyr",
|
418 |
+
"(GMT+12:00) Fiji Time" => "Pacific/Fiji",
|
419 |
+
"(GMT+12:00) Gilbert Islands Time" => "Pacific/Tarawa",
|
420 |
+
"(GMT+12:00) Marshall Islands Time - Kwajalein" => "Pacific/Kwajalein",
|
421 |
+
"(GMT+12:00) Marshall Islands Time - Majuro" => "Pacific/Majuro",
|
422 |
+
"(GMT+12:00) Nauru Time" => "Pacific/Nauru",
|
423 |
+
"(GMT+12:00) New Zealand Time" => "Pacific/Auckland",
|
424 |
+
"(GMT+12:00) Petropavlovsk-Kamchatski Standard Time" => "Asia/Kamchatka",
|
425 |
+
"(GMT+12:00) Tuvalu Time" => "Pacific/Funafuti",
|
426 |
+
"(GMT+12:00) Wake Island Time" => "Pacific/Wake",
|
427 |
+
"(GMT+12:00) Wallis & Futuna Time" => "Pacific/Wallis",
|
428 |
+
"(GMT+12:45) Chatham Time" => "Pacific/Chatham",
|
429 |
+
"(GMT+13:00) Apia Time" => "Pacific/Apia",
|
430 |
+
"(GMT+13:00) Phoenix Islands Time" => "Pacific/Enderbury",
|
431 |
+
"(GMT+13:00) Tokelau Time" => "Pacific/Fakaofo",
|
432 |
+
"(GMT+13:00) Tonga Standard Time" => "Pacific/Tongatapu",
|
433 |
+
"(GMT+14:00) Line Islands Time" => "Pacific/Kiritimati"
|
434 |
+
);
|
435 |
+
}
|
miniorange_2_factor_settings.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: miniOrange 2 Factor Authentication
|
4 |
* Plugin URI: https://miniorange.com
|
5 |
* Description: This TFA plugin provides various two-factor authentication methods as an additional layer of security after the default wordpress login. We Support Google/Authy/LastPass Authenticator, QR Code, Push Notification, Soft Token and Security Questions(KBA) for 3 User in the free version of the plugin.
|
6 |
-
* Version: 5.
|
7 |
* Author: miniOrange
|
8 |
* Author URI: https://miniorange.com
|
9 |
* Text Domain: miniorange-2-factor-authentication
|
@@ -14,8 +14,9 @@
|
|
14 |
require dirname(__FILE__).DIRECTORY_SEPARATOR.'views'.DIRECTORY_SEPARATOR.'email-IPaddress.php';
|
15 |
|
16 |
define( 'MO_HOST_NAME', 'https://login.xecurify.com' );
|
17 |
-
|
18 |
-
define( '
|
|
|
19 |
define( 'MO2F_TEST_MODE', false );
|
20 |
define( 'MO2F_IS_ONPREM', get_option('is_onprem'));
|
21 |
|
@@ -36,7 +37,7 @@
|
|
36 |
add_action( 'admin_init' , array( $this, 'miniorange_reset_save_settings' ) );
|
37 |
add_filter('manage_users_columns' , array( $this, 'mo2f_mapped_email_column' ) );
|
38 |
add_action('manage_users_custom_column' , array( $this, 'mo2f_mapped_email_column_content'), 10, 3 );
|
39 |
-
|
40 |
$actions = add_filter('user_row_actions' , array( $this, 'miniorange_reset_users' ),10 , 2 );
|
41 |
add_action( 'admin_footer' , array( $this, 'feedback_request' ) );
|
42 |
add_action('admin_notices',array( $this, 'mo_wpns_malware_notices' ) );
|
@@ -50,7 +51,6 @@
|
|
50 |
$customShort = new TwoFACustomRegFormShortcode();
|
51 |
add_action('admin_init',array( $this, 'mo2f_enable_register_shortcode' ));
|
52 |
add_action('admin_init',array( $customShort, 'mo_enqueue_shortcode' ));
|
53 |
-
add_action( 'elementor/init', array($this, 'mo2fa_login_elementor_note'));
|
54 |
add_shortcode('mo2f_enable_register',array($this,'mo2f_enable_register_shortcode'));
|
55 |
if(defined("DIGIMEMBER_DIR"))
|
56 |
{
|
@@ -59,44 +59,6 @@
|
|
59 |
|
60 |
}
|
61 |
|
62 |
-
function mo2f_notices(){
|
63 |
-
|
64 |
-
global $Mo2fdbQueries, $mo2f_db_queries;
|
65 |
-
$is_customer_registered = $Mo2fdbQueries->get_user_detail( 'user_registration_with_miniorange', wp_get_current_user()->ID ) == 'SUCCESS' ? true : false;
|
66 |
-
if(strpos($_SERVER['REQUEST_URI'], 'mo_2fa_upgrade'))
|
67 |
-
if(!get_site_option('mo2f_trial_query_sent') && !get_site_option('mo2f_donot_show_trial_notice_always') && current_user_can('administrator')){
|
68 |
-
|
69 |
-
if(!$is_customer_registered)
|
70 |
-
echo MoWpnsMessages::showMessage('FREE_TRIAL_MESSAGE_ACCOUNT_PAGE');
|
71 |
-
else
|
72 |
-
echo MoWpnsMessages::showMessage('FREE_TRIAL_MESSAGE_TRIAL_PAGE');
|
73 |
-
}
|
74 |
-
|
75 |
-
}
|
76 |
-
function mo2f_get_dismiss_days($option_name){
|
77 |
-
$one_day = 60*60*24;
|
78 |
-
$days= (time()-get_site_option($option_name))/$one_day;
|
79 |
-
return floor($days);
|
80 |
-
}
|
81 |
-
|
82 |
-
function mo2fa_login_elementor_note()
|
83 |
-
{
|
84 |
-
global $mainDir;
|
85 |
-
|
86 |
-
if(!is_user_logged_in())
|
87 |
-
{
|
88 |
-
wp_enqueue_script( 'jquery' );
|
89 |
-
wp_enqueue_script( 'mo2fa_elementor_script', $mainDir. 'includes/js/mo2fa_elementor.js' );
|
90 |
-
|
91 |
-
wp_localize_script( 'mo2fa_elementor_script', 'my_ajax_object',
|
92 |
-
array( 'ajax_url' => get_site_url() .'/login/' ,
|
93 |
-
'nonce' => wp_create_nonce( 'miniorange-2-factor-login-nonce' ),
|
94 |
-
'mo2f_login_option' => MoWpnsUtility::get_mo2f_db_option('mo2f_login_option', 'get_option'),
|
95 |
-
'mo2f_enable_login_with_2nd_factor' => get_option( 'mo2f_enable_login_with_2nd_factor' )) );
|
96 |
-
|
97 |
-
}
|
98 |
-
}
|
99 |
-
|
100 |
public function mo2f_enable_register_shortcode()
|
101 |
{
|
102 |
$submitSelector = get_site_option('mo2f_custom_submit_selector');
|
@@ -160,7 +122,7 @@
|
|
160 |
wp_enqueue_style( 'wp-pointer' );
|
161 |
wp_enqueue_script( 'wp-pointer' );
|
162 |
wp_enqueue_script( 'utils' );
|
163 |
-
wp_enqueue_style( 'mo_wpns_admin_plugins_page_style', plugins_url( '/includes/css/style_settings.css?ver=
|
164 |
|
165 |
include $mo2f_dirName . 'views'.DIRECTORY_SEPARATOR.'feedback_form.php';;
|
166 |
|
@@ -267,13 +229,8 @@
|
|
267 |
add_submenu_page( $menu_slug ,'miniOrange 2-Factor' ,'Notifications' ,'administrator','mo_2fa_notifications' , array( $this, 'mo_wpns'),8);
|
268 |
add_submenu_page( $menu_slug ,'miniOrange 2-Factor' ,'Offers' ,'administrator','mo_2fa_request_offer' , array( $this, 'mo_wpns'),14);
|
269 |
$mo2fa_hook_page = add_users_page ('Reset 2nd Factor', null , 'manage_options', 'reset', array( $this, 'mo_reset_2fa_for_users_by_admin' ),66);
|
270 |
-
|
271 |
-
|
272 |
-
$is_customer_registered = $Mo2fdbQueries->get_user_detail( 'user_registration_with_miniorange', wp_get_current_user()->ID ) == 'SUCCESS' ? true : false;
|
273 |
-
if(!$is_customer_registered)
|
274 |
-
add_submenu_page($menu_slug, 'miniOrange 2-Factor', 'Request Trial' ,'administrator','mo_2fa_account', array( $this, 'mo_wpns'), 20);
|
275 |
-
else
|
276 |
-
add_submenu_page($menu_slug, 'miniOrange 2-Factor', 'Request Trial' ,'administrator','mo2f_trial', array( $this, 'mo_wpns'), 20);
|
277 |
}
|
278 |
|
279 |
|
@@ -314,7 +271,6 @@
|
|
314 |
add_action( 'mo_auth_show_success_message', array($this, 'mo_auth_show_success_message'), 10, 1 );
|
315 |
add_action( 'mo_auth_show_error_message', array($this, 'mo_auth_show_error_message'), 10, 1 );
|
316 |
add_option( 'mo2f_onprem_admin' , $userid );
|
317 |
-
add_option('mo2f_nonce_enable_configured_methods' ,true);
|
318 |
add_option( 'mo_wpns_last_scan_time', time());
|
319 |
update_site_option('mo2f_mail_notify_new_release','on');
|
320 |
add_site_option('mo2f_mail_notify','on');
|
@@ -359,6 +315,7 @@
|
|
359 |
wp_enqueue_style( 'mo_wpns_admin_settings_datatable_style' , plugins_url('includes/css/jquery.dataTables.min.css', __FILE__));
|
360 |
wp_enqueue_style( 'mo_wpns_button_settings_style' , plugins_url('includes/css/button_styles.css',__FILE__));
|
361 |
wp_enqueue_style( 'mo_wpns_popup_settings_style' , plugins_url('includes/css/popup.css',__FILE__));
|
|
|
362 |
$file = plugin_dir_path( __FILE__ ) .'controllers'.DIRECTORY_SEPARATOR. 'pointers.php';
|
363 |
|
364 |
$tour_started=get_option('mo2f_tour_started',0);
|
@@ -397,7 +354,9 @@
|
|
397 |
wp_enqueue_script( 'mo_wpns_min_qrcode_script', plugins_url( "/includes/jquery-qrcode/jquery-qrcode.min.js", __FILE__ ) );
|
398 |
wp_enqueue_script('jquery-ui-core');
|
399 |
wp_enqueue_script('jquery-ui-autocomplete');
|
|
|
400 |
wp_enqueue_script('mo_2fa_select2_script', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js');
|
|
|
401 |
}
|
402 |
}
|
403 |
|
@@ -520,9 +479,9 @@
|
|
520 |
require('handler/security_features.php');
|
521 |
require('handler/feedback_form.php');
|
522 |
require('handler/recaptcha.php');
|
|
|
523 |
require('handler/twofa/setup_twofa.php');
|
524 |
require('handler/twofa/two_fa_settings.php');
|
525 |
-
require('handler/login.php');
|
526 |
require('handler/twofa/two_fa_utility.php');
|
527 |
require('handler/twofa/two_fa_constants.php');
|
528 |
require('handler/registration.php');
|
@@ -576,29 +535,26 @@
|
|
576 |
function mo_reset_2fa_for_users_by_admin(){
|
577 |
$nonce = wp_create_nonce('ResetTwoFnonce');
|
578 |
if(isset($_GET['action']) && $_GET['action']== 'reset_edit'){
|
579 |
-
$user_id =
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
<div class="wrap">
|
587 |
-
<h1>Reset 2nd Factor</h1>
|
588 |
|
589 |
<p>You have specified this user for reset:</p>
|
590 |
|
591 |
<ul>
|
592 |
<li>ID #<?php echo $user_info->ID; ?>: <?php echo $user_info->user_login; ?></li>
|
593 |
</ul>
|
594 |
-
<input type="hidden" name="userid" value="<?php echo
|
595 |
<input type="hidden" name="miniorange_reset_2fa_option" value="mo_reset_2fa">
|
596 |
<input type="hidden" name="nonce" value="<?php echo $nonce;?>">
|
597 |
<p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="Confirm Reset" ></p>
|
598 |
</div>
|
599 |
</form>
|
600 |
<?php
|
601 |
-
}
|
602 |
}
|
603 |
}
|
604 |
|
@@ -626,8 +582,6 @@
|
|
626 |
}
|
627 |
}
|
628 |
}
|
629 |
-
if(isset($_POST['mo2f_dismiss_trial']) && sanitize_text_field($_POST['mo2f_dismiss_trial'] == 'mo2f_dismiss_trial'))
|
630 |
-
update_site_option('mo2f_donot_show_trial_notice_always', 1);
|
631 |
}
|
632 |
|
633 |
function mo2f_mapped_email_column_content($value, $column_name, $user_id) {
|
@@ -675,7 +629,7 @@
|
|
675 |
{
|
676 |
|
677 |
|
678 |
-
$subject = '
|
679 |
$messages = mail_tem();
|
680 |
$headers = array('Content-Type: text/html; charset=UTF-8');
|
681 |
$email = get_option('admin_email');
|
3 |
* Plugin Name: miniOrange 2 Factor Authentication
|
4 |
* Plugin URI: https://miniorange.com
|
5 |
* Description: This TFA plugin provides various two-factor authentication methods as an additional layer of security after the default wordpress login. We Support Google/Authy/LastPass Authenticator, QR Code, Push Notification, Soft Token and Security Questions(KBA) for 3 User in the free version of the plugin.
|
6 |
+
* Version: 5.4.34
|
7 |
* Author: miniOrange
|
8 |
* Author URI: https://miniorange.com
|
9 |
* Text Domain: miniorange-2-factor-authentication
|
14 |
require dirname(__FILE__).DIRECTORY_SEPARATOR.'views'.DIRECTORY_SEPARATOR.'email-IPaddress.php';
|
15 |
|
16 |
define( 'MO_HOST_NAME', 'https://login.xecurify.com' );
|
17 |
+
|
18 |
+
define( 'MO2F_VERSION', '5.4.34' );
|
19 |
+
define('MO2F_PLUGIN_URL', (plugin_dir_url(__FILE__)));
|
20 |
define( 'MO2F_TEST_MODE', false );
|
21 |
define( 'MO2F_IS_ONPREM', get_option('is_onprem'));
|
22 |
|
37 |
add_action( 'admin_init' , array( $this, 'miniorange_reset_save_settings' ) );
|
38 |
add_filter('manage_users_columns' , array( $this, 'mo2f_mapped_email_column' ) );
|
39 |
add_action('manage_users_custom_column' , array( $this, 'mo2f_mapped_email_column_content'), 10, 3 );
|
40 |
+
|
41 |
$actions = add_filter('user_row_actions' , array( $this, 'miniorange_reset_users' ),10 , 2 );
|
42 |
add_action( 'admin_footer' , array( $this, 'feedback_request' ) );
|
43 |
add_action('admin_notices',array( $this, 'mo_wpns_malware_notices' ) );
|
51 |
$customShort = new TwoFACustomRegFormShortcode();
|
52 |
add_action('admin_init',array( $this, 'mo2f_enable_register_shortcode' ));
|
53 |
add_action('admin_init',array( $customShort, 'mo_enqueue_shortcode' ));
|
|
|
54 |
add_shortcode('mo2f_enable_register',array($this,'mo2f_enable_register_shortcode'));
|
55 |
if(defined("DIGIMEMBER_DIR"))
|
56 |
{
|
59 |
|
60 |
}
|
61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
public function mo2f_enable_register_shortcode()
|
63 |
{
|
64 |
$submitSelector = get_site_option('mo2f_custom_submit_selector');
|
122 |
wp_enqueue_style( 'wp-pointer' );
|
123 |
wp_enqueue_script( 'wp-pointer' );
|
124 |
wp_enqueue_script( 'utils' );
|
125 |
+
wp_enqueue_style( 'mo_wpns_admin_plugins_page_style', plugins_url( '/includes/css/style_settings.css?ver=4.8.60', __FILE__ ) );
|
126 |
|
127 |
include $mo2f_dirName . 'views'.DIRECTORY_SEPARATOR.'feedback_form.php';;
|
128 |
|
229 |
add_submenu_page( $menu_slug ,'miniOrange 2-Factor' ,'Notifications' ,'administrator','mo_2fa_notifications' , array( $this, 'mo_wpns'),8);
|
230 |
add_submenu_page( $menu_slug ,'miniOrange 2-Factor' ,'Offers' ,'administrator','mo_2fa_request_offer' , array( $this, 'mo_wpns'),14);
|
231 |
$mo2fa_hook_page = add_users_page ('Reset 2nd Factor', null , 'manage_options', 'reset', array( $this, 'mo_reset_2fa_for_users_by_admin' ),66);
|
232 |
+
|
233 |
+
|
|
|
|
|
|
|
|
|
|
|
234 |
}
|
235 |
|
236 |
|
271 |
add_action( 'mo_auth_show_success_message', array($this, 'mo_auth_show_success_message'), 10, 1 );
|
272 |
add_action( 'mo_auth_show_error_message', array($this, 'mo_auth_show_error_message'), 10, 1 );
|
273 |
add_option( 'mo2f_onprem_admin' , $userid );
|
|
|
274 |
add_option( 'mo_wpns_last_scan_time', time());
|
275 |
update_site_option('mo2f_mail_notify_new_release','on');
|
276 |
add_site_option('mo2f_mail_notify','on');
|
315 |
wp_enqueue_style( 'mo_wpns_admin_settings_datatable_style' , plugins_url('includes/css/jquery.dataTables.min.css', __FILE__));
|
316 |
wp_enqueue_style( 'mo_wpns_button_settings_style' , plugins_url('includes/css/button_styles.css',__FILE__));
|
317 |
wp_enqueue_style( 'mo_wpns_popup_settings_style' , plugins_url('includes/css/popup.css',__FILE__));
|
318 |
+
wp_enqueue_style( 'mo_2fa_time_settings_style' , plugins_url('includes/css/datetime-style-settings.min.css', __FILE__));
|
319 |
$file = plugin_dir_path( __FILE__ ) .'controllers'.DIRECTORY_SEPARATOR. 'pointers.php';
|
320 |
|
321 |
$tour_started=get_option('mo2f_tour_started',0);
|
354 |
wp_enqueue_script( 'mo_wpns_min_qrcode_script', plugins_url( "/includes/jquery-qrcode/jquery-qrcode.min.js", __FILE__ ) );
|
355 |
wp_enqueue_script('jquery-ui-core');
|
356 |
wp_enqueue_script('jquery-ui-autocomplete');
|
357 |
+
wp_enqueue_script('jquery-ui-datepicker');
|
358 |
wp_enqueue_script('mo_2fa_select2_script', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js');
|
359 |
+
wp_enqueue_script('mo_2fa_timepicker_script', 'https://cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.js');
|
360 |
}
|
361 |
}
|
362 |
|
479 |
require('handler/security_features.php');
|
480 |
require('handler/feedback_form.php');
|
481 |
require('handler/recaptcha.php');
|
482 |
+
require('handler/login.php');
|
483 |
require('handler/twofa/setup_twofa.php');
|
484 |
require('handler/twofa/two_fa_settings.php');
|
|
|
485 |
require('handler/twofa/two_fa_utility.php');
|
486 |
require('handler/twofa/two_fa_constants.php');
|
487 |
require('handler/registration.php');
|
535 |
function mo_reset_2fa_for_users_by_admin(){
|
536 |
$nonce = wp_create_nonce('ResetTwoFnonce');
|
537 |
if(isset($_GET['action']) && $_GET['action']== 'reset_edit'){
|
538 |
+
$user_id = $_GET['user'];
|
539 |
+
$user_info = get_userdata($user_id);
|
540 |
+
?>
|
541 |
+
<form method="post" name="reset2fa" id="reset2fa" action="<?php echo esc_url('users.php'); ?>">
|
542 |
+
|
543 |
+
<div class="wrap">
|
544 |
+
<h1>Reset 2nd Factor</h1>
|
|
|
|
|
545 |
|
546 |
<p>You have specified this user for reset:</p>
|
547 |
|
548 |
<ul>
|
549 |
<li>ID #<?php echo $user_info->ID; ?>: <?php echo $user_info->user_login; ?></li>
|
550 |
</ul>
|
551 |
+
<input type="hidden" name="userid" value="<?php echo $user_id; ?>">
|
552 |
<input type="hidden" name="miniorange_reset_2fa_option" value="mo_reset_2fa">
|
553 |
<input type="hidden" name="nonce" value="<?php echo $nonce;?>">
|
554 |
<p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="Confirm Reset" ></p>
|
555 |
</div>
|
556 |
</form>
|
557 |
<?php
|
|
|
558 |
}
|
559 |
}
|
560 |
|
582 |
}
|
583 |
}
|
584 |
}
|
|
|
|
|
585 |
}
|
586 |
|
587 |
function mo2f_mapped_email_column_content($value, $column_name, $user_id) {
|
629 |
{
|
630 |
|
631 |
|
632 |
+
$subject = 'Announce it via email on the New Release of 2FA Plugin';
|
633 |
$messages = mail_tem();
|
634 |
$headers = array('Content-Type: text/html; charset=UTF-8');
|
635 |
$email = get_option('admin_email');
|
readme.txt
CHANGED
@@ -1,370 +1,415 @@
|
|
1 |
-
===
|
2 |
|
3 |
-
Contributors:
|
4 |
-
Tags:
|
5 |
Donate link: https://miniorange.com/
|
6 |
Requires at least: 3.0.1
|
7 |
-
Tested up to: 5.
|
8 |
Requires PHP: 5.3.0
|
9 |
-
Stable tag: 5.
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
|
13 |
-
Google Authenticator
|
14 |
|
15 |
== Description ==
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
*
|
28 |
-
*
|
29 |
-
*
|
30 |
-
*
|
31 |
-
*
|
32 |
-
*
|
33 |
-
*
|
34 |
-
*
|
35 |
-
*
|
36 |
-
*
|
37 |
-
*
|
38 |
-
|
39 |
-
|
40 |
-
*
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
*
|
45 |
-
*
|
46 |
-
*
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
*
|
51 |
-
*
|
52 |
-
*
|
53 |
-
*
|
54 |
-
*
|
55 |
-
*
|
56 |
-
*
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
* Google Authenticator
|
67 |
-
*
|
68 |
-
*
|
69 |
-
*
|
70 |
-
*
|
71 |
-
*
|
72 |
-
*
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
=
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
[
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
|
91 |
-
= Google Authenticator ( WP 2FA - two-factor authentication ) Premium Lite Plugin Features =
|
92 |
|
93 |
-
|
94 |
-
|
95 |
-
*
|
96 |
-
* **
|
97 |
-
*
|
98 |
-
*
|
99 |
-
*
|
100 |
-
*
|
101 |
-
*
|
102 |
-
*
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
|
108 |
-
=
|
109 |
|
110 |
-
*
|
111 |
* **Available Authentication Methods:** Google Authenticator, Authy Authenticator, Microsoft Authenticator, LastPass Authenticator, QR Code, Push Notification, Soft Token, Security Questions(KBA), OTP Over Email, OTP Over SMS, OTP Over SMS and Email, Email Verification, Hardware Token. *( SMS and Email credits need to be purchased as per the need)*
|
112 |
-
*
|
|
|
113 |
* **Backup Methods:** KBA(Security Questions), OTP Over Email, Backup Codes
|
114 |
-
*
|
115 |
-
*
|
116 |
-
*
|
117 |
-
*
|
118 |
-
*
|
119 |
-
*
|
120 |
* **Add-Ons Included:** RBA & Trusted Devices Management Add-on, Personalization Add-on and Short Codes Add-on
|
121 |
-
* **Brute force attack prevention, IP Blocking & User login
|
122 |
* File protection & strong password
|
123 |
-
*
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
*
|
133 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
* Custom Email and SMS Templates
|
135 |
-
* Customize 'Powered by' Logo on
|
136 |
* Customize Plugin Icon
|
137 |
* Customize Plugin Name
|
138 |
|
139 |
-
* Short Codes Add-on Features
|
140 |
-
*
|
141 |
-
*
|
142 |
-
* 'Enable Remember Device' from a custom login form to skip 2 factor for trusted devices.
|
143 |
-
* On-Demand ShortCodes for specific functionalities ( like for enabling
|
144 |
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
|
|
|
|
|
|
|
|
149 |
|
150 |
-
<h4>Useful blog posts about two
|
151 |
-
*
|
152 |
-
*
|
153 |
-
* [How to translate WordPress Two-Factor Authentication (WP 2FA/TFA)](https://plugins.miniorange.com/the-plugin-translate-spanish-language-with-2-factor-wordpress)
|
154 |
|
155 |
-
Customized solutions and Active support
|
156 |
|
157 |
-
**Note: The plugin is GDPR Compliant and supports
|
158 |
|
159 |
== Installation ==
|
160 |
|
161 |
= From your WordPress dashboard =
|
162 |
1. Navigate to `Plugins > Add New` from your WP Admin dashboard.
|
163 |
-
2. Search for `miniOrange 2 Factor Authentication
|
164 |
-
3. Install `miniOrange 2 Factor Authentication
|
165 |
|
166 |
= From WordPress.org =
|
167 |
-
1. Search for `miniOrange 2 Factor Authentication
|
168 |
-
2. Unzip and upload the `miniorange-2-factor-authentication
|
169 |
-
3. Activate miniOrange 2 Factor Authentication
|
170 |
|
171 |
-
= Once Activated
|
172 |
1. Select miniOrange 2-Factor ( 2 factor authentication ) from the left menu and follow the instructions.
|
173 |
-
2. Once, you complete your setup. Click on
|
174 |
3. Enter the username and password. After the initial validation, you will be prompted for the 2-factor method you had set up.
|
175 |
-
4. Validate yourself with the 2-factor authentication
|
|
|
|
|
|
|
176 |
|
177 |
-
**Video Guide** :
|
178 |
-
[youtube https://www.youtube.com/watch?v=vVGXjedIaGs]
|
179 |
|
180 |
== Frequently Asked Questions ==
|
181 |
|
182 |
-
= How do I gain access to my website if I get locked out
|
183 |
|
184 |
You can obtain access to your website by one of the below options:
|
185 |
|
186 |
-
1. If you have an additional administrator account whose Two Factor
|
187 |
-
2. If you had
|
188 |
-
3. Rename the plugin from FTP - this disables the
|
189 |
|
190 |
-
For detailed information, Please check on our website. <a href="https://faq.miniorange.com/knowledgebase/
|
191 |
You can also check our video Tutorial:
|
192 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
|
194 |
-
|
195 |
|
196 |
-
|
197 |
|
198 |
-
|
199 |
|
200 |
-
|
201 |
|
202 |
-
|
203 |
|
204 |
-
|
205 |
|
206 |
-
|
207 |
|
208 |
-
|
209 |
|
210 |
-
|
211 |
|
212 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
|
214 |
= 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. =
|
215 |
|
216 |
-
Our Two-Factor plugin is compatible with most of the security plugins, but if it is not working for you. Please submit a query in our Support Section in the plugin or you can contact us at info@xecurify.com.
|
217 |
|
218 |
-
= If you are using any render
|
219 |
|
220 |
-
If you are using Async JS and CSS Plugin. Please go to its settings and add jquery
|
221 |
|
222 |
-
= My
|
223 |
|
224 |
-
|
225 |
|
226 |
-
=
|
227 |
|
228 |
-
You
|
229 |
|
230 |
-
|
231 |
|
232 |
-
|
233 |
-
2. Google Authenticator (WP 2FA/OTP) - Test 2 factor configured
|
234 |
-
3. Google Authenticator (WP 2FA/OTP) - 2 Factor Authentication (2FA) methods available
|
235 |
-
4. Google Authenticator (WP 2FA/OTP) - Google Authenticator login
|
236 |
-
5. Google Authenticator (WP 2FA/OTP) - QR code 2 Factor (2FA) login
|
237 |
-
6. Google Authenticator (WP 2FA/OTP) - miniOrange Authenticator login
|
238 |
-
7. Google Authenticator (WP 2FA/OTP) - Push notification login
|
239 |
-
8. Google Authenticator (WP 2FA/OTP) - Remember device and personalization add-ons
|
240 |
|
241 |
-
|
242 |
|
243 |
-
|
244 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
245 |
-
* Updated Pricing page UI
|
246 |
|
247 |
-
=
|
248 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
249 |
-
* Updated Network Security UI
|
250 |
|
251 |
-
|
252 |
|
253 |
-
== Upgrade Notice ==
|
254 |
|
255 |
-
=
|
256 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
257 |
-
* Updated Pricing page UI
|
258 |
-
|
259 |
-
= 5.5 =
|
260 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
261 |
-
* Updated Network Security UI
|
262 |
-
|
263 |
-
= 5.4.52 =
|
264 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
265 |
-
* Updated Trial Request Form
|
266 |
-
|
267 |
-
= 5.4.51 =
|
268 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
269 |
-
* Trial notification visibility issue fixed
|
270 |
-
|
271 |
-
= 5.4.50 =
|
272 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
273 |
-
* Bug fix - Headers already sent
|
274 |
-
|
275 |
-
= 5.4.49 =
|
276 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
277 |
-
* Trial Notification for Premium Plugins
|
278 |
-
* CSRF Fix
|
279 |
-
|
280 |
-
= 5.4.48 =
|
281 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
282 |
-
* Close button on offer banner
|
283 |
-
|
284 |
-
= 5.4.47 =
|
285 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
286 |
-
* Christmas offer
|
287 |
-
|
288 |
-
= 5.4.46 =
|
289 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
290 |
-
* Black friday offer
|
291 |
-
* Get email notification on the plugin's new release
|
292 |
-
|
293 |
-
= 5.4.45 =
|
294 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
295 |
-
* Added login with the any configured methods
|
296 |
-
* Minor bug fix
|
297 |
-
|
298 |
-
= 5.4.44 =
|
299 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
300 |
-
* Added link to WordPress forum in support form
|
301 |
-
* Minor bug fix
|
302 |
-
|
303 |
-
= 5.4.43 =
|
304 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
305 |
-
* Special offer - Special discount for limited time
|
306 |
-
|
307 |
-
= 5.4.42 =
|
308 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
309 |
-
* Backup Code as a cloud service
|
310 |
-
|
311 |
-
= 5.4.41 =
|
312 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
313 |
-
* Minor UI Changes and Bug Fixes
|
314 |
-
|
315 |
-
= 5.4.40 =
|
316 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
317 |
-
* XSS Vulnerability fix
|
318 |
-
* Added video link for miniOrange Authenticator
|
319 |
-
|
320 |
-
= 5.4.39 =
|
321 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
322 |
-
* Added 2FA setup using user profile option
|
323 |
-
* Support Form UI
|
324 |
-
* 2FA Form support for login with ajax, Elementor Pro, UserPro login forms
|
325 |
-
* Minor bug fixes
|
326 |
-
|
327 |
-
= 5.4.38 =
|
328 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
329 |
-
* Added 2FA setup using user profile option
|
330 |
-
* Setup Wizard for configuring 2FA
|
331 |
-
* 2FA Form support for login with ajax, Elementor Pro, UserPro login forms
|
332 |
-
* Minor bug fixes
|
333 |
-
|
334 |
-
= 5.4.37 =
|
335 |
-
* Google Authenticator - Two factor Authentication (2FA, OTP) :
|
336 |
-
* Minor bug fixes
|
337 |
-
|
338 |
-
= 5.4.36 =
|
339 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
340 |
-
* Remove extra comma
|
341 |
|
342 |
-
|
343 |
-
|
344 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
|
346 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
347 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
348 |
* New User Interface for easy setup
|
349 |
* Added developers logs
|
350 |
* Minor fixes
|
351 |
|
352 |
-
= 5.4.33
|
353 |
-
* Google Authenticator
|
354 |
-
*
|
355 |
-
*
|
356 |
-
* WooCommerce redirect issue fix.
|
357 |
|
358 |
-
= 5.4.32
|
359 |
-
* Google Authenticator
|
360 |
-
*
|
361 |
|
362 |
-
= 5.4.31
|
363 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
364 |
* OTP over Email as two factor fix
|
365 |
* Low Email transaction alert fix
|
366 |
|
367 |
-
= 5.4.30
|
368 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
369 |
* Feedback changes
|
370 |
|
@@ -407,7 +452,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
407 |
* Email and SMS transaction sync
|
408 |
* Feedback form on network deactivate
|
409 |
* Enable/Disable 2FA fix
|
410 |
-
* 2FA added for
|
411 |
|
412 |
= 5.4.22 =
|
413 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
@@ -422,7 +467,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
422 |
* Sanitization of some input values.
|
423 |
|
424 |
= 5.4.20 =
|
425 |
-
* Google Authenticator - Two Factor Authentication (2FA, SMS) :
|
426 |
* Google Authenticator Qr code fix.
|
427 |
* My theme login Login fix.
|
428 |
|
@@ -430,15 +475,15 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
430 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) : Google Authenticator cloud fix.
|
431 |
|
432 |
= 5.4.18 =
|
433 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
434 |
-
*
|
435 |
|
436 |
= 5.4.17 =
|
437 |
-
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
438 |
*Digimember Form Support
|
439 |
*Memberpress Form Support
|
440 |
*SMS Verification Support
|
441 |
-
*OTP Verification on
|
442 |
|
443 |
= 5.4.16 =
|
444 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) : Quick form fix.
|
@@ -446,49 +491,48 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
446 |
= 5.4.15 =
|
447 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
448 |
* Theme My Login plugin Support
|
449 |
-
* Ultimate
|
450 |
-
*
|
451 |
-
* Ultimate
|
452 |
* Restrict Content Pro Login and Registration
|
453 |
-
|
454 |
= 5.4.14 =
|
455 |
-
* Google Authenticator - Two Factor Authentication (2FA,
|
456 |
|
457 |
= 5.4.13 =
|
458 |
-
* Google Authenticator - Two Factor Authentication (2FA,
|
459 |
|
460 |
= 5.4.11 =
|
461 |
-
* Google Authenticator - Two Factor Authentication (2FA,
|
462 |
|
463 |
= 5.4.9 =
|
464 |
-
* Google Authenticator - Two Factor Authentication (2FA,
|
465 |
|
466 |
= 5.4.8 =
|
467 |
-
* Google Authenticator - Two Factor Authentication (2FA,
|
468 |
-
|
469 |
= 5.4.7 =
|
470 |
-
* Google Authenticator - Two Factor Authentication (2FA
|
471 |
|
472 |
= 5.4.6 =
|
473 |
* Google Authenticator - Two Factor Authentication (2FA) : Improving Google Authenticator and adding Payment options.
|
474 |
|
475 |
= 5.4.5 =
|
476 |
-
* Google Authenticator - Two Factor Authentication (2FA
|
477 |
|
478 |
= 5.4.4 =
|
479 |
-
* Google Authenticator - Two Factor Authentication (2FA
|
480 |
|
481 |
= 5.4.3 =
|
482 |
-
* Google Authenticator - Two Factor Authentication (2FA,
|
483 |
|
484 |
= 5.4.2 =
|
485 |
-
* Google Authenticator - Two Factor Authentication (2FA
|
486 |
|
487 |
= 5.4.1 =
|
488 |
* Google Authenticator - Two Factor Authentication (2FA) : Headers sent issue is security firewall.
|
489 |
|
490 |
= 5.4.0 =
|
491 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor FAQ Fix and OTP code
|
492 |
|
493 |
= 5.3.26 =
|
494 |
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor On-premise FAQ update.
|
@@ -497,11 +541,11 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
497 |
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor On-premise support form.
|
498 |
|
499 |
= 5.3.24 =
|
500 |
-
* Google Authenticator - Two Factor Authentication (2FA) : On-premise two factor released with multiple
|
501 |
|
502 |
= 5.3.23 =
|
503 |
* Google Authenticator - Two Factor Authentication (2FA) : Scanner : Timing and caching issue fix.
|
504 |
-
* Disable 2fa on
|
505 |
* Login with Username only fix.
|
506 |
|
507 |
= 5.3.22 =
|
@@ -517,7 +561,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
517 |
* Google Authenticator - Two Factor Authentication (2FA) : Security : Giving users choice of two factor.
|
518 |
|
519 |
= 5.3.18 =
|
520 |
-
* Google Authenticator - Two Factor Authentication (2FA) :
|
521 |
|
522 |
= 5.3.17 =
|
523 |
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Virus : Improved Stop Scan.
|
@@ -541,11 +585,12 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
541 |
* Google Authenticator - Two Factor Authentication (2FA) : Security : Limiting Firewall, Malware, backup and login security for users not needing it.
|
542 |
|
543 |
= 5.3.10 =
|
544 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Security : Moved to Old WAF version minor issues
|
545 |
|
546 |
= 5.3.9 =
|
547 |
* Google Authenticator - Two Factor Authentication (2FA) : Security : Web application Firewall Sql Injections report and monitoring.
|
548 |
|
|
|
549 |
= 5.3.8 =
|
550 |
* Google Authenticator - Two Factor Authentication (2FA) : Security : Malware Scanner Fix.
|
551 |
|
@@ -577,17 +622,17 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
577 |
* Google Authenticator - Two Factor Authentication (2FA) : Fixed conflict and filter issues.
|
578 |
|
579 |
= 5.2.5 =
|
580 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Some warnings in remote
|
581 |
|
582 |
= 5.2.4 =
|
583 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Removed curl calls and
|
584 |
|
585 |
= 5.2.3 =
|
586 |
* Google Authenticator - Two Factor Authentication (2FA) : Fix for some users facing issues in api calls.
|
587 |
|
588 |
= 5.2.2 =
|
589 |
* Google Authenticator - Two Factor Authentication (2FA) : Adding File Protection and Strong Password feature.
|
590 |
-
|
591 |
= 5.2.1 =
|
592 |
* Google Authenticator - Two Factor Authentication (2FA) : UI changes for description.
|
593 |
|
@@ -604,7 +649,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
604 |
* Google Authenticator - Two Factor Authentication (2FA) : Minor Bug fix.
|
605 |
|
606 |
= 5.1.19 =
|
607 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Adding basic Security Features
|
608 |
|
609 |
= 5.1.18 =
|
610 |
* Google Authenticator - Two Factor Authentication (2FA) : Object access error for lower PHP versions.
|
@@ -658,7 +703,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
658 |
* Google Authenticator - Two Factor Authentication (2FA) : Minor changes.
|
659 |
|
660 |
= 5.1.0 =
|
661 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Added new user plans
|
662 |
|
663 |
= 5.0.17 =
|
664 |
* Google Authenticator - Two Factor Authentication (2FA) : Minor Bug fix.
|
@@ -670,7 +715,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
670 |
* Google Authenticator - Two Factor Authentication (2FA) : Added Google Authenticator option in the WP login page itself.
|
671 |
|
672 |
= 5.0.14 =
|
673 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Bug
|
674 |
|
675 |
= 5.0.13 =
|
676 |
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fix and code optimization.
|
@@ -712,7 +757,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
712 |
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix.
|
713 |
|
714 |
= 5.0.0 =
|
715 |
-
* Google Authenticator - Two Factor Authentication (2FA) : New UI Interface, 2
|
716 |
* This is a major release.
|
717 |
|
718 |
= 4.6.2 =
|
@@ -725,19 +770,19 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
725 |
* Google Authenticator - Two Factor Authentication (2FA) : Bug fixes for customers who were getting redirected to the login page after the two factor authentication.
|
726 |
|
727 |
= 4.5.8 =
|
728 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Tested
|
729 |
|
730 |
= 4.5.7 =
|
731 |
* Google Authenticator - Two Factor Authentication (2FA) : Minor bug fixes.
|
732 |
|
733 |
= 4.5.6 =
|
734 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Tested
|
735 |
|
736 |
= 4.5.5 =
|
737 |
* Google Authenticator - Two Factor Authentication (2FA) : 404 bug fixes.
|
738 |
|
739 |
= 4.5.4 =
|
740 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Better UI of Login Pages, Fixed Redirection issue. Fixed the error in the last version (4.5.3) for the customers who were getting undefined action
|
741 |
|
742 |
= 4.5.3 =
|
743 |
* Google Authenticator - Two Factor Authentication (2FA) : Changed UI of the Login Pages, Redirect to Login Page bug fixes.
|
@@ -746,7 +791,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
746 |
* Google Authenticator - Two Factor Authentication (2FA) : Readme Update: Description Update
|
747 |
|
748 |
= 4.5.1 =
|
749 |
-
* Google Authenticator - Two Factor Authentication (2FA) : Updated the new
|
750 |
|
751 |
= 4.5.0 =
|
752 |
* Google Authenticator - Two Factor Authentication (2FA) : Fix Google Authenticator configuration issue.
|
@@ -763,6 +808,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
763 |
= 4.4.6 =
|
764 |
* Google Authenticator - Two Factor Authentication (2FA) : Instructions for login in case user get locked out.
|
765 |
|
|
|
766 |
= 4.4.5 =
|
767 |
* Google Authenticator - Two Factor Authentication (2FA) : Fixed the issue of session variable on the login with username page.
|
768 |
|
@@ -774,7 +820,576 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
774 |
|
775 |
= 4.4 =
|
776 |
* Google Authenticator - Two Factor Authentication (2FA):
|
777 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
778 |
* Compatibility with Limit Login Attempts.
|
779 |
* New User Interface for login.
|
780 |
|
@@ -788,10 +1403,10 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
788 |
* Google Authenticator - Two Factor Authentication (2FA, MFA): Updated miniOrange APIs.
|
789 |
|
790 |
= 4.2.9 =
|
791 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA): Tested
|
792 |
|
793 |
= 4.2.7 =
|
794 |
-
* Google Authenticator - Two Factor Authentication (2FA, MFA): Session
|
795 |
|
796 |
= 4.2.6 =
|
797 |
* Google Authenticator - Two Factor Authentication (2FA, MFA): Compatible with wordpress caching.
|
@@ -820,7 +1435,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
820 |
|
821 |
= 4.1.8 =
|
822 |
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
823 |
-
* Changed the location of images used for
|
824 |
|
825 |
= 4.1.7 =
|
826 |
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
@@ -843,13 +1458,13 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
843 |
= 4.1.3 =
|
844 |
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
845 |
* Fixed CSS Conflict with the plugins in the admin dashboard.
|
846 |
-
* More intuitive UI for
|
847 |
* Tested front-end login with themes like wordpress default theme,
|
848 |
-
|
849 |
|
850 |
= 4.1.2 =
|
851 |
* Google Authenticator - Two Factor Authentication ( 2FA ): Google Authenticator for Windows phone
|
852 |
-
* Fixed CSS conflict with front-end of site if
|
853 |
|
854 |
= 4.1.1 =
|
855 |
* Google Authenticator - Two Factor Authentication ( 2FA ): Adding Validation in choosing Security Questions (KBA).
|
@@ -876,7 +1491,7 @@ For older changelog entries, please see the [additional changelog.txt file](http
|
|
876 |
* Google Authenticator - Two Factor Authentication ( 2FA ): Features added.
|
877 |
* KBA as backup method.
|
878 |
* mobile browser support.
|
879 |
-
* more intuitive UI for
|
880 |
|
881 |
= 3.8 =
|
882 |
* Google Authenticator - Two Factor Authentication ( 2 Factor ): Bug Fix for roles.
|
@@ -912,7 +1527,7 @@ More descriptive setup messages and UI changes.
|
|
912 |
* Google Authenticator.
|
913 |
* Device Id (Remember device).
|
914 |
* Choice given to admin to enable specific authentication methods for users.
|
915 |
-
* Two Factor support for
|
916 |
* Short Code for various customized fronted login.
|
917 |
* More intuitive UI and descriptive instructions.
|
918 |
|
@@ -962,4 +1577,4 @@ More descriptive setup messages and UI changes.
|
|
962 |
* Google Authenticator - Two Factor Authentication ( 2FA ): Added email ID verification during registration.
|
963 |
|
964 |
= 1.0.0 =
|
965 |
-
|
1 |
+
=== Google Authenticator - WordPress Two Factor Authentication (2FA , MFA) ===
|
2 |
|
3 |
+
Contributors: cyberlord92, twofactor, hsn97
|
4 |
+
Tags: google authenticator, two factor authentication, two factor, 2FA, two-step verification, mobile verification, OTP, mobile verification, two factor, Two step verification, TFA, MFA, 2 factor authentication, Remember Device, OTP,WordPress otp, two step authentication,Clef,SMS, email, signup security, two factor auth, Mobile Authentication, strong authentication, 2 step authentication, mobile verification,Multifactor authentication, passwordless login, one time passcode, soft token Authentication, QR Code Authentication, email verification, KBA, Security Questions,2FA, login OTP, login with SMS, mobile login, phone login, OTP login, mobile verification,knowledge based authentication,authy, authy two factor,yubico,Two-Factor Authentication,WordPress otp, security,user security, Twilio WordPress, SMS gateway, Solutions Infini, Clickatell, BulkSMS, MSG91, Nexmo, SMS Country, message, woocommerce, website security, login security, multi factor authentication, multi factor,wordfence, IP Blocking, IP Whitelisting, login Audits, woocommerce, SMS login, passwordless login, auth, login with OTP WordPress, OTP Over SMS and Email, two-step authentication, Mobile Authentication, passwordless login, login without password, passwordless authentication, secure login, temporary login, temporary access, one time passcode, email verification, security, website security, login security, multi-factor authentication, woocommerce, smartphone, WordPress otp, register with OTP, user OTP verification, SMS OTP, OTP Email, registration with OTP verification, registration verification,smartphone authentication
|
5 |
Donate link: https://miniorange.com/
|
6 |
Requires at least: 3.0.1
|
7 |
+
Tested up to: 5.6
|
8 |
Requires PHP: 5.3.0
|
9 |
+
Stable tag: 5.4.34
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
|
13 |
+
Google Authenticator, Two Factor Authentication (2 Factor), OTP verificaion - SMS and Email, Apps like Microsoft, Duo, LastPass & more on login and Registration for all forms. Google AUthenticator also Supports QR Code, Push Notification and Security Questions along with the Google Authenticator itself.
|
14 |
|
15 |
== Description ==
|
16 |
|
17 |
+
Google Authenticator - Two Factor Authentication (2FA) plugin provides a completely Secure login to your WordPress website. Google Authenticator- Two Factor Authentication (2FA) is a FREE, Simple & very easy to setup plugin. Google Authenticator provides two factor authentication (2FA, MFA) whenever login to your WordPress website ensuring no unauthorised access to your website. Google Authenticator can be configured for any TOTP based Authentication Method for providing addtional layer of security of Two Factor Authentication.
|
18 |
+
|
19 |
+
= User Identity Verification or OTP Verification =
|
20 |
+
Login and Registration: Verify users on login and Registration with different authentication methods like Google Authenticator, SMS Verification, Email, Authy Authenticator, Duo Authenticator, Microsoft Authenticator, TOTP Based Authenticator, Security Questions and many others. Easy OTP Verification with SMS Verification and Email Verification.
|
21 |
+
|
22 |
+
= Google Authenticator and other 2 Factor ( 2FA ) sync on multiple websites =
|
23 |
+
You would not need to configure Google Authenticator and other Two Factor Authentication ( 2FA ) methods from second site onword. Just login with miniOrange account and your 2FA will automatically get set. This is available for Google Authenticator, Duo Authenticator, Microsoft Authenticator, Securty Questions, LastPass, Authy, miniOrange methods, OTP over SMS, OTP over Email. It is supported only if you are using our cloud services of 2 Factor.
|
24 |
+
|
25 |
+
== Plugin Integrations and Support for all methods of two factor like Google Authenticator ==
|
26 |
+
* [Woocommerce](https://wordpress.org/plugins/woocommerce/) (Login Woocommerce using Google Authenticator - Two Factor Authentication (2FA))
|
27 |
+
* [BuddyPress form](https://wordpress.org/plugins/buddypress/) (Login BuddyPress using Google Authenticator - Two Factor Authentication (2FA))
|
28 |
+
* [bbpress form](https://wordpress.org/plugins/bbpress/) (Login bbpress using Google Authenticator - Two Factor Authentication (2FA))
|
29 |
+
* [Digimember](https://digimember.com/) (Login Digimember using Google Authenticator - Two Factor Authentication (2FA))
|
30 |
+
* [Paid Memberships Pro](https://wordpress.org/plugins/paid-memberships-pro/) (Login Paid Memberships Pro using Google Authenticator - Two Factor Authentication (2FA))
|
31 |
+
* [Memberpress Pro](https://memberpress.com/) (Login Memberpress Pro using Google Authenticator - Two Factor Authentication (2FA))
|
32 |
+
* [Ultimate Member – User Profile & Membership Form](https://wordpress.org/plugins/ultimate-member/) (Login Ultimate Member – User Profile & Membership using Google Authenticator - Two Factor Authentication (2FA))
|
33 |
+
* [LearnDash](https://www.learndash.com/) (Login LearnDash using Google Authenticator - Two Factor Authentication (2FA))
|
34 |
+
* [LearnPress](https://wordpress.org/plugins/learnpress/) (Login LearnPress using Google Authenticator - Two Factor Authentication (2FA))
|
35 |
+
* [LifterLMS](https://wordpress.org/plugins/lifterlms/) (Login LifterLMS using Google Authenticator - Two Factor Authentication (2FA))
|
36 |
+
* [Dokan](https://wordpress.org/plugins/dokan-lite/) (Login Dokan using Google Authenticator - Two Factor Authentication (2FA))
|
37 |
+
* And many more
|
38 |
+
|
39 |
+
== WordPress login and registration forms support and integration for all methods of two factor authentication like Google Authenticator ==
|
40 |
+
* [Restrict Content Pro Form](https://wordpress.org/plugins/restrict-content/) (Register and Login Restrict Content Pro using Google Authenticator - Two Factor Authentication (2FA))
|
41 |
+
* [My theme Login Form](https://wordpress.org/plugins/theme-my-login/) (Login My theme Login using Google Authenticator - Two Factor Authentication (2FA))
|
42 |
+
* [User Registration – Custom Registration Form](https://wordpress.org/plugins/bbpress/) (Register and Login User Registration – Custom Registration using Google Authenticator - Two Factor Authentication (2FA))
|
43 |
+
* [Custom Login Page Customizer Form](https://wordpress.org/plugins/loginpress/) (Login Custom Login Page Customizer using Google Authenticator - Two Factor Authentication (2FA))
|
44 |
+
* [Admin Custom Login Form](https://wordpress.org/plugins/admin-custom-login/) (Login Admin Custom Login using Google Authenticator - Two Factor Authentication (2FA))
|
45 |
+
* [RegistrationMagic – Custom Registration Forms](https://wordpress.org/plugins/custom-registration-form-builder-with-submission-manager/) (Register and Login RegistrationMagic – Custom Registration using Google Authenticator - Two Factor Authentication (2FA))
|
46 |
+
* And many more
|
47 |
+
|
48 |
+
= Third Party Custom SMS Gateway =
|
49 |
+
Premium plugin supports any third party custom SMS Gateway. If you don't have your own SMS gateway you can use miniOrange gateway. Send SMS all over the world.
|
50 |
+
* Some Famous Gateways Supported:
|
51 |
+
* Twilio : [Twilio](https://www.twilio.com/)
|
52 |
+
* Clickatell : [Clickatell](https://www.clickatell.com/)
|
53 |
+
* ClickSend : [ClickSend](https://www.clicksend.com/)
|
54 |
+
* SendGrid : [SendGrid](https://sendgrid.com/)
|
55 |
+
* Plivo : [Plivo](https://www.plivo.com/)
|
56 |
+
* GatewayApi : [GatewayApi](https://gatewayapi.com/)
|
57 |
+
|
58 |
+
Others not listed gateway can be tested on our site, Test your Gateway: [Custom Gateway](https://login.xecurify.com/moas/login?redirectUrl=https://login.xecurify.com/moas/admin/customer/smsconfig)
|
59 |
+
|
60 |
+
= All Registartion Forms Supported =
|
61 |
+
Google Authenticator - Two factor authentication( 2 Factor ) is available for all Forms. You can enable OTP Verification on all Registration forms and Google Authenticator, Security Questions, Prevent Account Sharing, Push Notifications on all the Login forms to verify users. Use this shortcode for Registration([mo2f_enable_register]). Settings in <b>Two Factor -> Registration Forms</b>.
|
62 |
+
|
63 |
+
|
64 |
+
= FREE Plugin Features =
|
65 |
+
* Simplified & easy user interface to setup Google Authenticator and other Two Factor Authentication ( 2FA ) methods.
|
66 |
+
* Google Authenticator - Two Factor Authentication (2FA) for **3 User** forever FREE!
|
67 |
+
* **Variety of Two Factor Authentication Methods:** Any App supporting TOTP algorithm like Google Authenticator, Authy Authenticator, LastPass Authenticator, Microsoft Authenticator, QR Code, Push Notification, Soft Token and Security Questions(KBA)
|
68 |
+
* Includes Language Translation Support. Supports a wide variety of languages for all methods of 2 factor like Google Authenticator
|
69 |
+
* Passwordless login or login with phone number, supported for Google Authenticator and other 2 Factor authentication methods.
|
70 |
+
* This plugin Supports standard TOTP + HOTP protocols for Authentication Methods. Any TOTP protocol based authenticator app can be configured using Google Authenticator option in the plugin.
|
71 |
+
* Two Factor Authentication (2FA) allows authentication on login page itself for Google Authenticator & miniOrange Soft Token.
|
72 |
+
* Brute force attack prevention & IP Blocking.
|
73 |
+
* User login Monitorning with and without two-factor authentication(2FA)
|
74 |
+
* RCP Login and Registration Suppport with all login 2 factor methods like Google Authenticator, OTP Over SMS, QR code Authentication, login with Email for Login.
|
75 |
+
* OTP Verification of Ulimate Member Registartion form with methods like OTP Over SMS and Email, QR code Authentication.
|
76 |
+
* Recovery codes in case you are locked out for all Two Factor Authentication (TFA) methods like Google Authenticator, SMS verification,
|
77 |
+
|
78 |
+
= Standard Lite Plugin Features =
|
79 |
+
|
80 |
+
* Google Authenticator - Two Factor Authentication (2FA) for all users and all user roles *( Site-based pricing )*
|
81 |
+
* **Available Two Factor Authentication Methods:** Google Authenticator, Authy Authenticator, Microsoft Authenticator, LastPass Authenticator, Security Questions(KBA), OTP Over Email, OTP Over SMS, Email Verification. *( SMS credits need to be purchased as per the need)*
|
82 |
+
* Includes language Translation Support. Supports wide variety of languages.
|
83 |
+
* **Multiple Login Options:** Username + password + two-factor (or) Username + two-factor i.e. Passwordless login. [Guide](https://docs.miniorange.com/documentation/login-username-2nd-factor-2)
|
84 |
+
* **Unlimitted Email transactions:** Unlimitted Email transactions with your SMTP server.
|
85 |
+
* **Backup Method:** KBA(Security Questions) For all TFA methods like Google Authenticator, etc.
|
86 |
+
* Multisite compatible.
|
87 |
+
* User role based redirection after Login [Guide](https://docs.miniorange.com/documentation/custom-redirect-login-url), Customize account name in Google Authenticator app [Guide](https://docs.miniorange.com/documentation/google-authenticator-app-name)
|
88 |
+
* Custom Security Questions (KBA) [Guide](https://docs.miniorange.com/documentation/custom-security-questions)
|
89 |
+
|
90 |
+
= Premium Lite Plugin Features =
|
91 |
+
|
92 |
+
* Google Authenticator - Two Factor Authentication (2FA) for all users and all user roles *( Site-based pricing )*
|
93 |
+
* **Available Two Factor Authentication Methods:** Google Authenticator, Authy Authenticator, Microsoft Authenticator, LastPass Authenticator, Security Questions(KBA), OTP Over Email, OTP Over SMS, Email Verification, Mobile Verification. *( SMS credits need to be purchased as per the need)*
|
94 |
+
* Includes language Translation Support. Supports wide variety of languages.
|
95 |
+
* **Multiple Login Options:** Username + password + two-factor (or) Username + two-factor i.e. Passwordless login. [Guide](https://docs.miniorange.com/documentation/login-username-2nd-factor-2)
|
96 |
+
* **Unlimitted Email transactions:** Unlimitted Email transactions with your SMTP server.
|
97 |
+
* **Backup Method:** KBA(Security Questions) , OTP Over Email, Backup codes For all Two Factor Authentication ( TFA ) methods like Google Authenticator, etc.
|
98 |
+
* Multisite compatible.
|
99 |
+
* Two Factor Authentication ( TFA ) for Custom login forms like User Pro, login with ajax, Theme my login, etc with all authentication methods like Google Authenticator, mobile Verification with SMS, etc.
|
100 |
+
* User role based redirection after Login [Guide](https://docs.miniorange.com/documentation/custom-redirect-login-url), Customize account name in Google Authenticator app [Guide](https://docs.miniorange.com/documentation/google-authenticator-app-name)
|
101 |
+
* Custom Security Questions (KBA) [Guide](https://docs.miniorange.com/documentation/custom-security-questions)
|
102 |
+
* Role based 2 Factor - Different 2 factor like Google Authenticator, OTP Over SMS and Email, Authy Authenticator, etc based on your role [Guide](https://docs.miniorange.com/documentation/specific-set-authentication-methods-based-role)*
|
103 |
+
* Force Two factor for users [Guide](https://docs.miniorange.com/documentation/enforce-2fa-users)
|
104 |
+
* Email notification to users asking them to set up Two Factor Authentication (2FA) [Guide](https://docs.miniorange.com/documentation/want-send-email-notification-users-setting-2-factor)
|
105 |
+
* Set Privacy Policy for users [Guide](https://docs.miniorange.com/documentation/privacy-policy-site)
|
106 |
+
* App Specific Password to login from mobile Apps
|
107 |
+
* Remember Device for all methods like Google Authenticator, Mobile verification with SMS, etc [Guide](https://docs.miniorange.com/documentation/remember-my-device)
|
108 |
+
* **Add-Ons Included:** RBA & Trusted Devices Management Add-on, Personalization Add-on and Short Codes Add-on
|
109 |
|
|
|
110 |
|
111 |
+
= Standard Plugin Features =
|
112 |
+
|
113 |
+
* Google Authenticator - Two Factor Authentication (2FA) for Users as per the upgrade *( User-based pricing )*
|
114 |
+
* **Available Authentication Methods:** Google Authenticator, Authy Authenticator, Microsoft Authenticator, LastPass Authenticator, QR Code, Push Notification, Soft Token, Security Questions(KBA), OTP Over Email, OTP Over SMS, OTP Over SMS and Email, Email Verification. *( SMS credits need to be purchased as per the need)*
|
115 |
+
* Includes language Translation Support. Supports wide variety of languages.
|
116 |
+
* **Multiple Login Options:** Username + password + two-factor (or) Username + two-factor i.e. Passwordless login. [Guide](https://docs.miniorange.com/documentation/login-username-2nd-factor-2)
|
117 |
+
* **Backup Method:** KBA(Security Questions)
|
118 |
+
* Multisite compatible.
|
119 |
+
* User role based redirection after Login [Guide](https://docs.miniorange.com/documentation/custom-redirect-login-url), Customize account name in Google Authenticator app [Guide](https://docs.miniorange.com/documentation/google-authenticator-app-name)
|
120 |
+
* Custom Security Questions (KBA) [Guide](https://docs.miniorange.com/documentation/custom-security-questions)
|
121 |
+
|
122 |
+
= Premium Plugin Features =
|
123 |
+
|
124 |
+
* Google Authenticator - Two Factor Authentication (2FA) for Users as per the upgrade *( User-based pricing )*
|
125 |
+
* **Available Authentication Methods:** Google Authenticator, Authy Authenticator, Microsoft Authenticator, LastPass Authenticator, QR Code, Push Notification, Soft Token, Security Questions(KBA), OTP Over Email, OTP Over SMS, OTP Over SMS and Email, Email Verification, Hardware Token, Whatsapp based 2fa(Add-on), Telegram Based 2fa. *( SMS and Email credits need to be purchased as per the need)*
|
126 |
+
* Language Translation Support
|
127 |
+
* **Multiple Login Options:** Username + password + two-factor (or) Username + two-factor i.e. Passwordless login [Guide](https://docs.miniorange.com/documentation/login-username-2nd-factor-2)
|
128 |
+
* **Backup Methods:** KBA(Security Questions), OTP Over Email, Backup Codes [Guide](https://docs.miniorange.com/documentation/want-configure-backup-methods-users-can-configure-case-locked-site-not-able-log)
|
129 |
+
* Multisite compatible.
|
130 |
+
* Force Two factor authentication for users [Guide](https://docs.miniorange.com/documentation/enforce-2fa-users)
|
131 |
+
* Email notification to users asking them to set up Two Factor Authentication (2FA) [Guide](https://docs.miniorange.com/documentation/want-send-email-notification-users-setting-2-factor)
|
132 |
+
* User role based redirection after Login [Guide](https://docs.miniorange.com/documentation/custom-redirect-login-url), Custom Security Questions (KBA) [Guide](https://docs.miniorange.com/documentation/custom-security-questions), Customize account name in Google Authenticator app [Guide](https://docs.miniorange.com/documentation/google-authenticator-app-name).
|
133 |
+
* Enable Google Authenticator - Two Factor Authentication (2FA) for specific Users/User Roles [Guide](https://docs.miniorange.com/documentation/enable-two-factor-based-roles)
|
134 |
+
* Choose specific two factor authentication methods for Users [Guide](https://docs.miniorange.com/documentation/specific-set-authentication-methods-based-role)
|
135 |
+
* Set Privacy Policy for users [Guide](https://docs.miniorange.com/documentation/privacy-policy-site)
|
136 |
+
* App Specific Password to login from mobile Apps
|
137 |
+
* Remember Device to skip the two factor authentication( 2FA ) for trusted devices [Guide](https://docs.miniorange.com/documentation/remember-my-device)
|
138 |
+
* **Add-Ons Included:** RBA & Trusted Devices Management Add-on, Personalization Add-on and Short Codes Add-on
|
139 |
|
140 |
+
= Enterprise Plugin Features =
|
141 |
|
142 |
+
* Google Authenticator - Two Factor Authentication (2FA) for Users as per the upgrade *( User-based pricing )*
|
143 |
* **Available Authentication Methods:** Google Authenticator, Authy Authenticator, Microsoft Authenticator, LastPass Authenticator, QR Code, Push Notification, Soft Token, Security Questions(KBA), OTP Over Email, OTP Over SMS, OTP Over SMS and Email, Email Verification, Hardware Token. *( SMS and Email credits need to be purchased as per the need)*
|
144 |
+
* Language Translation Support
|
145 |
+
* **Multiple Login Options:** Username + password + two factor Authentication (or) Username + two factor authentication i.e. Passwordless login.
|
146 |
* **Backup Methods:** KBA(Security Questions), OTP Over Email, Backup Codes
|
147 |
+
* Multisite compatible.
|
148 |
+
* Email notification to users asking them to set up Google Authenticator - Two Factor Authentication (2FA).
|
149 |
+
* User role based redirection after Login, Custom Security Questions (KBA), Customize account name in Google Authenticator app.
|
150 |
+
* Enable Two Factor Authentication (2FA) for specific Users/User Roles
|
151 |
+
* Choose specific two factor authentication methods for Users
|
152 |
+
* App Specific Password to login from mobile Apps
|
153 |
* **Add-Ons Included:** RBA & Trusted Devices Management Add-on, Personalization Add-on and Short Codes Add-on
|
154 |
+
* **Brute force attack prevention, IP Blocking & User login Monitorning. **
|
155 |
* File protection & strong password
|
156 |
+
* Monitorning current two factor authentication (2 Factor) method of all the users in the plugin.
|
157 |
+
= PASSWORDLESS LOGIN =
|
158 |
+
Passwordless login is a new way of login in which you and your users can login without entering the password. The login can be done by username and 2 factor or only username which can be decided based on the user role. If a role is not allowed for passwordless login they will login with password and username.
|
159 |
+
|
160 |
+
== Prevent Account Sharing Between Users ==
|
161 |
+
Many video sharing and E-learning platforms want to prevent sharing of account between the users. This can be done using miniOrange Two factor plugin (TFA) with methods like QR code Authentication , Mobile Verification, etc. Also, e-learning portals can use this to their advantage. It can be used on any websites which create and sell courses. It can be integrated with plugins like Learndash.
|
162 |
+
Other sites like premium video content or any premium content where you want users not to share passwords between friends and Family then you can go for this solution. Multiple two factor authentication methods are supported to achieve prevent account sharing.
|
163 |
+
|
164 |
+
= Additional Features other than the two factor authentication ( 2FA ) =
|
165 |
+
* **Complete Web Security suite to protect wordpress from any attacks**
|
166 |
+
* **Web Application Firewall (WAF) : Wordpress Firewall to protect your site**
|
167 |
+
* **OWASP TOP 10 Protection**
|
168 |
+
* **Login Protection : Spam and Login Protection**
|
169 |
+
* **Malware scanner: Detects any virus, malware and trojan**
|
170 |
+
* **Backup: Taking Encrypted Backup with local storage and cloud storage**
|
171 |
+
* **Two Factor Authentication : 2FA and MFA**
|
172 |
+
* **Limit Login Attempts to stop password guessing**
|
173 |
+
* **Realtime Global IP Blocing**
|
174 |
+
* **Limit Rate of Request : Protecting resources from any security hole exploit**
|
175 |
+
* **Crawler Detection and blocking**
|
176 |
+
* **Blocking IP and Attacks**
|
177 |
+
* **Country Blocking and Browser Blocking**
|
178 |
+
* **Brute Force Attacks prevention to stop password hack**
|
179 |
+
* **Captcha for Bot Detection**
|
180 |
+
* **Google Recaptcha**
|
181 |
+
* **Login Form Protection**
|
182 |
+
* **Registration Form Protection**
|
183 |
+
* **Integration with different plugin - Woo commerce, buddypress, ultimate member and others**
|
184 |
+
* **Reporting**
|
185 |
+
* **Audit Log**
|
186 |
+
|
187 |
+
Check all the features here: [miniOrange Website](https://security.miniorange.com/)
|
188 |
+
|
189 |
+
= Why do you need to register? =
|
190 |
+
|
191 |
+
miniOrange Two factor authentication Plugin (TFA) uses miniOrange APIs to communicate between your WP and miniOrange. To keep this communication secure, we ask you to register and assign you API keys specific to your account. This way your account and users calls can be only accessed by API keys assigned to you.
|
192 |
+
Adding to this, you can also use the same account on multiple applications and your users do not have to maintain multiple accounts or 2 factor like Google Authenticator. Single code generated in Google Authenticator will be enough to login to all sites. With this you can also achieve sync of 2 factor authentication on multiple sites.
|
193 |
+
|
194 |
+
|
195 |
+
= Add Ons [Applicable for Free and Standard Plans, Inclusive in the Premium Plan] =
|
196 |
+
|
197 |
+
* RBA & Trusted Devices Management Add-on Features
|
198 |
+
* Remember Device to skip the two factor authentication ( 2 Factor ) from the trusted devices.
|
199 |
+
* Set Device Limit for the users to login
|
200 |
+
* IP Restriction: Limit users to login from specific IPs
|
201 |
+
* Personalization Add-on Features to customize your 2 factor authentication pages
|
202 |
+
* Custom UI of Two Factor Authentication (2FA) popups
|
203 |
* Custom Email and SMS Templates
|
204 |
+
* Customize 'Powered by' Logo on two factor authentication page
|
205 |
* Customize Plugin Icon
|
206 |
* Customize Plugin Name
|
207 |
|
208 |
+
* Short Codes Add-on Features
|
209 |
+
* Option to turn on/off 2 factor (two factor authentication) by user
|
210 |
+
* Option to configure the Google Authenticator and Security Questions by user
|
211 |
+
* Option to 'Enable Remember Device' from a custom login form to skip 2 factor for trusted devices.
|
212 |
+
* On-Demand ShortCodes for specific functionalities ( like for enabling 2FA (2 Factor authentication) for specific pages)
|
213 |
|
214 |
+
= Apps Supported by the two factor authentication plugin =
|
215 |
+
* Google Authenticator
|
216 |
+
* miniOrange Authenticator
|
217 |
+
* Duo Authenticator
|
218 |
+
* Microsoft Authenticator
|
219 |
+
* Authy 2 Factor Authenticator
|
220 |
+
* LastPass Authenticator
|
221 |
+
* FreeOTP Authenticator
|
222 |
|
223 |
+
<h4>Useful blog posts about two factor authenticaion ( 2FA ) plugin </h4>
|
224 |
+
*[Beginner’s Guide: How to Add Two Factor Authentication to WordPress](https://themeisle.com/blog/how-to-add-two-factor-authentication-to-wordpress/)
|
225 |
+
*[How to Add WordPress Two Factor Authentication (2FA)](https://phppot.com/wordpress/how-to-add-wordpress-two-factor-authentication-2fa-using-google-authenticator-plugin/)
|
|
|
226 |
|
227 |
+
Customized solutions and Active support is available. Email us at info@xecurify.com or call us at +1 9786589387.
|
228 |
|
229 |
+
**Note: The plugin is GDPR Compliant and supports wide variety of Language Translation**
|
230 |
|
231 |
== Installation ==
|
232 |
|
233 |
= From your WordPress dashboard =
|
234 |
1. Navigate to `Plugins > Add New` from your WP Admin dashboard.
|
235 |
+
2. Search for `miniOrange 2 Factor Authentication`.
|
236 |
+
3. Install `miniOrange 2 Factor Authentication` and Activate the plugin.
|
237 |
|
238 |
= From WordPress.org =
|
239 |
+
1. Search for `miniOrange 2 Factor Authentication` and download it.
|
240 |
+
2. Unzip and upload the `miniorange-2-factor-authentication` directory to your `/wp-content/plugins/` directory.
|
241 |
+
3. Activate miniOrange 2 Factor Authentication from the Plugins tab of your admin dashboard.
|
242 |
|
243 |
+
= Once Activated =
|
244 |
1. Select miniOrange 2-Factor ( 2 factor authentication ) from the left menu and follow the instructions.
|
245 |
+
2. Once, you complete your setup. Click on Log Out button.
|
246 |
3. Enter the username and password. After the initial validation, you will be prompted for the 2-factor method you had set up.
|
247 |
+
4. Validate yourself with the 2-factor authentication method you configured.
|
248 |
+
|
249 |
+
<b>Video Guide</b> :<br>
|
250 |
+
<iframe width="560" height="315" src="https://www.youtube.com/embed/vVGXjedIaGs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
251 |
|
|
|
|
|
252 |
|
253 |
== Frequently Asked Questions ==
|
254 |
|
255 |
+
= How do I gain access to my website if I get locked out? =
|
256 |
|
257 |
You can obtain access to your website by one of the below options:
|
258 |
|
259 |
+
1. If you have an additional administrator account whose Two Factor is not enabled yet, you can login with it.
|
260 |
+
2. If you had setup KBA questions earlier, you can use them as an alternate method to login to your website.
|
261 |
+
3. Rename the plugin from FTP - this disables the Two-Factor (2FA) plugin and you will be able to login with your Wordpress username and password.
|
262 |
|
263 |
+
For detailed information, Please check on our website. <a href="https://faq.miniorange.com/knowledgebase/i-am-locked-cant-access-my-account-what-do-i-do/" target="_blank">Locked Out</a>.<br>
|
264 |
You can also check our video Tutorial:
|
265 |
+
<iframe width="560" height="315" src="https://www.youtube.com/embed/wLFKakQkpk8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
266 |
+
|
267 |
+
= I want to enable Google Authenticator 2 Factor authentication as the backup method? =
|
268 |
+
|
269 |
+
You can use google authenticator as the backup method for your specific user or all users in the premium version of the two factor authentication. [PREMIUM FEATURE]
|
270 |
+
|
271 |
+
= I want to enable Two Factor Authentication (2FA) role wise ? =
|
272 |
+
|
273 |
+
You can select the roles under Login Settings tab to enable the plugin role wise. [PREMIUM FEATURE]
|
274 |
+
|
275 |
+
= I have enabled Two-Factor Authentication (2FA) for all users, what happens if an end user tries to login but has not yet registered ? =
|
276 |
|
277 |
+
If a user has not setup Two-Factor yet, user has to register by inline registration that will be invoked during the login.
|
278 |
|
279 |
+
= I want to enable only one authentication method for my users. What shloud I do? =
|
280 |
|
281 |
+
You can select the two factor authentication methods under Login Settings tab. The selected authentication methods will be shown to the user during inline registration for example if you select Google Authenticator it will be shown on login. [PREMIUM FEATURE]
|
282 |
|
283 |
+
= I am getting the fatal error of call to undefined function json_last_error(). What should I do? =
|
284 |
|
285 |
+
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.
|
286 |
|
287 |
+
= I did not recieve OTP while trying to register with miniOrange. What should I do? =
|
288 |
|
289 |
+
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 SPAM folder. If you don't see an email even in SPAM folder, please submit a query in our Support Section in the plugin or you can contact us at info@xecurify.com.
|
290 |
|
291 |
+
= I want to configure 2nd factor by Google Authenticator. =
|
292 |
|
293 |
+
Select the radio button next to Google Authenticator/Authy App and select the phone type and then scan the QR Code by Google Authenticator App. Enter the 6 digit code in the textbox and click on Save and verify buuton.
|
294 |
|
295 |
+
= I want to configure 2nd factor by Authy 2-Factor Authentication App. =
|
296 |
+
|
297 |
+
Select the radio button next to Google Authenticator/Authy App and select the phone type and then scan the QR Code by Authy 2-Factor Authentication App. Enter the 6 digit code from the Authy App into the textbox available and click on Save and Verifiy button.
|
298 |
+
|
299 |
+
= I forgot the password of my miniOrange account. How can I reset it? =
|
300 |
+
|
301 |
+
There are two cases according to the page you see -<br>
|
302 |
+
1. Login with miniOrange screen: 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.
|
303 |
+
|
304 |
+
2. Register with miniOrange screen: 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.
|
305 |
+
|
306 |
+
= 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 ? =
|
307 |
+
|
308 |
+
If you have a custom login form other than wp-login.php then we will provide you the shortcode. Shortcode will work only for the customized login page created from wordpress plugins. 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> in the plugin or you can contact us at info@xecurify.com for more details.
|
309 |
+
|
310 |
+
= I have Woocommerce theme login page on my site. How can I enable Two Factor ? =
|
311 |
+
|
312 |
+
If you have Woocommerce theme login then go to Advanced Options Tab and check Enable Two-Factor for Woocommerce Front End Login. If you need any help setting up 2-Factor for your Woocommerce theme login form, please submit a query in our Support Section in the plugin or you can contact us at info@xecurify.com.
|
313 |
+
|
314 |
+
= 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? =
|
315 |
+
|
316 |
+
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.
|
317 |
|
318 |
= 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. =
|
319 |
|
320 |
+
Our Two-Factor plugin is compatible with most of the security plugins, but if it is not working for you. Please submit a query in our Support Section in the plugin or you can contact us at info@xecurify.com.
|
321 |
|
322 |
+
= 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. =
|
323 |
|
324 |
+
If you are using Async JS and CSS Plugin. 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, Please submit a query in our Support Section in the plugin or you can contact us at info@xecurify.com.
|
325 |
|
326 |
+
= My users have different types of phones. What phones are supported? =
|
327 |
|
328 |
+
We support all types of phones. Smart Phones, Basic Phones, Landlines, etc. Go to Setup Two-Factor Tab and select Two-Factor method of your choice from a range of 8 different options.
|
329 |
|
330 |
+
= What if a user does not have a smart phone? =
|
331 |
|
332 |
+
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.
|
333 |
|
334 |
+
= What if a user does not have any phone? =
|
335 |
|
336 |
+
You can select Email Verification or Security Questions (KBA) as your Two-Factor method.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
337 |
|
338 |
+
= What if I am trying to login from my phone ? =
|
339 |
|
340 |
+
If your Security Questions (KBA) are configured then you will be asked to answer them when you are logging in from your phone.
|
|
|
|
|
341 |
|
342 |
+
= I want to hide default login form and just want to show login with phone? =
|
|
|
|
|
343 |
|
344 |
+
You should go to <b>Login Settings Tab</b> and check <b>Login with Phone Only</b> checkbox to hide the default login form.
|
345 |
|
|
|
346 |
|
347 |
+
= My phone has no internet connectivity and configured 2nd factor with miniOrange App, how can I login? =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
|
349 |
+
You can login using our alternate login method. Please follow below steps to login:
|
350 |
+
|
351 |
+
* Enter your username and click on login with your phone.
|
352 |
+
* Click on <b>Phone is Offline?</b> button below QR Code.
|
353 |
+
* You will see a textbox to enter one time passcode.
|
354 |
+
* Open miniOrange Authenticator App and Go to Soft Token Tab.
|
355 |
+
* Enter the one time passcode shown in miniOrange Authenticator App in textbox, just like Google authenticator.
|
356 |
+
* Click on submit button to validate the otp.
|
357 |
+
* Once you are authenticated, you will be logged in.
|
358 |
+
|
359 |
+
= My phone is lost, stolen or discharged. How can I login? =
|
360 |
+
|
361 |
+
You can login using our alternate login method. Click on the Forgot Phone link and you will get 2 alternate methods to login. Select "Send a one time passcode to my registered email" to authenticate by OTP over EMAIL or Select "Answer your Security Questions (KBA)" to authenticate by knowledge based authenticaion.
|
362 |
+
|
363 |
+
= My phone has no internet connectivity and i am entering the one time passcode from miniOrange Authenticator App, it says Invalid OTP?
|
364 |
+
|
365 |
+
Click on the <b>Settings Icon</b> on top right corner in <b>miniOrange 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 logged in then please email us at info@xecurify.com or <a href="https://miniorange.com/contact" target="_blank">Contact us</a>.Soft Token method is just like google authenticator method.
|
366 |
+
|
367 |
+
= I want to go back to default login with password? =
|
368 |
+
|
369 |
+
You should go to <b>Login Settings Tab</b> and uncheck <b>Enable Two-Factor plugin</b> checkbox. This will disable 2-Factor and you can login using wordpress default login.
|
370 |
+
|
371 |
+
= I am upgrading my phone. =
|
372 |
+
|
373 |
+
You should go to <b>Setup Two Factor</b> Tab and click on <b>Reconfigure</b> to reconfigure 2-Factor with your new phone.
|
374 |
+
|
375 |
+
= What If I want to use any other second factor like OTP Over SMS, Security Questions, Device Id, etc ? =
|
376 |
+
|
377 |
+
miniOrange authentication service has 15+ authentication methods.One time passcodes (OTP) over SMS, OTP over Email, OTP over SMS and Email, Out of Band SMS, Out of Band Email, Soft Token, Push Notification, USB based Hardware token (yubico), Security Questions, Mobile Authentication (QR Code Authentication), Voice Authentication (Biometrics), Phone Verification, Device Identification, Location, Time of Access User Behavior. To know more about authentication methods, please visit <a href="https://miniorange.com/strong_auth" target="_blank">https://miniorange.com/strong_auth </a>. If you want to have any other 2-factor for your WordPress site, please email us at info@xecurify.com or <a href="https://miniorange.com/contact" target="_blank">Contact us</a>.
|
378 |
+
|
379 |
+
== Screenshots ==
|
380 |
|
381 |
+
1. Google Authenticator (2FA) - Setup different 2 Factor methods
|
382 |
+
2. Google Authenticator (2FA) - Test 2 factor configured
|
383 |
+
3. Google Authenticator (2FA) - 2 Factor Authentication methods available
|
384 |
+
4. Google Authenticator (2FA) - Google Authenticator login
|
385 |
+
5. Google Authenticator (2FA) - QR code 2 Factor login
|
386 |
+
6. Google Authenticator (2FA) - miniOrange Authenticator login
|
387 |
+
7. Google Authenticator (2FA) - Push notification login
|
388 |
+
8. Google Authenticator (2FA) - Remember device and personalization add-ons
|
389 |
+
|
390 |
+
== Changelog ==
|
391 |
+
|
392 |
+
= 5.4.34=
|
393 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
394 |
* New User Interface for easy setup
|
395 |
* Added developers logs
|
396 |
* Minor fixes
|
397 |
|
398 |
+
= 5.4.33=
|
399 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
400 |
+
* Duo Authenticator support
|
401 |
+
* Google reCaptcha v3 support
|
|
|
402 |
|
403 |
+
= 5.4.32=
|
404 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
405 |
+
* Minor fixes
|
406 |
|
407 |
+
= 5.4.31=
|
408 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
409 |
* OTP over Email as two factor fix
|
410 |
* Low Email transaction alert fix
|
411 |
|
412 |
+
= 5.4.30=
|
413 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
414 |
* Feedback changes
|
415 |
|
452 |
* Email and SMS transaction sync
|
453 |
* Feedback form on network deactivate
|
454 |
* Enable/Disable 2FA fix
|
455 |
+
* 2FA added for superadmin role
|
456 |
|
457 |
= 5.4.22 =
|
458 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
467 |
* Sanitization of some input values.
|
468 |
|
469 |
= 5.4.20 =
|
470 |
+
* Google Authenticator - Two Factor Authentication (2FA, SMS) :
|
471 |
* Google Authenticator Qr code fix.
|
472 |
* My theme login Login fix.
|
473 |
|
475 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) : Google Authenticator cloud fix.
|
476 |
|
477 |
= 5.4.18 =
|
478 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
479 |
+
*Added missing file
|
480 |
|
481 |
= 5.4.17 =
|
482 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
483 |
*Digimember Form Support
|
484 |
*Memberpress Form Support
|
485 |
*SMS Verification Support
|
486 |
+
*OTP Verification on Woocommerce Registration
|
487 |
|
488 |
= 5.4.16 =
|
489 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) : Quick form fix.
|
491 |
= 5.4.15 =
|
492 |
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
493 |
* Theme My Login plugin Support
|
494 |
+
* Ultimate Memember Registration Support
|
495 |
+
* Woocommerce Registration Support
|
496 |
+
* Ultimate Memember Redirect
|
497 |
* Restrict Content Pro Login and Registration
|
498 |
+
|
499 |
= 5.4.14 =
|
500 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) : Performance improvement with fixes in Security Questions. And User Email verification and Phone Verification issues resolved.
|
501 |
|
502 |
= 5.4.13 =
|
503 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA) : Support Form Improvement.
|
504 |
|
505 |
= 5.4.11 =
|
506 |
+
* Google Authenticator - Two Factor Authentication (2FA, TFA) : Feedback Issue fix.
|
507 |
|
508 |
= 5.4.9 =
|
509 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA) : User Experience, new support form and Security disabled by default. Added New Methods for users to choose.
|
510 |
|
511 |
= 5.4.8 =
|
512 |
+
* Google Authenticator - Two Factor Authentication (2FA, TFA) : Learning Management System support, Microsoft Authenticator and Duo Authenticator support and restrict account sharing add-on.
|
|
|
513 |
= 5.4.7 =
|
514 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Fixing warnings and adding minor changes in the plans.
|
515 |
|
516 |
= 5.4.6 =
|
517 |
* Google Authenticator - Two Factor Authentication (2FA) : Improving Google Authenticator and adding Payment options.
|
518 |
|
519 |
= 5.4.5 =
|
520 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security and MFA UI updates.
|
521 |
|
522 |
= 5.4.4 =
|
523 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor : Woocommerce login page integration.
|
524 |
|
525 |
= 5.4.3 =
|
526 |
+
* Google Authenticator - Two Factor Authentication (2FA , Two Factor) : Session issue fix for customers using Two Factor.
|
527 |
|
528 |
= 5.4.2 =
|
529 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Warning for cloud customer moving to on-premise Two factor.
|
530 |
|
531 |
= 5.4.1 =
|
532 |
* Google Authenticator - Two Factor Authentication (2FA) : Headers sent issue is security firewall.
|
533 |
|
534 |
= 5.4.0 =
|
535 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor FAQ Fix and OTP code convinence.
|
536 |
|
537 |
= 5.3.26 =
|
538 |
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor On-premise FAQ update.
|
541 |
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor On-premise support form.
|
542 |
|
543 |
= 5.3.24 =
|
544 |
+
* Google Authenticator - Two Factor Authentication (2FA) : On-premise two factor released with multiple users support for some authentication methods.
|
545 |
|
546 |
= 5.3.23 =
|
547 |
* Google Authenticator - Two Factor Authentication (2FA) : Scanner : Timing and caching issue fix.
|
548 |
+
* Disable 2fa on Woocommerce login.
|
549 |
* Login with Username only fix.
|
550 |
|
551 |
= 5.3.22 =
|
561 |
* Google Authenticator - Two Factor Authentication (2FA) : Security : Giving users choice of two factor.
|
562 |
|
563 |
= 5.3.18 =
|
564 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Virus and Firewall : Fix Scan.
|
565 |
|
566 |
= 5.3.17 =
|
567 |
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Virus : Improved Stop Scan.
|
585 |
* Google Authenticator - Two Factor Authentication (2FA) : Security : Limiting Firewall, Malware, backup and login security for users not needing it.
|
586 |
|
587 |
= 5.3.10 =
|
588 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security : Moved to Old WAF version minor issues.
|
589 |
|
590 |
= 5.3.9 =
|
591 |
* Google Authenticator - Two Factor Authentication (2FA) : Security : Web application Firewall Sql Injections report and monitoring.
|
592 |
|
593 |
+
|
594 |
= 5.3.8 =
|
595 |
* Google Authenticator - Two Factor Authentication (2FA) : Security : Malware Scanner Fix.
|
596 |
|
622 |
* Google Authenticator - Two Factor Authentication (2FA) : Fixed conflict and filter issues.
|
623 |
|
624 |
= 5.2.5 =
|
625 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Some warnings in remote post.
|
626 |
|
627 |
= 5.2.4 =
|
628 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Removed curl calls and unncessary files.
|
629 |
|
630 |
= 5.2.3 =
|
631 |
* Google Authenticator - Two Factor Authentication (2FA) : Fix for some users facing issues in api calls.
|
632 |
|
633 |
= 5.2.2 =
|
634 |
* Google Authenticator - Two Factor Authentication (2FA) : Adding File Protection and Strong Password feature.
|
635 |
+
|
636 |
= 5.2.1 =
|
637 |
* Google Authenticator - Two Factor Authentication (2FA) : UI changes for description.
|
638 |
|
649 |
* Google Authenticator - Two Factor Authentication (2FA) : Minor Bug fix.
|
650 |
|
651 |
= 5.1.19 =
|
652 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Adding basic Security Features Monitorning, IP blocking and login transaction report.
|
653 |
|
654 |
= 5.1.18 =
|
655 |
* Google Authenticator - Two Factor Authentication (2FA) : Object access error for lower PHP versions.
|
703 |
* Google Authenticator - Two Factor Authentication (2FA) : Minor changes.
|
704 |
|
705 |
= 5.1.0 =
|
706 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Added new user plans.
|
707 |
|
708 |
= 5.0.17 =
|
709 |
* Google Authenticator - Two Factor Authentication (2FA) : Minor Bug fix.
|
715 |
* Google Authenticator - Two Factor Authentication (2FA) : Added Google Authenticator option in the WP login page itself.
|
716 |
|
717 |
= 5.0.14 =
|
718 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fixs.
|
719 |
|
720 |
= 5.0.13 =
|
721 |
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fix and code optimization.
|
757 |
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix.
|
758 |
|
759 |
= 5.0.0 =
|
760 |
+
* Google Authenticator - Two Factor Authentication (2FA) : New UI Interface, 2 factor authentication for Unlimited Users.
|
761 |
* This is a major release.
|
762 |
|
763 |
= 4.6.2 =
|
770 |
* Google Authenticator - Two Factor Authentication (2FA) : Bug fixes for customers who were getting redirected to the login page after the two factor authentication.
|
771 |
|
772 |
= 4.5.8 =
|
773 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Tested upto 4.9.4 and Removed External links.
|
774 |
|
775 |
= 4.5.7 =
|
776 |
* Google Authenticator - Two Factor Authentication (2FA) : Minor bug fixes.
|
777 |
|
778 |
= 4.5.6 =
|
779 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Tested upto Wordpress 4.9.
|
780 |
|
781 |
= 4.5.5 =
|
782 |
* Google Authenticator - Two Factor Authentication (2FA) : 404 bug fixes.
|
783 |
|
784 |
= 4.5.4 =
|
785 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Better UI of Login Pages, Fixed Redirection issue. Fixed the error in the last version (4.5.3) for the customers who were getting undefined action error.
|
786 |
|
787 |
= 4.5.3 =
|
788 |
* Google Authenticator - Two Factor Authentication (2FA) : Changed UI of the Login Pages, Redirect to Login Page bug fixes.
|
791 |
* Google Authenticator - Two Factor Authentication (2FA) : Readme Update: Description Update
|
792 |
|
793 |
= 4.5.1 =
|
794 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Updated the new Authenticator App's link and the 'How to Setup Tab' tab.
|
795 |
|
796 |
= 4.5.0 =
|
797 |
* Google Authenticator - Two Factor Authentication (2FA) : Fix Google Authenticator configuration issue.
|
808 |
= 4.4.6 =
|
809 |
* Google Authenticator - Two Factor Authentication (2FA) : Instructions for login in case user get locked out.
|
810 |
|
811 |
+
|
812 |
= 4.4.5 =
|
813 |
* Google Authenticator - Two Factor Authentication (2FA) : Fixed the issue of session variable on the login with username page.
|
814 |
|
820 |
|
821 |
= 4.4 =
|
822 |
* Google Authenticator - Two Factor Authentication (2FA):
|
823 |
+
* Compatibility with Limit Login Attempts.
|
824 |
+
* New User Interface for login.
|
825 |
+
|
826 |
+
= 4.3.1 =
|
827 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA): Compatible upto 4.7
|
828 |
+
|
829 |
+
= 4.3.0 =
|
830 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA): Updated miniOrange APIs.
|
831 |
+
|
832 |
+
= 4.2.9 =
|
833 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA): Tested upto WordPress 4.6.
|
834 |
+
|
835 |
+
= 4.2.7 =
|
836 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA): Session Warnig fix in the last version for some of the users.
|
837 |
+
|
838 |
+
= 4.2.6 =
|
839 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA): Compatible with wordpress caching.
|
840 |
+
|
841 |
+
= 4.2.5 =
|
842 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA): Improved the session handler.
|
843 |
+
|
844 |
+
= 4.2.4 =
|
845 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA): Updated faq for limit login attempt type of plugins.
|
846 |
+
|
847 |
+
= 4.2.3 =
|
848 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
849 |
+
* Improved Error handling during Account Creation.
|
850 |
+
|
851 |
+
= 4.2.2 =
|
852 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
853 |
+
* Registration Flow fixes
|
854 |
+
|
855 |
+
= 4.2.1 =
|
856 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
857 |
+
* Change of status during login with phone flow and tested with WP 4.5
|
858 |
+
|
859 |
+
= 4.2.0 =
|
860 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
861 |
+
* Mark as tested on Wordpress 4.5
|
862 |
+
|
863 |
+
= 4.1.8 =
|
864 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
865 |
+
* Changed the location of images used for demo. Now being loaded from the site having SSL certificate.
|
866 |
+
|
867 |
+
= 4.1.7 =
|
868 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
869 |
+
* Improved Error Handling for Remember Device.
|
870 |
+
|
871 |
+
= 4.1.6 =
|
872 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
873 |
+
* Licensing Plan Updated.
|
874 |
+
|
875 |
+
= 4.1.5 =
|
876 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
877 |
+
* Added Forgot Password functionality for miniOrange customer admin.
|
878 |
+
* Added warning message for the users who are using lower version of php.
|
879 |
+
* Added functionlity to change the customer email.
|
880 |
+
|
881 |
+
= 4.1.4 =
|
882 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
883 |
+
* Added an option for admin to enable or disable login for XML-RPC supported applications.
|
884 |
+
|
885 |
+
= 4.1.3 =
|
886 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
887 |
+
* Fixed CSS Conflict with the plugins in the admin dashboard.
|
888 |
+
* More intuitive UI for woocommerce login.
|
889 |
+
* Tested front-end login with themes like wordpress default theme,
|
890 |
+
customizr theme,zerif-lite theme,accesspress store theme,ishop theme and many more.
|
891 |
+
|
892 |
+
= 4.1.2 =
|
893 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Google Authenticator for Windows phone
|
894 |
+
* Fixed CSS conflict with front-end of site if woocommerce is not enabled.
|
895 |
+
|
896 |
+
= 4.1.1 =
|
897 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Adding Validation in choosing Security Questions (KBA).
|
898 |
+
|
899 |
+
= 4.1.0 =
|
900 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Features added.
|
901 |
+
multisite support
|
902 |
+
Custom login redirection
|
903 |
+
Authy 2-Factor Authentication as separate authentication method
|
904 |
+
|
905 |
+
= 4.0.5 = Google Authenticator - Two Factor Authentication ( 2 Factor) : Login into third party apps which support XML-RPC.
|
906 |
+
|
907 |
+
= 4.0.4 = Google Authenticator - Two Factor Authentication ( 2 Factor) : Added a check of KBA configuration from mobile login.
|
908 |
+
|
909 |
+
= 4.0.3 = Google Authenticator - Two Factor Authentication ( 2 Factor) : Added Support for Authy 2-Factor Authentication App.
|
910 |
+
|
911 |
+
= 4.0.2 = Google Authenticator - Two Factor Authentication ( 2 Factor) : Added a check for selection of unique questions during KBA setup.
|
912 |
+
|
913 |
+
= 4.0.1 = Bug Fix Google Authenticator - Two Factor Authentication ( 2 Factor)
|
914 |
+
|
915 |
+
= 4.0 =
|
916 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Features added.
|
917 |
+
* KBA as backup method.
|
918 |
+
* mobile browser support.
|
919 |
+
* more intuitive UI for woocommerce login.
|
920 |
+
|
921 |
+
= 3.8 =
|
922 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Bug Fix.
|
923 |
+
|
924 |
+
= 3.7 =
|
925 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Activation of two factor role wise.
|
926 |
+
|
927 |
+
= 3.6 =
|
928 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): email verification in inline registration flow for all users.
|
929 |
+
More descriptive setup messages and UI changes.
|
930 |
+
|
931 |
+
= 3.5 =
|
932 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Provided mobile login support.
|
933 |
+
|
934 |
+
= 3.4 =
|
935 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Features added
|
936 |
+
* Inline registration flow for users.
|
937 |
+
* Security Questions (KBA) as additional method
|
938 |
+
* Alternate way of user identification in customer creation.
|
939 |
+
* premium customizable features.
|
940 |
+
|
941 |
+
= 3.3 =
|
942 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Fix the issue of session for some versions of php.
|
943 |
+
|
944 |
+
= 3.2 =
|
945 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Fix for device-id compatibility.
|
946 |
+
|
947 |
+
= 3.1 =
|
948 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Fix for 2FA ShortCode.
|
949 |
+
|
950 |
+
= 3.0 =
|
951 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Features added
|
952 |
+
* Google Authenticator.
|
953 |
+
* Device Id (Remember device).
|
954 |
+
* Choice given to admin to enable specific authentication methods for users.
|
955 |
+
* Two Factor support for woocommerce theme.
|
956 |
+
* Short Code for various customized frontend login.
|
957 |
+
* More intuitive UI and descriptive instructions.
|
958 |
+
|
959 |
+
= 2.6 =
|
960 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Fix the compatibility issues of user session with other security plugins.
|
961 |
+
|
962 |
+
= 2.5 =
|
963 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Fix the compatibility issues with All In One WP Security & Firewall plugin.
|
964 |
+
|
965 |
+
= 2.4 =
|
966 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): UI fixes for admin media library dashboard.
|
967 |
+
|
968 |
+
= 2.3 =
|
969 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): More descriptive setup messages, more intuitive UI.
|
970 |
+
|
971 |
+
= 2.2 =
|
972 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Fixed css issues for existing users
|
973 |
+
|
974 |
+
= 2.1 =
|
975 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Added support for multiple Two Factor Choices like OTP Over SMS, Phone Call Verification, Push Notification, Soft Token (like Google Authenticator Code), Email Verification, etc.
|
976 |
+
|
977 |
+
= 2.0 =
|
978 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Added login with password plus second factor feature.
|
979 |
+
|
980 |
+
= 1.8 =
|
981 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Added feature of different login form choice,test authentication and help for configuration and setup.
|
982 |
+
|
983 |
+
= 1.7 =
|
984 |
+
* Bug Fixes Google Authenticator - Two Factor Authentication ( 2FA ): Modifying login screen adaptable to user's login form
|
985 |
+
|
986 |
+
= 1.6 =
|
987 |
+
* Bug Fixes Google Authenticator - Two Factor Authentication ( 2FA ): fetching 2 factor configuration when activating the plugin after deactivating it.
|
988 |
+
|
989 |
+
= 1.5 =
|
990 |
+
* Bug Fixes Google Authenticator - Two Factor Authentication ( 2FA ): Login issues and password save issues resolved
|
991 |
+
|
992 |
+
= 1.4 =
|
993 |
+
* Bug Fixes Google Authenticator - Two Factor Authentication ( 2FA ): Authentication was not working on some version of php.
|
994 |
+
|
995 |
+
= 1.3 =
|
996 |
+
* Bug Fixes Google Authenticator - Two Factor Authentication ( 2 Factor )
|
997 |
+
|
998 |
+
= 1.2 =
|
999 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Added 2 factor for all users along with forgot phone functionality.
|
1000 |
+
|
1001 |
+
= 1.1 =
|
1002 |
+
* Google Authenticator - Two Factor Authentication ( 2FA ): Added email ID verification during registration.
|
1003 |
+
|
1004 |
+
= 1.0.0 =
|
1005 |
+
* First version of Google Authenticator - Two Factor Authentication ( 2FA ) plugin supported with mobile auhthentication for admin only.
|
1006 |
+
|
1007 |
+
== Upgrade Notice ==
|
1008 |
+
|
1009 |
+
= 5.4.31=
|
1010 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1011 |
+
* OTP over Email as two factor fix
|
1012 |
+
* Low Email transaction alert fix
|
1013 |
+
|
1014 |
+
= 5.4.30=
|
1015 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1016 |
+
* Feedback changes
|
1017 |
+
|
1018 |
+
= 5.4.29 =
|
1019 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1020 |
+
* Session independent Google Authenticator
|
1021 |
+
* Session independent KBA
|
1022 |
+
* Feedback improvement for two factor authentication plugin
|
1023 |
+
|
1024 |
+
= 5.4.28 =
|
1025 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1026 |
+
* New year sale update
|
1027 |
+
|
1028 |
+
= 5.4.27 =
|
1029 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1030 |
+
* New year sale
|
1031 |
+
* WordPress 5.6 compatibility fix
|
1032 |
+
* WAF fixes
|
1033 |
+
* Real time IP blocking
|
1034 |
+
* IP based user login
|
1035 |
+
* New feature release notification
|
1036 |
+
|
1037 |
+
= 5.4.26 =
|
1038 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1039 |
+
* Christmas Offer
|
1040 |
+
|
1041 |
+
= 5.4.25 =
|
1042 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1043 |
+
* OTP over Telegram Fixes
|
1044 |
+
|
1045 |
+
= 5.4.24 =
|
1046 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1047 |
+
* OTP over Whatsapp
|
1048 |
+
* OTP over Telegram
|
1049 |
+
* Feedback form changes
|
1050 |
+
|
1051 |
+
= 5.4.23 =
|
1052 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1053 |
+
* Call support with technical team
|
1054 |
+
* Email and SMS transaction sync
|
1055 |
+
* Feedback form on network deactivate
|
1056 |
+
* Enable/Disable 2FA fix
|
1057 |
+
* 2FA added for superadmin role
|
1058 |
+
|
1059 |
+
= 5.4.22 =
|
1060 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1061 |
+
* Backup Codes
|
1062 |
+
* Sanitization and JS improvements
|
1063 |
+
* SMS and Email Sync
|
1064 |
+
* Whatsapp based Two factor in Premium plugin
|
1065 |
+
* Telegram based Two factor in Premium plugin
|
1066 |
+
|
1067 |
+
= 5.4.21 =
|
1068 |
+
* Google Authenticator - Two Factor Authentication (2FA, SMS) :
|
1069 |
+
* Sanitization of some input values.
|
1070 |
+
|
1071 |
+
= 5.4.20 =
|
1072 |
+
* Google Authenticator - Two Factor Authentication (2FA, SMS) :
|
1073 |
+
* Google Authenticator Qr code fix.
|
1074 |
+
* My theme login Login fix.
|
1075 |
+
|
1076 |
+
= 5.4.19 =
|
1077 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) : Google Authenticator cloud fix.
|
1078 |
+
|
1079 |
+
= 5.4.18 =
|
1080 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1081 |
+
* Added missing file
|
1082 |
+
|
1083 |
+
= 5.4.17 =
|
1084 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1085 |
+
*Digimember Form Support
|
1086 |
+
*Memberpress Form Support
|
1087 |
+
*SMS Verification Support
|
1088 |
+
*OTP Verification on Woocommerce Registration
|
1089 |
+
|
1090 |
+
= 5.4.16 =
|
1091 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) : Quick form fix.
|
1092 |
+
|
1093 |
+
= 5.4.15 =
|
1094 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP) :
|
1095 |
+
* Theme My Login plugin Support
|
1096 |
+
* Ultimate Memember Registration Support
|
1097 |
+
* Woocommerce Registration Support
|
1098 |
+
* Ultimate Memember Redirect
|
1099 |
+
* Restrict Content Pro Login and Registration
|
1100 |
+
|
1101 |
+
= 5.4.14 =
|
1102 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA) : Performance improvement with fixes in Security Questions. And User Email verification and Phone Verification issues resolved.
|
1103 |
+
|
1104 |
+
= 5.4.13 =
|
1105 |
+
* Google Authenticator - Two Factor Authentication (2FA, TFA) : Support Form Improvement.
|
1106 |
+
|
1107 |
+
= 5.4.11 =
|
1108 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA) : Feedback Issue fix.
|
1109 |
+
|
1110 |
+
= 5.4.9 =
|
1111 |
+
* Google Authenticator - Two Factor Authentication (2FA, TFA) : User Experience, new support form and Security disabled by default. Added New Methods for users to choose.
|
1112 |
+
|
1113 |
+
= 5.4.8 =
|
1114 |
+
* Google Authenticator - Two Factor Authentication (2FA, OTP Verification) : Learning Management System support, Microsoft Authenticator and Duo Authenticator support and restrict account sharing add-on.
|
1115 |
+
|
1116 |
+
= 5.4.7 =
|
1117 |
+
* Google Authenticator - Two Factor Authentication (2FA, SMS Verification) : Fixing warnings and adding minor changes in the plans.
|
1118 |
+
|
1119 |
+
= 5.4.6 =
|
1120 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Improving Google Authenticator and adding Payment options.
|
1121 |
+
|
1122 |
+
= 5.4.5 =
|
1123 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security and MFA UI updates.
|
1124 |
+
|
1125 |
+
= 5.4.4 =
|
1126 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor : Woocommerce login page integration.
|
1127 |
+
|
1128 |
+
= 5.4.3 =
|
1129 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Session issue fix for customers using Two Factor.
|
1130 |
+
|
1131 |
+
= 5.4.2 =
|
1132 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Warning for cloud customer moving to on-premise Two factor
|
1133 |
+
|
1134 |
+
= 5.4.0 =
|
1135 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor FAQ Fix and OTP code convinence.
|
1136 |
+
|
1137 |
+
= 5.3.26 =
|
1138 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor On-premise FAQ update.
|
1139 |
+
|
1140 |
+
= 5.3.25 =
|
1141 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor On-premise support form.
|
1142 |
+
|
1143 |
+
= 5.3.24 =
|
1144 |
+
* Google Authenticator - Two Factor Authentication (2FA) : On-premise two factor released with multiple user support for some authentication methods.
|
1145 |
+
|
1146 |
+
= 5.3.23 =
|
1147 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Scanner : Timing and caching issue fix.
|
1148 |
+
* Disable 2fa on Woocommerce login.
|
1149 |
+
* Login with Username only fix.
|
1150 |
+
|
1151 |
+
= 5.3.22 =
|
1152 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Antivirus : Fixing Cache issues and adding nonce.
|
1153 |
+
|
1154 |
+
= 5.3.21 =
|
1155 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Two Factor : Choice between Two factor and Security.
|
1156 |
+
|
1157 |
+
= 5.3.20 =
|
1158 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Anti Malware : Fixing issue faced by users during scan.
|
1159 |
+
|
1160 |
+
= 5.3.19 =
|
1161 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security : Giving users choice of two factor.
|
1162 |
+
|
1163 |
+
= 5.3.18 =
|
1164 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Virus and Firewall : Fix Scan.
|
1165 |
+
|
1166 |
+
= 5.3.17 =
|
1167 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Virus : Improved Stop Scan.
|
1168 |
+
|
1169 |
+
= 5.3.16 =
|
1170 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Virus : Stop Scan.
|
1171 |
+
|
1172 |
+
= 5.3.15 =
|
1173 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Malware : schedule scan.
|
1174 |
+
|
1175 |
+
= 5.3.14 =
|
1176 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Anti-Malware : Adding more signatures.
|
1177 |
+
|
1178 |
+
= 5.3.13 =
|
1179 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security : fix UI Issue and improving 2fa.
|
1180 |
+
|
1181 |
+
= 5.3.12 =
|
1182 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security : backup table fix.
|
1183 |
+
|
1184 |
+
= 5.3.11 =
|
1185 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security : Limiting Firewall, Malware, backup and login security for users not needing it.
|
1186 |
+
|
1187 |
+
= 5.3.10 =
|
1188 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security : Moved to Old WAF version minor issues..
|
1189 |
+
|
1190 |
+
= 5.3.9 =
|
1191 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security : Web application Firewall Sql Injections report and monitoring.
|
1192 |
+
|
1193 |
+
|
1194 |
+
= 5.3.8 =
|
1195 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security : Malware Scanner Fix.
|
1196 |
+
|
1197 |
+
= 5.3.7 =
|
1198 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Security : Two factor login with username fix.
|
1199 |
+
|
1200 |
+
= 5.3.6 =
|
1201 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Anti virus zip file fix.
|
1202 |
+
|
1203 |
+
= 5.3.5 =
|
1204 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Backup URL Fix and space issue in google authenticator.
|
1205 |
+
|
1206 |
+
= 5.3.4 =
|
1207 |
+
* Google Authenticator - Two Factor Authentication (2FA) : CSS fix for Malware Scanner, Security and firewall.
|
1208 |
+
|
1209 |
+
= 5.3.3 =
|
1210 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Minor Malware Scanner issues fix.
|
1211 |
+
|
1212 |
+
= 5.3.2 =
|
1213 |
+
* Google Authenticator - Two Factor Authentication (2FA) : File Changes.
|
1214 |
+
|
1215 |
+
= 5.3.1 =
|
1216 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix.
|
1217 |
+
|
1218 |
+
= 5.3.0 =
|
1219 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Releasing Firewall with Two Factor.
|
1220 |
+
|
1221 |
+
= 5.2.6 =
|
1222 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Fixed conflict and filter issues.
|
1223 |
+
|
1224 |
+
= 5.2.5 =
|
1225 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Some warnings in remote post.
|
1226 |
+
|
1227 |
+
= 5.2.4 =
|
1228 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Removed curl calls and unncessary files.
|
1229 |
+
|
1230 |
+
= 5.2.3 =
|
1231 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Fix for some users facing issues in api calls.
|
1232 |
+
|
1233 |
+
= 5.2.2 =
|
1234 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Adding File Protection and Strong Password feature.
|
1235 |
+
|
1236 |
+
= 5.2.1 =
|
1237 |
+
* Google Authenticator - Two Factor Authentication (2FA) : UI changes for description.
|
1238 |
+
|
1239 |
+
= 5.2.0 =
|
1240 |
+
* Google Authenticator - Two Factor Authentication (2FA) : UI changes with more description.
|
1241 |
+
|
1242 |
+
= 5.1.22 =
|
1243 |
+
* Google Authenticator - Two Factor Authentication (2FA) : UI Fixes.
|
1244 |
+
|
1245 |
+
= 5.1.21 =
|
1246 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Login Redirect.
|
1247 |
+
|
1248 |
+
= 5.1.20 =
|
1249 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Minor Bug fix.
|
1250 |
+
|
1251 |
+
= 5.1.19 =
|
1252 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Adding basic Security Features Monitorning, IP blocking and login transaction report.
|
1253 |
+
|
1254 |
+
= 5.1.18 =
|
1255 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Object access error for lower PHP versions.
|
1256 |
+
|
1257 |
+
= 5.1.17 =
|
1258 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Minor Bug fix and Documentation changes.
|
1259 |
+
|
1260 |
+
= 5.1.16 =
|
1261 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Login redirect fix.
|
1262 |
+
|
1263 |
+
= 5.1.15 =
|
1264 |
+
* Google Authenticator - Two Factor Authentication (2FA) : UI Fixes.
|
1265 |
+
|
1266 |
+
= 5.1.14 =
|
1267 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Database Error Fix and Custom Redirect.
|
1268 |
+
|
1269 |
+
= 5.1.12 =
|
1270 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Removing redundant code.
|
1271 |
+
|
1272 |
+
= 5.1.11 =
|
1273 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Password Pattern Fix.
|
1274 |
+
|
1275 |
+
= 5.1.10 =
|
1276 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Javascript Error fixes.
|
1277 |
+
|
1278 |
+
= 5.1.9 =
|
1279 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Added visual tour and security fixes.
|
1280 |
+
|
1281 |
+
= 5.1.8 =
|
1282 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix for Validation.
|
1283 |
+
|
1284 |
+
= 5.1.7 =
|
1285 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix for DB error after Update.
|
1286 |
+
|
1287 |
+
= 5.1.6 =
|
1288 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix for DB error.
|
1289 |
+
|
1290 |
+
= 5.1.5 =
|
1291 |
+
* Google Authenticator - Two Factor Authentication (2FA) : UI changes.
|
1292 |
+
|
1293 |
+
= 5.1.4 =
|
1294 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug fixes for redirect to login page issues.
|
1295 |
+
|
1296 |
+
= 5.1.3 =
|
1297 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Minor bug fixes.
|
1298 |
+
|
1299 |
+
= 5.1.2 =
|
1300 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Changes in registration flow.
|
1301 |
+
|
1302 |
+
= 5.1.1 =
|
1303 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Minor changes.
|
1304 |
+
|
1305 |
+
= 5.1.0 =
|
1306 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Added new user plans
|
1307 |
+
|
1308 |
+
= 5.0.17 =
|
1309 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Minor Bug fix.
|
1310 |
+
|
1311 |
+
= 5.0.16 =
|
1312 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug fixes.
|
1313 |
+
|
1314 |
+
= 5.0.15 =
|
1315 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Added Google Authenticator option in the WP login page itself.
|
1316 |
+
|
1317 |
+
= 5.0.14 =
|
1318 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fixs.
|
1319 |
+
|
1320 |
+
= 5.0.13 =
|
1321 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fix and code optimization.
|
1322 |
+
|
1323 |
+
= 5.0.12 =
|
1324 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Added GDPR Compliance.
|
1325 |
+
|
1326 |
+
= 5.0.11 =
|
1327 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Readme Update.
|
1328 |
+
|
1329 |
+
= 5.0.10 =
|
1330 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Added Proxy Setup feature.
|
1331 |
+
|
1332 |
+
= 5.0.9 =
|
1333 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fix for "The loopback request to your site failed." error.
|
1334 |
+
|
1335 |
+
= 5.0.8 =
|
1336 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Changes for 2FA Free plugin for 1 user forever.
|
1337 |
+
|
1338 |
+
= 5.0.7 =
|
1339 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fix for User Registration and other plugin conflicts in Dashboard.
|
1340 |
+
|
1341 |
+
= 5.0.6 =
|
1342 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug Fix for existing customers who upgraded from 4.5.x version to versions between 5.0.0 and 5.0.4 and are facing issues with the Account Setup Tab.
|
1343 |
+
|
1344 |
+
= 5.0.5 =
|
1345 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix for user entry during plugin update.
|
1346 |
+
|
1347 |
+
= 5.0.4 =
|
1348 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Workaround for errors during sending of OTP during registration.
|
1349 |
+
|
1350 |
+
= 5.0.3 =
|
1351 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Minor fix for removing warings.
|
1352 |
+
|
1353 |
+
= 5.0.2 =
|
1354 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix.
|
1355 |
+
|
1356 |
+
= 5.0.1 =
|
1357 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug fix.
|
1358 |
+
|
1359 |
+
= 5.0.0 =
|
1360 |
+
* Google Authenticator - Two Factor Authentication (2FA) : New UI Interface, 2-factor authentication for Unlimited Users.
|
1361 |
+
* This is a major release.
|
1362 |
+
|
1363 |
+
= 4.6.2 =
|
1364 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Plugin registration fixes and minor warning fixes.
|
1365 |
+
|
1366 |
+
= 4.6.1 =
|
1367 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Login error fix. Please skip version 4.5.9 and update to version 4.6.1
|
1368 |
+
|
1369 |
+
= 4.5.9 =
|
1370 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Bug fixes for customers who were getting redirected to the login page after the two factor authentication.
|
1371 |
+
|
1372 |
+
= 4.5.8 =
|
1373 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Tested upto 4.9.4 and Removed External links.
|
1374 |
+
|
1375 |
+
= 4.5.7 =
|
1376 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Minor bug fixes.
|
1377 |
+
|
1378 |
+
= 4.5.6 =
|
1379 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Tested upto Wordpress 4.9.
|
1380 |
+
|
1381 |
+
= 4.5.5 =
|
1382 |
+
* Google Authenticator - Two Factor Authentication (2FA) : 404 bug fixes.
|
1383 |
+
|
1384 |
+
= 4.5.4 =
|
1385 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Better UI of Login Pages, Fixed Redirection issue. Fixed the error in the last version (4.5.3) for the customers who were getting undefined action error.
|
1386 |
+
|
1387 |
+
= 4.4.3 =
|
1388 |
+
* Google Authenticator - Two Factor Authentication (2FA) : Fixed the login flow for third party Apps that supports XML-RPC.
|
1389 |
+
|
1390 |
+
= 4.4 =
|
1391 |
+
* Google Authenticator - Two Factor Authentication (2FA):
|
1392 |
+
* Note: This is very important update having altogether new UI and compatibility with Limit Login Attempts. After updating, please do not logout from your admin dashboard. Try to login from another browser and if you face any issue , please contact us at info@xecurify.com
|
1393 |
* Compatibility with Limit Login Attempts.
|
1394 |
* New User Interface for login.
|
1395 |
|
1403 |
* Google Authenticator - Two Factor Authentication (2FA, MFA): Updated miniOrange APIs.
|
1404 |
|
1405 |
= 4.2.9 =
|
1406 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA): Tested upto WordPress 4.6.
|
1407 |
|
1408 |
= 4.2.7 =
|
1409 |
+
* Google Authenticator - Two Factor Authentication (2FA, MFA): Session Warnig fix in the last version for some of the users.
|
1410 |
|
1411 |
= 4.2.6 =
|
1412 |
* Google Authenticator - Two Factor Authentication (2FA, MFA): Compatible with wordpress caching.
|
1435 |
|
1436 |
= 4.1.8 =
|
1437 |
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
1438 |
+
* Changed the location of images used for demo. Now being loaded from the site having SSL certificate.
|
1439 |
|
1440 |
= 4.1.7 =
|
1441 |
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
1458 |
= 4.1.3 =
|
1459 |
* Google Authenticator - Two Factor Authentication ( 2FA ):
|
1460 |
* Fixed CSS Conflict with the plugins in the admin dashboard.
|
1461 |
+
* More intuitive UI for woocommerce login.
|
1462 |
* Tested front-end login with themes like wordpress default theme,
|
1463 |
+
customizr theme,zerif-lite theme,accesspress store theme,ishop theme and many more.
|
1464 |
|
1465 |
= 4.1.2 =
|
1466 |
* Google Authenticator - Two Factor Authentication ( 2FA ): Google Authenticator for Windows phone
|
1467 |
+
* Fixed CSS conflict with front-end of site if woocommerce is not enabled.
|
1468 |
|
1469 |
= 4.1.1 =
|
1470 |
* Google Authenticator - Two Factor Authentication ( 2FA ): Adding Validation in choosing Security Questions (KBA).
|
1491 |
* Google Authenticator - Two Factor Authentication ( 2FA ): Features added.
|
1492 |
* KBA as backup method.
|
1493 |
* mobile browser support.
|
1494 |
+
* more intuitive UI for woocommerce login.
|
1495 |
|
1496 |
= 3.8 =
|
1497 |
* Google Authenticator - Two Factor Authentication ( 2 Factor ): Bug Fix for roles.
|
1527 |
* Google Authenticator.
|
1528 |
* Device Id (Remember device).
|
1529 |
* Choice given to admin to enable specific authentication methods for users.
|
1530 |
+
* Two Factor support for woocommerce theme.
|
1531 |
* Short Code for various customized fronted login.
|
1532 |
* More intuitive UI and descriptive instructions.
|
1533 |
|
1577 |
* Google Authenticator - Two Factor Authentication ( 2FA ): Added email ID verification during registration.
|
1578 |
|
1579 |
= 1.0.0 =
|
1580 |
+
First version of Two Factor Authentication ( 2FA ) plugin.
|
uninstall.php
CHANGED
@@ -8,11 +8,6 @@
|
|
8 |
delete_option('mo2f_email');
|
9 |
}
|
10 |
update_option('mo2f_activate_plugin', 1);
|
11 |
-
|
12 |
-
delete_option('mo2f_trial_dismiss');
|
13 |
-
delete_option('mo2f_donot_show_trial_notice_always');
|
14 |
-
|
15 |
-
|
16 |
delete_option('mo2f_customerKey');
|
17 |
delete_option('mo2f_api_key');
|
18 |
delete_option('mo2f_customer_token');
|
@@ -31,14 +26,7 @@
|
|
31 |
delete_site_option('mo2f_added_ips_realtime');
|
32 |
delete_site_option('mo2f_mail_notify_new_release');
|
33 |
delete_site_option('mo2f_mail_notify');
|
34 |
-
delete_site_option('mo2fa_free_plan_new_user_methods');
|
35 |
-
delete_site_option('mo2fa_free_plan_existing_user_methods');
|
36 |
-
delete_site_option("mo2f_banner_never_show_again");
|
37 |
-
delete_option('mo2fa_reconfiguration_via_email');
|
38 |
-
delete_option('mo2fa_userProfile_method');
|
39 |
delete_site_option('mo2f_feature_vers');
|
40 |
-
delete_site_option('mo2f_is_inline_used');
|
41 |
-
delete_site_option('mo2f_login_with_mfa_use');
|
42 |
delete_site_option('mo2f_user_IP');
|
43 |
delete_option('mo_wpns_enable_brute_force');
|
44 |
delete_option('mo_wpns_show_remaining_attempts');
|
@@ -68,9 +56,7 @@
|
|
68 |
delete_option( 'mo_2f_switch_all');
|
69 |
delete_option( 'mo2f_login_option');
|
70 |
delete_option( 'mo_wpns_scan_initialize');
|
71 |
-
|
72 |
-
delete_site_option( 'mo_2fa_plan_type');
|
73 |
-
delete_site_option( 'mo_2fa_addon_plan_type');
|
74 |
delete_option( 'mo2f_activated_time');
|
75 |
delete_option( 'mo2f_number_of_transactions');
|
76 |
delete_option( 'mo2f_set_transactions');
|
@@ -164,12 +150,12 @@
|
|
164 |
delete_site_option('mo_file_manual_backup_plugins');
|
165 |
delete_site_option('mo_file_manual_backup_themes');
|
166 |
delete_site_option('mo_schedule_database_backup');
|
167 |
-
|
168 |
delete_site_option('duo_credentials_save_successfully');
|
|
|
169 |
delete_site_option('mo2f_d_integration_key');
|
170 |
delete_site_option('mo2f_d_secret_key');
|
171 |
delete_site_option('mo2f_d_api_hostname');
|
172 |
-
delete_site_option('mo2f_nonce_enable_configured_methods');
|
173 |
if(get_option('is_onprem'))
|
174 |
{
|
175 |
$users = get_users( array() );
|
@@ -184,7 +170,8 @@
|
|
184 |
delete_user_meta( $user->ID, 'kba_questions_user');
|
185 |
delete_user_meta( $user->ID, 'Google Authenticator');
|
186 |
delete_user_meta( $user->ID, 'mo2f_gauth_key');
|
187 |
-
delete_user_meta( $user->ID, 'mo2f_get_auth_rnd_string');
|
|
|
188 |
}
|
189 |
}
|
190 |
|
8 |
delete_option('mo2f_email');
|
9 |
}
|
10 |
update_option('mo2f_activate_plugin', 1);
|
|
|
|
|
|
|
|
|
|
|
11 |
delete_option('mo2f_customerKey');
|
12 |
delete_option('mo2f_api_key');
|
13 |
delete_option('mo2f_customer_token');
|
26 |
delete_site_option('mo2f_added_ips_realtime');
|
27 |
delete_site_option('mo2f_mail_notify_new_release');
|
28 |
delete_site_option('mo2f_mail_notify');
|
|
|
|
|
|
|
|
|
|
|
29 |
delete_site_option('mo2f_feature_vers');
|
|
|
|
|
30 |
delete_site_option('mo2f_user_IP');
|
31 |
delete_option('mo_wpns_enable_brute_force');
|
32 |
delete_option('mo_wpns_show_remaining_attempts');
|
56 |
delete_option( 'mo_2f_switch_all');
|
57 |
delete_option( 'mo2f_login_option');
|
58 |
delete_option( 'mo_wpns_scan_initialize');
|
59 |
+
delete_option( 'mo2f_planname');
|
|
|
|
|
60 |
delete_option( 'mo2f_activated_time');
|
61 |
delete_option( 'mo2f_number_of_transactions');
|
62 |
delete_option( 'mo2f_set_transactions');
|
150 |
delete_site_option('mo_file_manual_backup_plugins');
|
151 |
delete_site_option('mo_file_manual_backup_themes');
|
152 |
delete_site_option('mo_schedule_database_backup');
|
153 |
+
delete_site_option('mo2f_enable_debug_log');
|
154 |
delete_site_option('duo_credentials_save_successfully');
|
155 |
+
|
156 |
delete_site_option('mo2f_d_integration_key');
|
157 |
delete_site_option('mo2f_d_secret_key');
|
158 |
delete_site_option('mo2f_d_api_hostname');
|
|
|
159 |
if(get_option('is_onprem'))
|
160 |
{
|
161 |
$users = get_users( array() );
|
170 |
delete_user_meta( $user->ID, 'kba_questions_user');
|
171 |
delete_user_meta( $user->ID, 'Google Authenticator');
|
172 |
delete_user_meta( $user->ID, 'mo2f_gauth_key');
|
173 |
+
delete_user_meta( $user->ID, 'mo2f_get_auth_rnd_string');
|
174 |
+
|
175 |
}
|
176 |
}
|
177 |
|
views/addons.php
CHANGED
@@ -24,7 +24,7 @@
|
|
24 |
<div>
|
25 |
|
26 |
<center>
|
27 |
-
<div style="width: 92%;background-color: white;padding: 10px;border-top: 4px solid #
|
28 |
<div style="float: left;">
|
29 |
<?php echo '<a class="button button-primary button-large" href="'.$two_fa.'">Back</a>';?>
|
30 |
</div>
|
@@ -34,7 +34,7 @@
|
|
34 |
</div>
|
35 |
<div class="mo_2fa_container">
|
36 |
<div class="mo_2fa_card-deck">
|
37 |
-
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #
|
38 |
background-color: white;width: 30%;margin: 10px;">
|
39 |
<div class="mo_2fa_Card-header">
|
40 |
<h3>Learning Management System / Online Courses</h3>
|
@@ -59,7 +59,7 @@
|
|
59 |
</div><br>
|
60 |
<?php echo mo2f_addon_contact_us();?>
|
61 |
</div>
|
62 |
-
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #
|
63 |
background-color: white;width: 30%;margin: 10px;">
|
64 |
<div class="mo_2fa_Card-header">
|
65 |
<h3>User Session Control</h3>
|
@@ -85,7 +85,7 @@
|
|
85 |
<?php echo mo2f_addon_contact_us();?>
|
86 |
|
87 |
</div>
|
88 |
-
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #
|
89 |
<div class="mo_2fa_Card-header">
|
90 |
<h3>Password-Less Login</h3>
|
91 |
</div>
|
@@ -107,7 +107,7 @@
|
|
107 |
</div><br>
|
108 |
<?php echo mo2f_addon_contact_us();?>
|
109 |
</div>
|
110 |
-
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #
|
111 |
<div class="mo_2fa_Card-header">
|
112 |
<h3>WooCommerce</h3>
|
113 |
</div>
|
@@ -125,7 +125,7 @@
|
|
125 |
</div><br>
|
126 |
<?php echo mo2f_addon_contact_us();?>
|
127 |
</div>
|
128 |
-
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #
|
129 |
<div class="mo_2fa_Card-header">
|
130 |
<h3>User Registration</h3>
|
131 |
</div>
|
@@ -143,7 +143,7 @@
|
|
143 |
</div><br>
|
144 |
<?php echo mo2f_addon_contact_us();?>
|
145 |
</div>
|
146 |
-
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #
|
147 |
<div class="mo_2fa_Card-header">
|
148 |
<h3>Ultimate Member</h3>
|
149 |
</div>
|
@@ -162,13 +162,13 @@
|
|
162 |
</div><br>
|
163 |
<?php echo mo2f_addon_contact_us();?>
|
164 |
</div>
|
165 |
-
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #
|
166 |
background-color: white;width: 30%;margin: 10px">
|
167 |
<div class="mo_2fa_Card-header">
|
168 |
<h3>RBA & Trusted Devices Management</h3>
|
169 |
</div>
|
170 |
<hr>
|
171 |
-
<h1 class="mo_wpns_upgrade_pade_pricing" style="color: #
|
172 |
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
173 |
<h3>Features</h3>
|
174 |
<h4>
|
@@ -194,13 +194,13 @@
|
|
194 |
</div>
|
195 |
<br>
|
196 |
</div>
|
197 |
-
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #
|
198 |
background-color: white;width: 30%;margin: 10px">
|
199 |
<div class="mo_2fa_Card-header">
|
200 |
<h3>Personalization Add-on Features</h3>
|
201 |
</div>
|
202 |
<hr>
|
203 |
-
<h1 class="mo_wpns_upgrade_pade_pricing" style="color: #
|
204 |
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
205 |
<h3>Features</h3>
|
206 |
<h4>
|
@@ -225,13 +225,13 @@
|
|
225 |
</div>
|
226 |
<br>
|
227 |
</div>
|
228 |
-
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #
|
229 |
background-color: white;width: 30%;margin: 10px">
|
230 |
<div class="mo_2fa_Card-header">
|
231 |
<h3>Short Codes Add-on Features</h3>
|
232 |
</div>
|
233 |
<hr>
|
234 |
-
<h1 class="mo_wpns_upgrade_pade_pricing" style="color: #
|
235 |
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
236 |
<h3>Features</h3>
|
237 |
<h4>
|
24 |
<div>
|
25 |
|
26 |
<center>
|
27 |
+
<div style="width: 92%;background-color: white;padding: 10px;border-top: 4px solid #20b2aa">
|
28 |
<div style="float: left;">
|
29 |
<?php echo '<a class="button button-primary button-large" href="'.$two_fa.'">Back</a>';?>
|
30 |
</div>
|
34 |
</div>
|
35 |
<div class="mo_2fa_container">
|
36 |
<div class="mo_2fa_card-deck">
|
37 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;
|
38 |
background-color: white;width: 30%;margin: 10px;">
|
39 |
<div class="mo_2fa_Card-header">
|
40 |
<h3>Learning Management System / Online Courses</h3>
|
59 |
</div><br>
|
60 |
<?php echo mo2f_addon_contact_us();?>
|
61 |
</div>
|
62 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;
|
63 |
background-color: white;width: 30%;margin: 10px;">
|
64 |
<div class="mo_2fa_Card-header">
|
65 |
<h3>User Session Control</h3>
|
85 |
<?php echo mo2f_addon_contact_us();?>
|
86 |
|
87 |
</div>
|
88 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;background-color: white;width: 30%;margin: 10px;">
|
89 |
<div class="mo_2fa_Card-header">
|
90 |
<h3>Password-Less Login</h3>
|
91 |
</div>
|
107 |
</div><br>
|
108 |
<?php echo mo2f_addon_contact_us();?>
|
109 |
</div>
|
110 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;background-color: white;width: 30%;margin: 10px;">
|
111 |
<div class="mo_2fa_Card-header">
|
112 |
<h3>WooCommerce</h3>
|
113 |
</div>
|
125 |
</div><br>
|
126 |
<?php echo mo2f_addon_contact_us();?>
|
127 |
</div>
|
128 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;background-color: white;width: 30%;margin: 10px;">
|
129 |
<div class="mo_2fa_Card-header">
|
130 |
<h3>User Registration</h3>
|
131 |
</div>
|
143 |
</div><br>
|
144 |
<?php echo mo2f_addon_contact_us();?>
|
145 |
</div>
|
146 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;background-color: white;width: 30%;margin: 10px;">
|
147 |
<div class="mo_2fa_Card-header">
|
148 |
<h3>Ultimate Member</h3>
|
149 |
</div>
|
162 |
</div><br>
|
163 |
<?php echo mo2f_addon_contact_us();?>
|
164 |
</div>
|
165 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;
|
166 |
background-color: white;width: 30%;margin: 10px">
|
167 |
<div class="mo_2fa_Card-header">
|
168 |
<h3>RBA & Trusted Devices Management</h3>
|
169 |
</div>
|
170 |
<hr>
|
171 |
+
<h1 class="mo_wpns_upgrade_pade_pricing" style="color: #20b2aa">$49</h1>
|
172 |
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
173 |
<h3>Features</h3>
|
174 |
<h4>
|
194 |
</div>
|
195 |
<br>
|
196 |
</div>
|
197 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;
|
198 |
background-color: white;width: 30%;margin: 10px">
|
199 |
<div class="mo_2fa_Card-header">
|
200 |
<h3>Personalization Add-on Features</h3>
|
201 |
</div>
|
202 |
<hr>
|
203 |
+
<h1 class="mo_wpns_upgrade_pade_pricing" style="color: #20b2aa">$199</h1>
|
204 |
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
205 |
<h3>Features</h3>
|
206 |
<h4>
|
225 |
</div>
|
226 |
<br>
|
227 |
</div>
|
228 |
+
<div class="mo_2fa_card mo_2fa_animation" style="border-top: 4px solid #20b2aa;
|
229 |
background-color: white;width: 30%;margin: 10px">
|
230 |
<div class="mo_2fa_Card-header">
|
231 |
<h3>Short Codes Add-on Features</h3>
|
232 |
</div>
|
233 |
<hr>
|
234 |
+
<h1 class="mo_wpns_upgrade_pade_pricing" style="color: #20b2aa">$99</h1>
|
235 |
<div class="mo_2fa_card-body" style="padding-bottom: 0%;">
|
236 |
<h3>Features</h3>
|
237 |
<h4>
|
views/advanced-blocking.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<div class="mo_wpns_divided_layout_tab">
|
2 |
-
<div class="
|
3 |
-
<button class="
|
4 |
-
<button class="
|
5 |
|
6 |
</div>
|
7 |
</div>
|
@@ -10,15 +10,16 @@ global $mo2f_dirName;
|
|
10 |
$setup_dirName = $mo2f_dirName.'views'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'link_tracer.php';
|
11 |
include $setup_dirName;
|
12 |
?>
|
13 |
-
|
|
|
14 |
|
15 |
<div class="mo_wpns_divided_layout">
|
16 |
<div class="mo_wpns_setting_layout" id="mo2f_manual_ip_blocking">
|
17 |
-
<h2>Manual IP Blocking <a href='<?php echo $two_factor_premium_doc['Manual IP Blocking'];?>' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#
|
18 |
|
19 |
<h4 class="mo_wpns_setting_layout_inside">Manually block an IP address here:  
|
20 |
<input type="text" name="ManuallyBlockIP" id="ManuallyBlockIP" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 35%; height: 41px" />  
|
21 |
-
<input type="button" name="BlockIP" id="BlockIP" value="Manual Block IP" class="
|
22 |
</h4>
|
23 |
|
24 |
<h3 class="mo_wpns_setting_layout_inside"><b>Blocked IPs</b>
|
@@ -52,10 +53,10 @@ echo "</td><td>".date("M j, Y, g:i:s a",$blockedip->created_timestamp)."</td>
|
|
52 |
</h4>
|
53 |
</div>
|
54 |
<div class="mo_wpns_setting_layout" id="mo2f_ip_whitelisting">
|
55 |
-
<h2>IP Whitelisting<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/IP-blocking-whitelisting-lookup#wp-ip-whitelisting" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#
|
56 |
<h4 class="mo_wpns_setting_layout_inside">Add new IP address to whitelist:  
|
57 |
<input type="text" name="IPWhitelist" id="IPWhitelist" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 40%; height: 41px"/>  
|
58 |
-
<input type="button" name="WhiteListIP" id="WhiteListIP" value="Whitelist IP" class="
|
59 |
|
60 |
</h4>
|
61 |
<h3 class="mo_wpns_setting_layout_inside">Whitelist IPs
|
@@ -82,10 +83,10 @@ echo' </tbody>
|
|
82 |
|
83 |
|
84 |
<div class="mo_wpns_setting_layout" id="mo2f_ip_lookup">
|
85 |
-
<h2>IP LookUp<a href='<?php echo $two_factor_premium_doc['IP LookUp'];?>' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#
|
86 |
<h4 class="mo_wpns_setting_layout_inside">Enter IP address you Want to check:  
|
87 |
<input type="text" name="ipAddresslookup" id="ipAddresslookup" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 40%; height: 41px"/>  
|
88 |
-
<input type="button" name="LookupIP" id="LookupIP" value="LookUp IP" class="
|
89 |
</h4>
|
90 |
<div class="ip_lookup_desc" hidden ></div>
|
91 |
|
@@ -97,11 +98,11 @@ echo' </tbody>
|
|
97 |
|
98 |
|
99 |
<?php
|
100 |
-
echo '<div id="
|
101 |
echo'<div class="mo_wpns_divided_layout">
|
102 |
<div class="mo_wpns_setting_layout" id= "mo2f_ip_range_blocking">';
|
103 |
|
104 |
-
echo' <h2>IP Address Range Blocking<a href='.$two_factor_premium_doc['IP Address Range Blocking'].' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#
|
105 |
You can block range of IP addresses here ( Examples: 192.168.0.100 - 192.168.0.190 )
|
106 |
<form name="f" method="post" action="" id="iprangeblockingform" >
|
107 |
<input type="hidden" name="option" value="mo_wpns_block_ip_range" />
|
@@ -140,7 +141,7 @@ echo '
|
|
140 |
|
141 |
|
142 |
<div class="mo_wpns_setting_layout" id="mo2f_browser_blocking">
|
143 |
-
<h3>Browser Blocking<a href='.$two_factor_premium_doc['Browser Blocking'].' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#
|
144 |
<!-- <div class="mo_wpns_subheading">This protects your site from robots and other automated scripts.</div> -->
|
145 |
<form id="mo_wpns_enable_user_agent_blocking" method="post" action="">
|
146 |
<input type="hidden" name="option" value="mo_wpns_enable_user_agent_blocking">
|
@@ -251,34 +252,53 @@ echo' </table><br>
|
|
251 |
|
252 |
?>
|
253 |
<script type="text/javascript">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
254 |
|
255 |
-
|
256 |
-
var tabname = elmt.id;
|
257 |
-
var tabarray = ["mo2f_block_list","mo2f_adv_block"];
|
258 |
-
for (var i = 0; i < tabarray.length; i++) {
|
259 |
-
if(tabarray[i] == tabname){
|
260 |
-
jQuery("#"+tabarray[i]).addClass("nav-tab-active");
|
261 |
-
jQuery("#"+tabarray[i]+"_div").css("display", "block");
|
262 |
-
}else{
|
263 |
-
jQuery("#"+tabarray[i]).removeClass("nav-tab-active");
|
264 |
-
jQuery("#"+tabarray[i]+"_div").css("display", "none");
|
265 |
-
}
|
266 |
-
}
|
267 |
-
localStorage.setItem("ip_last_tab", tabname);
|
268 |
-
}
|
269 |
-
|
270 |
-
jQuery('#adv_block_tab').addClass('nav-tab-active');
|
271 |
|
272 |
-
var tab = localStorage.getItem("
|
273 |
|
274 |
-
if(tab)
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
|
|
279 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
280 |
|
281 |
-
jQuery('#BlockIP').click(function(){
|
282 |
|
283 |
var ip = jQuery('#ManuallyBlockIP').val();
|
284 |
|
1 |
<div class="mo_wpns_divided_layout_tab">
|
2 |
+
<div class="mo_wpns_tab">
|
3 |
+
<button class="tablinks" onclick="block_function(event, 'block_list')" id="defaultOpen">IP Black list</button>
|
4 |
+
<button class="tablinks" onclick="block_function(event, 'adv_block')" id="adv_block_subtab">Advanced Blocking</button>
|
5 |
|
6 |
</div>
|
7 |
</div>
|
10 |
$setup_dirName = $mo2f_dirName.'views'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'link_tracer.php';
|
11 |
include $setup_dirName;
|
12 |
?>
|
13 |
+
|
14 |
+
<div id="block_list" class="tabcontent">
|
15 |
|
16 |
<div class="mo_wpns_divided_layout">
|
17 |
<div class="mo_wpns_setting_layout" id="mo2f_manual_ip_blocking">
|
18 |
+
<h2>Manual IP Blocking <a href='<?php echo $two_factor_premium_doc['Manual IP Blocking'];?>' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#269eb3;float: right;"></span></a></h2>
|
19 |
|
20 |
<h4 class="mo_wpns_setting_layout_inside">Manually block an IP address here:  
|
21 |
<input type="text" name="ManuallyBlockIP" id="ManuallyBlockIP" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 35%; height: 41px" />  
|
22 |
+
<input type="button" name="BlockIP" id="BlockIP" value="Manual Block IP" class="mo_wpsn_button mo_wpsn_button1" />
|
23 |
</h4>
|
24 |
|
25 |
<h3 class="mo_wpns_setting_layout_inside"><b>Blocked IPs</b>
|
53 |
</h4>
|
54 |
</div>
|
55 |
<div class="mo_wpns_setting_layout" id="mo2f_ip_whitelisting">
|
56 |
+
<h2>IP Whitelisting<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/IP-blocking-whitelisting-lookup#wp-ip-whitelisting" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#269eb3;float: right;"></span></a></h2>
|
57 |
<h4 class="mo_wpns_setting_layout_inside">Add new IP address to whitelist:  
|
58 |
<input type="text" name="IPWhitelist" id="IPWhitelist" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 40%; height: 41px"/>  
|
59 |
+
<input type="button" name="WhiteListIP" id="WhiteListIP" value="Whitelist IP" class="mo_wpsn_button mo_wpsn_button1" />
|
60 |
|
61 |
</h4>
|
62 |
<h3 class="mo_wpns_setting_layout_inside">Whitelist IPs
|
83 |
|
84 |
|
85 |
<div class="mo_wpns_setting_layout" id="mo2f_ip_lookup">
|
86 |
+
<h2>IP LookUp<a href='<?php echo $two_factor_premium_doc['IP LookUp'];?>' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#269eb3;float: right;"></span></a></h2>
|
87 |
<h4 class="mo_wpns_setting_layout_inside">Enter IP address you Want to check:  
|
88 |
<input type="text" name="ipAddresslookup" id="ipAddresslookup" required placeholder='IP address'pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}" style="width: 40%; height: 41px"/>  
|
89 |
+
<input type="button" name="LookupIP" id="LookupIP" value="LookUp IP" class="mo_wpsn_button mo_wpsn_button1" />
|
90 |
</h4>
|
91 |
<div class="ip_lookup_desc" hidden ></div>
|
92 |
|
98 |
|
99 |
|
100 |
<?php
|
101 |
+
echo '<div id="adv_block" class="tabcontent">';
|
102 |
echo'<div class="mo_wpns_divided_layout">
|
103 |
<div class="mo_wpns_setting_layout" id= "mo2f_ip_range_blocking">';
|
104 |
|
105 |
+
echo' <h2>IP Address Range Blocking<a href='.$two_factor_premium_doc['IP Address Range Blocking'].' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></h2>
|
106 |
You can block range of IP addresses here ( Examples: 192.168.0.100 - 192.168.0.190 )
|
107 |
<form name="f" method="post" action="" id="iprangeblockingform" >
|
108 |
<input type="hidden" name="option" value="mo_wpns_block_ip_range" />
|
141 |
|
142 |
|
143 |
<div class="mo_wpns_setting_layout" id="mo2f_browser_blocking">
|
144 |
+
<h3>Browser Blocking<a href='.$two_factor_premium_doc['Browser Blocking'].' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#269eb3;float: right;"></span></a></h3>
|
145 |
<!-- <div class="mo_wpns_subheading">This protects your site from robots and other automated scripts.</div> -->
|
146 |
<form id="mo_wpns_enable_user_agent_blocking" method="post" action="">
|
147 |
<input type="hidden" name="option" value="mo_wpns_enable_user_agent_blocking">
|
252 |
|
253 |
?>
|
254 |
<script type="text/javascript">
|
255 |
+
jQuery('#resultsIPLookup').empty();
|
256 |
+
function block_function(evt, cityName) {
|
257 |
+
var i, tabcontent, tablinks;
|
258 |
+
tabcontent = document.getElementsByClassName("tabcontent");
|
259 |
+
for (i = 0; i < tabcontent.length; i++) {
|
260 |
+
tabcontent[i].style.display = "none";
|
261 |
+
}
|
262 |
+
tablinks = document.getElementsByClassName("tablinks");
|
263 |
+
for (i = 0; i < tablinks.length; i++) {
|
264 |
+
tablinks[i].className = tablinks[i].className.replace(" active", "");
|
265 |
+
}
|
266 |
+
|
267 |
+
localStorage.setItem("last_tab",cityName);
|
268 |
+
evt.currentTarget.className += " active";
|
269 |
+
|
270 |
+
if(cityName == "defaultOpen")
|
271 |
+
{
|
272 |
+
jQuery("#defaultOpen").addClass(" active");
|
273 |
+
}
|
274 |
+
document.getElementById(cityName).style.display = "block";
|
275 |
|
276 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
277 |
|
278 |
+
var tab = localStorage.getItem("last_tab");
|
279 |
|
280 |
+
if(tab == "block_list")
|
281 |
+
{
|
282 |
+
document.getElementById("defaultOpen").click();
|
283 |
+
// document.getElementById("block_list").style.display = "block";
|
284 |
+
// document.getElementById("adv_block").style.display = "none";
|
285 |
+
// jQuery("#defaultOpen").addClass(" active");
|
286 |
|
287 |
+
}
|
288 |
+
else if(tab == "adv_block")
|
289 |
+
{
|
290 |
+
document.getElementById("adv_block_subtab").click();
|
291 |
+
// document.getElementById("adv_block").style.display = "block";
|
292 |
+
// document.getElementById("block_list").style.display = "none";
|
293 |
+
// jQuery("#adv_block_subtab").addClass(" active");
|
294 |
+
}
|
295 |
+
else
|
296 |
+
{
|
297 |
+
document.getElementById("defaultOpen").click();
|
298 |
+
// jQuery("#defaultOpen").addClass(" active");
|
299 |
+
}
|
300 |
|
301 |
+
jQuery('#BlockIP').click(function(){
|
302 |
|
303 |
var ip = jQuery('#ManuallyBlockIP').val();
|
304 |
|
views/backup/backup.php
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
|
2 |
-
<div class="
|
3 |
-
<button class="
|
4 |
-
<button class="
|
5 |
-
<button class="
|
6 |
|
7 |
</div>
|
8 |
|
9 |
-
<div class="tabcontent" id="
|
10 |
<div class="mo_wpns_divided_layout">
|
11 |
<table style="width: 100%;">
|
12 |
<tr>
|
@@ -16,7 +16,7 @@
|
|
16 |
</table>
|
17 |
</div>
|
18 |
</div>
|
19 |
-
<div class="tabcontent" id="
|
20 |
<div class="mo_wpns_divided_layout">
|
21 |
<table style="width: 100%;">
|
22 |
<tr>
|
@@ -26,7 +26,7 @@
|
|
26 |
</table>
|
27 |
</div>
|
28 |
</div>
|
29 |
-
<div class="tabcontent" id="
|
30 |
<div class="mo_wpns_divided_layout">
|
31 |
<table style="width: 100%;">
|
32 |
<tr>
|
@@ -37,30 +37,42 @@
|
|
37 |
</div>
|
38 |
</div>
|
39 |
|
|
|
|
|
40 |
<script>
|
41 |
-
|
|
|
|
|
42 |
|
43 |
-
function mo2f_wpns_openTabbackup(elmt){
|
44 |
-
var tabname = elmt.id;
|
45 |
-
var tabarray = ["mo2f_setting_backup","mo2f_schedule_view","mo2f_report_view"];
|
46 |
-
for (var i = 0; i < tabarray.length; i++) {
|
47 |
-
if(tabarray[i] == tabname){
|
48 |
-
jQuery("#"+tabarray[i]).addClass("nav-tab-active");
|
49 |
-
jQuery("#"+tabarray[i]+"_div").css("display", "block");
|
50 |
-
}else{
|
51 |
-
jQuery("#"+tabarray[i]).removeClass("nav-tab-active");
|
52 |
-
jQuery("#"+tabarray[i]+"_div").css("display", "none");
|
53 |
-
}
|
54 |
-
}
|
55 |
-
|
56 |
-
localStorage.setItem("backup_last_tab", tabname);
|
57 |
-
}
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
document.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
else{
|
64 |
-
document.getElementById("
|
65 |
}
|
66 |
</script>
|
1 |
|
2 |
+
<div class="mo_wpns_tab">
|
3 |
+
<button class="tablinks" onclick="openTabbackup(event, 'setting_backup')" id="backup_set">Manual Backup</button>
|
4 |
+
<button class="tablinks" onclick="openTabbackup(event, 'schdule_view')" id="schdule">Scheduled Backup</button>
|
5 |
+
<button class="tablinks" onclick="openTabbackup(event, 'report_view')" id="report">Report</button>
|
6 |
|
7 |
</div>
|
8 |
|
9 |
+
<div class="tabcontent" id="setting_backup">
|
10 |
<div class="mo_wpns_divided_layout">
|
11 |
<table style="width: 100%;">
|
12 |
<tr>
|
16 |
</table>
|
17 |
</div>
|
18 |
</div>
|
19 |
+
<div class="tabcontent" id="schdule_view">
|
20 |
<div class="mo_wpns_divided_layout">
|
21 |
<table style="width: 100%;">
|
22 |
<tr>
|
26 |
</table>
|
27 |
</div>
|
28 |
</div>
|
29 |
+
<div class="tabcontent" id="report_view">
|
30 |
<div class="mo_wpns_divided_layout">
|
31 |
<table style="width: 100%;">
|
32 |
<tr>
|
37 |
</div>
|
38 |
</div>
|
39 |
|
40 |
+
|
41 |
+
|
42 |
<script>
|
43 |
+
document.getElementById("setting_backup").style.display = "block";
|
44 |
+
document.getElementById("schdule_view").style.display = "none";
|
45 |
+
document.getElementById("report_view").style.display = "none";
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
48 |
+
document.getElementById("backup_set").className += " active";
|
49 |
+
function openTabbackup(evt, tabname){
|
50 |
+
var i, tablinks, tabcontent;
|
51 |
+
tabcontent = document.getElementsByClassName("tabcontent");
|
52 |
+
for (i = 0; i < tabcontent.length; i++) {
|
53 |
+
tabcontent[i].style.display = "none";
|
54 |
+
}
|
55 |
+
tablinks = document.getElementsByClassName("tablinks");
|
56 |
+
for (i = 0; i < tablinks.length; i++) {
|
57 |
+
tablinks[i].className = tablinks[i].className.replace(" active", "");
|
58 |
+
}
|
59 |
+
document.getElementById(tabname).style.display = "block";
|
60 |
+
localStorage.setItem("last_tab", tabname);
|
61 |
+
evt.currentTarget.className += " active";
|
62 |
+
}
|
63 |
+
var tab = localStorage.getItem("last_tab");
|
64 |
+
|
65 |
+
if(tab == "setting_backup"){
|
66 |
+
document.getElementById("backup_set").click();
|
67 |
+
}
|
68 |
+
else if(tab == "schdule_view"){
|
69 |
+
document.getElementById("schdule").click();
|
70 |
+
}
|
71 |
+
else if(tab == "report_view"){
|
72 |
+
document.getElementById("report").click();
|
73 |
+
}
|
74 |
+
|
75 |
else{
|
76 |
+
document.getElementById("backup_set").click();
|
77 |
}
|
78 |
</script>
|
views/backup/backup_created_report.php
CHANGED
@@ -71,11 +71,8 @@ function backup_delete(elmt, file_path,file_name,id){
|
|
71 |
});
|
72 |
|
73 |
}
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
retrieve: true,
|
78 |
-
paging: false
|
79 |
-
});
|
80 |
|
81 |
</script>
|
71 |
});
|
72 |
|
73 |
}
|
74 |
+
jQuery("#reports_table").DataTable({
|
75 |
+
"order": [[ 1, "desc" ]]
|
76 |
+
});
|
|
|
|
|
|
|
77 |
|
78 |
</script>
|
views/backup/backup_schdule.php
CHANGED
@@ -12,7 +12,7 @@ add_action('admin_footer','mo_wpns_schedule_backup');
|
|
12 |
<tr>
|
13 |
<th>Scheduled file backup </th>
|
14 |
<th>Scheduled database backup </th>
|
15 |
-
<th><a href='<?php echo $two_factor_premium_doc['Scheduled database'];?>' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#
|
16 |
</tr>
|
17 |
<tr><td> </td><td></td></tr>
|
18 |
<tr>
|
12 |
<tr>
|
13 |
<th>Scheduled file backup </th>
|
14 |
<th>Scheduled database backup </th>
|
15 |
+
<th><a href='<?php echo $two_factor_premium_doc['Scheduled database'];?>' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;margin-top: 0.5em;float: right;"></span></a></th>
|
16 |
</tr>
|
17 |
<tr><td> </td><td></td></tr>
|
18 |
<tr>
|
views/backup/backup_setting_view.php
CHANGED
@@ -66,7 +66,7 @@ jQuery(document).ready(function(){
|
|
66 |
setInterval(function(){ jQuery("#backupinprogress").fadeIn(700); }, 1000);
|
67 |
document.getElementById("save_backup_settings").value = "Taking Backup...";
|
68 |
jQuery('input[name="save_backup_settings"]').attr('disabled', true);
|
69 |
-
document.getElementById('save_backup_settings').style.backgroundColor = '#
|
70 |
|
71 |
var data={
|
72 |
'action':'mo_wpns_backup_redirect',
|
@@ -131,7 +131,7 @@ function barfw_response_handler(para1, para2){
|
|
131 |
jQuery(".filebackupmessage").css("background-color","#1EC11E");
|
132 |
|
133 |
jQuery('input[name="save_backup_settings"]').removeAttr('disabled');
|
134 |
-
document.getElementById('save_backup_settings').style.backgroundColor = '#
|
135 |
document.getElementById("save_backup_settings").value = "Take Backup";
|
136 |
}
|
137 |
|
66 |
setInterval(function(){ jQuery("#backupinprogress").fadeIn(700); }, 1000);
|
67 |
document.getElementById("save_backup_settings").value = "Taking Backup...";
|
68 |
jQuery('input[name="save_backup_settings"]').attr('disabled', true);
|
69 |
+
document.getElementById('save_backup_settings').style.backgroundColor = '#20b2aa';
|
70 |
|
71 |
var data={
|
72 |
'action':'mo_wpns_backup_redirect',
|
131 |
jQuery(".filebackupmessage").css("background-color","#1EC11E");
|
132 |
|
133 |
jQuery('input[name="save_backup_settings"]').removeAttr('disabled');
|
134 |
+
document.getElementById('save_backup_settings').style.backgroundColor = '#20b2aa';
|
135 |
document.getElementById("save_backup_settings").value = "Take Backup";
|
136 |
}
|
137 |
|
views/dashboard.php
CHANGED
@@ -10,10 +10,11 @@ $login_spam_on= get_site_option("mo_2f_switch_loginspam")?"checked":"";
|
|
10 |
$backup_on= get_site_option("mo_2f_switch_backup")?"checked":"";
|
11 |
$malware_on= get_site_option("mo_2f_switch_malware")?"checked":"";
|
12 |
$adv_block_on= get_site_option("mo_2f_switch_adv_block")?"checked":"";
|
|
|
13 |
echo '<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
14 |
-
<div class="
|
15 |
|
16 |
-
<div class="mo_wpns_dashboard_layout" >
|
17 |
<center>
|
18 |
<div class ="mo_wpns_inside_dashboard_layout "><p style="font-weight: bold;">Failed Login</p><p class ="wpns_font_size mo_wpns_dashboard_text" >'.$wpns_attacks_blocked.'</p>
|
19 |
<a class="mo_wpns_button_info_tab" onclick="clear_Local_storage()" style="color:white;" href="admin.php?page=mo_2fa_reports&tab=default&view">Details</a>
|
@@ -46,8 +47,7 @@ echo '<meta name="viewport" content="width=device-width, initial-scale=1, maximu
|
|
46 |
</h3>
|
47 |
</form>
|
48 |
</div>
|
49 |
-
|
50 |
-
<div style="display:flex;justify-content:center">
|
51 |
<div class="mo_wpns_small_layout">
|
52 |
<form name="tab_2fa" id="tab_2fa" method="post">
|
53 |
<h3>Two Factor Authentication ';
|
@@ -58,7 +58,7 @@ echo '<meta name="viewport" content="width=device-width, initial-scale=1, maximu
|
|
58 |
<span class="mo_wpns_slider mo_wpns_round"></span>
|
59 |
</label>';
|
60 |
}else{
|
61 |
-
echo ' <b style="color
|
62 |
}
|
63 |
echo ' </h3>
|
64 |
</form>
|
@@ -88,7 +88,6 @@ echo '<meta name="viewport" content="width=device-width, initial-scale=1, maximu
|
|
88 |
<br><br>
|
89 |
<a class="button button-primary button-large" href="'.$waf.'">Settings</a>
|
90 |
</div>
|
91 |
-
|
92 |
<div class="mo_wpns_small_layout">
|
93 |
<form name="tab_login" id="tab_login" method="post">
|
94 |
<h3 align="center">Login and Spam
|
@@ -108,8 +107,6 @@ echo '<meta name="viewport" content="width=device-width, initial-scale=1, maximu
|
|
108 |
</div>
|
109 |
<a class="button button-primary button-large" href="'.$login_and_spam.'">Settings</a>
|
110 |
</div>
|
111 |
-
</div>
|
112 |
-
<div style="display:flex;justify-content:center">
|
113 |
<div class="mo_wpns_small_layout">
|
114 |
<form name="tab_backup" id="tab_backup" method="post">
|
115 |
<h3>Encrypted Backup
|
@@ -144,7 +141,6 @@ echo '<meta name="viewport" content="width=device-width, initial-scale=1, maximu
|
|
144 |
</div>
|
145 |
<a class="button button-primary button-large" href="'.$scan_url.'">Settings</a>
|
146 |
</div>
|
147 |
-
|
148 |
<div class="mo_wpns_small_layout">
|
149 |
<form name="tab_adv_block" id="tab_adv_block" method="post">
|
150 |
<h3>IP Blocking
|
@@ -162,8 +158,6 @@ echo '<meta name="viewport" content="width=device-width, initial-scale=1, maximu
|
|
162 |
</div>
|
163 |
<a class="button button-primary button-large" href="'.$advance_block.'">Settings</a>
|
164 |
</div>
|
165 |
-
</div>
|
166 |
-
<div style="display:flex;justify-content:center">
|
167 |
<div class="mo_wpns_small_layout">
|
168 |
<form name="tab_report" id="tab_report" method="post">
|
169 |
<h3>Reports
|
@@ -190,8 +184,6 @@ echo '<meta name="viewport" content="width=device-width, initial-scale=1, maximu
|
|
190 |
<a class="button button-primary button-large" href="'.$notif_url.'">Settings</a>
|
191 |
|
192 |
</div>
|
193 |
-
</div>
|
194 |
-
</div>
|
195 |
|
196 |
</div>
|
197 |
<script>
|
@@ -206,9 +198,6 @@ function mo_2fa_dashboard_switch(){
|
|
206 |
}
|
207 |
?>
|
208 |
<script>
|
209 |
-
jQuery('#mo_2fa_dashboard').addClass('nav-tab-active');
|
210 |
-
|
211 |
-
|
212 |
jQuery(document).ready(function(){
|
213 |
jQuery("#switch_2fa").click(function(){
|
214 |
jQuery("#tab_2fa").submit();
|
10 |
$backup_on= get_site_option("mo_2f_switch_backup")?"checked":"";
|
11 |
$malware_on= get_site_option("mo_2f_switch_malware")?"checked":"";
|
12 |
$adv_block_on= get_site_option("mo_2f_switch_adv_block")?"checked":"";
|
13 |
+
echo '<div id="mo_switch_message" style=" padding:8px"></div>';
|
14 |
echo '<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
15 |
+
<div class="mo_wpns_divided_layout">
|
16 |
|
17 |
+
<div class="mo_wpns_dashboard_layout" style= "background-color: white;width: 94.5%;border: 2px solid #20b2aa;padding-bottom: 52px;">
|
18 |
<center>
|
19 |
<div class ="mo_wpns_inside_dashboard_layout "><p style="font-weight: bold;">Failed Login</p><p class ="wpns_font_size mo_wpns_dashboard_text" >'.$wpns_attacks_blocked.'</p>
|
20 |
<a class="mo_wpns_button_info_tab" onclick="clear_Local_storage()" style="color:white;" href="admin.php?page=mo_2fa_reports&tab=default&view">Details</a>
|
47 |
</h3>
|
48 |
</form>
|
49 |
</div>
|
50 |
+
|
|
|
51 |
<div class="mo_wpns_small_layout">
|
52 |
<form name="tab_2fa" id="tab_2fa" method="post">
|
53 |
<h3>Two Factor Authentication ';
|
58 |
<span class="mo_wpns_slider mo_wpns_round"></span>
|
59 |
</label>';
|
60 |
}else{
|
61 |
+
echo ' <b style="color:green;">(Enabled)</b>';
|
62 |
}
|
63 |
echo ' </h3>
|
64 |
</form>
|
88 |
<br><br>
|
89 |
<a class="button button-primary button-large" href="'.$waf.'">Settings</a>
|
90 |
</div>
|
|
|
91 |
<div class="mo_wpns_small_layout">
|
92 |
<form name="tab_login" id="tab_login" method="post">
|
93 |
<h3 align="center">Login and Spam
|
107 |
</div>
|
108 |
<a class="button button-primary button-large" href="'.$login_and_spam.'">Settings</a>
|
109 |
</div>
|
|
|
|
|
110 |
<div class="mo_wpns_small_layout">
|
111 |
<form name="tab_backup" id="tab_backup" method="post">
|
112 |
<h3>Encrypted Backup
|
141 |
</div>
|
142 |
<a class="button button-primary button-large" href="'.$scan_url.'">Settings</a>
|
143 |
</div>
|
|
|
144 |
<div class="mo_wpns_small_layout">
|
145 |
<form name="tab_adv_block" id="tab_adv_block" method="post">
|
146 |
<h3>IP Blocking
|
158 |
</div>
|
159 |
<a class="button button-primary button-large" href="'.$advance_block.'">Settings</a>
|
160 |
</div>
|
|
|
|
|
161 |
<div class="mo_wpns_small_layout">
|
162 |
<form name="tab_report" id="tab_report" method="post">
|
163 |
<h3>Reports
|
184 |
<a class="button button-primary button-large" href="'.$notif_url.'">Settings</a>
|
185 |
|
186 |
</div>
|
|
|
|
|
187 |
|
188 |
</div>
|
189 |
<script>
|
198 |
}
|
199 |
?>
|
200 |
<script>
|
|
|
|
|
|
|
201 |
jQuery(document).ready(function(){
|
202 |
jQuery("#switch_2fa").click(function(){
|
203 |
jQuery("#tab_2fa").submit();
|
views/email-IPaddress.php
CHANGED
@@ -3,7 +3,6 @@ function mo_IP_template()
|
|
3 |
{
|
4 |
global $moWpnsUtility;
|
5 |
$IPaddress = $moWpnsUtility->get_client_ip();
|
6 |
-
$IPaddress = sanitize_text_field( $IPaddress );
|
7 |
$result=@json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$IPaddress),true);
|
8 |
$ipLookUpTemplate = MoWpnsConstants::IP_LOOKUP_TEMPLATE;
|
9 |
$hostname = get_site_url();
|
@@ -31,7 +30,7 @@ return '<!DOCTYPE html>
|
|
31 |
width :91%;
|
32 |
margin-left:3%;
|
33 |
font-size:19px;
|
34 |
-
border: 4px solid #
|
35 |
|
36 |
}
|
37 |
.mo_2fa_feature
|
@@ -50,7 +49,7 @@ return '<!DOCTYPE html>
|
|
50 |
margin: 1%;
|
51 |
float: left;
|
52 |
background-color: white;
|
53 |
-
border-top: 5px solid #
|
54 |
min-height: 320px;
|
55 |
text-align: center;
|
56 |
overflow: hidden;
|
@@ -109,7 +108,7 @@ return '<!DOCTYPE html>
|
|
109 |
.mo_2fa_ef_button
|
110 |
{
|
111 |
font-size: x-large;
|
112 |
-
background-color:#
|
113 |
color: white;
|
114 |
padding: 17px 127px;
|
115 |
font-family: cursive;
|
@@ -117,8 +116,8 @@ return '<!DOCTYPE html>
|
|
117 |
}
|
118 |
.mo_2fa_ef_read_more
|
119 |
{
|
120 |
-
color: #
|
121 |
-
border: 2px solid #
|
122 |
padding: 17px 27px;
|
123 |
font-family: cursive;
|
124 |
}
|
@@ -126,7 +125,7 @@ return '<!DOCTYPE html>
|
|
126 |
{
|
127 |
|
128 |
/*font-size: x-large;*/
|
129 |
-
background-color: #
|
130 |
color: white;
|
131 |
border: 1px solid white;
|
132 |
padding: 17px 27px;
|
3 |
{
|
4 |
global $moWpnsUtility;
|
5 |
$IPaddress = $moWpnsUtility->get_client_ip();
|
|
|
6 |
$result=@json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$IPaddress),true);
|
7 |
$ipLookUpTemplate = MoWpnsConstants::IP_LOOKUP_TEMPLATE;
|
8 |
$hostname = get_site_url();
|
30 |
width :91%;
|
31 |
margin-left:3%;
|
32 |
font-size:19px;
|
33 |
+
border: 4px solid #20b2aa;
|
34 |
|
35 |
}
|
36 |
.mo_2fa_feature
|
49 |
margin: 1%;
|
50 |
float: left;
|
51 |
background-color: white;
|
52 |
+
border-top: 5px solid #20b2aa;
|
53 |
min-height: 320px;
|
54 |
text-align: center;
|
55 |
overflow: hidden;
|
108 |
.mo_2fa_ef_button
|
109 |
{
|
110 |
font-size: x-large;
|
111 |
+
background-color:#20b2aa;
|
112 |
color: white;
|
113 |
padding: 17px 127px;
|
114 |
font-family: cursive;
|
116 |
}
|
117 |
.mo_2fa_ef_read_more
|
118 |
{
|
119 |
+
color: #20b2aa;
|
120 |
+
border: 2px solid #20b2aa;
|
121 |
padding: 17px 27px;
|
122 |
font-family: cursive;
|
123 |
}
|
125 |
{
|
126 |
|
127 |
/*font-size: x-large;*/
|
128 |
+
background-color: #20b2aa;
|
129 |
color: white;
|
130 |
border: 1px solid white;
|
131 |
padding: 17px 27px;
|
views/feedback_footer.php
CHANGED
@@ -1,5 +1,9 @@
|
|
1 |
<?php
|
2 |
global $mo2f_dirName;
|
|
|
|
|
|
|
|
|
3 |
|
4 |
echo' <div class="mo_twofa_footer">
|
5 |
<div class="mo-2fa-mail-button">
|
@@ -53,6 +57,55 @@ echo' <div class="mo_twofa_footer">
|
|
53 |
</tr>
|
54 |
|
55 |
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
</div>
|
57 |
</div>
|
58 |
<div class="mo2f-form-container">
|
@@ -77,7 +130,7 @@ echo' <div class="mo_twofa_footer">
|
|
77 |
</tr>
|
78 |
<tr>
|
79 |
<td>
|
80 |
-
<textarea id="query" name="query" class="mo2f_new_support_form_input" style="border-radius:25px ; border: 1px solid gray; resize: none;width:100%;" cols="52" rows="9" placeholder="Write your query here"></textarea>
|
81 |
</td>
|
82 |
</tr>
|
83 |
<tr>
|
@@ -139,7 +192,71 @@ echo' <div class="mo_twofa_footer">
|
|
139 |
function moLoginHeightValidate(e){
|
140 |
var t=parseInt(e.value.trim());t>50?e.value=50:35>t&&(e.value=35)
|
141 |
}
|
|
|
|
|
|
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
function openForm() {
|
144 |
document.getElementById("myForm").style.display = "block";
|
145 |
document.getElementById("feedback_form_bg").style.display = "block";
|
@@ -150,15 +267,4 @@ function closeForm() {
|
|
150 |
document.getElementById("feedback_form_bg").style.display = "none";
|
151 |
|
152 |
}
|
153 |
-
|
154 |
-
jQuery(document).ready(function () {
|
155 |
-
jQuery( ".mo-2fa-mail-button" ).hover(
|
156 |
-
function() {
|
157 |
-
$('.mo-2fa-help-button-text').css('display','block');
|
158 |
-
}, function() {
|
159 |
-
$('.mo-2fa-help-button-text').css('display','none');
|
160 |
-
}
|
161 |
-
);
|
162 |
-
});
|
163 |
-
|
164 |
</script>
|
1 |
<?php
|
2 |
global $mo2f_dirName;
|
3 |
+
require_once $mo2f_dirName . DIRECTORY_SEPARATOR.'includes'. DIRECTORY_SEPARATOR.'lib'. DIRECTORY_SEPARATOR.'mo-2fa-options-enum.php';
|
4 |
+
|
5 |
+
$zones = mo_2fa_time_zones::$time_zones;
|
6 |
+
|
7 |
|
8 |
echo' <div class="mo_twofa_footer">
|
9 |
<div class="mo-2fa-mail-button">
|
57 |
</tr>
|
58 |
|
59 |
</table>
|
60 |
+
<?php
|
61 |
+
|
62 |
+
echo'
|
63 |
+
<div class="call-setup-div">
|
64 |
+
<h3 style="margin-top: 0px; margin-left: 5px;">Setup a Screen-share session</h3>
|
65 |
+
<label class="switch">
|
66 |
+
<input type="checkbox" id="2fa_setup_call" name="2fa_setup_call">
|
67 |
+
<span class="slider round"></span>
|
68 |
+
</label>
|
69 |
+
<span style="padding-left:5px; font-size: 15px;">
|
70 |
+
<br>
|
71 |
+
<b style="padding: 10px;"><label for="2fa_setup_call"></label>Enable this option to setup a call</b>
|
72 |
+
</span>
|
73 |
+
<br>
|
74 |
+
<div id="call_setup_dets" style="text-align:center; margin-left: 5px; margin-top: 15px;">
|
75 |
+
<div>
|
76 |
+
<div style="width: 100% !important; ">
|
77 |
+
<select id="js-timezone" name="mo_2fa_setup_call_timezone" style="width:93%;">
|
78 |
+
<option value="" selected disabled>--Select your Timezone--</option>';
|
79 |
+
|
80 |
+
foreach($zones as $zone=>$value) {
|
81 |
+
echo '<option value="'.$value.'">'. $zone.' </option>';
|
82 |
+
}
|
83 |
+
|
84 |
+
echo'
|
85 |
+
|
86 |
+
</select>
|
87 |
+
</div>
|
88 |
+
</div>
|
89 |
+
<br>
|
90 |
+
<div style="width: 100%; position: relative;">
|
91 |
+
<input type="text" id="datepicker" class="mo_2fa_table_textbox" placeholder="Select Date" autocomplete="off" name="mo_2fa_setup_call_date">
|
92 |
+
</div>
|
93 |
+
<br>
|
94 |
+
<div style="width: 100%; position: relative; z-index:999">
|
95 |
+
<input type="text" id="timepicker" placeholder="Select Time" class="mo_2fa_table_textbox" autocomplete="off" name="mo_2fa_setup_call_time">
|
96 |
+
</div>
|
97 |
+
<br><br><br>
|
98 |
+
<div>
|
99 |
+
<p style="margin-right: 20px; margin-bottom: 10px; margin-top: 15px; margin-left: 5px;">
|
100 |
+
<b><font color="#dc143c">Please verify the email before submitting your query.</font></b>
|
101 |
+
</p>
|
102 |
+
</div>
|
103 |
+
</div>
|
104 |
+
</div>';
|
105 |
+
|
106 |
+
|
107 |
+
?>
|
108 |
+
|
109 |
</div>
|
110 |
</div>
|
111 |
<div class="mo2f-form-container">
|
130 |
</tr>
|
131 |
<tr>
|
132 |
<td>
|
133 |
+
<textarea id="query" name="query" class="mo2f_new_support_form_input" style="border-radius:25px ; border: 1px solid gray; resize: none;width:100%;" cols="52" rows="9" onkeyup="mo_wpns_valid(this)" onblur="mo_wpns_valid(this)" onkeypress="mo_wpns_valid(this)" placeholder="Write your query here"></textarea>
|
134 |
</td>
|
135 |
</tr>
|
136 |
<tr>
|
192 |
function moLoginHeightValidate(e){
|
193 |
var t=parseInt(e.value.trim());t>50?e.value=50:35>t&&(e.value=35)
|
194 |
}
|
195 |
+
var min_time = "00:00";
|
196 |
+
|
197 |
+
jQuery( function() {
|
198 |
|
199 |
+
jQuery("#call_setup_dets").hide();
|
200 |
+
jQuery("#2fa_setup_call").click(function() {
|
201 |
+
if(jQuery(this).is(":checked")) {
|
202 |
+
jQuery("#call_setup_dets").show();
|
203 |
+
document.getElementById("js-timezone").required = true;
|
204 |
+
document.getElementById("datepicker").required = true;
|
205 |
+
document.getElementById("timepicker").required = true;
|
206 |
+
document.getElementById("query").required = false;
|
207 |
+
|
208 |
+
var date = new Date();
|
209 |
+
var hrs = date.getHours();
|
210 |
+
var mins = date.getMinutes();
|
211 |
+
if(hrs == 23 && mins > 30){
|
212 |
+
jQuery("#datepicker").datepicker("option", "minDate", 1);
|
213 |
+
jQuery("#datepicker").datepicker("setDate", +1);
|
214 |
+
jQuery("#timepicker").timepicker("option", "minTime", "00:00");
|
215 |
+
} else{
|
216 |
+
jQuery("#datepicker").datepicker("option", "minDate", 0);
|
217 |
+
jQuery("#datepicker").datepicker("setDate", new Date());
|
218 |
+
}
|
219 |
+
} else {
|
220 |
+
jQuery("#call_setup_dets").hide();
|
221 |
+
document.getElementById("timepicker").required = false;
|
222 |
+
document.getElementById("datepicker").required = false;
|
223 |
+
document.getElementById("js-timezone").required = false;
|
224 |
+
document.getElementById("query").required = true;
|
225 |
+
}
|
226 |
+
});
|
227 |
+
|
228 |
+
jQuery( "#datepicker" ).datepicker({
|
229 |
+
minDate: 0,
|
230 |
+
dateFormat: "M dd, yy"
|
231 |
+
});
|
232 |
+
|
233 |
+
|
234 |
+
jQuery("#datepicker").datepicker().on("change", function (ev) {
|
235 |
+
var sel_date = jQuery(this).val();
|
236 |
+
var selected_date = new Date(sel_date);
|
237 |
+
var today_date = new Date();
|
238 |
+
|
239 |
+
if( (selected_date.getDate() == today_date.getDate()) && (selected_date.getMonth() == today_date.getMonth()) ){
|
240 |
+
jQuery("#timepicker").timepicker("option", "minTime", new Date());
|
241 |
+
}
|
242 |
+
else{
|
243 |
+
jQuery("#timepicker").timepicker("option", "minTime", "00:00");
|
244 |
+
}
|
245 |
+
});
|
246 |
+
|
247 |
+
jQuery("#timepicker").timepicker({
|
248 |
+
timeFormat: "HH:mm",
|
249 |
+
interval: 30,
|
250 |
+
minTime: new Date(),
|
251 |
+
disableTextInput: true,
|
252 |
+
dynamic: false,
|
253 |
+
dropdown: true,
|
254 |
+
scrollbar: true,
|
255 |
+
forceRoundTime: true
|
256 |
+
});
|
257 |
+
});
|
258 |
+
|
259 |
+
jQuery(function() { jQuery("#js-timezone").select2(); });
|
260 |
function openForm() {
|
261 |
document.getElementById("myForm").style.display = "block";
|
262 |
document.getElementById("feedback_form_bg").style.display = "block";
|
267 |
document.getElementById("feedback_form_bg").style.display = "none";
|
268 |
|
269 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
270 |
</script>
|
views/ip-blocking.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
echo'<div class="mo_wpns_divided_layout">
|
4 |
<div class="mo_wpns_setting_layout">';
|
5 |
|
6 |
-
echo' <h2>IP LookUP<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/IP-blocking-whitelisting-lookup#wp-ip-lookup" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#
|
7 |
<form name="f" method="post" action="" id="iplookup">
|
8 |
<input type="hidden" name="option" value="mo_wpns_ip_lookup" />
|
9 |
<table style="width:100%;">
|
3 |
echo'<div class="mo_wpns_divided_layout">
|
4 |
<div class="mo_wpns_setting_layout">';
|
5 |
|
6 |
+
echo' <h2>IP LookUP<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/IP-blocking-whitelisting-lookup#wp-ip-lookup" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:30px;color:#269eb3;float: right;"></span></a></h2>
|
7 |
<form name="f" method="post" action="" id="iplookup">
|
8 |
<input type="hidden" name="option" value="mo_wpns_ip_lookup" />
|
9 |
<table style="width:100%;">
|
views/login-security.php
CHANGED
@@ -10,7 +10,7 @@ echo '
|
|
10 |
<div class="mo_wpns_setting_layout" id ="mo2f_bruteforce">';
|
11 |
|
12 |
|
13 |
-
echo ' <h3>Brute Force Protection ( Login Protection )<a href='.$two_factor_premium_doc['Brute Force Protection'].' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#
|
14 |
<div class="mo_wpns_subheading">This protects your site from attacks which tries to gain access / login to a site with random usernames and passwords.</div>
|
15 |
|
16 |
<input id="mo_bf_button" type="checkbox" name="enable_brute_force_protection" '.$brute_force_enabled.'> Enable Brute force protection
|
@@ -58,7 +58,7 @@ echo' <form id="mo_wpns_enable_brute_force_form" method="post" action="">
|
|
58 |
echo'
|
59 |
</div>
|
60 |
<div class="mo_wpns_setting_layout" id="mo2f_google_recaptcha">
|
61 |
-
<h3>Google reCAPTCHA<a href='.$two_factor_premium_doc['Google reCAPTCHA'].' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#
|
62 |
<div class="mo_wpns_subheading">Google reCAPTCHA protects your website from spam and abuse. reCAPTCHA uses an advanced risk analysis engine and adaptive CAPTCHAs to keep automated software from engaging in abusive activities on your site. It does this while letting your valid users pass through with ease.</div>
|
63 |
|
64 |
<form id="mo_wpns_activate_recaptcha" method="post" action="">
|
@@ -132,7 +132,7 @@ echo '<br>
|
|
132 |
</div>
|
133 |
|
134 |
<div class="mo_wpns_setting_layout" id="mo2f_enforce_strong_password_div">
|
135 |
-
<h3>Enforce Strong Passwords <a href='.$two_factor_premium_doc['Enforce Strong Passwords'].' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#
|
136 |
<div class="mo_wpns_subheading">Checks the password strength of admin and other users to enhance login security</div>
|
137 |
|
138 |
<form id="mo_wpns_enable_brute_force_form" method="post" action="">
|
10 |
<div class="mo_wpns_setting_layout" id ="mo2f_bruteforce">';
|
11 |
|
12 |
|
13 |
+
echo ' <h3>Brute Force Protection ( Login Protection )<a href='.$two_factor_premium_doc['Brute Force Protection'].' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></h3>
|
14 |
<div class="mo_wpns_subheading">This protects your site from attacks which tries to gain access / login to a site with random usernames and passwords.</div>
|
15 |
|
16 |
<input id="mo_bf_button" type="checkbox" name="enable_brute_force_protection" '.$brute_force_enabled.'> Enable Brute force protection
|
58 |
echo'
|
59 |
</div>
|
60 |
<div class="mo_wpns_setting_layout" id="mo2f_google_recaptcha">
|
61 |
+
<h3>Google reCAPTCHA<a href='.$two_factor_premium_doc['Google reCAPTCHA'].' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></h3>
|
62 |
<div class="mo_wpns_subheading">Google reCAPTCHA protects your website from spam and abuse. reCAPTCHA uses an advanced risk analysis engine and adaptive CAPTCHAs to keep automated software from engaging in abusive activities on your site. It does this while letting your valid users pass through with ease.</div>
|
63 |
|
64 |
<form id="mo_wpns_activate_recaptcha" method="post" action="">
|
132 |
</div>
|
133 |
|
134 |
<div class="mo_wpns_setting_layout" id="mo2f_enforce_strong_password_div">
|
135 |
+
<h3>Enforce Strong Passwords <a href='.$two_factor_premium_doc['Enforce Strong Passwords'].' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></h3>
|
136 |
<div class="mo_wpns_subheading">Checks the password strength of admin and other users to enhance login security</div>
|
137 |
|
138 |
<form id="mo_wpns_enable_brute_force_form" method="post" action="">
|
views/login_spam.php
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
|
2 |
-
<div class="
|
3 |
-
<button class="
|
4 |
-
<button class="
|
5 |
-
<button class="
|
6 |
</div>
|
7 |
<br>
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
</div>
|
18 |
</div>
|
19 |
-
|
|
|
20 |
<div class="mo_wpns_divided_layout">
|
21 |
<table style="width:100%;">
|
22 |
<tr>
|
@@ -27,7 +27,7 @@
|
|
27 |
</table>
|
28 |
</div>
|
29 |
</div>
|
30 |
-
<div class="tabcontent" id="
|
31 |
<div class="mo_wpns_divided_layout">
|
32 |
<table style="width:100%;">
|
33 |
<tr>
|
@@ -39,31 +39,39 @@
|
|
39 |
</div>
|
40 |
</div>
|
41 |
<script>
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
54 |
}
|
55 |
-
|
56 |
-
localStorage.setItem("
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
else{
|
66 |
-
document.getElementById("
|
67 |
}
|
68 |
-
|
69 |
</script>
|
1 |
|
2 |
+
<div class="mo_wpns_tab">
|
3 |
+
<button class="tablinks" onclick="openTab(event, 'security_login')" id="login_sec">Login Security</button>
|
4 |
+
<button class="tablinks" onclick="openTab(event, 'security_registration')" id="reg_sec">Registration Security</button>
|
5 |
+
<button class="tablinks" onclick="openTab(event, 'content_spam')" id="spam_content">Content & Spam</button>
|
6 |
</div>
|
7 |
<br>
|
8 |
+
<div class="tabcontent" id="security_login">
|
9 |
+
<div class="mo_wpns_divided_layout">
|
10 |
+
<table style="width:100%;">
|
11 |
+
<tr>
|
12 |
+
<td>
|
13 |
+
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'login-security.php'; ?>
|
14 |
+
</td>
|
15 |
+
</tr>
|
16 |
+
</table>
|
|
|
17 |
</div>
|
18 |
+
</div>
|
19 |
+
<div class="tabcontent" id="security_registration">
|
20 |
<div class="mo_wpns_divided_layout">
|
21 |
<table style="width:100%;">
|
22 |
<tr>
|
27 |
</table>
|
28 |
</div>
|
29 |
</div>
|
30 |
+
<div class="tabcontent" id="content_spam">
|
31 |
<div class="mo_wpns_divided_layout">
|
32 |
<table style="width:100%;">
|
33 |
<tr>
|
39 |
</div>
|
40 |
</div>
|
41 |
<script>
|
42 |
+
document.getElementById("security_login").style.display = "block";
|
43 |
+
document.getElementById("security_registration").style.display = "none";
|
44 |
+
document.getElementById("content_spam").style.display = "none";
|
45 |
+
document.getElementById("login_sec").className += " active";
|
46 |
+
function openTab(evt, tabname){
|
47 |
+
var i, tablinks, tabcontent;
|
48 |
+
tabcontent = document.getElementsByClassName("tabcontent");
|
49 |
+
for (i = 0; i < tabcontent.length; i++) {
|
50 |
+
tabcontent[i].style.display = "none";
|
51 |
+
}
|
52 |
+
tablinks = document.getElementsByClassName("tablinks");
|
53 |
+
for (i = 0; i < tablinks.length; i++) {
|
54 |
+
tablinks[i].className = tablinks[i].className.replace(" active", "");
|
55 |
}
|
56 |
+
document.getElementById(tabname).style.display = "block";
|
57 |
+
localStorage.setItem("last_tab", tabname);
|
58 |
+
evt.currentTarget.className += " active";
|
59 |
+
}
|
60 |
+
var tour = '<?php echo get_option("mo2f_tour_loginSpam");?>';
|
61 |
+
if(tour != 1)
|
62 |
+
var tab = localStorage.getItem("last_tab");
|
63 |
+
else
|
64 |
+
var tab = '<?php echo get_option("mo2f_tour_tab");?>';
|
65 |
+
if(tab == "security_login"){
|
66 |
+
document.getElementById("login_sec").click();
|
67 |
+
}
|
68 |
+
else if(tab == "security_registration"){
|
69 |
+
document.getElementById("reg_sec").click();
|
70 |
+
}
|
71 |
+
else if(tab == "content_spam"){
|
72 |
+
document.getElementById("spam_content").click();
|
73 |
+
}
|
74 |
else{
|
75 |
+
document.getElementById("login_sec").click();
|
76 |
}
|
|
|
77 |
</script>
|
views/malware_scanner/malware_scan.php
CHANGED
@@ -7,35 +7,35 @@
|
|
7 |
?>
|
8 |
|
9 |
|
10 |
-
<div class="
|
11 |
-
<button class="nav-tab" onclick="
|
12 |
-
<button class="
|
13 |
-
<button class="
|
14 |
<input type = "hidden" id = "wpns_report_nonce" value="<?php echo wp_create_nonce('wpns-report-load') ?>" >
|
15 |
</div>
|
16 |
|
17 |
-
<div>
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
</div>
|
27 |
</div>
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
</
|
36 |
-
</
|
37 |
</div>
|
38 |
-
|
|
|
39 |
<div class="mo_wpns_divided_layout">
|
40 |
<table style="width: 100%;">
|
41 |
<tr>
|
@@ -45,33 +45,50 @@
|
|
45 |
</table>
|
46 |
</div>
|
47 |
</div>
|
48 |
-
</div>
|
49 |
<script>
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
jQuery("#"+tabarray[i]+"_div").css("display", "none");
|
61 |
-
}
|
62 |
-
}
|
63 |
-
localStorage.setItem("malware_last_tab", tabname);
|
64 |
-
}
|
65 |
-
|
66 |
-
jQuery('#malware_tab').addClass('nav-tab-active');
|
67 |
-
|
68 |
-
var tab = localStorage.getItem("malware_last_tab");
|
69 |
-
|
70 |
-
if(tab)
|
71 |
-
document.getElementById(tab).click();
|
72 |
-
else{
|
73 |
-
document.getElementById("mo2f_malware_view").click();
|
74 |
}
|
75 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
|
77 |
</script>
|
7 |
?>
|
8 |
|
9 |
|
10 |
+
<div class="mo_wpns_tab">
|
11 |
+
<button class="nav-tab" onclick="openTabmalware(event, 'scan_view')" id="malware_view">Malware Scan Modes</button>
|
12 |
+
<button class="tablinks" onclick="openTabmalware(event, 'settings_scan')" id="scan_set">Custom Scan Settings</button>
|
13 |
+
<button class="tablinks" onclick="openTabmalware(event, 'scan_report')" id="report_scan">Scan Reports</button>
|
14 |
<input type = "hidden" id = "wpns_report_nonce" value="<?php echo wp_create_nonce('wpns-report-load') ?>" >
|
15 |
</div>
|
16 |
|
17 |
+
<div id="mo_scan_message" style=" padding-top:8px"></div>
|
18 |
+
<div class="tabcontent" id="scan_view">
|
19 |
+
<div class="mo_wpns_divided_layout">
|
20 |
+
<table style="width: 100%;">
|
21 |
+
<tr>
|
22 |
+
<td style="width:100%;vertical-align:top;" id="configurationForm">
|
23 |
+
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'malware_scanner'.DIRECTORY_SEPARATOR.'scan_malware_summary.php'; ?>
|
24 |
+
</tr>
|
25 |
+
</table>
|
|
|
26 |
</div>
|
27 |
+
</div>
|
28 |
+
<div class="tabcontent" id="settings_scan">
|
29 |
+
<div class="mo_wpns_divided_layout">
|
30 |
+
<table style="width: 100%;">
|
31 |
+
<tr>
|
32 |
+
<td style="width:100%;vertical-align:top;" id="configurationForm">
|
33 |
+
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'malware_scanner'.DIRECTORY_SEPARATOR.'scan_malware_settings.php'; ?>
|
34 |
+
</tr>
|
35 |
+
</table>
|
36 |
</div>
|
37 |
+
</div>
|
38 |
+
<div class="tabcontent" id="scan_report">
|
39 |
<div class="mo_wpns_divided_layout">
|
40 |
<table style="width: 100%;">
|
41 |
<tr>
|
45 |
</table>
|
46 |
</div>
|
47 |
</div>
|
|
|
48 |
<script>
|
49 |
+
function openTabmalware(evt, tabname){
|
50 |
+
jQuery('#mo_scan_message').hide();
|
51 |
+
var i, tablinks, tabcontent;
|
52 |
+
tabcontent = document.getElementsByClassName("tabcontent");
|
53 |
+
for (i = 0; i < tabcontent.length; i++) {
|
54 |
+
tabcontent[i].style.display = "none";
|
55 |
+
}
|
56 |
+
tablinks = document.getElementsByClassName("tablinks");
|
57 |
+
for (i = 0; i < tablinks.length; i++) {
|
58 |
+
tablinks[i].className = tablinks[i].className.replace(" active", "");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
+
document.getElementById(tabname).style.display = "block";
|
61 |
+
localStorage.setItem("last_tab", tabname);
|
62 |
+
evt.currentTarget.className += " active";
|
63 |
+
if(tabname == "scan_report"){
|
64 |
+
var data={
|
65 |
+
'action':'mo_wpns_malware_redirect',
|
66 |
+
'call_type':'malware_scan_last_result',
|
67 |
+
'nonce':jQuery('#wpns_quick_scan_nonce').val()
|
68 |
+
};
|
69 |
+
jQuery.post(ajaxurl ,data, function(response){
|
70 |
+
jQuery("#reports_table tbody").html(response);
|
71 |
+
});
|
72 |
+
}else if(tabname == "settings_scan"){
|
73 |
+
document.getElementById("scan_set").click();
|
74 |
+
}
|
75 |
+
}
|
76 |
+
var tour = '<?php echo get_option("mo2f_tour_malware_scan");?>';
|
77 |
+
if(tour != 1)
|
78 |
+
var tab = localStorage.getItem("last_tab");
|
79 |
+
else
|
80 |
+
var tab = '<?php echo get_option("mo2f_tour_tab");?>';
|
81 |
+
if(tab == "scan_view"){
|
82 |
+
document.getElementById("malware_view").click();
|
83 |
+
}
|
84 |
+
else if(tab == "settings_scan"){
|
85 |
+
document.getElementById("scan_set").click();
|
86 |
+
}
|
87 |
+
else if(tab == "scan_report"){
|
88 |
+
document.getElementById("report_scan").click();
|
89 |
+
}
|
90 |
+
else{
|
91 |
+
document.getElementById("malware_view").click();
|
92 |
+
}
|
93 |
|
94 |
</script>
|
views/malware_scanner/scan_report_view.php
CHANGED
@@ -262,14 +262,10 @@ function show_scan_report($currenturl, $result){
|
|
262 |
jQuery(document).ready(function() {
|
263 |
jQuery('#reports_table').DataTable({
|
264 |
<?php if(! isset($_GET['view'])){ ?>
|
265 |
-
"order": [[ 3, "desc" ]]
|
266 |
-
retrieve: true,
|
267 |
-
paging: false
|
268 |
<?php }
|
269 |
else{ ?>
|
270 |
-
"order": [[ 2, "desc" ]]
|
271 |
-
retrieve: true,
|
272 |
-
paging: false
|
273 |
<?php } ?>
|
274 |
});
|
275 |
jQuery('#skip_table').DataTable({
|
262 |
jQuery(document).ready(function() {
|
263 |
jQuery('#reports_table').DataTable({
|
264 |
<?php if(! isset($_GET['view'])){ ?>
|
265 |
+
"order": [[ 3, "desc" ]]
|
|
|
|
|
266 |
<?php }
|
267 |
else{ ?>
|
268 |
+
"order": [[ 2, "desc" ]]
|
|
|
|
|
269 |
<?php } ?>
|
270 |
});
|
271 |
jQuery('#skip_table').DataTable({
|
views/malware_scanner/scan_settings_view.php
CHANGED
@@ -4,7 +4,7 @@ $setup_dirName = $mo2f_dirName.'views'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEP
|
|
4 |
include $setup_dirName; ?>
|
5 |
<div class="mo_wpns_setting_layout" id= "mo2f_select_scanning_files">
|
6 |
<div class="mo_wpns_subheading"></div>
|
7 |
-
<h3>Custom Scan Settings<span style="text-align: right;"><a href='<?php echo $two_factor_premium_doc['Custom Scan Settings'];?>' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#
|
8 |
<hr>
|
9 |
<form id="" method="post" action="">
|
10 |
<input type="hidden" name="option" value="mo_wpns_scan_configuration">
|
4 |
include $setup_dirName; ?>
|
5 |
<div class="mo_wpns_setting_layout" id= "mo2f_select_scanning_files">
|
6 |
<div class="mo_wpns_subheading"></div>
|
7 |
+
<h3>Custom Scan Settings<span style="text-align: right;"><a href='<?php echo $two_factor_premium_doc['Custom Scan Settings'];?>' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></span></h3>
|
8 |
<hr>
|
9 |
<form id="" method="post" action="">
|
10 |
<input type="hidden" name="option" value="mo_wpns_scan_configuration">
|
views/malware_scanner/scan_summary_view.php
CHANGED
@@ -4,14 +4,14 @@ $setup_dirName = $mo2f_dirName.'views'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEP
|
|
4 |
include $setup_dirName;
|
5 |
add_action('admin_footer','mo_wpns_start_scan');
|
6 |
?>
|
7 |
-
<div class="
|
8 |
<div class="malwaresummarydiv" id="mo2f_scan_dash">
|
9 |
<?php show_summary(); ?>
|
10 |
</div>
|
11 |
</div>
|
12 |
<div class="mo_wpns_setting_layout" id="scan_status_table">
|
13 |
<div>
|
14 |
-
<p class="hmdiv">Scan Modes<a href='<?php echo $two_factor_premium_doc['Scan Modes'];?>' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#
|
15 |
</div>
|
16 |
<div style="float: left;">
|
17 |
<p id="scanstatus"></p>
|
@@ -44,7 +44,7 @@ add_action('admin_footer','mo_wpns_start_scan');
|
|
44 |
<hr class="line">
|
45 |
<p class="mo_wpns_scan_desc">Custom Scan gives you an option to choose which files to scan and what to check for.</p>
|
46 |
<input id="custom_scan_button" type="button" name="custom_scan_button" class="mo_wpns_scan_button" value="Custom Scan">
|
47 |
-
<input type="button" name="configure_button" class="mo_wpns_scan_button" value="Configure" style="float: right;"
|
48 |
</div>
|
49 |
</div>
|
50 |
</div>
|
@@ -99,7 +99,7 @@ function mo_wpns_start_scan(){
|
|
99 |
<script>
|
100 |
var progress_bar,scan_progress,stop_scan_progress;
|
101 |
var disabled="#b0d2cf";
|
102 |
-
var active_scan="#
|
103 |
var errorClass="notice notice-error is-dismissible";
|
104 |
var successClass="notice notice-success is-dismissible";
|
105 |
var removeClass = "notice-error notice-success";
|
4 |
include $setup_dirName;
|
5 |
add_action('admin_footer','mo_wpns_start_scan');
|
6 |
?>
|
7 |
+
<div class="mo_wpns_dashboard_layout">
|
8 |
<div class="malwaresummarydiv" id="mo2f_scan_dash">
|
9 |
<?php show_summary(); ?>
|
10 |
</div>
|
11 |
</div>
|
12 |
<div class="mo_wpns_setting_layout" id="scan_status_table">
|
13 |
<div>
|
14 |
+
<p class="hmdiv">Scan Modes<a href='<?php echo $two_factor_premium_doc['Scan Modes'];?>' target="_blank"><span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;float: right;"></span></a></p>
|
15 |
</div>
|
16 |
<div style="float: left;">
|
17 |
<p id="scanstatus"></p>
|
44 |
<hr class="line">
|
45 |
<p class="mo_wpns_scan_desc">Custom Scan gives you an option to choose which files to scan and what to check for.</p>
|
46 |
<input id="custom_scan_button" type="button" name="custom_scan_button" class="mo_wpns_scan_button" value="Custom Scan">
|
47 |
+
<input type="button" name="configure_button" class="mo_wpns_scan_button" value="Configure" style="float: right;" onclick="openTabmalware(event, 'settings_scan')" >
|
48 |
</div>
|
49 |
</div>
|
50 |
</div>
|
99 |
<script>
|
100 |
var progress_bar,scan_progress,stop_scan_progress;
|
101 |
var disabled="#b0d2cf";
|
102 |
+
var active_scan="#20b2aa";
|
103 |
var errorClass="notice notice-error is-dismissible";
|
104 |
var successClass="notice notice-success is-dismissible";
|
105 |
var removeClass = "notice-error notice-success";
|
views/navbar.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
$security_features_nonce = wp_create_nonce('mo_2fa_security_features_nonce');
|
4 |
|
5 |
$user = wp_get_current_user();
|
@@ -30,30 +30,37 @@ if( isset( $_GET[ 'page' ]) && $_GET['page'] != 'mo_2fa_upgrade')
|
|
30 |
{
|
31 |
echo'<div class="wrap">';
|
32 |
|
33 |
-
$date1 = "
|
34 |
$dateTimestamp1 = strtotime($date1);
|
35 |
|
36 |
$date2 = date("Y-m-d");
|
37 |
$dateTimestamp2 = strtotime($date2);
|
38 |
|
39 |
-
if($dateTimestamp2<=$dateTimestamp1
|
40 |
{
|
41 |
echo'<div class="mo2f_offer_main_div">
|
42 |
|
43 |
|
44 |
|
45 |
<div class="mo2f_offer_first_section">
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
</div>
|
50 |
|
51 |
<div class="mo2f_offer_middle_section">
|
52 |
-
<p class="mo2f_offer_get_upto"
|
53 |
-
<p class="
|
|
|
|
|
|
|
|
|
|
|
54 |
</div>
|
55 |
|
56 |
-
|
|
|
|
|
|
|
57 |
|
58 |
</div><br><br>';
|
59 |
}
|
@@ -89,29 +96,39 @@ if( isset( $_GET[ 'page' ]) && $_GET['page'] != 'mo_2fa_upgrade')
|
|
89 |
?>
|
90 |
|
91 |
|
92 |
-
<?php
|
93 |
-
if(MoWpnsUtility::get_mo2f_db_option('mo_wpns_2fa_with_network_security', 'get_option')){ ?>
|
94 |
-
<?php if($_GET['page'] != 'mo_2fa_troubleshooting' && $_GET['page'] != 'mo_2fa_addons' && $_GET['page'] != 'mo_2fa_account'){ ?>
|
95 |
-
<div class="nav-tab-wrapper">
|
96 |
-
<?php
|
97 |
-
echo '<a id="mo_2fa_dashboard" class="nav-tab" href="'.$dashboard_url.'" >Dashboard</a>';
|
98 |
-
|
99 |
-
echo '<a id="mo_2fa_2fa" class="nav-tab" href="'.$two_fa.'" >Two Factor</a>';
|
100 |
-
|
101 |
-
echo '<a id="mo_2fa_waf" class="nav-tab" href="'.$waf.'" >Firewall</a>';
|
102 |
-
|
103 |
-
echo '<a id="login_spam_tab" class="nav-tab" href="'.$login_and_spam.'" >Login and Spam</a>';
|
104 |
-
|
105 |
-
echo '<a id="backup_tab" class="nav-tab" href="'.$backup.'" >Encrypted Backup</a>';
|
106 |
-
|
107 |
-
echo '<a id="malware_tab" class="nav-tab" href="'.$scan_url.'">Malware Scan</a>';
|
108 |
-
|
109 |
-
echo '<a id="adv_block_tab" class="nav-tab" href="'.$advance_block.'">IP Blocking</a>';
|
110 |
-
?>
|
111 |
-
</div>
|
112 |
-
<?php
|
113 |
-
}
|
114 |
-
}
|
115 |
-
}
|
116 |
-
?>
|
117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<?php
|
2 |
+
|
3 |
$security_features_nonce = wp_create_nonce('mo_2fa_security_features_nonce');
|
4 |
|
5 |
$user = wp_get_current_user();
|
30 |
{
|
31 |
echo'<div class="wrap">';
|
32 |
|
33 |
+
$date1 = "2021-01-20";
|
34 |
$dateTimestamp1 = strtotime($date1);
|
35 |
|
36 |
$date2 = date("Y-m-d");
|
37 |
$dateTimestamp2 = strtotime($date2);
|
38 |
|
39 |
+
if($dateTimestamp2<=$dateTimestamp1)
|
40 |
{
|
41 |
echo'<div class="mo2f_offer_main_div">
|
42 |
|
43 |
|
44 |
|
45 |
<div class="mo2f_offer_first_section">
|
46 |
+
<img style="height: 201px;width: 540px;" src="'.dirname(plugin_dir_url(__FILE__)).'/includes/images/new_year_offer.png">
|
47 |
+
|
48 |
+
</div>
|
|
|
49 |
|
50 |
<div class="mo2f_offer_middle_section">
|
51 |
+
<p class="mo2f_offer_get_upto">Get Upto </p>
|
52 |
+
<p class="mo2f_offer_first_section_text">50% off</p>
|
53 |
+
<center><a class="mo2f_offer_contact_us" href="'.$request_offer_url.'">Contact Us</a></center>
|
54 |
+
</div>
|
55 |
+
|
56 |
+
<div class="mo2f_offer_last_section">
|
57 |
+
<img src="'.dirname(plugin_dir_url(__FILE__)).'/includes/images/new_year.gif">
|
58 |
</div>
|
59 |
|
60 |
+
|
61 |
+
|
62 |
+
|
63 |
+
|
64 |
|
65 |
</div><br><br>';
|
66 |
}
|
96 |
?>
|
97 |
|
98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
|
100 |
+
<div class="mo_flex-container">
|
101 |
+
<?php
|
102 |
+
if(MoWpnsUtility::get_mo2f_db_option('mo_wpns_2fa_with_network_security', 'get_option'))
|
103 |
+
{
|
104 |
+
echo '<a class="nav-tab '.($active_tab == 'mo_2fa_dashboard' ? 'nav-tab-active' : '').'" href="'.$dashboard_url .'">Dashboard</a>';
|
105 |
+
if($is_onprem){
|
106 |
+
if( ($flag) or ($userID == $onprem_admin) ){
|
107 |
+
echo '<a class="nav-tab '.($active_tab == 'mo_2fa_two_fa' ? 'nav-tab-active' : '').'" href="'.$two_fa .'">Two Factor</a>';
|
108 |
+
}
|
109 |
+
}
|
110 |
+
else{
|
111 |
+
echo '<a class="nav-tab '.($active_tab == 'mo_2fa_two_fa' ? 'nav-tab-active' : '').'" href="'.$two_fa .'">Two Factor</a>';
|
112 |
+
}
|
113 |
+
|
114 |
+
if(get_site_option('mo_2f_switch_waf')){
|
115 |
+
echo '<a id="mo_2fa_waf" class="nav-tab '.($active_tab == 'mo_2fa_waf' ? 'nav-tab-active' : '').'" href="'.$waf .'">Firewall</a>';
|
116 |
+
}
|
117 |
+
if(get_site_option('mo_2f_switch_loginspam')){
|
118 |
+
echo '<a id="login_spam_tab" class="nav-tab '.($active_tab == 'mo_2fa_login_and_spam' ? 'nav-tab-active' : '').'" href="'.$login_and_spam .'">Login and Spam</a>';
|
119 |
+
}
|
120 |
+
if(get_site_option('mo_2f_switch_backup')){
|
121 |
+
echo '<a id="backup_tab" class="nav-tab '.($active_tab == 'mo_2fa_backup' ? 'nav-tab-active' : '').'" href="'.$backup .'">Encrypted Backup</a>';
|
122 |
+
}
|
123 |
+
if(get_site_option('mo_2f_switch_malware')){
|
124 |
+
echo '<a id="malware_tab" class="nav-tab '.($active_tab == 'mo_2fa_malwarescan' ? 'nav-tab-active' : '').'" href="'.$scan_url .'">Malware Scan</a>';
|
125 |
+
}
|
126 |
+
if(get_site_option('mo_2f_switch_adv_block')){
|
127 |
+
echo '<a id="adv_block_tab" class="nav-tab '.($active_tab == 'mo_2fa_advancedblocking'? 'nav-tab-active' : '').'" href="'.$advance_block .'">IP Blocking</a>';
|
128 |
+
}
|
129 |
+
|
130 |
+
}
|
131 |
+
?>
|
132 |
+
</div>
|
133 |
+
<?php
|
134 |
+
}
|
views/network_security_features.php
CHANGED
@@ -11,7 +11,7 @@ if ( 'admin.php' == basename( $_SERVER['PHP_SELF'] ) )
|
|
11 |
<div class="mo_wpns_divided_layout" style="margin-left: 13%;">
|
12 |
<div class="mo_wpns_setting_layout" style="padding-bottom: 16px;">
|
13 |
|
14 |
-
<h1 style="color: #
|
15 |
|
16 |
<form id="mo_wpns_2fa_with_network_security" method="post" action="">
|
17 |
<div style="width: 100%;">
|
11 |
<div class="mo_wpns_divided_layout" style="margin-left: 13%;">
|
12 |
<div class="mo_wpns_setting_layout" style="padding-bottom: 16px;">
|
13 |
|
14 |
+
<h1 style="color: #20b2aa; font-size: x-large; text-align: center;">What are you looking for?</h1>
|
15 |
|
16 |
<form id="mo_wpns_2fa_with_network_security" method="post" action="">
|
17 |
<div style="width: 100%;">
|
views/request_christmas_offer.php
DELETED
@@ -1,36 +0,0 @@
|
|
1 |
-
<div class="mo_wpns_divided_layout">
|
2 |
-
<div class="mo_wpns_setting_layout mo2f_christmas_contact_us_layout">
|
3 |
-
<h3> Request For Christmas Offer : <div style="float: right;">
|
4 |
-
<?php
|
5 |
-
echo '<a class="mo_wpns_button mo_wpns_button1 mo2f_christmas_contact_us_button" href="'.$two_fa.'">Back</a>';
|
6 |
-
?>
|
7 |
-
</div></h3>
|
8 |
-
<form method="post">
|
9 |
-
<input type="hidden" name="option" value="mo_2FA_christmas_request_form" />
|
10 |
-
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('mo2f-Request-christmas')?>">
|
11 |
-
<table cellpadding="4" cellspacing="4">
|
12 |
-
<tr>
|
13 |
-
<td><strong>Usecase : </strong></td>
|
14 |
-
<td>
|
15 |
-
<textarea type="text" name="mo_2FA_christmas_usecase" style="resize: vertical; width:350px; height:100px;" rows="4" placeholder="Write us about your usecase" required value=""></textarea>
|
16 |
-
</td>
|
17 |
-
|
18 |
-
|
19 |
-
</tr>
|
20 |
-
<tr>
|
21 |
-
<td>
|
22 |
-
</td>
|
23 |
-
|
24 |
-
</tr>
|
25 |
-
<tr>
|
26 |
-
<td><strong>Email ID : </strong></td>
|
27 |
-
<td><input required type="email" name="mo_2FA_christmas_email" placeholder="Email id" value="" /></td>
|
28 |
-
</tr>
|
29 |
-
|
30 |
-
</table>
|
31 |
-
<div style="padding-top: 10px;">
|
32 |
-
<input type="submit" name="submit" value="Submit Request" class="mo_wpns_button mo_wpns_button1 mo2f_christmas_contact_us_button" />
|
33 |
-
</div>
|
34 |
-
</form>
|
35 |
-
</div>
|
36 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
views/request_demo.php
DELETED
@@ -1,47 +0,0 @@
|
|
1 |
-
<div class="mo_wpns_divided_layout">
|
2 |
-
<div class="mo_wpns_setting_layout">
|
3 |
-
<h3> Demo Request Form : <div style="float: right;">
|
4 |
-
<?php
|
5 |
-
echo '<a class="mo_wpns_button mo_wpns_button1" href="'.$two_fa.'">Back</a>';
|
6 |
-
?>
|
7 |
-
</div></h3>
|
8 |
-
<form method="post">
|
9 |
-
<input type="hidden" name="option" value="mo_2FA_demo_request_form" />
|
10 |
-
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('mo2f-Request-demo')?>">
|
11 |
-
<table cellpadding="4" cellspacing="4">
|
12 |
-
<tr>
|
13 |
-
<td><strong>Usecase : </strong></td>
|
14 |
-
<td>
|
15 |
-
<textarea type="text" minlength="15" name="mo_2FA_demo_usecase" style="resize: vertical; width:350px; height:100px;" rows="4" placeholder="Write us about your usecase" required value=""></textarea>
|
16 |
-
</td>
|
17 |
-
</tr>
|
18 |
-
<tr>
|
19 |
-
<td></td>
|
20 |
-
|
21 |
-
</tr>
|
22 |
-
<tr>
|
23 |
-
<td><strong>Email ID : </strong></td>
|
24 |
-
<td><input required type="email" name="mo_2FA_demo_email" placeholder="Email id" value="" /></td>
|
25 |
-
</tr>
|
26 |
-
<tr>
|
27 |
-
<td><strong>Request a demo for : </strong></td>
|
28 |
-
<td>
|
29 |
-
<select required name="mo_2FA_demo_plan" id="mo_2FA_demo_plan_id">
|
30 |
-
<option disabled selected>------------------ Select ------------------</option>
|
31 |
-
<option value="2FA">Two Factor Authentication</option>
|
32 |
-
<option value="WAF">Web Application Firewall (WAF) </option>
|
33 |
-
<option value="malwareScanner">Malware Scanner</option>
|
34 |
-
<option value="login_spam">Login Security</option>
|
35 |
-
<option value="backup">Encrypted Backup </option>
|
36 |
-
<option value="notSure">Not Sure/Multiple options</option>
|
37 |
-
</select>
|
38 |
-
</td>
|
39 |
-
</tr>
|
40 |
-
|
41 |
-
</table>
|
42 |
-
<div style="padding-top: 10px;">
|
43 |
-
<input type="submit" name="submit" value="Submit Demo Request" class="mo_wpns_button mo_wpns_button1" />
|
44 |
-
</div>
|
45 |
-
</form>
|
46 |
-
</div>
|
47 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
views/request_offer.php
CHANGED
@@ -1,16 +1,15 @@
|
|
1 |
<div class="mo_wpns_divided_layout">
|
2 |
<div class="mo_wpns_setting_layout mo2f_offer_contact_us_layout">
|
3 |
-
<h3
|
4 |
<?php
|
5 |
-
echo '<a class="
|
6 |
?>
|
7 |
-
|
8 |
-
</h3>
|
9 |
<form method="post">
|
10 |
<input type="hidden" name="option" value="mo_2FA_offer_request_form" />
|
11 |
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('mo2f-Request-offer')?>">
|
12 |
-
<table cellpadding="4" cellspacing="4">
|
13 |
-
|
14 |
<td><strong>Usecase : </strong></td>
|
15 |
<td>
|
16 |
<textarea type="text" name="mo_2FA_offer_usecase" style="resize: vertical; width:350px; height:100px;" rows="4" placeholder="Write us about your usecase" required value=""></textarea>
|
@@ -25,12 +24,12 @@
|
|
25 |
</tr>
|
26 |
<tr>
|
27 |
<td><strong>Email ID : </strong></td>
|
28 |
-
<td><input required type="email" name="mo_2FA_offer_email" placeholder="Email id" value="
|
29 |
</tr>
|
30 |
|
31 |
</table>
|
32 |
-
<div style="padding-top: 10px">
|
33 |
-
<input type="submit" name="submit" value="Submit Request" class="
|
34 |
</div>
|
35 |
</form>
|
36 |
</div>
|
1 |
<div class="mo_wpns_divided_layout">
|
2 |
<div class="mo_wpns_setting_layout mo2f_offer_contact_us_layout">
|
3 |
+
<h3> Request For New Year Offer : <div style="float: right;">
|
4 |
<?php
|
5 |
+
echo '<a class="button button-primary button-large mo2f_offer_contact_us_button" href="'.$two_fa.'">Back</a>';
|
6 |
?>
|
7 |
+
</div></h3>
|
|
|
8 |
<form method="post">
|
9 |
<input type="hidden" name="option" value="mo_2FA_offer_request_form" />
|
10 |
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('mo2f-Request-offer')?>">
|
11 |
+
<table cellpadding="4" cellspacing="4">
|
12 |
+
<tr>
|
13 |
<td><strong>Usecase : </strong></td>
|
14 |
<td>
|
15 |
<textarea type="text" name="mo_2FA_offer_usecase" style="resize: vertical; width:350px; height:100px;" rows="4" placeholder="Write us about your usecase" required value=""></textarea>
|
24 |
</tr>
|
25 |
<tr>
|
26 |
<td><strong>Email ID : </strong></td>
|
27 |
+
<td><input required type="email" name="mo_2FA_offer_email" placeholder="Email id" value="" /></td>
|
28 |
</tr>
|
29 |
|
30 |
</table>
|
31 |
+
<div style="padding-top: 10px;">
|
32 |
+
<input type="submit" name="submit" value="Submit Request" class="button button-primary button-large mo2f_offer_contact_us_button" />
|
33 |
</div>
|
34 |
</form>
|
35 |
</div>
|
views/support.php
CHANGED
@@ -1,62 +1,102 @@
|
|
1 |
<?php
|
2 |
global $mo2f_dirName;
|
|
|
3 |
|
4 |
echo '
|
5 |
-
|
6 |
<meta charset="UTF-8">
|
7 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
|
|
|
|
12 |
<p>Need any help? We are available any time, Just send us a query so we can help you.</p>
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
</
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
<
|
39 |
-
</
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
</div>
|
59 |
-
|
60 |
<script>
|
61 |
function moSharingSizeValidate(e){
|
62 |
var t=parseInt(e.value.trim());t>60?e.value=60:10>t&&(e.value=10)
|
@@ -76,16 +116,70 @@ echo '
|
|
76 |
function moLoginHeightValidate(e){
|
77 |
var t=parseInt(e.value.trim());t>50?e.value=50:35>t&&(e.value=35)
|
78 |
}
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
|
|
|
90 |
|
91 |
</script>
|
1 |
<?php
|
2 |
global $mo2f_dirName;
|
3 |
+
require_once $mo2f_dirName . DIRECTORY_SEPARATOR.'includes'. DIRECTORY_SEPARATOR.'lib'. DIRECTORY_SEPARATOR.'mo-2fa-options-enum.php';
|
4 |
|
5 |
echo '
|
|
|
6 |
<meta charset="UTF-8">
|
7 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
8 |
+
<div class="mo_wpns_divided_layout_2">
|
9 |
+
|
10 |
+
<div class="mo_wpns_support_layout" id="mo_wpns_support_layout_tour">
|
11 |
+
|
12 |
+
<img src="'.dirname(plugin_dir_url(__FILE__)).'/includes/images/support3.png">
|
13 |
+
<h1>Support</h1>
|
14 |
<p>Need any help? We are available any time, Just send us a query so we can help you.</p>
|
15 |
+
<form name="f" method="post" action="">
|
16 |
+
<input type="hidden" name="option" value="mo_wpns_send_query"/>
|
17 |
+
<table class="mo_wpns_settings_table">
|
18 |
+
<tr><td>
|
19 |
+
<input type="email" class="mo_wpns_table_textbox" id="query_email" name="query_email" value="'.$email.'" placeholder="Enter your email" required />
|
20 |
+
</td>
|
21 |
+
</tr>
|
22 |
+
<tr><td>
|
23 |
+
<input type="text" class="mo_wpns_table_textbox" name="query_phone" id="query_phone" value="'.$phone.'" placeholder="Enter your phone"/>
|
24 |
+
</td>
|
25 |
+
</tr>
|
26 |
+
<tr>
|
27 |
+
<td>
|
28 |
+
<textarea id="query" name="query" class="mo_wpns_settings_textarea" style="resize: vertical;width:100%" cols="52" rows="7" onkeyup="mo_wpns_valid(this)" onblur="mo_wpns_valid(this)" onkeypress="mo_wpns_valid(this)" placeholder="Write your query here"></textarea>
|
29 |
+
</td>
|
30 |
+
</tr>
|
31 |
+
</table>
|
32 |
+
<br />
|
33 |
+
|
34 |
+
<div class="call-setup-div">
|
35 |
+
<h3 style="margin-top: 0px; margin-left: 5px;">Setup a Call / Screen-share session with miniOrange Technical Team</h3>
|
36 |
+
|
37 |
+
|
38 |
+
<label class="switch">
|
39 |
+
<input type="checkbox" id="2fa_setup_call" name="2fa_setup_call">
|
40 |
+
<span class="slider round"></span>
|
41 |
+
</label>
|
42 |
+
<span style="padding-left:5px; font-size: 15px;">
|
43 |
+
<b><label for="2fa_setup_call"></label>Enable this option to setup a call</b><br><br>
|
44 |
+
</span>
|
45 |
+
|
46 |
+
|
47 |
+
<div id="call_setup_dets" style="margin-left: 5px; margin-top: 5px;">
|
48 |
+
<div>
|
49 |
+
<div style="width: 26%; float:left;"><strong>TimeZone<font color="#FF0000">* </font> : </strong> </div>
|
50 |
+
|
51 |
+
<div style="width: 74% !important; float: left">
|
52 |
+
<select id="js-timezone" name="mo_2fa_setup_call_timezone" style="width:93%;">';
|
53 |
+
$zones = mo_2fa_time_zones::$time_zones;
|
54 |
+
echo ' <option value="" selected disabled>-------Select your timezone------</option>';
|
55 |
+
foreach($zones as $zone=>$value) {
|
56 |
+
echo '<option value="'.$value.'">'. $zone.' </option>';
|
57 |
+
}
|
58 |
+
echo '
|
59 |
+
</select>
|
60 |
+
</div>
|
61 |
+
</div>
|
62 |
+
<br><br><br>
|
63 |
+
<div style="width: 50%; float: left; position: relative;">
|
64 |
+
<strong> Date<font color="#FF0000">*</font>:</strong><br>
|
65 |
+
<input style="width: 90% !important;" type="text" id="datepicker" class="mo_2fa_table_textbox" placeholder="Select Meeting Date" autocomplete="off" name="mo_2fa_setup_call_date">
|
66 |
+
</div>
|
67 |
+
<div style="width: 50%; float: left; position: relative;">
|
68 |
+
<strong> Time (24-hour)<font color="#FF0000">*</font>:</strong><br>
|
69 |
+
<input style="width: 90% !important;" type="text" id="timepicker" placeholder="Select Meeting Time" class="mo_2fa_table_textbox" autocomplete="off" name="mo_2fa_setup_call_time">
|
70 |
+
</div>
|
71 |
+
<br><br><br>
|
72 |
+
<div>
|
73 |
+
<p style="margin-right: 20px; margin-bottom: 10px; margin-top: 15px; margin-left: 5px;">
|
74 |
+
<b><font color="#dc143c">Call and Meeting details will be sent to your email. Please verify the email before submitting your query. Check the spam folder for any email.</font></b>
|
75 |
+
</p>
|
76 |
+
</div>
|
77 |
+
</div>
|
78 |
+
</div>
|
79 |
+
<div id="mo_2fa_plugin_configuration">
|
80 |
+
<input type="hidden" name="mo_2fa_plugin_configuration" value="mo2f_send_plugin_configuration"/>
|
81 |
+
<input type="checkbox" id="mo2f_send_configuration"
|
82 |
+
name="mo2f_send_configuration"
|
83 |
+
value="1" checked
|
84 |
+
<h3>Send plugin Configuration</h3>
|
85 |
+
<br /><br />
|
86 |
+
</div>
|
87 |
+
<input type="submit" name="send_query" id="send_query" value="Submit Query" style="margin-bottom:3%;" class="button button-primary button-large" />
|
88 |
+
</form>
|
89 |
+
<br><br>
|
90 |
+
<hr style="border-top: 2px solid lightseagreen;">
|
91 |
+
<h3>Overview of Premium Features</h3>
|
92 |
+
<hr style="border-top: 2px solid lightseagreen;">
|
93 |
+
<p><iframe width="100%" src="https://www.youtube.com/embed/9H520HY3CxY" allowfullscreen="true">
|
94 |
+
</iframe></p>
|
95 |
+
<p>
|
96 |
+
|
97 |
+
<br />
|
98 |
</div>
|
99 |
+
</div>';?>
|
100 |
<script>
|
101 |
function moSharingSizeValidate(e){
|
102 |
var t=parseInt(e.value.trim());t>60?e.value=60:10>t&&(e.value=10)
|
116 |
function moLoginHeightValidate(e){
|
117 |
var t=parseInt(e.value.trim());t>50?e.value=50:35>t&&(e.value=35)
|
118 |
}
|
119 |
+
var min_time = "00:00";
|
120 |
+
|
121 |
+
jQuery( function() {
|
122 |
+
|
123 |
+
jQuery("#call_setup_dets").hide();
|
124 |
+
jQuery("#2fa_setup_call").click(function() {
|
125 |
+
if(jQuery(this).is(":checked")) {
|
126 |
+
jQuery("#call_setup_dets").show();
|
127 |
+
document.getElementById("js-timezone").required = true;
|
128 |
+
document.getElementById("datepicker").required = true;
|
129 |
+
document.getElementById("timepicker").required = true;
|
130 |
+
document.getElementById("query").required = false;
|
131 |
+
|
132 |
+
var date = new Date();
|
133 |
+
var hrs = date.getHours();
|
134 |
+
var mins = date.getMinutes();
|
135 |
+
if(hrs == 23 && mins > 30){
|
136 |
+
jQuery("#datepicker").datepicker("option", "minDate", 1);
|
137 |
+
jQuery("#datepicker").datepicker("setDate", +1);
|
138 |
+
jQuery("#timepicker").timepicker("option", "minTime", "00:00");
|
139 |
+
} else{
|
140 |
+
jQuery("#datepicker").datepicker("option", "minDate", 0);
|
141 |
+
jQuery("#datepicker").datepicker("setDate", new Date());
|
142 |
+
}
|
143 |
+
} else {
|
144 |
+
jQuery("#call_setup_dets").hide();
|
145 |
+
document.getElementById("timepicker").required = false;
|
146 |
+
document.getElementById("datepicker").required = false;
|
147 |
+
document.getElementById("js-timezone").required = false;
|
148 |
+
document.getElementById("query").required = true;
|
149 |
+
}
|
150 |
+
});
|
151 |
+
|
152 |
+
jQuery( "#datepicker" ).datepicker({
|
153 |
+
minDate: 0,
|
154 |
+
dateFormat: "M dd, yy"
|
155 |
+
});
|
156 |
+
|
157 |
+
|
158 |
+
jQuery("#datepicker").datepicker().on("change", function (ev) {
|
159 |
+
var sel_date = jQuery(this).val();
|
160 |
+
var selected_date = new Date(sel_date);
|
161 |
+
var today_date = new Date();
|
162 |
+
|
163 |
+
if( (selected_date.getDate() == today_date.getDate()) && (selected_date.getMonth() == today_date.getMonth()) ){
|
164 |
+
jQuery("#timepicker").timepicker("option", "minTime", new Date());
|
165 |
+
}
|
166 |
+
else{
|
167 |
+
jQuery("#timepicker").timepicker("option", "minTime", "00:00");
|
168 |
+
}
|
169 |
+
});
|
170 |
+
|
171 |
+
jQuery("#timepicker").timepicker({
|
172 |
+
timeFormat: "HH:mm",
|
173 |
+
interval: 30,
|
174 |
+
minTime: new Date(),
|
175 |
+
disableTextInput: true,
|
176 |
+
dynamic: false,
|
177 |
+
dropdown: true,
|
178 |
+
scrollbar: true,
|
179 |
+
forceRoundTime: true
|
180 |
+
});
|
181 |
+
});
|
182 |
|
183 |
+
jQuery(function() { jQuery("#js-timezone").select2(); });
|
184 |
|
185 |
</script>
|
views/tour-model.php
DELETED
@@ -1,197 +0,0 @@
|
|
1 |
-
<!-- The Modal -->
|
2 |
-
<form name="f" method="post" id="show_pointers">
|
3 |
-
<?php wp_nonce_field("clear_pointers");?>
|
4 |
-
<input type="hidden" name="option" value="clear_pointers"/>
|
5 |
-
<input type="hidden" name="button_name" id="button_name" />
|
6 |
-
</form>
|
7 |
-
|
8 |
-
<form name="f" method="post" id="restart-plugin-tour">
|
9 |
-
<?php wp_nonce_field("restart_plugin_tour");?>
|
10 |
-
<input type="hidden" name="option" value="restart_plugin_tour"/>
|
11 |
-
<input type="hidden" name="page" value="mo_2fa_two_fa" id="page">
|
12 |
-
</form>
|
13 |
-
|
14 |
-
<form name="f" method="post" id="skip-plugin-tour">
|
15 |
-
<?php wp_nonce_field("skip_plugin_tour");?>
|
16 |
-
<input type="hidden" name="option" value="skip_plugin_tour"/>
|
17 |
-
</form>
|
18 |
-
<?php
|
19 |
-
$tour_box_size = MoWpnsUtility::get_mo2f_db_option('mo_wpns_2fa_with_network_security', 'get_option');
|
20 |
-
$tour_box_size = $tour_box_size == 1 ? '70%' : '50%';
|
21 |
-
?>
|
22 |
-
<div id="getting-started" class="modal">
|
23 |
-
<!-- Modal content -->
|
24 |
-
<div class="modal-content" style="width: <?php echo $tour_box_size; ?>">
|
25 |
-
<!-- <span class="close">×</span> -->
|
26 |
-
<div class="modal-header">
|
27 |
-
<h3 class="modal-title" style="text-align: center; font-size: 30px; color: #2980b9">Let's Get Started</h3><span id="tour-model" class="modal-span-close">X</span>
|
28 |
-
</div>
|
29 |
-
<div class="modal-body" style="height: 310px;">
|
30 |
-
<?php
|
31 |
-
echo $tour_body;
|
32 |
-
?>
|
33 |
-
</div>
|
34 |
-
<div class="modal-footer">
|
35 |
-
<button type="button" class="mo_wpns_button mo_wpns_button1 modal-button modalhover" id="skip-plugin-tour" style="width: 40%;color: #111111; background: none;text-decoration: underline;font-weight: bold;border: 2px solid black;" onclick="skip_plugin_tour()" >Skip tour</button>
|
36 |
-
<button type="button" class="mo_wpns_button mo_wpns_button1 modal-button logout" id="start-plugin-tour" style= "width: 40%;background-color:#2EB150;">Start tour</button>
|
37 |
-
|
38 |
-
</div>
|
39 |
-
</div>
|
40 |
-
</div>
|
41 |
-
<div class='overlay' id="overlay" hidden></div>
|
42 |
-
<script type="text/javascript">
|
43 |
-
var current_pointer = 0;
|
44 |
-
var site_type = '';
|
45 |
-
var site_elmt = '';
|
46 |
-
var display = '<?php echo $display; ?>';
|
47 |
-
var getting_started_modal = document.getElementById("getting-started");
|
48 |
-
|
49 |
-
jQuery('#getting-started').css('display', display);
|
50 |
-
|
51 |
-
jQuery('#start-plugin-tour').html('Start a tour');
|
52 |
-
jQuery('.modal-footer a').css('display', 'inline-block');
|
53 |
-
|
54 |
-
jQuery('#2fa').css("border", "5px solid #2271b1");
|
55 |
-
|
56 |
-
jQuery('input[type=radio][name=mo2f_two_factor]').click(function(){
|
57 |
-
var ele = document.getElementsByName("mo2f_two_factor");
|
58 |
-
var selected = '';
|
59 |
-
|
60 |
-
for(i = 0; i < ele.length; i++) {
|
61 |
-
if(ele[i].checked)
|
62 |
-
{
|
63 |
-
selected = ele[i].value;
|
64 |
-
}
|
65 |
-
}
|
66 |
-
|
67 |
-
jQuery('#2fa').css("border", "1px solid black");
|
68 |
-
jQuery('#waf').css("border", "1px solid black");
|
69 |
-
jQuery('#malware').css("border", "1px solid black");
|
70 |
-
jQuery('#backup').css("border", "1px solid black");
|
71 |
-
jQuery('#login').css("border", "1px solid black");
|
72 |
-
|
73 |
-
jQuery('#'+selected).css("border", "5px solid #2271b1");
|
74 |
-
|
75 |
-
});
|
76 |
-
|
77 |
-
jQuery('#start-plugin-tour').click(function(){
|
78 |
-
|
79 |
-
var ele = document.getElementsByName("mo2f_two_factor");
|
80 |
-
var selected = '';
|
81 |
-
|
82 |
-
for(i = 0; i < ele.length; i++) {
|
83 |
-
if(ele[i].checked)
|
84 |
-
{
|
85 |
-
selected = ele[i].value;
|
86 |
-
}
|
87 |
-
}
|
88 |
-
|
89 |
-
|
90 |
-
var pageurl = '';
|
91 |
-
switch(selected){
|
92 |
-
case '2fa':
|
93 |
-
pageurl = 'mo_2fa_two_fa';
|
94 |
-
break;
|
95 |
-
case 'waf':
|
96 |
-
pageurl = 'mo_2fa_waf';
|
97 |
-
break;
|
98 |
-
case 'malware':
|
99 |
-
pageurl = 'mo_2fa_malwarescan';
|
100 |
-
break;
|
101 |
-
case 'login':
|
102 |
-
pageurl = 'mo_2fa_login_and_spam';
|
103 |
-
break;
|
104 |
-
case 'backup':
|
105 |
-
pageurl = 'mo_2fa_backup';
|
106 |
-
break;
|
107 |
-
|
108 |
-
}
|
109 |
-
document.getElementById('page').value = pageurl;
|
110 |
-
var data = {
|
111 |
-
'action' : 'mo_wpns_tour',
|
112 |
-
'call_type' : 'entire_plugin_tour_started',
|
113 |
-
};
|
114 |
-
jQuery.post(ajaxurl, data, function(response) {
|
115 |
-
getting_started_modal.style.display = "none";
|
116 |
-
});
|
117 |
-
|
118 |
-
var url = '<?php echo $_REQUEST["page"]; ?>';
|
119 |
-
switch(url){
|
120 |
-
case 'mo_2fa_two_fa':
|
121 |
-
document.getElementById("setup_2fa").click();
|
122 |
-
break;
|
123 |
-
|
124 |
-
case 'mo_2fa_waf':
|
125 |
-
document.getElementById("settingsTab").click();
|
126 |
-
break;
|
127 |
-
|
128 |
-
case 'mo_2fa_login_and_spam':
|
129 |
-
document.getElementById("login_sec").click();
|
130 |
-
break;
|
131 |
-
|
132 |
-
case 'mo_2fa_malwarescan':
|
133 |
-
document.getElementById("mo2f_malware_view").click();
|
134 |
-
break;
|
135 |
-
|
136 |
-
case 'mo_2fa_backup':
|
137 |
-
document.getElementById("backup_set").click();
|
138 |
-
break;
|
139 |
-
}
|
140 |
-
jQuery('#restart-plugin-tour').submit();
|
141 |
-
|
142 |
-
});
|
143 |
-
function skip_plugin_tour(){
|
144 |
-
|
145 |
-
var data = {
|
146 |
-
'action' : 'mo_wpns_tour',
|
147 |
-
'call_type' : 'skip_entire_plugin_tour',
|
148 |
-
};
|
149 |
-
jQuery.post(ajaxurl, data, function(response) {
|
150 |
-
getting_started_modal.style.display = "none";
|
151 |
-
});
|
152 |
-
}
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
jQuery('#restart-tour').click(function(){
|
158 |
-
var data={
|
159 |
-
'action': 'mo_wpns_tour',
|
160 |
-
'call_type': 'wpns_enable_tour'
|
161 |
-
};
|
162 |
-
jQuery.post(ajaxurl, data, function(response){
|
163 |
-
|
164 |
-
current_pointer = 0;
|
165 |
-
jQuery('#start-plugin-tour').html('Start tour');
|
166 |
-
jQuery('.modal-footer a').css('display', 'inline-block');
|
167 |
-
jQuery('#getting-started').css('display', 'block');
|
168 |
-
});
|
169 |
-
});
|
170 |
-
|
171 |
-
jQuery('.modal-footer a').click(function(){
|
172 |
-
close_modal();
|
173 |
-
});
|
174 |
-
jQuery('#tour-model').click(function(){
|
175 |
-
close_modal();
|
176 |
-
});
|
177 |
-
function close_modal(){
|
178 |
-
var data = {
|
179 |
-
'action' : 'mo_wpns_tour',
|
180 |
-
'call_type' : 'skip_entire_plugin_tour',
|
181 |
-
};
|
182 |
-
jQuery.post(ajaxurl, data, function(response) {
|
183 |
-
getting_started_modal.style.display = "none";
|
184 |
-
});
|
185 |
-
}
|
186 |
-
|
187 |
-
function open_hide(gettag){
|
188 |
-
if(gettag.text == '+'){
|
189 |
-
gettag.text='-';
|
190 |
-
jQuery('#div-'+gettag.id).css({'overflow': '', 'height': ''});
|
191 |
-
} else {
|
192 |
-
gettag.text='+';
|
193 |
-
jQuery('#div-'+gettag.id).css({'overflow': 'hidden', 'height': '50px'});
|
194 |
-
}
|
195 |
-
}
|
196 |
-
|
197 |
-
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
views/trial.php
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
?>
|
3 |
-
<div class="mo_wpns_divided_layout mo2f_trial_box">
|
4 |
-
<div class="mo_wpns_setting_layout" style="width: 110% !important;">
|
5 |
-
<h3> Trial Request Form : <div style="float: right;">
|
6 |
-
<?php
|
7 |
-
echo '<a class="mo_wpns_button mo_wpns_button1 mo2f_offer_contact_us_button" href="'.$two_fa.'">Back</a>';
|
8 |
-
?>
|
9 |
-
</div></h3>
|
10 |
-
<form method="post">
|
11 |
-
<input type="hidden" name="option" value="mo2f_trial_request_form" />
|
12 |
-
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('mo2f_trial-nonce')?>">
|
13 |
-
<table cellpadding="4" cellspacing="4">
|
14 |
-
<tr>
|
15 |
-
<td><strong>Email ID : </strong></td>
|
16 |
-
<td><input required type="email" name="mo2f_trial_email" style="width: 100%;" value="<?php echo get_option('mo2f_email');?>" placeholder="Email id" /></td>
|
17 |
-
</tr>
|
18 |
-
<tr>
|
19 |
-
<td><strong>Phone No. : </strong></td>
|
20 |
-
<td><input required type="tel" name="mo2f_trial_phone" style="width: 100%;" id= "mo2f_phone" value="<?php echo $user_phone; ?>" /></td>
|
21 |
-
</tr>
|
22 |
-
<tr>
|
23 |
-
<td valign=top ><strong>Request a Trial for : </strong></td>
|
24 |
-
<td>
|
25 |
-
<p style = "margin-top:0px">
|
26 |
-
<input type= 'radio' name= 'mo2f_trial_plan' value="All Inclusive" required >All Inclusive (Unlimited Users + Advanced Features)<br>
|
27 |
-
</p>
|
28 |
-
<p><input type= 'radio' name= 'mo2f_trial_plan' value="Enterprise" required >Enterprise(Unlimited sites)<br></p>
|
29 |
-
<p><input type= 'radio' name= 'mo2f_trial_plan' value="notSure" required >I am confused!!<br></p>
|
30 |
-
<a href="<?php echo $upgrade_url; ?>" target="_blank">Checkout our Plans</a>
|
31 |
-
|
32 |
-
</td>
|
33 |
-
</tr>
|
34 |
-
</table>
|
35 |
-
<div style="padding-top: 10px;">
|
36 |
-
<p ><b><i>NOTE: You will receive an email with your trial license key that allows you to use the premium plugin for 7 days. If you choose to purchase the plugin, you can use the license key you receive to convert the trial version into the fully functional version.
|
37 |
-
You will not need to reinstall the plugin after you purchase a license.</i></b></p>
|
38 |
-
<input type="submit" name="submit" value="Submit Trial Request" class="mo2f_trial_submit_button"/>
|
39 |
-
|
40 |
-
</div>
|
41 |
-
</form>
|
42 |
-
</div>
|
43 |
-
</div>
|
44 |
-
<script>
|
45 |
-
jQuery("#mo2f_phone").intlTelInput();
|
46 |
-
|
47 |
-
jQuery(document).ready(function(){
|
48 |
-
var mo2f_trial_query_sent = "<?php echo get_site_option('mo2f_trial_query_sent') ?>"
|
49 |
-
if(mo2f_trial_query_sent == 1){
|
50 |
-
jQuery(':input[type="submit"]').prop('disabled', true);
|
51 |
-
jQuery(':input[type="submit"]').attr('title','You have already sent a trial request for premium plugin. We will get back to you on your email soon.' );
|
52 |
-
jQuery(':input[type="submit"]').css('color', 'white');
|
53 |
-
jQuery(':input[type="submit"]').css('box-shadow', 'none');
|
54 |
-
}
|
55 |
-
});
|
56 |
-
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
views/twofa/setup/setup_duo_authenticator.php
CHANGED
@@ -379,15 +379,13 @@ function mo2f_inline_download_instruction_for_duo_mobile_app($mobile_registratio
|
|
379 |
function mo2f_save_duo_configuration_credentials(){
|
380 |
|
381 |
?>
|
382 |
-
<h3><?php echo mo2f_lt( 'Please enter required
|
383 |
</h3>
|
384 |
<p style = "font-size: 17px;">
|
385 |
<?php echo mo2f_lt( '1. If you do not have an account in duo, please'); ?> <a href="https://signup.duo.com/" target="_blank">Click Here </a><?php echo mo2f_lt( 'to create an account.'); ?>
|
386 |
-
|
387 |
</p>
|
388 |
<p style = "font-size: 17px;">
|
389 |
<?php echo mo2f_lt( '2. Follow these steps( ') ?> <a href=" https://duo.com/docs/authapi#first-steps" target="_blank">Click Here </a> <?php echo mo2f_lt( ') to create AUTH API application on duo side. After creating auth API, you will get the all credentials which you need to enter below.'); ?>
|
390 |
-
|
391 |
</p>
|
392 |
<br>
|
393 |
<div>
|
379 |
function mo2f_save_duo_configuration_credentials(){
|
380 |
|
381 |
?>
|
382 |
+
<h3><?php echo mo2f_lt( 'Please enter required Details' ); ?>
|
383 |
</h3>
|
384 |
<p style = "font-size: 17px;">
|
385 |
<?php echo mo2f_lt( '1. If you do not have an account in duo, please'); ?> <a href="https://signup.duo.com/" target="_blank">Click Here </a><?php echo mo2f_lt( 'to create an account.'); ?>
|
|
|
386 |
</p>
|
387 |
<p style = "font-size: 17px;">
|
388 |
<?php echo mo2f_lt( '2. Follow these steps( ') ?> <a href=" https://duo.com/docs/authapi#first-steps" target="_blank">Click Here </a> <?php echo mo2f_lt( ') to create AUTH API application on duo side. After creating auth API, you will get the all credentials which you need to enter below.'); ?>
|
|
|
389 |
</p>
|
390 |
<br>
|
391 |
<div>
|
views/twofa/setup/setup_google_authenticator.php
CHANGED
@@ -8,12 +8,11 @@ function mo2f_configure_google_authenticator( $user ) {
|
|
8 |
$gauth_name= get_option('mo2f_google_appname');
|
9 |
$gauth_name = $gauth_name ? $gauth_name : 'miniOrangeAu';
|
10 |
?>
|
11 |
-
|
12 |
<table>
|
13 |
<tr>
|
14 |
<td class="mo2f_google_authy_step2">
|
15 |
<?php echo '<' . $h_size . '>' . mo2f_lt( 'Step-1: Set up Google/Authy/LastPass Authenticator' ) . '<span style="float:right">
|
16 |
-
<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/google-authenticator" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:26px;color:#
|
17 |
|
18 |
<a href="https://www.youtube.com/watch?v=vVGXjedIaGs" target="_blank"><span class="dashicons dashicons-video-alt3" style="font-size:30px;color:red;float: right; margin-right: 16px;margin-top: -3px;"></span></a>
|
19 |
</span></' . $h_size . '>'; ?>
|
8 |
$gauth_name= get_option('mo2f_google_appname');
|
9 |
$gauth_name = $gauth_name ? $gauth_name : 'miniOrangeAu';
|
10 |
?>
|
|
|
11 |
<table>
|
12 |
<tr>
|
13 |
<td class="mo2f_google_authy_step2">
|
14 |
<?php echo '<' . $h_size . '>' . mo2f_lt( 'Step-1: Set up Google/Authy/LastPass Authenticator' ) . '<span style="float:right">
|
15 |
+
<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/google-authenticator" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:26px;color:#269eb3;float: right;"></span></a>
|
16 |
|
17 |
<a href="https://www.youtube.com/watch?v=vVGXjedIaGs" target="_blank"><span class="dashicons dashicons-video-alt3" style="font-size:30px;color:red;float: right; margin-right: 16px;margin-top: -3px;"></span></a>
|
18 |
</span></' . $h_size . '>'; ?>
|
views/twofa/setup/setup_google_authenticator_onpremise.php
CHANGED
@@ -1,106 +1,5 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
function mo2f_configure_google_authenticator_setupWizard($secret,$url,$otpcode, $session_id_encrypt)
|
4 |
-
{
|
5 |
-
$gauth_name = $_SERVER['SERVER_NAME'];
|
6 |
-
echo "<b><h3>1. Please scan the QR code below in your Authenticator App</h3></b>
|
7 |
-
<table>
|
8 |
-
<tbody>
|
9 |
-
<tr><td><li>Google Authenticator</li> </td>
|
10 |
-
<td> <li>Microsoft Authenticator</li> </td></tr>
|
11 |
-
<tr><td colspan='2'> <li> Authy Authenticator and other popular TOTP Authenticators</li></td></tr>
|
12 |
-
|
13 |
-
|
14 |
-
</tbody>
|
15 |
-
</table>
|
16 |
-
";
|
17 |
-
?>
|
18 |
-
<div style="margin-left:40px;">
|
19 |
-
<ol>
|
20 |
-
<li><?php echo mo2f_lt( 'In the app, tap on Menu and select "Set up account".' ); ?></li>
|
21 |
-
<li><?php echo mo2f_lt( 'Select "Scan a barcode".' ); ?></li>
|
22 |
-
<br><br>
|
23 |
-
<form name="f" id="login_settings_appname_form" method="post" action="">
|
24 |
-
<input type="hidden" name="option" value="mo2f_google_appname" />
|
25 |
-
<input type="hidden" name="mo2f_google_appname_nonce"
|
26 |
-
value="<?php echo wp_create_nonce( "mo2f-google-appname-nonce" ) ?>"/>
|
27 |
-
<div style="margin-left: 14%;">
|
28 |
-
<div class="mo2f_gauth_column mo2f_gauth_left" >
|
29 |
-
|
30 |
-
<div class="mo2f_gauth" style="background: white;" data-qrcode="<?php echo $url;?>" ></div>
|
31 |
-
</div>
|
32 |
-
</div>
|
33 |
-
|
34 |
-
|
35 |
-
</form>
|
36 |
-
|
37 |
-
</ol>
|
38 |
-
|
39 |
-
<div><a data-toggle="collapse" href="#mo2f_scanbarcode_a"
|
40 |
-
aria-expanded="false"><b><?php echo mo2f_lt( 'Can\'t scan the barcode? ' ); ?></b></a>
|
41 |
-
</div>
|
42 |
-
<div class="mo2f_collapse" id="mo2f_scanbarcode_a" style="background: white; display: none;">
|
43 |
-
<ol class="mo2f_ol">
|
44 |
-
<li><?php echo mo2f_lt( 'Tap on Menu and select' ); ?>
|
45 |
-
<b> <?php echo mo2f_lt( ' Set up account ' ); ?></b>.
|
46 |
-
</li>
|
47 |
-
<li><?php echo mo2f_lt( 'Select' ); ?>
|
48 |
-
<b> <?php echo mo2f_lt( ' Enter provided key ' ); ?></b>.
|
49 |
-
</li>
|
50 |
-
<li><?php echo mo2f_lt( 'For the' ); ?>
|
51 |
-
<b> <?php echo mo2f_lt( ' Enter account name ' ); ?></b>
|
52 |
-
<?php echo mo2f_lt( 'field, type your preferred account name' ); ?>.
|
53 |
-
</li>
|
54 |
-
<li><?php echo mo2f_lt( 'For the' ); ?>
|
55 |
-
<b> <?php echo mo2f_lt( ' Enter your key ' ); ?></b>
|
56 |
-
<?php echo mo2f_lt( 'field, type the below secret key' ); ?>:
|
57 |
-
</li>
|
58 |
-
|
59 |
-
<div class="mo2f_google_authy_secret_outer_div">
|
60 |
-
<div class="mo2f_google_authy_secret_inner_div">
|
61 |
-
<?php echo $secret; ?>
|
62 |
-
</div>
|
63 |
-
<div class="mo2f_google_authy_secret">
|
64 |
-
<?php echo mo2f_lt( 'Spaces do not matter' ); ?>.
|
65 |
-
</div>
|
66 |
-
</div>
|
67 |
-
<li><?php echo mo2f_lt( 'Key type: make sure' ); ?>
|
68 |
-
<b> <?php echo mo2f_lt( ' Time-based ' ); ?></b>
|
69 |
-
<?php echo mo2f_lt( ' is selected' ); ?>.
|
70 |
-
</li>
|
71 |
-
|
72 |
-
<li><?php echo mo2f_lt( 'Tap Add.' ); ?></li>
|
73 |
-
</ol>
|
74 |
-
</div>
|
75 |
-
</div>
|
76 |
-
|
77 |
-
<div id="mo2f_entergoogle_auth_code">
|
78 |
-
|
79 |
-
<b><h3>2. Enter the code generated in your Authenticator app <input style="padding: 5px" class ='mo_input_text_box_size' type="text" id="mo2f_google_auth_code" name="mo2f_google_auth_code" placeholder="Enter OTP" /> </h3></b>
|
80 |
-
<input type="hidden" name="mo2f_session_id" id="mo2f_session_id" value="<?php echo $session_id_encrypt ?>">
|
81 |
-
|
82 |
-
</div>
|
83 |
-
<script type="text/javascript">
|
84 |
-
jQuery('a[href="#mo2f_scanbarcode_a"]').click(function(e){
|
85 |
-
|
86 |
-
var element = document.getElementById('mo2f_scanbarcode_a');
|
87 |
-
if(element.style.display === 'none')
|
88 |
-
element.style.display = 'block';
|
89 |
-
|
90 |
-
else
|
91 |
-
element.style.display = "none";
|
92 |
-
});
|
93 |
-
jQuery(document).ready(function() {
|
94 |
-
jQuery('.mo2f_gauth').qrcode({
|
95 |
-
'render': 'image',
|
96 |
-
size: 175,
|
97 |
-
'text': jQuery('.mo2f_gauth').data('qrcode')
|
98 |
-
});
|
99 |
-
});
|
100 |
-
|
101 |
-
</script>
|
102 |
-
<?php
|
103 |
-
}
|
104 |
function mo2f_configure_google_authenticator_onprem( $secret,$url,$otpcode, $session_id_encrypt ) {
|
105 |
$h_size = 'h3';
|
106 |
$gauth_name= get_option('mo2f_google_appname');
|
@@ -111,7 +10,7 @@ function mo2f_configure_google_authenticator_onprem( $secret,$url,$otpcode, $ses
|
|
111 |
<tr>
|
112 |
<td class="mo2f_google_authy_step2">
|
113 |
<?php echo '<' . $h_size . '>' . mo2f_lt( 'Step-1: Set up Google/Authy/LastPass Authenticator' ) . '<span style="float:right">
|
114 |
-
<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/google-authenticator" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:26px;color:#
|
115 |
|
116 |
<a href="https://www.youtube.com/watch?v=vVGXjedIaGs" target="_blank"><span class="dashicons dashicons-video-alt3" style="font-size:30px;color:red;float: right; margin-right: 16px;margin-top: -3px;"></span></a>
|
117 |
</span></' . $h_size . '>'; ?>
|
@@ -226,7 +125,7 @@ function mo2f_configure_google_authenticator_onprem( $secret,$url,$otpcode, $ses
|
|
226 |
<form name="f" method="post" action="" id="mo2f_go_back_form">
|
227 |
<input type="hidden" name="option" value="mo2f_go_back"/>
|
228 |
<input style="margin-left: 5px;" type="submit" name="back" id="go_back" class="button button-primary button-large"
|
229 |
-
|
230 |
<input type="hidden" name="mo2f_go_back_nonce"
|
231 |
value="<?php echo wp_create_nonce( "mo2f-go-back-nonce" ) ?>"/>
|
232 |
</form>
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
function mo2f_configure_google_authenticator_onprem( $secret,$url,$otpcode, $session_id_encrypt ) {
|
4 |
$h_size = 'h3';
|
5 |
$gauth_name= get_option('mo2f_google_appname');
|
10 |
<tr>
|
11 |
<td class="mo2f_google_authy_step2">
|
12 |
<?php echo '<' . $h_size . '>' . mo2f_lt( 'Step-1: Set up Google/Authy/LastPass Authenticator' ) . '<span style="float:right">
|
13 |
+
<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/google-authenticator" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:26px;color:#269eb3;float: right;"></span></a>
|
14 |
|
15 |
<a href="https://www.youtube.com/watch?v=vVGXjedIaGs" target="_blank"><span class="dashicons dashicons-video-alt3" style="font-size:30px;color:red;float: right; margin-right: 16px;margin-top: -3px;"></span></a>
|
16 |
</span></' . $h_size . '>'; ?>
|
125 |
<form name="f" method="post" action="" id="mo2f_go_back_form">
|
126 |
<input type="hidden" name="option" value="mo2f_go_back"/>
|
127 |
<input style="margin-left: 5px;" type="submit" name="back" id="go_back" class="button button-primary button-large"
|
128 |
+
value="<?php echo mo2f_lt( 'Back' ); ?>"/>
|
129 |
<input type="hidden" name="mo2f_go_back_nonce"
|
130 |
value="<?php echo wp_create_nonce( "mo2f-go-back-nonce" ) ?>"/>
|
131 |
</form>
|
views/twofa/setup/setup_kba_questions.php
CHANGED
@@ -5,20 +5,18 @@ function mo2f_configure_kba_questions() { ?>
|
|
5 |
|
6 |
<div class="mo2f_kba_header"><?php echo mo2f_lt( 'Please choose 3 questions' ); ?></div>
|
7 |
<br>
|
8 |
-
<table
|
9 |
-
<thead>
|
10 |
<tr class="mo2f_kba_header">
|
11 |
-
<
|
12 |
-
|
13 |
-
</
|
14 |
-
<
|
15 |
-
|
16 |
-
</
|
17 |
-
<
|
18 |
-
|
19 |
-
</
|
20 |
</tr>
|
21 |
-
</thead>
|
22 |
<tr class="mo2f_kba_body">
|
23 |
<td>
|
24 |
<center>1.</center>
|
5 |
|
6 |
<div class="mo2f_kba_header"><?php echo mo2f_lt( 'Please choose 3 questions' ); ?></div>
|
7 |
<br>
|
8 |
+
<table cellspacing="10">
|
|
|
9 |
<tr class="mo2f_kba_header">
|
10 |
+
<td>
|
11 |
+
<?php echo mo2f_lt( 'Sr. No.' ); ?>
|
12 |
+
</td>
|
13 |
+
<td class="mo2f_kba_tb_data">
|
14 |
+
<?php echo mo2f_lt( 'Questions' ); ?>
|
15 |
+
</td>
|
16 |
+
<td>
|
17 |
+
<?php echo mo2f_lt( 'Answers' ); ?>
|
18 |
+
</td>
|
19 |
</tr>
|
|
|
20 |
<tr class="mo2f_kba_body">
|
21 |
<td>
|
22 |
<center>1.</center>
|
views/twofa/setup/setup_miniorange_authenticator.php
CHANGED
@@ -281,4 +281,4 @@ function initialize_mobile_registration($user,$session_id_encrypt = null) {
|
|
281 |
}, 800);
|
282 |
</script>
|
283 |
<?php
|
284 |
-
} ?>
|
281 |
}, 800);
|
282 |
</script>
|
283 |
<?php
|
284 |
+
} ?>
|
views/twofa/setup_twofa.php
CHANGED
@@ -156,8 +156,6 @@
|
|
156 |
$free_plan_existing_user = $methods_of_users['existing_user'];
|
157 |
$free_plan_new_user = $methods_of_users['new_user'];
|
158 |
}
|
159 |
-
update_site_option('mo2fa_free_plan_new_user_methods',$free_plan_new_user);
|
160 |
-
update_site_option('mo2fa_free_plan_existing_user_methods',$free_plan_existing_user);
|
161 |
|
162 |
$free_plan_methods_existing_user = array_chunk( $free_plan_existing_user, 3 );
|
163 |
$free_plan_methods_new_user = array_chunk( $free_plan_new_user, 3 );
|
@@ -181,24 +179,16 @@
|
|
181 |
}
|
182 |
?>
|
183 |
|
184 |
-
|
185 |
-
<div
|
186 |
-
|
187 |
<div class="test_auth_button">
|
188 |
-
|
189 |
-
|
190 |
-
if($mo2f_two_fa_method != '' and (!get_user_meta( $user->ID, 'mo_backup_code_generated', true) and !get_user_meta( $user->ID, 'mo_backup_code_downloaded', true))){
|
191 |
-
?>
|
192 |
-
<button class="btn btn-primary btn-large" id="mo_2f_generate_codes">Download backup codes
|
193 |
-
</button>
|
194 |
-
<?php
|
195 |
-
}
|
196 |
-
?>
|
197 |
<button class="btn btn-primary btn-large " id="test" onclick="testAuthenticationMethod('<?php echo $selectedMethod; ?>');"
|
198 |
<?php echo $is_customer_registered && ( $selectedMethod != 'NONE' ) ? "" : " disabled "; ?>>Test - <?php echo $selectedMethod; ?>
|
199 |
</button>
|
200 |
</div>
|
201 |
|
|
|
202 |
<div>
|
203 |
<a class="mo2f_view_free_plan_auth_methods" onclick="show_free_plan_auth_methods()">
|
204 |
<img src="<?php echo plugins_url( 'includes/images/right-arrow.png"', dirname(dirname(__FILE__ ))); ?>"
|
@@ -208,6 +198,16 @@
|
|
208 |
<span style="color:limegreen">( <?php echo mo2f_lt( 'Current Plan' ); ?> )</span>
|
209 |
<?php } ?>
|
210 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
211 |
|
212 |
</p>
|
213 |
</a>
|
@@ -229,8 +229,9 @@
|
|
229 |
echo mo2f_create_2fa_form( $user, "free_plan", $is_NC ? $free_plan_methods_new_user : $free_plan_methods_existing_user, $can_display_admin_features ); ?>
|
230 |
</div>
|
231 |
|
|
|
232 |
<?php if ( $can_display_admin_features ) { ?>
|
233 |
-
<div
|
234 |
<span id="mo2f_premium_plan"> <a class="mo2f_view_premium_plan_auth_methods" onclick="show_premium_auth_methods()">
|
235 |
<img src="<?php echo plugins_url( 'includes/images/right-arrow.png"', dirname(dirname(__FILE__))); ?>"
|
236 |
class="mo2f_2factor_heading_images"/>
|
@@ -239,6 +240,7 @@
|
|
239 |
<?php echo mo2f_create_2fa_form( $user, "premium_plan", $is_NC ? $premium_plan_methods_new_user : $premium_plan_methods_existing_user ); ?>
|
240 |
|
241 |
</div>
|
|
|
242 |
<br>
|
243 |
<?php } ?>
|
244 |
<form name="f" method="post" action="" id="mo2f_2factor_test_authentication_method_form">
|
@@ -261,13 +263,13 @@
|
|
261 |
</form>
|
262 |
|
263 |
|
264 |
-
|
265 |
<div id="EnterEmailCloudVerification" class="modal">
|
266 |
<!-- Modal content -->
|
267 |
<div class="modal-content">
|
268 |
<!-- <span class="close">×</span> -->
|
269 |
<div class="modal-header">
|
270 |
-
<h3 class="modal-title" style="text-align: center; font-size: 20px; color: #
|
271 |
</div>
|
272 |
<div class="modal-body" style="height: auto">
|
273 |
<h2 style="color: red;">The email associated with your account is already registered in miniOrange. Please Choose another email.</h2>
|
@@ -283,7 +285,7 @@
|
|
283 |
<div class="modal-content">
|
284 |
<!-- <span class="close">×</span> -->
|
285 |
<div class="modal-header">
|
286 |
-
<h3 class="modal-title" style="text-align: center; font-size: 20px; color: #
|
287 |
</div>
|
288 |
<div class="modal-body" style="height: auto">
|
289 |
<h2><i>Enter your Email: <input type ='email' id='emailEntered' name='emailEntered' size= '40' required value="<?php echo $email;?>"/></i></h2>
|
156 |
$free_plan_existing_user = $methods_of_users['existing_user'];
|
157 |
$free_plan_new_user = $methods_of_users['new_user'];
|
158 |
}
|
|
|
|
|
159 |
|
160 |
$free_plan_methods_existing_user = array_chunk( $free_plan_existing_user, 3 );
|
161 |
$free_plan_methods_new_user = array_chunk( $free_plan_new_user, 3 );
|
179 |
}
|
180 |
?>
|
181 |
|
182 |
+
<div>
|
183 |
+
<div>
|
|
|
184 |
<div class="test_auth_button">
|
185 |
+
<br>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
<button class="btn btn-primary btn-large " id="test" onclick="testAuthenticationMethod('<?php echo $selectedMethod; ?>');"
|
187 |
<?php echo $is_customer_registered && ( $selectedMethod != 'NONE' ) ? "" : " disabled "; ?>>Test - <?php echo $selectedMethod; ?>
|
188 |
</button>
|
189 |
</div>
|
190 |
|
191 |
+
|
192 |
<div>
|
193 |
<a class="mo2f_view_free_plan_auth_methods" onclick="show_free_plan_auth_methods()">
|
194 |
<img src="<?php echo plugins_url( 'includes/images/right-arrow.png"', dirname(dirname(__FILE__ ))); ?>"
|
198 |
<span style="color:limegreen">( <?php echo mo2f_lt( 'Current Plan' ); ?> )</span>
|
199 |
<?php } ?>
|
200 |
|
201 |
+
|
202 |
+
<?php
|
203 |
+
if((!get_user_meta($user->ID, 'mo_backup_code_generated', true) || ($backup_codes_remaining == 5 && !get_user_meta($user->ID, 'mo_backup_code_downloaded', true))) && $mo2f_two_fa_method != ''){
|
204 |
+
?>
|
205 |
+
<button class="btn btn-primary btn-large" id="mo_2f_generate_codes" style="float:right; margin-right: 3%; height: 36px;">Download backup codes
|
206 |
+
</button>
|
207 |
+
<?php
|
208 |
+
}
|
209 |
+
?>
|
210 |
+
|
211 |
|
212 |
</p>
|
213 |
</a>
|
229 |
echo mo2f_create_2fa_form( $user, "free_plan", $is_NC ? $free_plan_methods_new_user : $free_plan_methods_existing_user, $can_display_admin_features ); ?>
|
230 |
</div>
|
231 |
|
232 |
+
<hr>
|
233 |
<?php if ( $can_display_admin_features ) { ?>
|
234 |
+
<div>
|
235 |
<span id="mo2f_premium_plan"> <a class="mo2f_view_premium_plan_auth_methods" onclick="show_premium_auth_methods()">
|
236 |
<img src="<?php echo plugins_url( 'includes/images/right-arrow.png"', dirname(dirname(__FILE__))); ?>"
|
237 |
class="mo2f_2factor_heading_images"/>
|
240 |
<?php echo mo2f_create_2fa_form( $user, "premium_plan", $is_NC ? $premium_plan_methods_new_user : $premium_plan_methods_existing_user ); ?>
|
241 |
|
242 |
</div>
|
243 |
+
<hr>
|
244 |
<br>
|
245 |
<?php } ?>
|
246 |
<form name="f" method="post" action="" id="mo2f_2factor_test_authentication_method_form">
|
263 |
</form>
|
264 |
|
265 |
|
266 |
+
</div>
|
267 |
<div id="EnterEmailCloudVerification" class="modal">
|
268 |
<!-- Modal content -->
|
269 |
<div class="modal-content">
|
270 |
<!-- <span class="close">×</span> -->
|
271 |
<div class="modal-header">
|
272 |
+
<h3 class="modal-title" style="text-align: center; font-size: 20px; color: #20b2aa">Email Address for miniOrange</h3><span id="closeEnterEmailCloud" class="modal-span-close">X</span>
|
273 |
</div>
|
274 |
<div class="modal-body" style="height: auto">
|
275 |
<h2 style="color: red;">The email associated with your account is already registered in miniOrange. Please Choose another email.</h2>
|
285 |
<div class="modal-content">
|
286 |
<!-- <span class="close">×</span> -->
|
287 |
<div class="modal-header">
|
288 |
+
<h3 class="modal-title" style="text-align: center; font-size: 20px; color: #20b2aa">Email Address for OTP</h3><span id="closeEnterEmail" class="modal-span-close">X</span>
|
289 |
</div>
|
290 |
<div class="modal-body" style="height: auto">
|
291 |
<h2><i>Enter your Email: <input type ='email' id='emailEntered' name='emailEntered' size= '40' required value="<?php echo $email;?>"/></i></h2>
|
views/twofa/two_fa.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
$mo_2fa_with_network_security = MoWpnsUtility::get_mo2f_db_option('mo_wpns_2fa_with_network_security', 'get_option');
|
3 |
if ($mo_2fa_with_network_security) {
|
4 |
?>
|
5 |
-
<div class="
|
6 |
<?php
|
7 |
}
|
8 |
else
|
@@ -11,12 +11,12 @@ else
|
|
11 |
}
|
12 |
?>
|
13 |
|
14 |
-
<button class="nav-tab" onclick="
|
15 |
<?php
|
16 |
if(current_user_can('administrator') )
|
17 |
{
|
18 |
?>
|
19 |
-
<button class="nav-tab" onclick="
|
20 |
<?php
|
21 |
}
|
22 |
if(current_user_can('administrator'))
|
@@ -26,16 +26,16 @@ else
|
|
26 |
if( !MoWpnsUtility::get_mo2f_db_option('mo2f_is_NC', 'get_option'))
|
27 |
{
|
28 |
?>
|
29 |
-
<button class="nav-tab" onclick="
|
30 |
-
<button class="nav-tab" onclick="
|
31 |
<?php
|
32 |
}
|
33 |
else
|
34 |
{
|
35 |
?>
|
36 |
-
<button class="nav-tab" onclick="
|
37 |
-
<button class="nav-tab" onclick="
|
38 |
-
<button class="nav-tab" onclick="
|
39 |
<?php
|
40 |
}
|
41 |
?>
|
@@ -47,83 +47,68 @@ else
|
|
47 |
if($mo_2fa_with_network_security == 0)
|
48 |
{
|
49 |
?>
|
50 |
-
<!-- <button class="nav-tab" onclick="
|
51 |
<?php
|
52 |
}
|
53 |
?>
|
54 |
|
55 |
</div>
|
56 |
-
|
57 |
<div id="mo_scan_message" style=" padding-top:8px"></div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
|
59 |
-
<div class="mo2f_flexbox">
|
60 |
-
<div class="mo2f_table_layout" style="padding-right: unset;" id="setup_2fa_div">
|
61 |
-
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'setup_twofa.php'; ?>
|
62 |
-
</div>
|
63 |
-
|
64 |
-
<?php
|
65 |
-
if(current_user_can('administrator')){?>
|
66 |
-
<div class="mo2f_table_layout" id="rba_2fa_div">
|
67 |
-
<?php
|
68 |
-
if ( get_option( 'mo2f_rba_installed' ) )
|
69 |
-
mo2f_rba_description($mo2f_user_email);
|
70 |
-
else
|
71 |
-
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_rba.php';
|
72 |
-
?>
|
73 |
-
<?php
|
74 |
-
if ( get_option( 'mo2f_personalization_installed' ) )
|
75 |
-
mo2f_personalization_description($mo2f_user_email);
|
76 |
-
else
|
77 |
-
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_custom_login.php';
|
78 |
-
?>
|
79 |
-
<?php
|
80 |
-
if ( get_option( 'mo2f_shortcode_installed' ) )
|
81 |
-
mo2f_shortcode_description($mo2f_user_email);
|
82 |
-
else
|
83 |
-
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_shortcode.php';
|
84 |
-
?>
|
85 |
-
<?php
|
86 |
-
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_session_control.php';
|
87 |
-
?>
|
88 |
-
</div>
|
89 |
-
<div class="mo2f_table_layout" id="custom_login_2fa_div">
|
90 |
-
<?php
|
91 |
-
if ( get_option( 'mo2f_personalization_installed' ) )
|
92 |
-
mo2f_personalization_description($mo2f_user_email);
|
93 |
-
else
|
94 |
-
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_premium_feature.php';
|
95 |
-
?>
|
96 |
-
</div>
|
97 |
-
|
98 |
-
<div class="mo2f_table_layout" id="login_option_2fa_div">
|
99 |
-
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_login_option.php'; ?>
|
100 |
-
</div>
|
101 |
-
<div class="mo2f_table_layout" id="custom_form_2fa_div">
|
102 |
-
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_custom_form.php'; ?>
|
103 |
-
</div>
|
104 |
-
|
105 |
-
|
106 |
-
<div class="mo2f_table_layout" id="unlimittedUser_2fa_div">
|
107 |
-
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_unlimittedUser.php'; ?>
|
108 |
-
</div>
|
109 |
-
<?php
|
110 |
-
if(!MoWpnsUtility::get_mo2f_db_option('mo_wpns_2fa_with_network_security', 'get_option')){
|
111 |
-
?>
|
112 |
-
<div class="mo2f_support_flex">
|
113 |
-
<?php include $controller . 'support.php'; ?>
|
114 |
-
</div>
|
115 |
-
<?php
|
116 |
-
}
|
117 |
-
}
|
118 |
-
?>
|
119 |
-
</div>
|
120 |
-
|
121 |
|
122 |
<script>
|
|
|
123 |
|
124 |
-
jQuery(
|
|
|
|
|
|
|
125 |
|
126 |
-
|
|
|
127 |
var tabname = elmt.id;
|
128 |
var tabarray = ["setup_2fa","rba_2fa","custom_login_2fa","login_option_2fa", "custom_form_2fa","unlimittedUser_2fa"];
|
129 |
for (var i = 0; i < tabarray.length; i++) {
|
@@ -135,17 +120,36 @@ else
|
|
135 |
jQuery("#"+tabarray[i]+"_div").css("display", "none");
|
136 |
}
|
137 |
}
|
138 |
-
localStorage.setItem("
|
|
|
139 |
}
|
140 |
var tour = '<?php echo MoWpnsUtility::get_mo2f_db_option('mo2f_two_factor_tour', 'get_option');?>';
|
141 |
|
142 |
if(tour != 1)
|
143 |
-
var tab = localStorage.getItem("
|
144 |
else
|
145 |
var tab = '<?php echo get_option("mo2f_tour_tab");?>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
-
if(tab)
|
148 |
-
document.getElementById(tab).click();
|
149 |
else{
|
150 |
document.getElementById("setup_2fa").click();
|
151 |
}
|
2 |
$mo_2fa_with_network_security = MoWpnsUtility::get_mo2f_db_option('mo_wpns_2fa_with_network_security', 'get_option');
|
3 |
if ($mo_2fa_with_network_security) {
|
4 |
?>
|
5 |
+
<div class="mo_wpns_tab" >
|
6 |
<?php
|
7 |
}
|
8 |
else
|
11 |
}
|
12 |
?>
|
13 |
|
14 |
+
<button class="nav-tab" onclick="openTab2fa(this)" id="setup_2fa">Setup Two Factor</button>
|
15 |
<?php
|
16 |
if(current_user_can('administrator') )
|
17 |
{
|
18 |
?>
|
19 |
+
<button class="nav-tab" onclick="openTab2fa(this)" id="unlimittedUser_2fa">Settings</button>
|
20 |
<?php
|
21 |
}
|
22 |
if(current_user_can('administrator'))
|
26 |
if( !MoWpnsUtility::get_mo2f_db_option('mo2f_is_NC', 'get_option'))
|
27 |
{
|
28 |
?>
|
29 |
+
<button class="nav-tab" onclick="openTab2fa(this)" id="custom_form_2fa">Registration Forms</button>
|
30 |
+
<button class="nav-tab" onclick="openTab2fa(this)" id="login_option_2fa">Login Option</button>
|
31 |
<?php
|
32 |
}
|
33 |
else
|
34 |
{
|
35 |
?>
|
36 |
+
<button class="nav-tab" onclick="openTab2fa(this)" id="custom_form_2fa">Registration Forms</button>
|
37 |
+
<button class="nav-tab" onclick="openTab2fa(this)" id="custom_login_2fa">Premium Features</button>
|
38 |
+
<button class="nav-tab" onclick="openTab2fa(this)" id="rba_2fa">AddOns</button>
|
39 |
<?php
|
40 |
}
|
41 |
?>
|
47 |
if($mo_2fa_with_network_security == 0)
|
48 |
{
|
49 |
?>
|
50 |
+
<!-- <button class="nav-tab" onclick="openTab2fa(this)" id="upgrade_2fa">Upgrade</button> -->
|
51 |
<?php
|
52 |
}
|
53 |
?>
|
54 |
|
55 |
</div>
|
|
|
56 |
<div id="mo_scan_message" style=" padding-top:8px"></div>
|
57 |
+
<div class="mo2f_table_layout" id="setup_2fa_div">
|
58 |
+
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'setup_twofa.php'; ?>
|
59 |
+
</div>
|
60 |
+
<div class="mo2f_table_layout" id="rba_2fa_div">
|
61 |
+
<?php
|
62 |
+
if ( get_option( 'mo2f_rba_installed' ) )
|
63 |
+
mo2f_rba_description($mo2f_user_email);
|
64 |
+
else
|
65 |
+
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_rba.php';
|
66 |
+
?>
|
67 |
+
<?php
|
68 |
+
if ( get_option( 'mo2f_personalization_installed' ) )
|
69 |
+
mo2f_personalization_description($mo2f_user_email);
|
70 |
+
else
|
71 |
+
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_custom_login.php';
|
72 |
+
?>
|
73 |
+
<?php
|
74 |
+
if ( get_option( 'mo2f_shortcode_installed' ) )
|
75 |
+
mo2f_shortcode_description($mo2f_user_email);
|
76 |
+
else
|
77 |
+
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_shortcode.php';
|
78 |
+
?>
|
79 |
+
<?php
|
80 |
+
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_session_control.php';
|
81 |
+
?>
|
82 |
+
</div>
|
83 |
+
<div class="mo_wpns_divided_layout" id="custom_login_2fa_div">
|
84 |
+
<?php
|
85 |
+
if ( get_option( 'mo2f_personalization_installed' ) )
|
86 |
+
mo2f_personalization_description($mo2f_user_email);
|
87 |
+
else
|
88 |
+
include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_premium_feature.php';
|
89 |
+
?>
|
90 |
+
</div>
|
91 |
+
<div class="mo_wpns_divided_layout" id="login_option_2fa_div">
|
92 |
+
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_login_option.php'; ?>
|
93 |
+
</div>
|
94 |
+
<div class="mo_wpns_divided_layout" id="custom_form_2fa_div">
|
95 |
+
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_custom_form.php'; ?>
|
96 |
+
</div>
|
97 |
+
<div class="mo_wpns_divided_layout" id="unlimittedUser_2fa_div">
|
98 |
+
<?php include_once $mo2f_dirName . 'controllers'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEPARATOR.'two_fa_unlimittedUser.php'; ?>
|
99 |
+
</div>
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
|
102 |
<script>
|
103 |
+
jQuery("#setup_2fa_div").css("display", "block");
|
104 |
|
105 |
+
jQuery("#rba_2fa_div").css("display", "none");
|
106 |
+
jQuery("#custom_login_2fa_div").css("display", "none");
|
107 |
+
jQuery("#login_option_2fa_div").css("display", "none");
|
108 |
+
jQuery("#custom_form_2fa_div").css("display", "none");
|
109 |
|
110 |
+
jQuery("#setup_2fa").addClass("nav-tab-active");
|
111 |
+
function openTab2fa(elmt){
|
112 |
var tabname = elmt.id;
|
113 |
var tabarray = ["setup_2fa","rba_2fa","custom_login_2fa","login_option_2fa", "custom_form_2fa","unlimittedUser_2fa"];
|
114 |
for (var i = 0; i < tabarray.length; i++) {
|
120 |
jQuery("#"+tabarray[i]+"_div").css("display", "none");
|
121 |
}
|
122 |
}
|
123 |
+
localStorage.setItem("last_tab", tabname);
|
124 |
+
|
125 |
}
|
126 |
var tour = '<?php echo MoWpnsUtility::get_mo2f_db_option('mo2f_two_factor_tour', 'get_option');?>';
|
127 |
|
128 |
if(tour != 1)
|
129 |
+
var tab = localStorage.getItem("last_tab");
|
130 |
else
|
131 |
var tab = '<?php echo get_option("mo2f_tour_tab");?>';
|
132 |
+
var is_onprem = '<?php echo MO2F_IS_ONPREM;?>';
|
133 |
+
if(tab == "setup_twofa"){
|
134 |
+
document.getElementById("setup_2fa").click();
|
135 |
+
}
|
136 |
+
else if(tab == "rba_2fa"){
|
137 |
+
document.getElementById("rba_2fa").click();
|
138 |
+
}
|
139 |
+
else if(tab == "custom_login_2fa"){
|
140 |
+
document.getElementById("custom_login_2fa").click();
|
141 |
+
}
|
142 |
+
else if(tab == "login_option_2fa"){
|
143 |
+
document.getElementById("login_option_2fa").click();
|
144 |
+
}
|
145 |
+
else if(tab == "custom_form_2fa"){
|
146 |
+
document.getElementById("custom_form_2fa").click();
|
147 |
+
}
|
148 |
+
else if(tab == "unlimittedUser_2fa")
|
149 |
+
{
|
150 |
+
document.getElementById("unlimittedUser_2fa").click();
|
151 |
+
}
|
152 |
|
|
|
|
|
153 |
else{
|
154 |
document.getElementById("setup_2fa").click();
|
155 |
}
|
views/twofa/two_fa_addon.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<div class="mo2f_table_layout">
|
2 |
<div class="mo2f_vertical-submenu">
|
3 |
-
<a id="defaultOpen" class="nav-tab" onclick="openPage('rba', this, '#
|
4 |
><?php echo __( 'Remember Device', 'miniorange-2-factor-authentication' ); ?></a>
|
5 |
-
<a id="onclickOpen" class="nav-tab" onclick="openPage('personal', this, '#
|
6 |
-
<a id="onclick" class="nav-tab" onclick="openPage('shortcode', this, '#
|
7 |
</div>
|
8 |
<br><br><br><br>
|
9 |
<div class="mo2f_addon_spacing">
|
1 |
<div class="mo2f_table_layout">
|
2 |
<div class="mo2f_vertical-submenu">
|
3 |
+
<a id="defaultOpen" class="nav-tab" onclick="openPage('rba', this, '#20b2aa')"
|
4 |
><?php echo __( 'Remember Device', 'miniorange-2-factor-authentication' ); ?></a>
|
5 |
+
<a id="onclickOpen" class="nav-tab" onclick="openPage('personal', this, '#20b2aa')" ><?php echo __( 'Customize login Popups', 'miniorange-2-factor-authentication' ); ?></a>
|
6 |
+
<a id="onclick" class="nav-tab" onclick="openPage('shortcode', this, '#20b2aa')" ><?php echo __( 'Shortcode', 'miniorange-2-factor-authentication' ); ?></a>
|
7 |
</div>
|
8 |
<br><br><br><br>
|
9 |
<div class="mo2f_addon_spacing">
|
views/twofa/two_fa_custom_form.php
CHANGED
@@ -3,128 +3,7 @@ $setup_dirName = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'views'
|
|
3 |
include $setup_dirName;
|
4 |
?>
|
5 |
|
6 |
-
<div>
|
7 |
-
|
8 |
-
<div>
|
9 |
-
<h2>Custom Login Forms</h2>
|
10 |
-
<p>We support most of the login forms present on the wordpress. And our plugin is tested with almost all the forms like Woocommerce, Ultimate Member, Restrict Content Pro and so on.</p>
|
11 |
-
</div>
|
12 |
-
<div>
|
13 |
-
<div>
|
14 |
-
<table class="customloginform" style="width: 95%">
|
15 |
-
<tr>
|
16 |
-
<th style="width: 65%">
|
17 |
-
Custom Login form
|
18 |
-
</th>
|
19 |
-
<th style="width: 22%">
|
20 |
-
Show 2FA prompt on Custom login
|
21 |
-
|
22 |
-
</th>
|
23 |
-
<th style="width: 13%">
|
24 |
-
Documents
|
25 |
-
</th>
|
26 |
-
</tr>
|
27 |
-
<tr>
|
28 |
-
<td>
|
29 |
-
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/woocommerce.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit; padding-right: 50px;">Woocommerce</h3>
|
30 |
-
</td>
|
31 |
-
<td style="align-items: right;">
|
32 |
-
<form id="woocommerce_login_prompt_form" method="post">
|
33 |
-
<div align="center">
|
34 |
-
<input type="checkbox" name="woocommerce_login_prompt" onchange="document.getElementById('woocommerce_login_prompt_form').submit();" <?php if(get_site_option('mo2f_woocommerce_login_prompt')){?> checked <?php } ?> <?php if(!MoWpnsUtility::get_mo2f_db_option('mo2f_enable_2fa_prompt_on_login_page', 'site_option')){?> checked <?php } ?>/>
|
35 |
-
</div>
|
36 |
-
<input type="hidden" name="option" value="woocommerce_disable_login_prompt">
|
37 |
-
|
38 |
-
</form>
|
39 |
-
</td>
|
40 |
-
<td>
|
41 |
-
<div style="text-align: center;">
|
42 |
-
<a href='<?php echo $two_factor_premium_doc['Woocommerce'];?>' target="blank"><span class="dashicons dashicons-text-page mo2f_doc_icon_style" style="font-size: 25px;color: #413c69"></span></a>
|
43 |
-
</div>
|
44 |
-
</td>
|
45 |
-
</tr>
|
46 |
-
<tr>
|
47 |
-
<td>
|
48 |
-
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/ultimate_member.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Ultimate Member</h3>
|
49 |
-
</td>
|
50 |
-
<td style="text-align: center;">
|
51 |
-
<input type="checkbox" name="" checked>
|
52 |
-
</td>
|
53 |
-
<td>
|
54 |
-
</td>
|
55 |
-
</tr>
|
56 |
-
<tr>
|
57 |
-
<td>
|
58 |
-
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/restrict_content_pro.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Restrict Content Pro</h3>
|
59 |
-
</td>
|
60 |
-
<td style="text-align: center;">
|
61 |
-
<input type="checkbox" name="" checked>
|
62 |
-
</td>
|
63 |
-
<td>
|
64 |
-
</td>
|
65 |
-
</tr>
|
66 |
-
<tr>
|
67 |
-
<td >
|
68 |
-
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/theme_my_login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">My Theme Login</h3>
|
69 |
-
</td>
|
70 |
-
<td style="text-align: center;">
|
71 |
-
<input type="checkbox" name="" checked>
|
72 |
-
</td>
|
73 |
-
<td>
|
74 |
-
</td>
|
75 |
-
</tr>
|
76 |
-
<tr>
|
77 |
-
<td>
|
78 |
-
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/user_registration.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">User Registration</h3>
|
79 |
-
</td>
|
80 |
-
<td style="text-align: center;">
|
81 |
-
<input type="checkbox" name="" checked>
|
82 |
-
</td>
|
83 |
-
<td>
|
84 |
-
</td>
|
85 |
-
</tr>
|
86 |
-
<tr>
|
87 |
-
<td>
|
88 |
-
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/Custom_Login_Page_Customizer_LoginPress.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Custom Login Page Customizer | LoginPress</h3>
|
89 |
-
</td>
|
90 |
-
<td style="text-align: center;">
|
91 |
-
<input type="checkbox" name="" checked>
|
92 |
-
</td>
|
93 |
-
<td>
|
94 |
-
</td>
|
95 |
-
</tr>
|
96 |
-
<tr>
|
97 |
-
<td>
|
98 |
-
<?php echo '<img style="width:30px; height:30px;display: inline;float: left;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/Admin_Custom_Login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Admin Custom Login</h3>
|
99 |
-
</td>
|
100 |
-
<td style="text-align: center;">
|
101 |
-
<input type="checkbox" name="" checked>
|
102 |
-
</td>
|
103 |
-
<td>
|
104 |
-
</td>
|
105 |
-
</tr>
|
106 |
-
<tr>
|
107 |
-
<td>
|
108 |
-
<?php echo '<img style="width:30px; height:30px;display: inline;float: left;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/RegistrationMagic_Custom_Registration_Forms_and_User_Login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">RegistrationMagic – Custom Registration Forms and User Login</h3>
|
109 |
-
</td>
|
110 |
-
<td style="text-align: center; ">
|
111 |
-
<input type="checkbox" name="" checked>
|
112 |
-
</td>
|
113 |
-
<td>
|
114 |
-
</td>
|
115 |
-
</tr>
|
116 |
-
|
117 |
-
</table>
|
118 |
-
<div style="text-align: center">
|
119 |
-
<b style="color: red; " >**If you want to enable/disable 2FA prompt on other Custom login pages please Contact us.</b>
|
120 |
-
<br>
|
121 |
-
<b style="color: red;" >**This feature will only work when you enable 2FA prompt on wordpress login page.</li></b>
|
122 |
-
|
123 |
-
<p style="font-size:15px">If there is any custom login form where Two Factor is not initiated for you, plese reach out to us by dropping a query in the <b>Support</b> section.</p>
|
124 |
-
</div>
|
125 |
-
</div>
|
126 |
-
|
127 |
-
<hr>
|
128 |
|
129 |
<form name="form_custom_form_config" method="post" action="" id="mo2f_custom_form_config">
|
130 |
<h3> <?php echo 'Custom Registration Forms';?> </h3>
|
@@ -411,5 +290,124 @@ include $setup_dirName;
|
|
411 |
|
412 |
</div>
|
413 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
414 |
</div>
|
415 |
|
3 |
include $setup_dirName;
|
4 |
?>
|
5 |
|
6 |
+
<div class="mo2f_table_layout">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
8 |
<form name="form_custom_form_config" method="post" action="" id="mo2f_custom_form_config">
|
9 |
<h3> <?php echo 'Custom Registration Forms';?> </h3>
|
290 |
|
291 |
</div>
|
292 |
|
293 |
+
|
294 |
+
<div class="mo2f_table_layout">
|
295 |
+
<h2>Custom Login Forms</h2>
|
296 |
+
<p>We support most of the login forms present on the wordpress. And our plugin is tested with almost all the forms like Woocommerce, Ultimate Member, Restrict Content Pro and so on.</p>
|
297 |
+
</div>
|
298 |
+
<div class="mo2f_table_layout">
|
299 |
+
<div>
|
300 |
+
<table class="customloginform" style="width: 95%">
|
301 |
+
<tr>
|
302 |
+
<th style="width: 65%">
|
303 |
+
Custom Login form
|
304 |
+
</th>
|
305 |
+
<th style="width: 22%">
|
306 |
+
Show 2FA prompt on Custom login
|
307 |
+
|
308 |
+
</th>
|
309 |
+
<th style="width: 13%">
|
310 |
+
Documents
|
311 |
+
</th>
|
312 |
+
</tr>
|
313 |
+
<tr>
|
314 |
+
<td>
|
315 |
+
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/woocommerce.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit; padding-right: 50px;">Woocommerce</h3>
|
316 |
+
</td>
|
317 |
+
<td style="align-items: right;">
|
318 |
+
<form id="woocommerce_login_prompt_form" method="post">
|
319 |
+
<div align="center">
|
320 |
+
<input type="checkbox" name="woocommerce_login_prompt" onchange="document.getElementById('woocommerce_login_prompt_form').submit();" <?php if(get_site_option('mo2f_woocommerce_login_prompt')){?> checked <?php } ?> <?php if(!MoWpnsUtility::get_mo2f_db_option('mo2f_enable_2fa_prompt_on_login_page', 'site_option')){?> checked <?php } ?>/>
|
321 |
+
</div>
|
322 |
+
<input type="hidden" name="option" value="woocommerce_disable_login_prompt">
|
323 |
+
|
324 |
+
</form>
|
325 |
+
</td>
|
326 |
+
<td>
|
327 |
+
<div style="text-align: center;">
|
328 |
+
<a href='<?php echo $two_factor_premium_doc['Woocommerce'];?>' target="blank"><span class="dashicons dashicons-text-page mo2f_doc_icon_style" style="font-size: 25px;color: #413c69"></span></a>
|
329 |
+
</div>
|
330 |
+
</td>
|
331 |
+
</tr>
|
332 |
+
<tr>
|
333 |
+
<td>
|
334 |
+
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/ultimate_member.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Ultimate Member</h3>
|
335 |
+
</td>
|
336 |
+
<td style="text-align: center;">
|
337 |
+
<input type="checkbox" name="" checked>
|
338 |
+
</td>
|
339 |
+
<td>
|
340 |
+
</td>
|
341 |
+
</tr>
|
342 |
+
<tr>
|
343 |
+
<td>
|
344 |
+
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/restrict_content_pro.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Restrict Content Pro</h3>
|
345 |
+
</td>
|
346 |
+
<td style="text-align: center;">
|
347 |
+
<input type="checkbox" name="" checked>
|
348 |
+
</td>
|
349 |
+
<td>
|
350 |
+
</td>
|
351 |
+
</tr>
|
352 |
+
<tr>
|
353 |
+
<td >
|
354 |
+
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/theme_my_login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">My Theme Login</h3>
|
355 |
+
</td>
|
356 |
+
<td style="text-align: center;">
|
357 |
+
<input type="checkbox" name="" checked>
|
358 |
+
</td>
|
359 |
+
<td>
|
360 |
+
</td>
|
361 |
+
</tr>
|
362 |
+
<tr>
|
363 |
+
<td>
|
364 |
+
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/user_registration.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">User Registration</h3>
|
365 |
+
</td>
|
366 |
+
<td style="text-align: center;">
|
367 |
+
<input type="checkbox" name="" checked>
|
368 |
+
</td>
|
369 |
+
<td>
|
370 |
+
</td>
|
371 |
+
</tr>
|
372 |
+
<tr>
|
373 |
+
<td>
|
374 |
+
<?php echo '<img style="width:30px; height:30px;display: inline;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/Custom_Login_Page_Customizer_LoginPress.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Custom Login Page Customizer | LoginPress</h3>
|
375 |
+
</td>
|
376 |
+
<td style="text-align: center;">
|
377 |
+
<input type="checkbox" name="" checked>
|
378 |
+
</td>
|
379 |
+
<td>
|
380 |
+
</td>
|
381 |
+
</tr>
|
382 |
+
<tr>
|
383 |
+
<td>
|
384 |
+
<?php echo '<img style="width:30px; height:30px;display: inline;float: left;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/Admin_Custom_Login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">Admin Custom Login</h3>
|
385 |
+
</td>
|
386 |
+
<td style="text-align: center;">
|
387 |
+
<input type="checkbox" name="" checked>
|
388 |
+
</td>
|
389 |
+
<td>
|
390 |
+
</td>
|
391 |
+
</tr>
|
392 |
+
<tr>
|
393 |
+
<td>
|
394 |
+
<?php echo '<img style="width:30px; height:30px;display: inline;float: left;" src="'.dirname(plugin_dir_url(dirname(__FILE__))).'/includes/images/RegistrationMagic_Custom_Registration_Forms_and_User_Login.png">';?><h3 style="margin-left: 15px; font-size: large; display: inline; float: inherit;">RegistrationMagic – Custom Registration Forms and User Login</h3>
|
395 |
+
</td>
|
396 |
+
<td style="text-align: center; ">
|
397 |
+
<input type="checkbox" name="" checked>
|
398 |
+
</td>
|
399 |
+
<td>
|
400 |
+
</td>
|
401 |
+
</tr>
|
402 |
+
|
403 |
+
</table>
|
404 |
+
<div style="text-align: center">
|
405 |
+
<b style="color: red; " >**If you want to enable/disable 2FA prompt on other Custom login pages please Contact us.</b>
|
406 |
+
<br>
|
407 |
+
<b style="color: red;" >**This feature will only work when you enable 2FA prompt on wordpress login page.</li></b>
|
408 |
+
|
409 |
+
<p style="font-size:15px">If there is any custom login form where Two Factor is not initiated for you, plese reach out to us by dropping a query in the <b>Support</b> section.</p>
|
410 |
+
</div>
|
411 |
+
</div>
|
412 |
</div>
|
413 |
|
views/twofa/two_fa_custom_login.php
CHANGED
@@ -5,7 +5,7 @@ $setup_dirName = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'views'
|
|
5 |
$current_user = wp_get_current_user();
|
6 |
global $Mo2fdbQueries;
|
7 |
?>
|
8 |
-
<div class="
|
9 |
<form name="f" id="custom_css_form_add" method="post" action="">
|
10 |
<input type="hidden" name="option" value="mo_auth_custom_options_save" />
|
11 |
|
@@ -22,7 +22,7 @@ $setup_dirName = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'views'
|
|
22 |
<div id="mo2f_Personalization_Plugin_Icon" style="display: none;">
|
23 |
|
24 |
<h3><?php echo mo2f_lt('Customize Plugin Icon');?><a href='<?php echo $two_factor_premium_doc['Custom plugin logo'];?>' target="_blank">
|
25 |
-
<span class="dashicons dashicons-text-page" style="font-size:19px;color:#
|
26 |
|
27 |
</a> </h3><br>
|
28 |
<div>
|
@@ -36,7 +36,7 @@ $setup_dirName = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'views'
|
|
36 |
</div>
|
37 |
</div> </div><hr>
|
38 |
<h3><?php echo mo2f_lt('Customize Plugin Name');?><a href='<?php echo $two_factor_premium_doc['Custom plugin name'];?>' target="_blank">
|
39 |
-
<span class="dashicons dashicons-text-page" style="font-size:19px;color:#
|
40 |
|
41 |
</a></h3>
|
42 |
<div>
|
@@ -54,7 +54,7 @@ $setup_dirName = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'views'
|
|
54 |
<div id="mo2f_Personalization_Plugin_Icon" style="display: none;">
|
55 |
|
56 |
<h3><?php echo mo2f_lt('Custom Email and SMS Templates');?>
|
57 |
-
<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/customize-email-template" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:19px;color:#
|
58 |
<div>
|
59 |
<div style="margin-left:2%">
|
60 |
<p><?php echo mo2f_lt('You can change the templates for Email and SMS as per your requirement.');?></p>
|
@@ -101,12 +101,12 @@ $setup_dirName = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'views'
|
|
101 |
<input type="hidden" name="option" value="mo_auth_custom_design_options_reset" />
|
102 |
|
103 |
<h3><?php echo mo2f_lt('Customize UI of Login Pop up\'s');?><a href='<?php echo $two_factor_premium_doc['custom login popup'];?>' target="_blank">
|
104 |
-
<span class="dashicons dashicons-text-page" style="font-size:19px;color:#
|
105 |
|
106 |
</a> </h3>
|
107 |
|
108 |
<div>
|
109 |
-
<input type="submit" name="submit" value="Reset Settings" class="button button-primary button-large" style="float:right; background-color: #
|
110 |
echo 'disabled' ; ?> />
|
111 |
|
112 |
</form>
|
5 |
$current_user = wp_get_current_user();
|
6 |
global $Mo2fdbQueries;
|
7 |
?>
|
8 |
+
<div class="mo2f_table_layout" id="mo2f_customization_tour">
|
9 |
<form name="f" id="custom_css_form_add" method="post" action="">
|
10 |
<input type="hidden" name="option" value="mo_auth_custom_options_save" />
|
11 |
|
22 |
<div id="mo2f_Personalization_Plugin_Icon" style="display: none;">
|
23 |
|
24 |
<h3><?php echo mo2f_lt('Customize Plugin Icon');?><a href='<?php echo $two_factor_premium_doc['Custom plugin logo'];?>' target="_blank">
|
25 |
+
<span class="dashicons dashicons-text-page" style="font-size:19px;color:#269eb3;float: right;"></span>
|
26 |
|
27 |
</a> </h3><br>
|
28 |
<div>
|
36 |
</div>
|
37 |
</div> </div><hr>
|
38 |
<h3><?php echo mo2f_lt('Customize Plugin Name');?><a href='<?php echo $two_factor_premium_doc['Custom plugin name'];?>' target="_blank">
|
39 |
+
<span class="dashicons dashicons-text-page" style="font-size:19px;color:#269eb3;float: right;"></span>
|
40 |
|
41 |
</a></h3>
|
42 |
<div>
|
54 |
<div id="mo2f_Personalization_Plugin_Icon" style="display: none;">
|
55 |
|
56 |
<h3><?php echo mo2f_lt('Custom Email and SMS Templates');?>
|
57 |
+
<a href="https://developers.miniorange.com/docs/security/wordpress/wp-security/customize-email-template" target="_blank"><span class="dashicons dashicons-text-page" style="font-size:19px;color:#269eb3;float: right;"></span> </a> </h3> <hr>
|
58 |
<div>
|
59 |
<div style="margin-left:2%">
|
60 |
<p><?php echo mo2f_lt('You can change the templates for Email and SMS as per your requirement.');?></p>
|
101 |
<input type="hidden" name="option" value="mo_auth_custom_design_options_reset" />
|
102 |
|
103 |
<h3><?php echo mo2f_lt('Customize UI of Login Pop up\'s');?><a href='<?php echo $two_factor_premium_doc['custom login popup'];?>' target="_blank">
|
104 |
+
<span class="dashicons dashicons-text-page" style="font-size:19px;color:#269eb3;float: right;"></span>
|
105 |
|
106 |
</a> </h3>
|
107 |
|
108 |
<div>
|
109 |
+
<input type="submit" name="submit" value="Reset Settings" class="button button-primary button-large" style="float:right; background-color: #20b2aa; color: white;box-shadow: none;"<?php
|
110 |
echo 'disabled' ; ?> />
|
111 |
|
112 |
</form>
|
views/twofa/two_fa_login_option.php
CHANGED
@@ -1,7 +1,11 @@
|
|
1 |
<?php
|
2 |
global $Mo2fdbQueries;
|
3 |
$roles = get_editable_roles();
|
4 |
-
|
|
|
|
|
|
|
|
|
5 |
$mo_2factor_user_registration_status = $Mo2fdbQueries->get_user_detail( 'mo_2factor_user_registration_status', $user->ID );
|
6 |
?>
|
7 |
<?php if ( !MoWpnsUtility::get_mo2f_db_option('mo2f_is_NC', 'get_option') && MoWpnsUtility::get_mo2f_db_option('mo2f_is_NC', 'get_option') ) { ?>
|
@@ -24,101 +28,47 @@ global $Mo2fdbQueries;
|
|
24 |
<input type="hidden" name="mo_auth_login_settings_save_nonce"
|
25 |
value="<?php echo wp_create_nonce( "mo-auth-login-settings-save-nonce" ) ?>"/>
|
26 |
<div class="row">
|
27 |
-
<h3
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
} ?> />
|
41 |
-
<?php echo mo2f_lt( 'Login with password + 2nd Factor ' ); ?>
|
42 |
-
<i>(<?php echo mo2f_lt( 'Default & Recommended' ); ?>) </i>
|
43 |
-
|
44 |
-
<br><br>
|
45 |
-
|
46 |
-
<div style="margin-left:6%;">
|
47 |
-
<input type="checkbox" id="mo2f_remember_device" name="mo2f_remember_device"
|
48 |
-
value="1" <?php checked( get_option( 'mo2f_remember_device' ) == 1 );
|
49 |
-
if ( $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS' and MO2F_IS_ONPREM!=1) {
|
50 |
-
} else {
|
51 |
-
echo 'disabled';
|
52 |
-
} ?> />Enable
|
53 |
-
'<b><?php echo mo2f_lt( 'Remember device' ); ?></b>' <?php echo mo2f_lt( 'option ' ); ?><br>
|
54 |
-
|
55 |
-
<div class="mo2f_advanced_options_note"><p style="padding:5px;">
|
56 |
-
<i><?php echo mo2f_lt( ' Checking this option will display an option ' ); ?>
|
57 |
-
'<b><?php echo mo2f_lt( 'Remember this device' ); ?></b>'<?php echo mo2f_lt( 'on 2nd factor screen. In the next login from the same device, user will bypass 2nd factor, i.e. user will be logged in through username + password only.' ); ?>
|
58 |
-
</i></p></div>
|
59 |
-
</div>
|
60 |
-
|
61 |
-
<br>
|
62 |
-
|
63 |
-
<input type="radio" name="mo2f_login_option" value="0"
|
64 |
-
<?php checked( ! MoWpnsUtility::get_mo2f_db_option('mo2f_login_option', 'get_option') );
|
65 |
-
if ( $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS' or MO2F_IS_ONPREM) {
|
66 |
-
} else {
|
67 |
-
echo 'disabled';
|
68 |
-
} ?> />
|
69 |
-
<?php echo mo2f_lt( 'Login with 2nd Factor only ' ); ?>
|
70 |
-
<i>(<?php echo mo2f_lt( 'No password required.' ); ?>)</i> <a
|
71 |
data-toggle="collapse"
|
72 |
-
id="
|
73 |
-
href="#
|
74 |
aria-expanded="false"><?php echo mo2f_lt( 'See preview' ); ?></a>
|
75 |
-
|
76 |
-
|
77 |
<center><br>
|
78 |
<img style="height:300px;"
|
79 |
src="https://login.xecurify.com/moas/images/help/login-help-1.png">
|
80 |
</center>
|
81 |
</div>
|
82 |
-
<br>
|
83 |
-
<br>
|
84 |
-
<div class="mo2f_advanced_options_note"><p style="padding:5px;">
|
85 |
-
<i><?php echo mo2f_lt( 'Checking this option will add login with your phone button below default login form. Click above link to see the preview.' ); ?></i>
|
86 |
-
</p></div>
|
87 |
-
<div id="loginphonediv" hidden><br>
|
88 |
-
<input type="checkbox" id="mo2f_login_with_username_and_2factor"
|
89 |
-
name="mo2f_login_with_username_and_2factor"
|
90 |
-
value="1" <?php checked( get_option( 'mo2f_enable_login_with_2nd_factor' ) == 1 );
|
91 |
-
if ( $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS' or MO2F_IS_ONPREM ){
|
92 |
-
} else {
|
93 |
-
echo 'disabled';
|
94 |
-
} ?> />
|
95 |
-
<?php echo mo2f_lt( ' I want to hide default login form.' ); ?> <a
|
96 |
-
class=""
|
97 |
-
data-toggle="collapse"
|
98 |
-
href="#hideDefaultLoginForm"
|
99 |
-
id = 'showhideDefaultLoginForm'
|
100 |
-
aria-expanded="false"><?php echo mo2f_lt( 'See preview' ); ?></a>
|
101 |
-
<br>
|
102 |
-
<div class="mo2f_collapse" id="showhideDefaultLoginForm" style="height:300px;">
|
103 |
-
<center><br>
|
104 |
-
<img style="height:300px;"
|
105 |
-
src="https://login.xecurify.com/moas/images/help/login-help-3.png">
|
106 |
-
</center>
|
107 |
-
</div>
|
108 |
-
|
109 |
-
<br>
|
110 |
-
<br>
|
111 |
-
<div class="mo2f_advanced_options_note"><p style="padding:5px;">
|
112 |
-
<i><?php echo mo2f_lt( 'Checking this option will hide default login form and just show login with your phone. Click above link to see the preview.' ); ?></i>
|
113 |
-
</p></div>
|
114 |
-
</div>
|
115 |
-
<br>
|
116 |
</div>
|
|
|
|
|
|
|
117 |
<div>
|
118 |
-
<h3 style="padding:10px;"><?php echo mo2f_lt( 'Backup Methods' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
<hr>
|
120 |
<br>
|
121 |
-
<div style="margin-left: 2%">
|
122 |
<input type="checkbox" id="mo2f_forgotphone" name="mo2f_forgotphone"
|
123 |
value="1" <?php checked( MoWpnsUtility::get_mo2f_db_option('mo2f_enable_forgotphone', 'get_option') == 1 );
|
124 |
if ( $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS' ) {
|
@@ -134,10 +84,16 @@ global $Mo2fdbQueries;
|
|
134 |
|
135 |
</div>
|
136 |
<div>
|
137 |
-
<h3 style="padding:10px;">XML-RPC <?php echo mo2f_lt( 'Settings' );
|
138 |
-
|
139 |
-
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
<input type="checkbox" id="mo2f_enable_xmlrpc" name="mo2f_enable_xmlrpc"
|
142 |
value="1" <?php checked( MoWpnsUtility::get_mo2f_db_option('mo2f_enable_xmlrpc', 'get_option') == 1 );
|
143 |
if ( $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS' ) {
|
@@ -162,7 +118,7 @@ global $Mo2fdbQueries;
|
|
162 |
} else {
|
163 |
?>
|
164 |
<input type="submit" name="submit" value="<?php echo mo2f_lt( 'Save Settings' ); ?>"
|
165 |
-
class="mo_wpns_button" disabled style="background-color: #
|
166 |
<?php
|
167 |
} ?>
|
168 |
</center>
|
@@ -192,29 +148,42 @@ global $Mo2fdbQueries;
|
|
192 |
});
|
193 |
|
194 |
|
195 |
-
jQuery('#
|
196 |
-
jQuery('#
|
197 |
-
|
198 |
-
});
|
199 |
-
jQuery('#Loginwith2ndFactoronlyStandard').hide();
|
200 |
-
jQuery('#showLoginwith2ndFactoronlyStandard').click(function(){
|
201 |
-
jQuery('#Loginwith2ndFactoronlyStandard').slideToggle(700);
|
202 |
});
|
203 |
-
|
204 |
-
jQuery('#
|
205 |
-
jQuery('#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
});
|
207 |
-
jQuery('#
|
208 |
-
|
209 |
-
jQuery('#Loginwith2ndFactoronlyPremium').slideToggle(700);
|
210 |
});
|
211 |
-
jQuery('#
|
212 |
-
jQuery('#
|
213 |
-
jQuery('#
|
214 |
-
});
|
215 |
-
|
216 |
-
jQuery('#
|
217 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
});
|
219 |
|
220 |
|
@@ -344,10 +313,10 @@ function get_standard_premium_options( $user ) {
|
|
344 |
<div>
|
345 |
<ul style="margin-left:4%" class="mo2f_ol">
|
346 |
<li><?php echo mo2f_lt( 'Login with Wordpress username/password and 2nd Factor' ); ?> <a
|
347 |
-
class="" data-toggle="collapse" id="
|
348 |
aria-expanded="false">[ <?php echo mo2f_lt( 'See Preview' ); ?>
|
349 |
]</a>
|
350 |
-
<div class="mo2f_collapse" id="
|
351 |
<center><br>
|
352 |
<img style="height:300px;"
|
353 |
src="https://login.xecurify.com/moas/images/help/login-help-1.png">
|
@@ -356,11 +325,11 @@ function get_standard_premium_options( $user ) {
|
|
356 |
|
357 |
</li><br>
|
358 |
<li><?php echo mo2f_lt( 'Login with Wordpress username and 2nd Factor only' ); ?> <a
|
359 |
-
class="" data-toggle="collapse" id="
|
360 |
aria-expanded="false">[ <?php echo mo2f_lt( 'See Preview' ); ?>
|
361 |
]</a>
|
362 |
<br>
|
363 |
-
<div class="mo2f_collapse" id="
|
364 |
<center><br>
|
365 |
<img style="height:300px;"
|
366 |
src="https://login.xecurify.com/moas/images/help/login-help-3.png">
|
@@ -417,10 +386,10 @@ function get_standard_premium_options( $user ) {
|
|
417 |
<div>
|
418 |
<ul style="margin-left:4%" class="mo2f_ol">
|
419 |
<li><?php echo mo2f_lt( 'Login with Wordpress username/password and 2nd Factor' ); ?> <a
|
420 |
-
data-toggle="collapse" id="
|
421 |
aria-expanded="false">[ <?php echo mo2f_lt( 'See Preview' ); ?>
|
422 |
]</a>
|
423 |
-
<div class="mo2f_collapse" id="
|
424 |
<center><br>
|
425 |
<img style="height:300px;"
|
426 |
src="https://login.xecurify.com/moas/images/help/login-help-1.png">
|
@@ -429,11 +398,11 @@ function get_standard_premium_options( $user ) {
|
|
429 |
</div>
|
430 |
<br></li>
|
431 |
<li><?php echo mo2f_lt( 'Login with Wordpress username and 2nd Factor only' ); ?> <a
|
432 |
-
data-toggle="collapse" id="
|
433 |
aria-expanded="false">[ <?php echo mo2f_lt( 'See Preview' ); ?>
|
434 |
]</a>
|
435 |
<br>
|
436 |
-
<div class="mo2f_collapse" id="
|
437 |
<center><br>
|
438 |
<img style="height:300px;"
|
439 |
src="https://login.xecurify.com/moas/images/help/login-help-3.png">
|
1 |
<?php
|
2 |
global $Mo2fdbQueries;
|
3 |
$roles = get_editable_roles();
|
4 |
+
$login_option_tooltip_array = array(
|
5 |
+
'By default 2nd Factor is enabled after password authentication. If you do not want to remember passwords anymore and just login with 2nd Factor, please select 2nd option.',
|
6 |
+
'Users have an option to Login with Username and password or Login with just username + One Time Passcode',
|
7 |
+
'This option will provide you an alternate way of logging in to your site in case you are unable to login with your primary authentication method.',
|
8 |
+
'Users will be able to login through external applications which support XML-RPC without authenticating from miniOrange');
|
9 |
$mo_2factor_user_registration_status = $Mo2fdbQueries->get_user_detail( 'mo_2factor_user_registration_status', $user->ID );
|
10 |
?>
|
11 |
<?php if ( !MoWpnsUtility::get_mo2f_db_option('mo2f_is_NC', 'get_option') && MoWpnsUtility::get_mo2f_db_option('mo2f_is_NC', 'get_option') ) { ?>
|
28 |
<input type="hidden" name="mo_auth_login_settings_save_nonce"
|
29 |
value="<?php echo wp_create_nonce( "mo-auth-login-settings-save-nonce" ) ?>"/>
|
30 |
<div class="row">
|
31 |
+
<h3>Select Login Screen Options
|
32 |
+
<a href='<?php echo $two_factor_premium_doc['Select login screen option'];?>' target="_blank">
|
33 |
+
<span class="dashicons dashicons-text-page" title="More Information" style="font-size:19px;color:#413c69;float: right;"></span>
|
34 |
+
</a></h3>
|
35 |
+
|
36 |
+
<input type="radio" class="option_for_auth" name="mo2f_all_users_method" value="1" checked="checked" disabled> Login with password + 2nd Factor <span style="color: red">(Recommended)</span>
|
37 |
+
<?php echo mo2f_tooltip_array($login_option_tooltip_array[0]); ?>
|
38 |
+
|
39 |
+
</br>
|
40 |
+
</br>
|
41 |
+
<input type="radio" class="option_for_auth" name="mo2f_all_users_method" value="0" disabled>
|
42 |
+
Login with 2nd Factor only <span style="color: red">(No password required)
|
43 |
+
<a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
data-toggle="collapse"
|
45 |
+
id="showpreview1"
|
46 |
+
href="#preview8"
|
47 |
aria-expanded="false"><?php echo mo2f_lt( 'See preview' ); ?></a>
|
48 |
+
<?php echo mo2f_tooltip_array($login_option_tooltip_array[1]); ?>
|
49 |
+
<div class="mo2f_collapse" id="preview8" style="height:300px;">
|
50 |
<center><br>
|
51 |
<img style="height:300px;"
|
52 |
src="https://login.xecurify.com/moas/images/help/login-help-1.png">
|
53 |
</center>
|
54 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
</div>
|
56 |
+
<br>
|
57 |
+
<hr>
|
58 |
+
<br>
|
59 |
<div>
|
60 |
+
<h3 style="padding:10px;"><?php echo mo2f_lt( 'Backup Methods ' ); ?><span><a
|
61 |
+
class="mo2fa_see_preview"
|
62 |
+
data-toggle="collapse"
|
63 |
+
id="showpreview2"
|
64 |
+
href="#preview9"
|
65 |
+
aria-expanded="false"><?php echo mo2f_lt( 'See preview' ); ?></a>
|
66 |
+
<?php echo mo2f_tooltip_array($login_option_tooltip_array[2]); ?></span></h3>
|
67 |
+
</div>
|
68 |
+
<br>
|
69 |
<hr>
|
70 |
<br>
|
71 |
+
<div style="margin-left: 2%" id='preview9' hidden>
|
72 |
<input type="checkbox" id="mo2f_forgotphone" name="mo2f_forgotphone"
|
73 |
value="1" <?php checked( MoWpnsUtility::get_mo2f_db_option('mo2f_enable_forgotphone', 'get_option') == 1 );
|
74 |
if ( $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS' ) {
|
84 |
|
85 |
</div>
|
86 |
<div>
|
87 |
+
<h3 style="padding:10px;">XML-RPC <?php echo mo2f_lt( 'Settings' ); ?>
|
88 |
+
<span><a
|
89 |
+
class="mo2fa_see_preview"
|
90 |
+
data-toggle="collapse"
|
91 |
+
id="showpreview3"
|
92 |
+
href="#preview10"
|
93 |
+
aria-expanded="false"><?php echo mo2f_lt( 'See preview' ); ?></a>
|
94 |
+
<?php echo mo2f_tooltip_array($login_option_tooltip_array[3]); ?></span></h3>
|
95 |
+
</div>
|
96 |
+
<div style="margin-left: 2%" id="preview10" hidden>
|
97 |
<input type="checkbox" id="mo2f_enable_xmlrpc" name="mo2f_enable_xmlrpc"
|
98 |
value="1" <?php checked( MoWpnsUtility::get_mo2f_db_option('mo2f_enable_xmlrpc', 'get_option') == 1 );
|
99 |
if ( $mo_2factor_user_registration_status == 'MO_2_FACTOR_PLUGIN_SETTINGS' ) {
|
118 |
} else {
|
119 |
?>
|
120 |
<input type="submit" name="submit" value="<?php echo mo2f_lt( 'Save Settings' ); ?>"
|
121 |
+
class="mo_wpns_button" disabled style="background-color: #20b2aa;padding: 11px 28px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 4px 2px;">
|
122 |
<?php
|
123 |
} ?>
|
124 |
</center>
|
148 |
});
|
149 |
|
150 |
|
151 |
+
jQuery('#preview9').hide();
|
152 |
+
jQuery('#showpreview1').click(function(){
|
153 |
+
jQuery('#preview8').slideToggle(700);
|
|
|
|
|
|
|
|
|
154 |
});
|
155 |
+
|
156 |
+
jQuery('#showpreview2').click(function(){
|
157 |
+
jQuery('#preview9').slideToggle(700);
|
158 |
+
});
|
159 |
+
jQuery('#showpreview3').click(function(){
|
160 |
+
jQuery('#preview10').slideToggle(700);
|
161 |
+
});
|
162 |
+
jQuery('#showpreview4').click(function(){
|
163 |
+
jQuery('#preview11').slideToggle(700);
|
164 |
+
});
|
165 |
+
jQuery('#showpreview5').click(function(){
|
166 |
+
jQuery('#preview12').slideToggle(700);
|
167 |
+
});
|
168 |
+
jQuery('#showpreview6').click(function(){
|
169 |
+
jQuery('#preview13').slideToggle(700);
|
170 |
});
|
171 |
+
jQuery('#showpreview7').click(function(){
|
172 |
+
jQuery('#preview14').slideToggle(700);
|
|
|
173 |
});
|
174 |
+
jQuery('#preview7').hide();
|
175 |
+
jQuery('#showpreview7').click(function(){
|
176 |
+
jQuery('#preview7').slideToggle(700);
|
177 |
+
});
|
178 |
+
|
179 |
+
jQuery('#preview6').hide();
|
180 |
+
jQuery('#showpreview6').click(function(){
|
181 |
+
jQuery('#preview6').slideToggle(700);
|
182 |
+
});
|
183 |
+
|
184 |
+
jQuery('#preview8').hide();
|
185 |
+
jQuery('#showpreview8').click(function(){
|
186 |
+
jQuery('#preview8').slideToggle(700);
|
187 |
});
|
188 |
|
189 |
|
313 |
<div>
|
314 |
<ul style="margin-left:4%" class="mo2f_ol">
|
315 |
<li><?php echo mo2f_lt( 'Login with Wordpress username/password and 2nd Factor' ); ?> <a
|
316 |
+
class="" data-toggle="collapse" id="showpreview4" href="#preview11"
|
317 |
aria-expanded="false">[ <?php echo mo2f_lt( 'See Preview' ); ?>
|
318 |
]</a>
|
319 |
+
<div class="mo2f_collapse" id="preview11" style="height:300px;">
|
320 |
<center><br>
|
321 |
<img style="height:300px;"
|
322 |
src="https://login.xecurify.com/moas/images/help/login-help-1.png">
|
325 |
|
326 |
</li><br>
|
327 |
<li><?php echo mo2f_lt( 'Login with Wordpress username and 2nd Factor only' ); ?> <a
|
328 |
+
class="" data-toggle="collapse" id="showpreview5" href="#preview12"
|
329 |
aria-expanded="false">[ <?php echo mo2f_lt( 'See Preview' ); ?>
|
330 |
]</a>
|
331 |
<br>
|
332 |
+
<div class="mo2f_collapse" id="preview12" style="height:300px;">
|
333 |
<center><br>
|
334 |
<img style="height:300px;"
|
335 |
src="https://login.xecurify.com/moas/images/help/login-help-3.png">
|
386 |
<div>
|
387 |
<ul style="margin-left:4%" class="mo2f_ol">
|
388 |
<li><?php echo mo2f_lt( 'Login with Wordpress username/password and 2nd Factor' ); ?> <a
|
389 |
+
data-toggle="collapse" id="showpreview6" href="#preview13"
|
390 |
aria-expanded="false">[ <?php echo mo2f_lt( 'See Preview' ); ?>
|
391 |
]</a>
|
392 |
+
<div class="mo2f_collapse" id="preview13" style="height:300px;">
|
393 |
<center><br>
|
394 |
<img style="height:300px;"
|
395 |
src="https://login.xecurify.com/moas/images/help/login-help-1.png">
|
398 |
</div>
|
399 |
<br></li>
|
400 |
<li><?php echo mo2f_lt( 'Login with Wordpress username and 2nd Factor only' ); ?> <a
|
401 |
+
data-toggle="collapse" id="showpreview7" href="#preview14"
|
402 |
aria-expanded="false">[ <?php echo mo2f_lt( 'See Preview' ); ?>
|
403 |
]</a>
|
404 |
<br>
|
405 |
+
<div class="mo2f_collapse" id="preview14" style="height:300px;">
|
406 |
<center><br>
|
407 |
<img style="height:300px;"
|
408 |
src="https://login.xecurify.com/moas/images/help/login-help-3.png">
|
views/twofa/two_fa_premium_feature.php
CHANGED
@@ -10,7 +10,7 @@ $premium_feature_tooltip_array = array ('This option will provide users an alter
|
|
10 |
'Checking this option will hide default login form');
|
11 |
?>
|
12 |
|
13 |
-
<div id = "premium_feature_phone_lost">
|
14 |
<h3>What happens if my phone is lost, discharged or not with me
|
15 |
<?php echo mo2f_tooltip_array($premium_feature_tooltip_array[0]); ?>
|
16 |
<a href='<?php echo $two_factor_premium_doc['What happens if my phone is lost, discharged or not with me'];?>' target="_blank">
|
@@ -236,7 +236,7 @@ $premium_feature_tooltip_array = array ('This option will provide users an alter
|
|
236 |
|
237 |
<?php echo mo2f_tooltip_array($premium_feature_tooltip_array[6]); ?>
|
238 |
<div id="mo2f_hide_login" style="display: none;">
|
239 |
-
|
240 |
echo '<div style="text-align:center;"><img style="margin-top:5px;" src="'.$hide_login_form_url.'"></div><br>';?>
|
241 |
</div>
|
242 |
|
10 |
'Checking this option will hide default login form');
|
11 |
?>
|
12 |
|
13 |
+
<div class="mo2f_table_layout" id = "premium_feature_phone_lost">
|
14 |
<h3>What happens if my phone is lost, discharged or not with me
|
15 |
<?php echo mo2f_tooltip_array($premium_feature_tooltip_array[0]); ?>
|
16 |
<a href='<?php echo $two_factor_premium_doc['What happens if my phone is lost, discharged or not with me'];?>' target="_blank">
|
236 |
|
237 |
<?php echo mo2f_tooltip_array($premium_feature_tooltip_array[6]); ?>
|
238 |
<div id="mo2f_hide_login" style="display: none;">
|
239 |
+
<?php
|
240 |
echo '<div style="text-align:center;"><img style="margin-top:5px;" src="'.$hide_login_form_url.'"></div><br>';?>
|
241 |
</div>
|
242 |
|
views/twofa/two_fa_rba.php
CHANGED
@@ -3,7 +3,7 @@ $setup_dirName = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'views'
|
|
3 |
include $setup_dirName;
|
4 |
|
5 |
?>
|
6 |
-
<div class="
|
7 |
<form id="settings_from_addon" method="post" action="">
|
8 |
<input type="hidden" name="option" value="mo_auth_addon_settings_save"/>
|
9 |
<h2><?php echo mo2f_lt( '1. Remember Device' ); ?>
|
@@ -40,7 +40,7 @@ include $setup_dirName;
|
|
40 |
|
41 |
|
42 |
</p>
|
43 |
-
<div style="background-color: aliceblue; border:none;">
|
44 |
<h3 style="display: inline;float: left">Device Configuration</h3><h3 style="color: red;"><b >
|
45 |
</b></h3><hr>
|
46 |
<label class="mo_wpns_switch">
|
@@ -77,7 +77,7 @@ include $setup_dirName;
|
|
77 |
document.getElementById("set_device_limit_button").disabled = true;
|
78 |
</script>
|
79 |
</div>
|
80 |
-
<div
|
81 |
<h3><?php echo mo2f_lt( 'IP Restriction: Limit users to login from specific IPs' ); ?> <a class="mo2fa-addons-preview-alignment" onclick="mo2f_rba_functionality1()"> See Preview</a> </h3>
|
82 |
<hr>
|
83 |
<p><?php echo mo2f_lt( 'The Admin can enable IP restrictions for the users. It will provide additional security to the accounts and perform different action to the accounts only from the listed IP Ranges. If user tries to access with a restricted IP, Admin can set three action: Allow, challenge or deny. Depending upon the action it will allow the user to login, challenge(prompt) for authentication or deny the access.' ); ?>
|
@@ -87,7 +87,7 @@ include $setup_dirName;
|
|
87 |
<br><br>
|
88 |
|
89 |
</p>
|
90 |
-
<div style="background-color: aliceblue; border:none;">
|
91 |
<h2 style="display: inline;float: left">IP Blocking Configuration </h2><h3 style="color: red;"></h3><hr>
|
92 |
<label class="mo_wpns_switch">
|
93 |
<input type="checkbox" id="pluginWAF" name="pluginWAF" <?php echo 'disabled'; ?>>
|
3 |
include $setup_dirName;
|
4 |
|
5 |
?>
|
6 |
+
<div class="mo2f_table_layout">
|
7 |
<form id="settings_from_addon" method="post" action="">
|
8 |
<input type="hidden" name="option" value="mo_auth_addon_settings_save"/>
|
9 |
<h2><?php echo mo2f_lt( '1. Remember Device' ); ?>
|
40 |
|
41 |
|
42 |
</p>
|
43 |
+
<div class="mo2f_table_layout" style="background-color: aliceblue; border:none;">
|
44 |
<h3 style="display: inline;float: left">Device Configuration</h3><h3 style="color: red;"><b >
|
45 |
</b></h3><hr>
|
46 |
<label class="mo_wpns_switch">
|
77 |
document.getElementById("set_device_limit_button").disabled = true;
|
78 |
</script>
|
79 |
</div>
|
80 |
+
<div>
|
81 |
<h3><?php echo mo2f_lt( 'IP Restriction: Limit users to login from specific IPs' ); ?> <a class="mo2fa-addons-preview-alignment" onclick="mo2f_rba_functionality1()"> See Preview</a> </h3>
|
82 |
<hr>
|
83 |
<p><?php echo mo2f_lt( 'The Admin can enable IP restrictions for the users. It will provide additional security to the accounts and perform different action to the accounts only from the listed IP Ranges. If user tries to access with a restricted IP, Admin can set three action: Allow, challenge or deny. Depending upon the action it will allow the user to login, challenge(prompt) for authentication or deny the access.' ); ?>
|
87 |
<br><br>
|
88 |
|
89 |
</p>
|
90 |
+
<div class="mo2f_table_layout" style="background-color: aliceblue; border:none;">
|
91 |
<h2 style="display: inline;float: left">IP Blocking Configuration </h2><h3 style="color: red;"></h3><hr>
|
92 |
<label class="mo_wpns_switch">
|
93 |
<input type="checkbox" id="pluginWAF" name="pluginWAF" <?php echo 'disabled'; ?>>
|
views/twofa/two_fa_session_control.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
-
<div>
|
2 |
-
<div
|
3 |
<h2>4. Session Control
|
4 |
<span style="text-align: right;font-size: large;"><?php echo '<a href="'.$addons_url .'" style="color: red">'; ?>[ PREMIUM ]</a></span>
|
5 |
</h2><hr>
|
@@ -33,7 +33,8 @@
|
|
33 |
<input type="radio" name="mo2f_allow_access" id="mo2f_block_access" value="block">Block Access
|
34 |
</div>
|
35 |
</div>
|
36 |
-
|
|
|
37 |
<table style="width:100%">
|
38 |
<tr>
|
39 |
<th align="left">
|
1 |
+
<div class="mo2f_table_layout">
|
2 |
+
<div>
|
3 |
<h2>4. Session Control
|
4 |
<span style="text-align: right;font-size: large;"><?php echo '<a href="'.$addons_url .'" style="color: red">'; ?>[ PREMIUM ]</a></span>
|
5 |
</h2><hr>
|
33 |
<input type="radio" name="mo2f_allow_access" id="mo2f_block_access" value="block">Block Access
|
34 |
</div>
|
35 |
</div>
|
36 |
+
<hr>
|
37 |
+
<div>
|
38 |
<table style="width:100%">
|
39 |
<tr>
|
40 |
<th align="left">
|
views/twofa/two_fa_setup_notification.php
CHANGED
@@ -27,7 +27,7 @@ function mo2f_display_test_2fa_notification( $user ) {
|
|
27 |
<div class="modal-content" style="width:660px !important;">
|
28 |
<center>
|
29 |
<div class="modal-header">
|
30 |
-
<h2 class="mo2f_modal-title" style="color: #
|
31 |
<span type="button" id="test-methods" class="modal-span-close" data-dismiss="modal">×</span>
|
32 |
</div>
|
33 |
<div class="mo2f_modal-body">
|
27 |
<div class="modal-content" style="width:660px !important;">
|
28 |
<center>
|
29 |
<div class="modal-header">
|
30 |
+
<h2 class="mo2f_modal-title" style="color: #20b2aa;">2FA Setup Successful.</h2>
|
31 |
<span type="button" id="test-methods" class="modal-span-close" data-dismiss="modal">×</span>
|
32 |
</div>
|
33 |
<div class="mo2f_modal-body">
|
views/twofa/two_fa_shortcode.php
CHANGED
@@ -4,7 +4,7 @@ $setup_dirName = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'views'
|
|
4 |
$current_user = wp_get_current_user();
|
5 |
?>
|
6 |
|
7 |
-
<div class="
|
8 |
|
9 |
|
10 |
<div id="mo2f_hide_shortcode_content" >
|
@@ -45,7 +45,7 @@ $setup_dirName = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'views'
|
|
45 |
?> value="<?php echo get_option('mo2f_rba_loginform_id') ?>"/>
|
46 |
<br><br>
|
47 |
<input type="hidden" name="option" value="custom_login_form_save"/>
|
48 |
-
<input type="submit" name="submit" value="Save Settings" style="background-color: #
|
49 |
|
50 |
echo 'disabled';
|
51 |
?> />
|
4 |
$current_user = wp_get_current_user();
|
5 |
?>
|
6 |
|
7 |
+
<div class="mo2f_table_layout">
|
8 |
|
9 |
|
10 |
<div id="mo2f_hide_shortcode_content" >
|
45 |
?> value="<?php echo get_option('mo2f_rba_loginform_id') ?>"/>
|
46 |
<br><br>
|
47 |
<input type="hidden" name="option" value="custom_login_form_save"/>
|
48 |
+
<input type="submit" name="submit" value="Save Settings" style="background-color: #20b2aa; color: white;" class="button button-primary button-large" <?php
|
49 |
|
50 |
echo 'disabled';
|
51 |
?> />
|
views/twofa/two_fa_unlimittedUser.php
CHANGED
@@ -59,9 +59,8 @@ $imagepath=plugins_url( '/includes/images/', dirname(dirname(__FILE__ )));
|
|
59 |
<?php
|
60 |
if(current_user_can('administrator')){
|
61 |
?>
|
62 |
-
<div id="disable_two_factor_tour">
|
63 |
-
|
64 |
|
|
|
65 |
<h2>Enable 2FA for Users<?php echo mo2f_setting_tooltip_array($settings_tab_tooltip_array[0]); ?>
|
66 |
<a href='<?php echo $two_factor_premium_doc['Enable/disable 2-factor Authentication'];?>' target="_blank">
|
67 |
<span class="dashicons dashicons-text-page" title="More Information" style="font-size:19px;color:#4a47a3;float: right;"></span>
|
@@ -100,7 +99,7 @@ if(current_user_can('administrator')){
|
|
100 |
<span class="mo_wpns_slider"></span>
|
101 |
</label>
|
102 |
</p>
|
103 |
-
|
104 |
</form>
|
105 |
</div>
|
106 |
</br>
|
@@ -121,9 +120,9 @@ if(current_user_can('administrator')){
|
|
121 |
<input type="hidden" id="mo2f_delete_logs" name="option"
|
122 |
value="log_file_delete"/>
|
123 |
</form>
|
124 |
-
<?php } ?>
|
125 |
</br><hr>
|
126 |
-
</br>
|
127 |
<h2>2FA Prompt on Wordpress Login Page
|
128 |
<a class=" btn-link" data-toggle="collapse" id="showpreviewwploginpage" href="#previewwploginpage" aria-expanded="false"><?php echo __('See preview','miniorange-2-factor-authentication');?></a>
|
129 |
<?php echo mo2f_setting_tooltip_array($settings_tab_tooltip_array[1]); ?>
|
@@ -153,7 +152,7 @@ if(current_user_can('administrator')){
|
|
153 |
<h2>On the Fly 2FA Configuration
|
154 |
<?php echo mo2f_setting_tooltip_array($settings_tab_tooltip_array[2]); ?>
|
155 |
</h2>
|
156 |
-
|
157 |
<div>
|
158 |
<form name="f" method="post" action="" >
|
159 |
<input type="hidden" id="mo2f_nonce_enable_inline" name="mo2f_nonce_enable_inline"
|
@@ -168,30 +167,15 @@ if(current_user_can('administrator')){
|
|
168 |
</form>
|
169 |
</div>
|
170 |
</br><hr>
|
171 |
-
<h2>Enable the login with all configured methods
|
172 |
-
<?php echo mo2f_setting_tooltip_array($settings_tab_tooltip_array[2]); ?>
|
173 |
-
</h2>
|
174 |
-
<div>
|
175 |
-
<form name="f" method="post" action="" >
|
176 |
-
<label class="mo_wpns_switch" style="float: right;">
|
177 |
-
<input type="checkbox" onChange="mo_toggle_configured_methods()" style="padding-top: 50px;float: right;" id="mo2f_nonce_enable_configured_methods"
|
178 |
-
name="mo2f_nonce_enable_configured_methods"
|
179 |
-
value="<?php MoWpnsUtility::get_mo2f_db_option('mo2f_nonce_enable_configured_methods', 'site_option') ?>" <?php checked( MoWpnsUtility::get_mo2f_db_option('mo2f_nonce_enable_configured_methods', 'site_option') == true);?>/>
|
180 |
-
<span class="mo_wpns_slider"></span>
|
181 |
-
</label>
|
182 |
-
<p>It will help the user to login with any of the configured methods</p>
|
183 |
-
</form>
|
184 |
-
</div>
|
185 |
-
</br><hr>
|
186 |
<script type="text/javascript">
|
187 |
|
188 |
jQuery('#mo2f_debug_delete_form').click(function(){
|
189 |
-
|
190 |
var data = {
|
191 |
'action' : 'mo_two_factor_ajax',
|
192 |
'mo_2f_two_factor_ajax' : 'mo2f_delete_log_file',
|
193 |
'mo2f_nonce_delete_log' : jQuery('#mo2f_delete_log').val(),
|
194 |
-
|
195 |
};
|
196 |
jQuery.post(ajaxurl, data, function(response) {
|
197 |
var response = response.replace(/\s+/g,' ').trim();
|
@@ -201,9 +185,9 @@ if(current_user_can('administrator')){
|
|
201 |
error_msg("Log file is not available.");
|
202 |
}
|
203 |
});
|
|
|
204 |
|
205 |
-
|
206 |
-
|
207 |
});
|
208 |
|
209 |
function mo_toggle_twofa(){
|
@@ -234,10 +218,10 @@ if(current_user_can('administrator')){
|
|
234 |
var response = response.replace(/\s+/g,' ').trim();
|
235 |
if (response == "true"){
|
236 |
success_msg("Plugin log is now enabled.");
|
237 |
-
|
238 |
}else{
|
239 |
error_msg("Plugin log is now disabled.");
|
240 |
-
|
241 |
}
|
242 |
});
|
243 |
|
@@ -287,34 +271,12 @@ if(current_user_can('administrator')){
|
|
287 |
}
|
288 |
});
|
289 |
|
290 |
-
}
|
291 |
-
function mo_toggle_configured_methods(){
|
292 |
-
var nonce = '<?php echo wp_create_nonce("WAFsettingNonce_configurd_methods");?>';
|
293 |
-
var data = {
|
294 |
-
'action' : 'mo_two_factor_ajax',
|
295 |
-
'mo_2f_two_factor_ajax' : 'mo2f_enable_disable_configurd_methods',
|
296 |
-
'nonce' : nonce,
|
297 |
-
'mo2f_nonce_enable_configured_methods' : jQuery('#mo2f_nonce_enable_configured_methods').is(":checked")
|
298 |
-
};
|
299 |
-
jQuery.post(ajaxurl, data, function(response) {
|
300 |
-
var response = response.replace(/\s+/g,' ').trim();
|
301 |
-
if (response == "true"){
|
302 |
-
success_msg('Login with the configured method is enabled');
|
303 |
-
}
|
304 |
-
else if (response == "error"){
|
305 |
-
error_msg('Unknown error occured. Please try again!');
|
306 |
-
}
|
307 |
-
else{
|
308 |
-
error_msg('Login with the configured method is disabled');
|
309 |
-
}
|
310 |
-
});
|
311 |
-
|
312 |
}
|
313 |
jQuery('#previewwploginpage').hide();
|
314 |
jQuery('#showpreviewwploginpage').on('click', function() {
|
315 |
-
if ( jQuery("#previewwploginpage").is(":visible") ) {
|
316 |
jQuery('#previewwploginpage').hide();
|
317 |
-
} else if ( jQuery("#previewwploginpage").is(":hidden") ) {
|
318 |
jQuery('#previewwploginpage').show();
|
319 |
}
|
320 |
});
|
@@ -326,7 +288,7 @@ if(current_user_can('administrator')){
|
|
326 |
if(current_user_can('administrator'))
|
327 |
{
|
328 |
?>
|
329 |
-
|
330 |
<input type="hidden" name="option" value="" />
|
331 |
<span>
|
332 |
<h2>Select User Roles to enable 2-Factor for <b style="font-size: 70%;color: red;">(Upto 3 users in Free version)</b>
|
@@ -334,9 +296,9 @@ if(current_user_can('administrator'))
|
|
334 |
<a href= '<?php echo $two_factor_premium_doc['Enable 2FA Role Based'];?>' target="_blank">
|
335 |
<span class="dashicons dashicons-text-page" title="More Information" style="font-size:19px;color:#4a47a3;float: right;"></span>
|
336 |
</a></h2>
|
337 |
-
</br>
|
338 |
<span>
|
339 |
-
|
340 |
<?php
|
341 |
echo miniorange_2_factor_user_roles($current_user);
|
342 |
?>
|
@@ -346,8 +308,8 @@ if(current_user_can('administrator'))
|
|
346 |
<br>
|
347 |
</span>
|
348 |
<br><br>
|
349 |
-
|
350 |
-
|
351 |
|
352 |
<script>
|
353 |
jQuery("#save_role_2FA").click(function(){
|
@@ -404,7 +366,7 @@ if(current_user_can('administrator'))
|
|
404 |
jQuery('#mo2f_configured_2FA_method_free_plan').val('SecurityQuestions');
|
405 |
jQuery('#mo2f_selected_action_free_plan').val('configure2factor');
|
406 |
jQuery('#mo2f_save_free_plan_auth_methods_form').submit();
|
407 |
-
|
408 |
}
|
409 |
else
|
410 |
{
|
@@ -430,7 +392,7 @@ if(current_user_can('administrator'))
|
|
430 |
jQuery('#mo2f_configured_2FA_method_free_plan').val('GoogleAuthenticator');
|
431 |
jQuery('#mo2f_selected_action_free_plan').val('configure2factor');
|
432 |
jQuery('#mo2f_save_free_plan_auth_methods_form').submit();
|
433 |
-
|
434 |
}
|
435 |
else
|
436 |
{
|
59 |
<?php
|
60 |
if(current_user_can('administrator')){
|
61 |
?>
|
|
|
|
|
62 |
|
63 |
+
<div class="mo2f_table_layout" id="disable_two_factor_tour">
|
64 |
<h2>Enable 2FA for Users<?php echo mo2f_setting_tooltip_array($settings_tab_tooltip_array[0]); ?>
|
65 |
<a href='<?php echo $two_factor_premium_doc['Enable/disable 2-factor Authentication'];?>' target="_blank">
|
66 |
<span class="dashicons dashicons-text-page" title="More Information" style="font-size:19px;color:#4a47a3;float: right;"></span>
|
99 |
<span class="mo_wpns_slider"></span>
|
100 |
</label>
|
101 |
</p>
|
102 |
+
|
103 |
</form>
|
104 |
</div>
|
105 |
</br>
|
120 |
<input type="hidden" id="mo2f_delete_logs" name="option"
|
121 |
value="log_file_delete"/>
|
122 |
</form>
|
123 |
+
<?php } ?>
|
124 |
</br><hr>
|
125 |
+
</br>
|
126 |
<h2>2FA Prompt on Wordpress Login Page
|
127 |
<a class=" btn-link" data-toggle="collapse" id="showpreviewwploginpage" href="#previewwploginpage" aria-expanded="false"><?php echo __('See preview','miniorange-2-factor-authentication');?></a>
|
128 |
<?php echo mo2f_setting_tooltip_array($settings_tab_tooltip_array[1]); ?>
|
152 |
<h2>On the Fly 2FA Configuration
|
153 |
<?php echo mo2f_setting_tooltip_array($settings_tab_tooltip_array[2]); ?>
|
154 |
</h2>
|
155 |
+
|
156 |
<div>
|
157 |
<form name="f" method="post" action="" >
|
158 |
<input type="hidden" id="mo2f_nonce_enable_inline" name="mo2f_nonce_enable_inline"
|
167 |
</form>
|
168 |
</div>
|
169 |
</br><hr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
<script type="text/javascript">
|
171 |
|
172 |
jQuery('#mo2f_debug_delete_form').click(function(){
|
173 |
+
|
174 |
var data = {
|
175 |
'action' : 'mo_two_factor_ajax',
|
176 |
'mo_2f_two_factor_ajax' : 'mo2f_delete_log_file',
|
177 |
'mo2f_nonce_delete_log' : jQuery('#mo2f_delete_log').val(),
|
178 |
+
|
179 |
};
|
180 |
jQuery.post(ajaxurl, data, function(response) {
|
181 |
var response = response.replace(/\s+/g,' ').trim();
|
185 |
error_msg("Log file is not available.");
|
186 |
}
|
187 |
});
|
188 |
+
|
189 |
|
190 |
+
|
|
|
191 |
});
|
192 |
|
193 |
function mo_toggle_twofa(){
|
218 |
var response = response.replace(/\s+/g,' ').trim();
|
219 |
if (response == "true"){
|
220 |
success_msg("Plugin log is now enabled.");
|
221 |
+
|
222 |
}else{
|
223 |
error_msg("Plugin log is now disabled.");
|
224 |
+
|
225 |
}
|
226 |
});
|
227 |
|
271 |
}
|
272 |
});
|
273 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
274 |
}
|
275 |
jQuery('#previewwploginpage').hide();
|
276 |
jQuery('#showpreviewwploginpage').on('click', function() {
|
277 |
+
if ( jQuery("#previewwploginpage").is(":visible") ) {
|
278 |
jQuery('#previewwploginpage').hide();
|
279 |
+
} else if ( jQuery("#previewwploginpage").is(":hidden") ) {
|
280 |
jQuery('#previewwploginpage').show();
|
281 |
}
|
282 |
});
|
288 |
if(current_user_can('administrator'))
|
289 |
{
|
290 |
?>
|
291 |
+
|
292 |
<input type="hidden" name="option" value="" />
|
293 |
<span>
|
294 |
<h2>Select User Roles to enable 2-Factor for <b style="font-size: 70%;color: red;">(Upto 3 users in Free version)</b>
|
296 |
<a href= '<?php echo $two_factor_premium_doc['Enable 2FA Role Based'];?>' target="_blank">
|
297 |
<span class="dashicons dashicons-text-page" title="More Information" style="font-size:19px;color:#4a47a3;float: right;"></span>
|
298 |
</a></h2>
|
299 |
+
</br>
|
300 |
<span>
|
301 |
+
|
302 |
<?php
|
303 |
echo miniorange_2_factor_user_roles($current_user);
|
304 |
?>
|
308 |
<br>
|
309 |
</span>
|
310 |
<br><br>
|
311 |
+
|
312 |
+
|
313 |
|
314 |
<script>
|
315 |
jQuery("#save_role_2FA").click(function(){
|
366 |
jQuery('#mo2f_configured_2FA_method_free_plan').val('SecurityQuestions');
|
367 |
jQuery('#mo2f_selected_action_free_plan').val('configure2factor');
|
368 |
jQuery('#mo2f_save_free_plan_auth_methods_form').submit();
|
369 |
+
openTab2fa(setup_2fa);
|
370 |
}
|
371 |
else
|
372 |
{
|
392 |
jQuery('#mo2f_configured_2FA_method_free_plan').val('GoogleAuthenticator');
|
393 |
jQuery('#mo2f_selected_action_free_plan').val('configure2factor');
|
394 |
jQuery('#mo2f_save_free_plan_auth_methods_form').submit();
|
395 |
+
openTab2fa(setup_2fa);
|
396 |
}
|
397 |
else
|
398 |
{
|
views/upgrade.php
CHANGED
@@ -177,11 +177,11 @@ echo '
|
|
177 |
<div class="mo_upgrade_toggle">
|
178 |
<p class="mo_upgrade_toggle_2fa">
|
179 |
<input type="radio" name="sitetype" value="Recharge" id="mo2f_2fa_plans" onclick="show_2fa_plans();" style="display: none;">
|
180 |
-
<label for="mo2f_2fa_plans" class="
|
181 |
-
<label for="mo2f_2fa_plans" class="
|
182 |
<input type="radio" name="sitetype" value="Recharge" id="mo2f_ns_plans" onclick="mo_ns_show_plans();" style="display: none;">
|
183 |
-
<label for="mo2f_ns_plans" class="
|
184 |
-
<label for="mo2f_ns_plans" class="
|
185 |
</p>
|
186 |
</div>
|
187 |
<?php
|
@@ -196,114 +196,131 @@ echo '
|
|
196 |
<div class="mo2f_upgrade_super_div" id="mo2f_twofa_plans">
|
197 |
<div class="mo2f_upgrade_main_div">
|
198 |
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous"/>
|
199 |
-
<div id="
|
200 |
-
<div class="
|
201 |
-
<div id="
|
202 |
-
Enforce 2FA for all users<br>
|
203 |
-
Role-Based Authentication
|
204 |
-
</span></i></h3></center></div><br><br>
|
205 |
-
|
206 |
-
<div class="mo2fa_dollar"><center><span>$</span><span id="mo2fa_pricing_adder_site_based"></span><span class="mo2fa_per_year">/Year</span></center></div>
|
207 |
-
|
208 |
-
<br>
|
209 |
-
</div>
|
210 |
-
<h3 class="mo2fa_plan-type"><b>PREMIUM LITE</b></h3>
|
211 |
-
<div id="mo2fa_pricing_addons_site_based" class="mo2fa_pricing">
|
212 |
-
<center>
|
213 |
-
<div id="mo2fa_purchase_user_limit">
|
214 |
-
|
215 |
-
<center>
|
216 |
-
<select id="mo2fa_site_price" onchange="mo2fa_update_site_limit()" onclick="mo2fa_update_site_limit()" class="mo2fa_increase_my_limit">
|
217 |
-
<option value="99">1 SITE</option>
|
218 |
-
<option value="179">2 SITES</option>
|
219 |
-
<option value="299">5 SITES </option>
|
220 |
-
<option value="449">10 SITES</option>
|
221 |
-
<option value="599">25 SITES</option>
|
222 |
-
|
223 |
-
</select>
|
224 |
-
</div>
|
225 |
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
<a onclick="mo2f_upgradeform('wp_security_two_factor_premium_lite_plan','2fa_plan')" target="blank"><button class="mo2fa_upgrade_my_plan">Upgrade</button></a>
|
230 |
-
<?php }else{ ?>
|
231 |
-
<a onclick="mo2f_register_and_upgradeform('wp_security_two_factor_premium_lite_plan','2fa_plan')" target="blank"><button class="mo2fa_upgrade_my_plan">Upgrade</button></a>
|
232 |
-
<?php }?>
|
233 |
-
</center>
|
234 |
-
</div>
|
235 |
</center>
|
236 |
</div>
|
237 |
|
238 |
-
<div id="
|
239 |
-
<div id="
|
240 |
<ul class="mo2fa_ul">
|
241 |
-
<
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_on_per_tooltip_methodlist">
|
246 |
-
On-Premise <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i> <span class="mo2fa_methodlist"t>Users' data is stored on their end.</span></span>
|
247 |
-
</li>
|
248 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">Single Site Support</li>
|
249 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">Unlimited Email Transactions</li>
|
250 |
-
|
251 |
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">
|
252 |
-
|
253 |
-
<span class="
|
|
|
254 |
<ul class="methods-list-mo2fa" style="margin-left: -43px; ">
|
255 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Google Authenticator</li>
|
256 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">
|
257 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">
|
258 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">
|
259 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">
|
260 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">
|
261 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">
|
262 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">
|
263 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">
|
264 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">
|
265 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">miniOrange QR Code Authenticator</li>
|
266 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">miniOrange Soft Token</li>
|
267 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">miniOrange Push Notification</li>
|
268 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">OTP Over SMS and Email</li>
|
269 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">Hardware Token</li>
|
270 |
-
|
|
|
271 |
</ul>
|
272 |
</span>
|
273 |
</span>
|
274 |
</li>
|
275 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><
|
276 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">
|
277 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><
|
278 |
-
<li class="mo2fa_feature_collect_mo-2fa
|
279 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><
|
280 |
-
<li class="mo2fa_feature_collect_mo-2fa
|
281 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">
|
282 |
-
<li class="mo2fa_feature_collect_mo-2fa
|
283 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">
|
284 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">
|
285 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">
|
286 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"> <br></li>
|
287 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"> <br></li>
|
288 |
-
|
289 |
-
|
290 |
</ul>
|
291 |
|
292 |
</div>
|
293 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
294 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
</div>
|
296 |
<script>
|
297 |
var base_price_site_based =0;
|
298 |
var display_my_site_based_price = parseInt(base_price_site_based)+parseInt(0)+parseInt(0)+parseInt(0);
|
299 |
-
document.getElementById("
|
300 |
-
jQuery('#
|
301 |
-
function
|
302 |
-
var users = document.getElementById("
|
303 |
-
var sms_user_selection=
|
304 |
var users_addion = parseInt(base_price_site_based)+parseInt(users)+parseInt(sms_user_selection);
|
305 |
|
306 |
-
document.getElementById("
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
|
308 |
}
|
309 |
|
@@ -312,40 +329,100 @@ Role-Based Authentication
|
|
312 |
</div>
|
313 |
|
314 |
|
315 |
-
<div class="mo2f_upgrade_main_div"
|
316 |
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
|
317 |
|
318 |
-
<div id="
|
319 |
-
<div class="
|
320 |
-
|
321 |
-
<div id="
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
</
|
326 |
-
|
327 |
-
|
328 |
-
<
|
329 |
-
|
330 |
-
|
|
|
331 |
|
332 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
333 |
<div id="purchase_user_limit_all_inclusive">
|
334 |
-
|
335 |
-
<
|
336 |
-
<
|
337 |
-
<
|
338 |
-
|
339 |
-
<option value="
|
340 |
-
<option value="
|
341 |
-
<option value="
|
342 |
-
|
|
|
|
|
343 |
</select>
|
344 |
</center>
|
345 |
</div>
|
346 |
-
|
347 |
-
|
348 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
<center>
|
350 |
<?php if( isset($is_customer_registered) && $is_customer_registered) { ?>
|
351 |
<a onclick="mo2f_upgradeform('wp_security_two_factor_all_inclusive_plan','2fa_plan')" target="blank"><button class="mo2fa_upgrade_my_plan">Upgrade</button></a>
|
@@ -355,85 +432,28 @@ Addons
|
|
355 |
</center>
|
356 |
</div>
|
357 |
</div>
|
358 |
-
|
359 |
-
<div id="mo2fa_pricing_feature_collection_supporter_all_inclusive" class="mo2fa_pricing_feature_collection_supporter">
|
360 |
-
<div id="mo2fa_pricing_feature_collection_all_inclusive" class="mo2fa_pricing_feature_collection">
|
361 |
-
<ul class="mo2fa_ul">
|
362 |
-
<center><p class="mo2fa_feature"><strong>Features</strong></p></center>
|
363 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_on_per_tooltip_methodlist">On-Premise <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>Users' data is stored on their end.</span></span></li>
|
364 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature" title="Only 3 sub-sites supported">Multisite Support (Only 3 subsites)</li>
|
365 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">Unlimited Email Transactions</li>
|
366 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_tooltip_methodlist">10+ Authentication Methods <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i>
|
367 |
-
<span class="mo2fa_methodlist"t>
|
368 |
-
<ul class="methods-list-mo2fa" style="margin-left: -43px;">
|
369 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Google Authenticator</li>
|
370 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">OTP Over SMS</li>
|
371 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">OTP Over Email</li>
|
372 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Email Verification</li>
|
373 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Security Questions</li>
|
374 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">OTP Over Whatsapp</li>
|
375 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Authy Authenticator</li>
|
376 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Microsoft Authenticator</li>
|
377 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">LastPass Authenticator</li>
|
378 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">FreeOTP Authenticator</li>
|
379 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Duo Mobile Authenticator</li>
|
380 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">OTP Over Telegram</li>
|
381 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">miniOrange QR Code Authenticator</li>
|
382 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">miniOrange Soft Token</li>
|
383 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">miniOrange Push Notification</li>
|
384 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">OTP Over SMS and Email</li>
|
385 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">Hardware Token</li>
|
386 |
-
</ul>
|
387 |
-
</span>
|
388 |
-
</span></li>
|
389 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_enforce_2fa_tooltip_methodlist">Enforce 2FA Set-up For Users <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>Enforce users to set their 2FA after installing the plugin</span></span></li>
|
390 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"> 3+ Backup Login Methods</li>
|
391 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_redirect_tooltip_methodlist">Custom Redirection URL <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>Redirects users to the specific Url after login(can be configured according to user role)</span></span></li>
|
392 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_role_tooltip_methodlist">Role-Based 2FA <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>You can enable 2FA for specific user role</span></span></li>
|
393 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_rba_tooltip_methodlist">Remember Device <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i> <span class="mo2fa_methodlist"t> It give users the option to rememeber device.Skip 2FA for trusted device</span></span></li>
|
394 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">Passwordless Login </li>
|
395 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_custom_sms_tooltip_methodlist">Custom SMS Gateway <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>You can integrate your own SMS gateway with miniOrange</span></span></li>
|
396 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_shortcode_tooltip_methodlist">Shortcode Addon <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i> <span class="mo2fa_methodlist"t>
|
397 |
-
1. 2FA Shortcode - Use to add 2FA on any page.<br>
|
398 |
-
2. Reconfigure 2FA Addon - Add on to reconfiigure 2FA.
|
399 |
-
</span></span></li>
|
400 |
-
<li class="mo2fa_per_feature_collect_mo-2fa mo2fa_unltimate_feature">
|
401 |
-
<span class="mo2fa_per_tooltip_methodlist">Personalisation Addon <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>
|
402 |
-
<ul class="methods-list-mo2fa" style="margin-left: -43px;">
|
403 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Customize 2FA Login Screen</li>
|
404 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Customize Email Template</li>
|
405 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Customize Security Questions </li>
|
406 |
-
</ul>
|
407 |
-
</span>
|
408 |
-
</span>
|
409 |
-
</li>
|
410 |
-
|
411 |
-
|
412 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">Page Restriction Addon</li>
|
413 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_fido_tooltip_methodlist">FIDO2/WebAuthn <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>Allows you to login to any site using device credentials.</span></span></li>
|
414 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">Concurrent Session Restriction </li>
|
415 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">Skip 2FA For Specified IP </li>
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
</ul>
|
421 |
-
|
422 |
-
</div>
|
423 |
-
</div>
|
424 |
-
|
425 |
</div>
|
426 |
<script>
|
427 |
|
428 |
var base_price_site_all_inclusive =0;
|
429 |
var display_my_all_inclusive_price = parseInt(base_price_site_all_inclusive)+parseInt(0)+parseInt(0)+parseInt(0);
|
430 |
-
document.getElementById("
|
431 |
-
jQuery('#
|
432 |
-
function
|
433 |
-
var sites_all_inclusive = document.getElementById("
|
434 |
-
var
|
|
|
|
|
|
|
|
|
|
|
435 |
|
436 |
-
|
|
|
|
|
|
|
|
|
|
|
437 |
|
438 |
}
|
439 |
|
@@ -443,124 +463,144 @@ Addons
|
|
443 |
<div class="mo2f_upgrade_main_div">
|
444 |
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
|
445 |
|
446 |
-
<div id="
|
447 |
-
<div class="mo2fa_pricing_head_sky">
|
448 |
-
<div id="mo2fa_pricing_head" class="mo2fa_pricing_head_supporter">
|
449 |
-
<center><h3 class="mo2fa_pricing_head_mo_2fa">Unlimited Sites<br> <div class="mo2fa_web_sec">Website Security</div></h3> </center>
|
450 |
-
</div><br><br>
|
451 |
-
<div id="mo2fa_pricing_head_cost" class="mo2fa_pricing_head_supporter">
|
452 |
-
<div class="mo2fa_dollar"> <center><span>$</span><span id="mo2fa_pricing_adder"></span><span class="mo2fa_per_year">/Year</span></center></div>
|
453 |
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
</div>
|
455 |
-
</div>
|
456 |
-
<h3 class="mo2fa_plan-type"><b>ENTERPRISE</b></h3>
|
457 |
|
458 |
-
|
459 |
<center>
|
460 |
-
<
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
<
|
470 |
-
|
471 |
-
<
|
472 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
473 |
</select>
|
474 |
</center>
|
475 |
</div>
|
476 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
477 |
|
478 |
<div id="details">
|
479 |
<center>
|
480 |
<?php if( isset($is_customer_registered) && $is_customer_registered) { ?>
|
481 |
-
<a onclick="mo2f_upgradeform('wp_2fa_enterprise_plan','2fa_plan')" target="blank"><button class="
|
482 |
<?php }else{ ?>
|
483 |
-
<a onclick="mo2f_register_and_upgradeform('wp_2fa_enterprise_plan','2fa_plan')" target="blank"><button class="
|
484 |
<?php }?>
|
485 |
</center>
|
486 |
</div>
|
487 |
</center>
|
488 |
-
</div>
|
489 |
-
|
490 |
-
|
491 |
-
<div id="mo2fa_pricing_feature_collection_supporter" class="mo2fa_pricing_feature_collection_supporter">
|
492 |
-
|
493 |
-
|
494 |
-
<div id="mo2fa_pricing_feature_collection" class="mo2fa_pricing_feature_collection">
|
495 |
-
<ul class="mo2fa_ul">
|
496 |
-
<center><p class="mo2fa_feature"><strong>Features</strong></p></center>
|
497 |
-
|
498 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_cloud_per_tooltip_methodlist">Cloud <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>Users data is stored on the miniOrange Cloud</span></span></li>
|
499 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">Multisite Support</li>
|
500 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">Email Transactions Extra</li>
|
501 |
-
|
502 |
-
<li class="mo2fa_ent_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_ent_tooltip_methodlist">15+ Authentication Methods <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i>
|
503 |
-
<span class="mo2fa_methodlist"t>
|
504 |
-
<ul class="methods-list-mo2fa" style="margin-left: -43px;">
|
505 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Google Authenticator</li>
|
506 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">OTP Over SMS</li>
|
507 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">OTP Over Email</li>
|
508 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Email Verification</li>
|
509 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">OTP Over SMS and Email</li>
|
510 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Security Questions</li>
|
511 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Authy Authenticator</li>
|
512 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Microsoft Authenticator</li>
|
513 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">LastPass Authenticator</li>
|
514 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">FreeOTP Authenticator</li>
|
515 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Duo Mobile Authenticator</li>
|
516 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">miniOrange QR Code Authentication</li>
|
517 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">miniOrange Soft Token</li>
|
518 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">miniOrange Push Notification</li>
|
519 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-size">Hardware Token</li>
|
520 |
-
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross">OTP Over Whatsapp</li>
|
521 |
-
</ul>
|
522 |
-
</span>
|
523 |
-
</span></li>
|
524 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_ent_enforce_2fa_tooltip_methodlist">Enforce 2FA Set-up For Users <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>Enforce users to set their 2FA after installing the plugin</span></span></li>
|
525 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"> 3+ Backup Login Methods</li>
|
526 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_ent_redirect_tooltip_methodlist">Custom Redirection URL <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>Redirects users to the specific Url after login(can be configured according to user role)</span></span></li>
|
527 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_ent_role_tooltip_methodlist">Role-Based 2FA <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>You can enable 2FA for specific user role</span></span></li>
|
528 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_ent_rba_tooltip_methodlist">Remember Device <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t> It give users the option to rememeber device.Skip 2FA for trusted device</span></span></li>
|
529 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">Passwordless login </li>
|
530 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_ent_custom_sms_tooltip_methodlist">Custom SMS Gateway <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i><span class="mo2fa_methodlist"t>
|
531 |
-
You can integrate your own SMS gateway with miniOrange</span><span></li>
|
532 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><span class="mo2fa_shortcode_ent_tooltip_methodlist">Shortcode Addon <i class="fa fa-info-circle fa-xs" aria-hidden="true"></i> <span class="mo2fa_methodlist"t>
|
533 |
-
1. 2FA Shortcode - Use to add 2FA on any page.<br>
|
534 |
-
2. Reconfigure 2FA Addon - Addon to reconfiigure 2FA.</span>
|
535 |
-
</li>
|
536 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"> <br></li>
|
537 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"> <br></li>
|
538 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"> <br></li>
|
539 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"> <br></li>
|
540 |
-
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"> <br></li>
|
541 |
-
|
542 |
-
|
543 |
-
</ul>
|
544 |
-
|
545 |
-
</div>
|
546 |
</div>
|
547 |
-
|
548 |
</div>
|
549 |
|
550 |
<script>
|
551 |
var base_price =0;
|
552 |
var display_me = parseInt(base_price)+parseInt(30)+parseInt(0)+parseInt(0);
|
553 |
-
document.getElementById("
|
554 |
-
jQuery('#
|
555 |
-
function
|
556 |
-
var users = document.getElementById("
|
557 |
-
|
558 |
-
var users_addion = parseInt(base_price)+parseInt(users);
|
559 |
|
560 |
-
document.getElementById("
|
561 |
|
562 |
}
|
563 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
564 |
|
565 |
</script>
|
566 |
|
@@ -568,12 +608,11 @@ Addons
|
|
568 |
</div>
|
569 |
<div id="mo2fa_compare">
|
570 |
<center>
|
571 |
-
<div class=""><a href="#
|
572 |
-
<div><a href="#
|
573 |
</center>
|
574 |
</div>
|
575 |
-
|
576 |
-
<div id="mo2fa_ns_features_only" style="display: none;">
|
577 |
|
578 |
<div class="mo_wpns_upgrade_security_title" >
|
579 |
<div class="mo_wpns_upgrade_page_title_name">
|
@@ -746,10 +785,10 @@ Addons
|
|
746 |
</div>
|
747 |
<center>
|
748 |
<br>
|
749 |
-
<div id="
|
750 |
<div class="mo2fa_table-scrollbar"></br></br>
|
751 |
<table class="table mo2fa_table_features table-striped">
|
752 |
-
<caption class="pricing_head_mo_2fa"
|
753 |
<thead>
|
754 |
<tr class="mo2fa_main_category_header" style="font-size: 20px;">
|
755 |
<th scope="col">Features</th>
|
@@ -773,48 +812,48 @@ Addons
|
|
773 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
774 |
|
775 |
</tr>
|
776 |
-
<tr class="
|
777 |
<th scope="row">Authentication Methods</th>
|
778 |
<td></td>
|
779 |
<td></td>
|
780 |
<td></td>
|
781 |
</tr>
|
782 |
<tr>
|
783 |
-
<th scope="row" class="
|
784 |
<td><center><i class="fas fa-check"></i></center></td>
|
785 |
<td><center><i class="fas fa-check"></i></center></td>
|
786 |
<td><center><i class="fas fa-check"></i></center></td>
|
787 |
</tr>
|
788 |
<tr>
|
789 |
-
<th scope="row" class="
|
790 |
<td><center><i class="fas fa-check"></i></center></td>
|
791 |
<td><center><i class="fas fa-check"></i></center></td>
|
792 |
<td><center><i class="fas fa-check"></i></center></td>
|
793 |
|
794 |
</tr>
|
795 |
<tr>
|
796 |
-
<th scope="row" class="
|
797 |
<td><center><i class="fas fa-check"></i></center></td>
|
798 |
<td><center><i class="fas fa-check"></i></center></td>
|
799 |
<td><center><i class="fas fa-check"></i></center></td>
|
800 |
|
801 |
</tr>
|
802 |
<tr>
|
803 |
-
<th scope="row" class="
|
804 |
<td><center><i class="fas fa-check"></i></center></td>
|
805 |
<td><center><i class="fas fa-check"></i></center></td>
|
806 |
<td><center><i class="fas fa-check"></i></center></td>
|
807 |
|
808 |
</tr>
|
809 |
<tr>
|
810 |
-
<th scope="row" class="
|
811 |
<td><center><i class="fas fa-check"></i></center></td>
|
812 |
<td><center><i class="fas fa-check"></i></center></td>
|
813 |
<td><center><i class="fas fa-check"></i></center></td>
|
814 |
|
815 |
</tr>
|
816 |
<tr>
|
817 |
-
<th scope="row" class="
|
818 |
<td><center><i class="fas fa-check"></i></center></td>
|
819 |
<td><center><i class="fas fa-check"></i></center></td>
|
820 |
<td><center><i class="fas fa-check"></i></center></td>
|
@@ -822,7 +861,7 @@ Addons
|
|
822 |
|
823 |
</tr>
|
824 |
<tr>
|
825 |
-
<th scope="row" class="
|
826 |
<td><center><i class="fas fa-check"></i></center></td>
|
827 |
<td><center><i class="fas fa-check"></i></center></td>
|
828 |
<td><center><i class="fas fa-check"></i></center></td>
|
@@ -830,74 +869,74 @@ Addons
|
|
830 |
</tr>
|
831 |
|
832 |
<tr>
|
833 |
-
<th scope="row" class="
|
834 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
835 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
836 |
<td><center><i class="fas fa-check"></i></center></td>
|
837 |
</tr>
|
838 |
<tr>
|
839 |
-
<th scope="row" class="
|
840 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
841 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
842 |
<td><center><i class="fas fa-check"></i></center></td>
|
843 |
</tr>
|
844 |
<tr>
|
845 |
-
<th scope="row" class="
|
846 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
847 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
848 |
<td><center><i class="fas fa-check"></i></center></td>
|
849 |
</tr>
|
850 |
<tr>
|
851 |
-
<th scope="row" class="
|
852 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
853 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
854 |
<td><center><i class="fas fa-check"></i></center></td>
|
855 |
|
856 |
</tr>
|
857 |
<tr>
|
858 |
-
<th scope="row" class="
|
859 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
860 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
861 |
<td><center><i class="fas fa-check"></i></center></td>
|
862 |
|
863 |
</tr>
|
864 |
<tr>
|
865 |
-
<th scope="row" class="
|
866 |
-
<td><center></center></td>
|
867 |
<td><center><i class="fas fa-check"></i></center></td>
|
868 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
869 |
</tr>
|
870 |
<tr>
|
871 |
-
<th scope="row" class="
|
872 |
-
<td><center></center></td>
|
|
|
873 |
<td><center><i class="fas fa-check"></i></center></td>
|
874 |
-
<td><center></center></td>
|
875 |
</tr>
|
876 |
-
<tr class="
|
877 |
<th scope="row">Backup Login Methods</th>
|
878 |
<td></td>
|
879 |
<td></td>
|
880 |
<td></td>
|
881 |
</tr>
|
882 |
<tr>
|
883 |
-
<th scope="row" class="
|
884 |
<td><center><i class="fas fa-check"></i></center></td>
|
885 |
<td><center><i class="fas fa-check"></i></center></td>
|
886 |
<td><center><i class="fas fa-check"></i></center></td>
|
887 |
</tr>
|
888 |
<tr>
|
889 |
-
<th scope="row" class="
|
890 |
<td><center><i class="fas fa-check"></i></center></td>
|
891 |
<td><center><i class="fas fa-check"></i></center></td>
|
892 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
893 |
</tr>
|
894 |
<tr>
|
895 |
-
<th scope="row" class="
|
896 |
<td><center><i class="fas fa-check"></i></center></td>
|
897 |
<td><center><i class="fas fa-check"></i></center></td>
|
898 |
<td><center><i class="fas fa-check"></i></center></td>
|
899 |
</tr>
|
900 |
-
<tr class="
|
901 |
<th scope="row">Password Policy</th>
|
902 |
<td></td>
|
903 |
<td></td>
|
@@ -905,12 +944,18 @@ Addons
|
|
905 |
|
906 |
</tr>
|
907 |
<tr>
|
908 |
-
<th scope="row" class="
|
909 |
<td><center><i class="fas fa-check"></i></center></td>
|
910 |
<td><center><i class="fas fa-check"></i></center></td>
|
911 |
<td><center><i class="fas fa-check"></i></center></td>
|
912 |
</tr>
|
913 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
914 |
<tr>
|
915 |
<th scope="row">Custom Gateway</th>
|
916 |
<td><center><i class="fas fa-check"></i></center></td>
|
@@ -918,7 +963,7 @@ Addons
|
|
918 |
<td><center><i class="fas fa-check"></i></center></td>
|
919 |
|
920 |
</tr>
|
921 |
-
<tr class="
|
922 |
<th scope="row">Add-Ons</th>
|
923 |
<td></td>
|
924 |
<td></td>
|
@@ -926,31 +971,47 @@ Addons
|
|
926 |
|
927 |
</tr>
|
928 |
<tr>
|
929 |
-
<th scope="row" class="
|
930 |
-
<td><center><
|
931 |
-
<td><center><
|
932 |
-
<td><center><
|
933 |
</tr>
|
934 |
<tr>
|
935 |
-
<th scope="row" class="
|
936 |
-
<td><center><
|
937 |
-
<td><center><
|
938 |
-
<td><center><
|
939 |
</tr>
|
940 |
<tr>
|
941 |
-
<th scope="row" class="
|
942 |
-
<td><center><
|
943 |
-
<td><center><
|
944 |
-
<td><center><
|
945 |
</tr>
|
946 |
<tr>
|
947 |
-
<th scope="row" class="
|
948 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
949 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
950 |
<td><center><i class="fas fa-check"></i></center></td>
|
951 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
952 |
</tr>
|
953 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
954 |
<th scope="row">Advance Wordpress Login Settings</th>
|
955 |
<td></td>
|
956 |
<td></td>
|
@@ -958,56 +1019,56 @@ Addons
|
|
958 |
|
959 |
</tr>
|
960 |
<tr>
|
961 |
-
<th scope="row" class="
|
962 |
<td><center><i class="fas fa-check"></i></center></td>
|
963 |
<td><center><i class="fas fa-check"></i></center></td>
|
964 |
<td><center><i class="fas fa-check"></i></center></td>
|
965 |
</tr>
|
966 |
<tr>
|
967 |
-
<th scope="row" class="
|
968 |
<td><center><i class="fas fa-check"></i></center></td>
|
969 |
<td><center><i class="fas fa-check"></i></center></td>
|
970 |
<td><center><i class="fas fa-check"></i></center></td>
|
971 |
</tr>
|
972 |
<tr>
|
973 |
-
<th scope="row" class="
|
974 |
<td><center><i class="fas fa-check"></i></center></td>
|
975 |
<td><center><i class="fas fa-check"></i></center></td>
|
976 |
<td><center><i class="fas fa-check"></i></center></td>
|
977 |
|
978 |
</tr>
|
979 |
<tr>
|
980 |
-
<th scope="row" class="
|
981 |
<td><center><i class="fas fa-check"></i></center></td>
|
982 |
<td><center><i class="fas fa-check"></i></center></td>
|
983 |
<td><center><i class="fas fa-check"></i></center></td>
|
984 |
|
985 |
</tr><tr>
|
986 |
-
<th scope="row" class="
|
987 |
<td><center><i class="fas fa-check"></i></center></td>
|
988 |
<td><center><i class="fas fa-check"></i></center></td>
|
989 |
<td><center><i class="fas fa-check"></i></center></td>
|
990 |
|
991 |
</tr><tr>
|
992 |
-
<th scope="row" class="
|
993 |
<td><center><i class="fas fa-check"></i></center></td>
|
994 |
<td><center><i class="fas fa-check"></i></center></td>
|
995 |
<td><center><i class="fas fa-check"></i></center></td>
|
996 |
|
997 |
</tr><tr>
|
998 |
-
<th scope="row" class="
|
999 |
<td><center><i class="fas fa-check"></i></center></td>
|
1000 |
<td><center><i class="fas fa-check"></i></center></td>
|
1001 |
<td><center><i class="fas fa-check"></i></center></td>
|
1002 |
|
1003 |
</tr><tr>
|
1004 |
-
<th scope="row" class="
|
1005 |
<td><center><i class="fas fa-check"></i></center></td>
|
1006 |
<td><center><i class="fas fa-check"></i></center></td>
|
1007 |
<td><center><i class="fas fa-check"></i></center></td>
|
1008 |
|
1009 |
</tr>
|
1010 |
-
<tr class="
|
1011 |
<th scope="row">Advance Security Features</th>
|
1012 |
<td></td>
|
1013 |
<td></td>
|
@@ -1015,69 +1076,69 @@ Addons
|
|
1015 |
|
1016 |
</tr>
|
1017 |
<tr>
|
1018 |
-
<th scope="row" class="
|
1019 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1020 |
<td><center><i class="fas fa-check"></i></center></td>
|
1021 |
<td><center><i class="fas fa-check"></i></center></td>
|
1022 |
|
1023 |
</tr>
|
1024 |
<tr>
|
1025 |
-
<th scope="row" class="
|
1026 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1027 |
<td><center><i class="fas fa-check"></i></center></td>
|
1028 |
<td><center><i class="fas fa-check"></i></center></td>
|
1029 |
|
1030 |
</tr>
|
1031 |
<tr>
|
1032 |
-
<th scope="row" class="
|
1033 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1034 |
<td><center><i class="fas fa-check"></i></center></td>
|
1035 |
<td><center><i class="fas fa-check"></i></center></td>
|
1036 |
|
1037 |
</tr> <tr>
|
1038 |
-
<th scope="row" class="
|
1039 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1040 |
<td><center><i class="fas fa-check"></i></center></td>
|
1041 |
<td><center><i class="fas fa-check"></i></center></td>
|
1042 |
|
1043 |
</tr>
|
1044 |
<tr>
|
1045 |
-
<th scope="row" class="
|
1046 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1047 |
<td><center><i class="fas fa-check"></i></center></td>
|
1048 |
<td><center><i class="fas fa-check"></i></center></td>
|
1049 |
|
1050 |
</tr>
|
1051 |
<tr>
|
1052 |
-
<th scope="row" class="
|
1053 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1054 |
<td><center><i class="fas fa-check"></i></center></td>
|
1055 |
<td><center><i class="fas fa-check"></i></center></td>
|
1056 |
|
1057 |
</tr>
|
1058 |
<tr>
|
1059 |
-
<th scope="row" class="
|
1060 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1061 |
<td><center><i class="fas fa-check"></i></center></td>
|
1062 |
<td><center><i class="fas fa-check"></i></center></td>
|
1063 |
|
1064 |
</tr>
|
1065 |
<tr>
|
1066 |
-
<th scope="row" class="
|
1067 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1068 |
<td><center><i class="fas fa-check"></i></center></td>
|
1069 |
<td><center><i class="fas fa-check"></i></center></td>
|
1070 |
|
1071 |
</tr>
|
1072 |
<tr>
|
1073 |
-
<th scope="row" class="
|
1074 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1075 |
<td><center><i class="fas fa-check"></i></center></td>
|
1076 |
<td><center><i class="fas fa-check"></i></center></td>
|
1077 |
|
1078 |
</tr>
|
1079 |
<tr>
|
1080 |
-
<th scope="row" class="
|
1081 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1082 |
<td><center><i class="fas fa-check"></i></center></td>
|
1083 |
<td><center><i class="fas fa-check"></i></center></td>
|
@@ -1085,14 +1146,14 @@ Addons
|
|
1085 |
</tr>
|
1086 |
<tr>
|
1087 |
<th scope="row">Multi-Site Support</th>
|
1088 |
-
<td><center></center></td>
|
1089 |
-
<td><center><i class="fas fa-check"></i></center></td>
|
1090 |
<td><center><i class="fas fa-check"></i></center></td>
|
|
|
|
|
1091 |
</tr><tr>
|
1092 |
<th scope="row">Language Translation Support</th>
|
1093 |
-
<td><center></center></td>
|
1094 |
<td><center><i class="fas fa-check"></i></center></td>
|
1095 |
-
<td><center></center></td>
|
|
|
1096 |
|
1097 |
</tr><tr>
|
1098 |
<th scope="row">Get online support with GoTo/Zoom meeting</th>
|
@@ -1106,7 +1167,7 @@ Addons
|
|
1106 |
</div>
|
1107 |
</div>
|
1108 |
</center>
|
1109 |
-
<div class="
|
1110 |
<div>
|
1111 |
<h2><?php echo mo2f_lt('Steps to upgrade to the Premium Plan :');?></h2>
|
1112 |
<ol class="mo2f_licensing_plans_ol">
|
@@ -1124,7 +1185,6 @@ Addons
|
|
1124 |
<div>
|
1125 |
<h2><?php echo mo2f_lt('Note :');?></h2>
|
1126 |
<ol class="mo2f_licensing_plans_ol">
|
1127 |
-
<li><?php echo mo2f_lt( 'Purchasing licenses for <b>unlimited users will grant you upto 2000 users.</b> If you want to purchase more users, please contact us or drop an email at <a href="mailto:2fasupport@xecurify.com">2fasupport@xecurify.com.</a>' ); ?></li>
|
1128 |
<li><?php echo mo2f_lt( 'The plugin works with many of the default custom login forms (like Woocommerce/Theme My Login/Login With Ajax/User Pro/Elementor), however if you face any issues with your custom login form, contact us and we will help you with it.' ); ?></li>
|
1129 |
<li><?php echo mo2f_lt( 'The <b>license key </b>is required to activate the <b>Premium Lite/Premium</b> Plugins. You will have to login with the miniOrange Account you used to make the purchase then enter license key to activate plugin.' ); ?>
|
1130 |
|
@@ -1152,7 +1212,7 @@ Addons
|
|
1152 |
<hr>
|
1153 |
<br>
|
1154 |
<div>
|
1155 |
-
<?php echo mo2f_lt( '<b class="mo2fa_note">Privacy Policy : </b><a href="https://www.miniorange.com/2-factor-authentication-for-wordpress-gdpr"
|
1156 |
to read our Privacy Policy.' ); ?>
|
1157 |
</div>
|
1158 |
<br>
|
@@ -1164,7 +1224,7 @@ Addons
|
|
1164 |
</div>
|
1165 |
</div>
|
1166 |
</center>
|
1167 |
-
<div id="mo2f_payment_option" class="
|
1168 |
<div>
|
1169 |
<h3>Supported Payment Methods</h3><hr>
|
1170 |
<div class="mo_2fa_container">
|
@@ -1217,7 +1277,7 @@ Addons
|
|
1217 |
function mo2f_waf_yearly_standard_pricing() {
|
1218 |
?>
|
1219 |
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
1220 |
-
id="mo2f_yearly_sub"><?php echo __( 'Yearly
|
1221 |
|
1222 |
<select id="mo2f_yearly" class="form-control mo2fa_form_control1">
|
1223 |
<option> <?php echo mo2f_lt( '1 site - $50 per year' ); ?> </option>
|
@@ -1232,7 +1292,7 @@ function mo2f_waf_yearly_standard_pricing() {
|
|
1232 |
function mo2f_login_yearly_standard_pricing() {
|
1233 |
?>
|
1234 |
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
1235 |
-
id="mo2f_yearly_sub"><?php echo __( 'Yearly
|
1236 |
|
1237 |
<select id="mo2f_yearly" class="form-control mo2fa_form_control1">
|
1238 |
<option> <?php echo mo2f_lt( '1 site - $15 per year' ); ?> </option>
|
@@ -1247,7 +1307,7 @@ function mo2f_login_yearly_standard_pricing() {
|
|
1247 |
function mo2f_backup_yearly_standard_pricing() {
|
1248 |
?>
|
1249 |
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
1250 |
-
id="mo2f_yearly_sub"><?php echo __( 'Yearly
|
1251 |
|
1252 |
<select id="mo2f_yearly" class="form-control mo2fa_form_control1">
|
1253 |
<option> <?php echo mo2f_lt( '1 site - $30 per year' ); ?> </option>
|
@@ -1262,7 +1322,7 @@ function mo2f_backup_yearly_standard_pricing() {
|
|
1262 |
function mo2f_scanner_yearly_standard_pricing() {
|
1263 |
?>
|
1264 |
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
1265 |
-
id="mo2f_yearly_sub"><?php echo __( 'Yearly
|
1266 |
|
1267 |
<select id="mo2f_yearly" class="form-control mo2fa_form_control1">
|
1268 |
<option> <?php echo mo2f_lt( '1 site - $15 per year' ); ?> </option>
|
@@ -1278,9 +1338,9 @@ function mo2f_scanner_yearly_standard_pricing() {
|
|
1278 |
function mo2f_get_binary_equivalent_2fa_lite( $mo2f_var ) {
|
1279 |
switch ( $mo2f_var ) {
|
1280 |
case 1:
|
1281 |
-
return "<div style='color: #20b2aa;font-size: x-large;float:left;margin:0px 5px;'
|
1282 |
case 0:
|
1283 |
-
return "<div style='color: red;font-size: x-large;float:left;margin:0px 5px;'
|
1284 |
default:
|
1285 |
return $mo2f_var;
|
1286 |
}
|
@@ -1339,21 +1399,21 @@ function mo2f_feature_on_hover_2fa_upgrade( $mo2f_var ) {
|
|
1339 |
}
|
1340 |
function show_2fa_plans()
|
1341 |
{
|
1342 |
-
document.getElementById('
|
1343 |
document.getElementById('mo2f_twofa_plans').style.display = "flex";
|
1344 |
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "none";
|
1345 |
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "block";
|
1346 |
-
document.getElementById('
|
1347 |
document.getElementById('mo_ns_licensing_plans_title1').style.display = "none";
|
1348 |
document.getElementById('mo2fa_compare').style.display = "block";
|
1349 |
}
|
1350 |
function mo_ns_show_plans()
|
1351 |
{
|
1352 |
-
document.getElementById('
|
1353 |
document.getElementById('mo2f_twofa_plans').style.display = "none";
|
1354 |
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "block";
|
1355 |
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "none";
|
1356 |
-
document.getElementById('
|
1357 |
document.getElementById('mo_ns_licensing_plans_title1').style.display = "block";
|
1358 |
document.getElementById('mo2fa_compare').style.display = "none";
|
1359 |
}
|
@@ -1365,7 +1425,7 @@ function mo2f_feature_on_hover_2fa_upgrade( $mo2f_var ) {
|
|
1365 |
|
1366 |
function mo2fa_show_details()
|
1367 |
{
|
1368 |
-
jQuery('#
|
1369 |
jQuery('.mo2fa_more_details_p1').toggle();
|
1370 |
jQuery('.mo2fa_more_details_p').toggle();
|
1371 |
jQuery('.mo2fa_compare1').toggle();
|
177 |
<div class="mo_upgrade_toggle">
|
178 |
<p class="mo_upgrade_toggle_2fa">
|
179 |
<input type="radio" name="sitetype" value="Recharge" id="mo2f_2fa_plans" onclick="show_2fa_plans();" style="display: none;">
|
180 |
+
<label for="mo2f_2fa_plans" class="mo_upgrade_toggle_2fa_lable" id="mo_2fa_lite_licensing_plans_title" style="display: none;"> 2-Factor Authentication</label>
|
181 |
+
<label for="mo2f_2fa_plans" class="mo_upgrade_toggle_2fa_lable mo2f_active_plan" id="mo_2fa_lite_licensing_plans_title1" style="display: block;"> 2-Factor Authentication</label>
|
182 |
<input type="radio" name="sitetype" value="Recharge" id="mo2f_ns_plans" onclick="mo_ns_show_plans();" style="display: none;">
|
183 |
+
<label for="mo2f_ns_plans" class="mo_upgrade_toggle_2fa_lable" id="mo_ns_licensing_plans_title">Website Security</label>
|
184 |
+
<label for="mo2f_ns_plans" class="mo_upgrade_toggle_2fa_lable mo2f_active_plan" id="mo_ns_licensing_plans_title1" style="display: none;">Website Security</label>
|
185 |
</p>
|
186 |
</div>
|
187 |
<?php
|
196 |
<div class="mo2f_upgrade_super_div" id="mo2f_twofa_plans">
|
197 |
<div class="mo2f_upgrade_main_div">
|
198 |
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous"/>
|
199 |
+
<div id="pricing_tabs_mo" class="mo2fa_pricing_tabs_mo mo2fa_pricing_tabs_mo_premium_lite">
|
200 |
+
<div id="pricing_head" class="mo2fa_pricing_head_supporter"><center><h3 class="mo2fa_pricing_head_mo_2fa">Premium Lite</h3></center></div>
|
201 |
+
<div id="pricing_head" class="mo2fa_pricing_head_supporter"><center><span class="mo2fa_pricing_head_mo_2fa">$99</span>/Year</center></div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
|
203 |
+
<div id="getting_started_2fa_mo">
|
204 |
+
<center>
|
205 |
+
<a href="#addon_site_based"><button class="mo2fa_make_my_plan_mo">Getting Started</button></a>
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
</center>
|
207 |
</div>
|
208 |
|
209 |
+
<div id="pricing_feature_collection_supporter" class="mo2fa_pricing_feature_collection_supporter">
|
210 |
+
<div id="pricing_feature_collection" class="mo2fa_pricing_feature_collection">
|
211 |
<ul class="mo2fa_ul">
|
212 |
+
<p class="mo2fa_feature"><strong>Features</strong></p>
|
213 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_limit_pricing_feature_mo_2fa"><i class="fas fa-times"></i>Unlimited Sites</li>
|
214 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Unlimited Users</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature">
|
216 |
+
<i class="fas fa-check"></i>
|
217 |
+
<span class="mo2fa_tooltip_methodlist">10+ Authentication Methods
|
218 |
+
<span class="methodlist">
|
219 |
<ul class="methods-list-mo2fa" style="margin-left: -43px; ">
|
220 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Google Authenticator</li>
|
221 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Security Questions</li>
|
222 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Authy Authenticator</li>
|
223 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Microsoft Authenticator</li>
|
224 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>LastPass Authenticator</li>
|
225 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>FreeOTP Authenticator</li>
|
226 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Duo Mobile Authenticator</li>
|
227 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Email Verification</li>
|
228 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over Email</li>
|
229 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over SMS</li>
|
230 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>miniOrange QR Code Authenticator</li>
|
231 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>miniOrange Soft Token</li>
|
232 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>miniOrange Push Notification</li>
|
233 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>OTP Over SMS and Email</li>
|
234 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>Hardware Token</li>
|
235 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over Whatsapp</li>
|
236 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over Telegram</li>
|
237 |
</ul>
|
238 |
</span>
|
239 |
</span>
|
240 |
</li>
|
241 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Force users to set-up 2FA</li>
|
242 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i> 3+ Backup Login Methods</li>
|
243 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Passwordless Login</li>
|
244 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_limit_pricing_feature_mo_2fa"><i class="fas fa-times"></i>Strong Password</li>
|
245 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Custom SMS Gateway </li>
|
246 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_limit_pricing_feature_mo_2fa"><i class="fas fa-times"></i>Add-Ons (Purchase Seperately)</li>
|
247 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Advance Login Settings</li>
|
248 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_limit_pricing_feature_mo_2fa"><i class="fas fa-times"></i>Advance Security Features</li>
|
249 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature" id="addon_site_based"><i class="fas fa-check"></i>Multi-Site Support</li>
|
250 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Language Translation Support</li>
|
251 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Get Online Support Via GoTo/Zoom </li>
|
|
|
|
|
|
|
|
|
252 |
</ul>
|
253 |
|
254 |
</div>
|
255 |
</div>
|
256 |
+
<div id="pricing_addons_site_based" class="mo2fa_pricing">
|
257 |
+
<center>
|
258 |
+
<div id="purchase_user_limit">
|
259 |
+
<p class="mo2fa_more_details_p mo2fa_class"><a href="#details" onclick="mo2fa_show_details()">Click here to compare all plans</a></p>
|
260 |
+
<p class="mo2fa_more_details_p1 mo2fa_hide1"><a href="#details" onclick="mo2fa_show_details()">Click here to hide comparison</a></p>
|
261 |
+
<center><h3 class="mo2fa_purchase_user_limit_mo mo2fa_purchase_limit_mo">Choose No. of Sites</h3>
|
262 |
+
<p class="mo2fa_pricing_p">(Yearly Subscription Fees*)</p>
|
263 |
+
<select id="site_price_mo" onchange="update_site_limit()" onclick="update_site_limit()" class="mo2fa_increase_my_limit">
|
264 |
+
<option value="99">1 Site - free with the plan</option>
|
265 |
+
<option value="179">2 Sites - $179 per year</option>
|
266 |
+
<option value="299">Upto 5 Sites - $299 per year</option>
|
267 |
+
<option value="449">Upto 10 Sites - $449 per year</option>
|
268 |
+
<option value="599">Upto 25 Sites - $599per year</option>
|
269 |
+
<option value="0"> Above 25 - Contact us</option>
|
270 |
+
</select>
|
271 |
+
</div>
|
272 |
+
<div id="purchase_sms_limit" class="mo2fa_tooltip_sms_info">
|
273 |
+
<center><h3 class="mo2fa_purchase_otp_limit mo2fa_purchase_limit_mo">No. of SMS Transactions</h3>
|
274 |
+
<p class="mo2fa_country">(Only applicable if you will use OTP over SMS as authentication method.)</p>
|
275 |
+
<select id="sms_price_site_based_mo" onchange="update_sms_limit_site_based_mo()" class="mo2fa_increase_my_limit">
|
276 |
+
<option value="0">0 Transaction - $0</option>
|
277 |
+
<option value="5">$5 per 100 OTP + SMS Delivery Charges</option>
|
278 |
+
<option value="15">$15 per 500 OTP + SMS Delivery Charges</option>
|
279 |
+
<option value="22">$22 per 1K OTP + SMS Delivery Charges</option>
|
280 |
+
<option value="30">$30 per 5K OTP + SMS Delivery Charges</option>
|
281 |
+
<option value="40">$40 per 10K OTP + SMS Delivery Charges</option>
|
282 |
+
<option value="90">$90 per 50K OTP + SMS Delivery Charges</option>
|
283 |
+
</select>
|
284 |
+
<span class="mo2fa_sms_info">
|
285 |
+
<p class="mo2fa_country">Transaction prices & SMS delivery charges depend on country.</p>
|
286 |
+
</span>
|
287 |
+
</center>
|
288 |
+
</div>
|
289 |
+
<div class="mo2fa_dollar"> <center><span>$</span><span id="mo_pricing_adder_site_based"></span></center></div>
|
290 |
|
291 |
+
<div id="custom_my_plan_2fa_mo">
|
292 |
+
<center>
|
293 |
+
<?php if( isset($is_customer_registered) && $is_customer_registered) { ?>
|
294 |
+
<a onclick="mo2f_upgradeform('wp_security_two_factor_premium_lite_plan','2fa_plan')" target="blank"><button class="mo2fa_upgrade_my_plan">Upgrade</button></a>
|
295 |
+
<?php }else{ ?>
|
296 |
+
<a onclick="mo2f_register_and_upgradeform('wp_security_two_factor_premium_lite_plan','2fa_plan')" target="blank"><button class="mo2fa_upgrade_my_plan">Upgrade</button></a>
|
297 |
+
<?php }?>
|
298 |
+
</center>
|
299 |
+
</div>
|
300 |
+
</center>
|
301 |
+
</div>
|
302 |
</div>
|
303 |
<script>
|
304 |
var base_price_site_based =0;
|
305 |
var display_my_site_based_price = parseInt(base_price_site_based)+parseInt(0)+parseInt(0)+parseInt(0);
|
306 |
+
document.getElementById("mo_pricing_adder_site_based").innerHTML = + display_my_site_based_price;
|
307 |
+
jQuery('#site_price_mo').click();
|
308 |
+
function update_site_limit() {
|
309 |
+
var users = document.getElementById("site_price_mo").value;
|
310 |
+
var sms_user_selection= document.getElementById("sms_price_site_based_mo").value;
|
311 |
var users_addion = parseInt(base_price_site_based)+parseInt(users)+parseInt(sms_user_selection);
|
312 |
|
313 |
+
document.getElementById("mo_pricing_adder_site_based").innerHTML = + users_addion;
|
314 |
+
|
315 |
+
}
|
316 |
+
|
317 |
+
function update_sms_limit_site_based_mo() {
|
318 |
+
var sms = document.getElementById("sms_price_site_based_mo").value;
|
319 |
+
var users_sms_selection = document.getElementById("site_price_mo").value;
|
320 |
+
|
321 |
+
var sms_addion = parseInt(base_price_site_based)+parseInt(sms)+parseInt(users_sms_selection );
|
322 |
+
|
323 |
+
document.getElementById("mo_pricing_adder_site_based").innerHTML = + sms_addion;
|
324 |
|
325 |
}
|
326 |
|
329 |
</div>
|
330 |
|
331 |
|
332 |
+
<div class="mo2f_upgrade_main_div">
|
333 |
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
|
334 |
|
335 |
+
<div id="pricing_tabs_mo" class="mo2fa_pricing_tabs_mo mo2fa_pricing_tabs_mo_premium">
|
336 |
+
<div class="mo2fa_recommended"><center><h4 class="mo2fa_h4">Recommended</h4></center> </div>
|
337 |
+
<div id="pricing_head_all_inclusive" class="mo2fa_pricing_head_supporter"><center><h3 class="mo2fa_pricing_head_mo_2fa">Premium</h3></center></div>
|
338 |
+
<div id="pricing_head_all_inclusive" class="mo2fa_pricing_head_supporter"><center><span class="mo2fa_pricing_head_mo_2fa">$199</span>/Year</center></div>
|
339 |
+
<div id="getting_started_2fa_mo_all_inclusive">
|
340 |
+
<center>
|
341 |
+
<a href="#addon_all_inclusive"><button class="mo2fa_make_my_plan_mo">Getting Started</button></a>
|
342 |
+
</center>
|
343 |
+
</div>
|
344 |
+
|
345 |
+
<div id="pricing_feature_collection_supporter_all_inclusive" class="mo2fa_pricing_feature_collection_supporter">
|
346 |
+
<div id="pricing_feature_collection_all_inclusive" class="mo2fa_pricing_feature_collection">
|
347 |
+
<ul class="mo2fa_ul">
|
348 |
+
<p class="mo2fa_feature"><strong>Features</strong></p>
|
349 |
|
350 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_limit_pricing_feature_mo_2fa"><i class="fas fa-times"></i>Unlimited Sites</li>
|
351 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Unlimited Users</li>
|
352 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i><span class="mo2fa_tooltip_methodlist">10+ Authentication Methods
|
353 |
+
<span class="methodlist">
|
354 |
+
<ul class="methods-list-mo2fa" style="margin-left: -43px; ">
|
355 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Google Authenticator</li>
|
356 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Security Questions</li>
|
357 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Authy Authenticator</li>
|
358 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Microsoft Authenticator</li>
|
359 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>LastPass Authenticator</li>
|
360 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>FreeOTP Authenticator</li>
|
361 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Duo Mobile Authenticator</li>
|
362 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Email Verification</li>
|
363 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over Email</li>
|
364 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over SMS</li>
|
365 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>miniOrange QR Code Authenticator</li>
|
366 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>miniOrange Soft Token</li>
|
367 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>miniOrange Push Notification</li>
|
368 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>OTP Over SMS and Email</li>
|
369 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>Hardware Token</li>
|
370 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over Whatsapp</li>
|
371 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over Telegram</li>
|
372 |
+
</ul>
|
373 |
+
</span>
|
374 |
+
</span></li>
|
375 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Force users to set-up 2FA</li>
|
376 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i> 3+ Backup Login Methods</li>
|
377 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Passwordless Login</li>
|
378 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Strong Password</li>
|
379 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Custom SMS Gateway </li>
|
380 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Add-Ons (Included)</li>
|
381 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Advance Login Settings</li>
|
382 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Advance Security Features</li>
|
383 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature" id="addon_all_inclusive"><i class="fas fa-check"></i>Multi-Site Support</li>
|
384 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Language Translation Support</li>
|
385 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Get Online Support Via GoTo/Zoom </li>
|
386 |
+
</ul>
|
387 |
+
|
388 |
+
</div>
|
389 |
+
</div>
|
390 |
+
<div id="pricing_addons_all_inclusive" class="mo2fa_pricing">
|
391 |
<div id="purchase_user_limit_all_inclusive">
|
392 |
+
<p class="mo2fa_more_details_p mo2fa_class"><a href="#details" onclick="mo2fa_show_details()">Click here to compare all plans</a></p>
|
393 |
+
<p class="mo2fa_more_details_p1 mo2fa_hide1"><a href="#details" onclick="mo2fa_show_details()">Click here to hide comparison</a></p>
|
394 |
+
<center><h3 class="mo2fa_purchase_user_limit_mo mo2fa_purchase_limit_mo">Choose No. of Sites</h3>
|
395 |
+
<p class="mo2fa_pricing_p">(Yearly Subscription Fees*)</p>
|
396 |
+
<select id="all_inclusive_price_mo" onclick="update_site_limit_all_inclusive()" onchange="update_site_limit_all_inclusive()" class="mo2fa_increase_my_limit">
|
397 |
+
<option value="199">1 Site - free with the plan</option>
|
398 |
+
<option value="299">2 Sites - $299 per year</option>
|
399 |
+
<option value="499">Upto 5 Sites - $499 per year</option>
|
400 |
+
<option value="799">Upto 10 Sites - $799 per year</option>
|
401 |
+
<option value="1099">Upto 25 Sites - $1099 per year</option>
|
402 |
+
<option value="0">Above 25 - Contact us</option>
|
403 |
</select>
|
404 |
</center>
|
405 |
</div>
|
406 |
+
<div id="purchase_sms_limit_all_inclusive" class="mo2fa_tooltip_sms_info">
|
407 |
+
<center><h3 class="mo2fa_purchase_otp_limit mo2fa_purchase_limit_mo">No. of SMS Transactions </h3>
|
408 |
+
<p class="mo2fa_country">(Only applicable if you will use OTP over SMS as authentication method.)</p>
|
409 |
+
<select id="sms_price_all_inclusive_mo" onchange="update_sms_limit_all_inclusive()" class="mo2fa_increase_my_limit">
|
410 |
+
<option value="0">0 Transaction - $0</option>
|
411 |
+
<option value="5">$5 per 100 OTP + SMS Delivery Charges</option>
|
412 |
+
<option value="15">$15 per 500 OTP + SMS Delivery Charges</option>
|
413 |
+
<option value="22">$22 per 1K OTP + SMS Delivery Charges</option>
|
414 |
+
<option value="30">$30 per 5K OTP + SMS Delivery Charges</option>
|
415 |
+
<option value="40">$40 per 10K OTP + SMS Delivery Charges</option>
|
416 |
+
<option value="90">$90 per 50K OTP + SMS Delivery Charges</option>
|
417 |
+
</select>
|
418 |
+
<span class="mo2fa_sms_info">
|
419 |
+
<p class="mo2fa_country">Transaction prices & SMS delivery charges depend on country.</p>
|
420 |
+
</span>
|
421 |
+
</center>
|
422 |
+
</div>
|
423 |
+
<div class="mo2fa_dollar"> <center><span>$</span><span id="display_my_all_inclusive_pricing"></span></center></div>
|
424 |
+
|
425 |
+
<div id="custom_my_plan_2fa_mo">
|
426 |
<center>
|
427 |
<?php if( isset($is_customer_registered) && $is_customer_registered) { ?>
|
428 |
<a onclick="mo2f_upgradeform('wp_security_two_factor_all_inclusive_plan','2fa_plan')" target="blank"><button class="mo2fa_upgrade_my_plan">Upgrade</button></a>
|
432 |
</center>
|
433 |
</div>
|
434 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
435 |
</div>
|
436 |
<script>
|
437 |
|
438 |
var base_price_site_all_inclusive =0;
|
439 |
var display_my_all_inclusive_price = parseInt(base_price_site_all_inclusive)+parseInt(0)+parseInt(0)+parseInt(0);
|
440 |
+
document.getElementById("display_my_all_inclusive_pricing").innerHTML = + display_my_all_inclusive_price;
|
441 |
+
jQuery('#all_inclusive_price_mo').click();
|
442 |
+
function update_site_limit_all_inclusive() {
|
443 |
+
var sites_all_inclusive = document.getElementById("all_inclusive_price_mo").value;
|
444 |
+
var sms_user_selection_all_inclusive= document.getElementById("sms_price_all_inclusive_mo").value;
|
445 |
+
var total_inclusive = parseInt(base_price_site_all_inclusive)+parseInt(sites_all_inclusive)+parseInt(sms_user_selection_all_inclusive);
|
446 |
+
|
447 |
+
document.getElementById("display_my_all_inclusive_pricing").innerHTML = + total_inclusive;
|
448 |
+
|
449 |
+
}
|
450 |
|
451 |
+
function update_sms_limit_all_inclusive() {
|
452 |
+
var sms = document.getElementById("sms_price_all_inclusive_mo").value;
|
453 |
+
var sms_site_selection = document.getElementById("all_inclusive_price_mo").value;
|
454 |
+
var sms_all_inclusive_mo_2fa= parseInt(base_price_site_all_inclusive)+parseInt(sms)+parseInt(sms_site_selection);
|
455 |
+
|
456 |
+
document.getElementById("display_my_all_inclusive_pricing").innerHTML = + sms_all_inclusive_mo_2fa;
|
457 |
|
458 |
}
|
459 |
|
463 |
<div class="mo2f_upgrade_main_div">
|
464 |
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
|
465 |
|
466 |
+
<div id="pricing_tabs_mo" class="mo2fa_pricing_tabs_mo mo2fa_pricing_tabs_mo_enterprise">
|
|
|
|
|
|
|
|
|
|
|
|
|
467 |
|
468 |
+
<div id="pricing_head" style="text-align: center;">
|
469 |
+
<h3 class="mo2fa_pricing_head_mo_2fa">Enterprise</h3>
|
470 |
+
<h5 class="mo2fa_pricing_head_h5">Starting From </h5>
|
471 |
+
</div>
|
472 |
+
<div id="pricing_head_cost" class="mo2fa_pricing_head_supporter">
|
473 |
+
<center><span class="mo2fa_pricing_head_mo_2fa">$59</span>/Year</center>
|
474 |
</div>
|
|
|
|
|
475 |
|
476 |
+
<div id="getting_started_2fa_mo">
|
477 |
<center>
|
478 |
+
<a href="#addon"><button class="mo2fa_make_my_plan_mo mo2fa_enterprise_getting_started">Getting Started</button></a>
|
479 |
+
</center>
|
480 |
+
</div>
|
481 |
+
|
482 |
+
<div id="pricing_feature_collection_supporter" class="mo2fa_pricing_feature_collection_supporter">
|
483 |
+
<!--<div id="priceing_plan" style="background: #c9dbdbfa;width: 21%;margin-left: 11em;height: 4em;border-radius: 8px;margin-bottom: -30px;padding: 5px 5px 5px 5px;"><center><h3 class="mo2fa_price_mo_2fa">$59</h3>/year</br><p class="mo2fa_starting_from">Starting From</p></center></div>-->
|
484 |
+
|
485 |
+
<div id="pricing_feature_collection" class="mo2fa_pricing_feature_collection">
|
486 |
+
<ul class="mo2fa_ul">
|
487 |
+
<p class="mo2fa_feature"><strong>Features</strong></p>
|
488 |
+
|
489 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Unlimited Sites</li>
|
490 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_limit_pricing_feature_mo_2fa"><i class="fas fa-times"></i>Unlimited Users</li>
|
491 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i><span class="mo2fa_tooltip_methodlist">15+ Authentication Methods
|
492 |
+
<span class="methodlist">
|
493 |
+
<ul class="methods-list-mo2fa" style="margin-left: -43px; ">
|
494 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Google Authenticator</li>
|
495 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Security Questions</li>
|
496 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Authy Authenticator</li>
|
497 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Microsoft Authenticator</li>
|
498 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>LastPass Authenticator</li>
|
499 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>FreeOTP Authenticator</li>
|
500 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Duo Mobile Authenticator</li>
|
501 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Email Verification</li>
|
502 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over Email</li>
|
503 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over SMS</li>
|
504 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>miniOrange QR Code Authentication</li>
|
505 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>miniOrange Soft Token</li>
|
506 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>miniOrange Push Notification</li>
|
507 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over SMS and Email</li>
|
508 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>Hardware Token</li>
|
509 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-mo-size-cross"><i class="fas fa-times mo2fa_fa-times icon-mo2fa-methods"></i>OTP Over Whatsapp</li>
|
510 |
+
<li class="feature_collect_mo-2fa mo2fa_method-list-size"><i class="fas fa-check mo2fa_fa-check icon-mo2fa-methods"></i>OTP Over Telegram</li>
|
511 |
+
</ul>
|
512 |
+
</span>
|
513 |
+
</span></li>
|
514 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Force users to set-up 2FA</li>
|
515 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i> 3+ Backup Login Methods</li>
|
516 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Passwordless Login </li>
|
517 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Strong Password</li>
|
518 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Custom SMS Gateway </li>
|
519 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Add-Ons (Limited)</li>
|
520 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Advance Login Settings</li>
|
521 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Advance Security Features</li>
|
522 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature" id="addon"><i class="fas fa-check" id="addon"></i>Multi-Site Support</li>
|
523 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Language Translation Support</li>
|
524 |
+
<li class="mo2fa_feature_collect_mo-2fa mo2fa_unltimate_feature"><i class="fas fa-check"></i>Get Online Support Via GoTo/Zoom </li>
|
525 |
+
</ul>
|
526 |
+
|
527 |
+
</div>
|
528 |
+
</div>
|
529 |
+
<div id="pricing_addons" class="mo2fa_pricing">
|
530 |
+
<center>
|
531 |
+
<div id="purchase_user_limit">
|
532 |
+
<p class="mo2fa_more_details_p mo2fa_class"><a href="#details" onclick="mo2fa_show_details()">Click here to compare all plans</a></p>
|
533 |
+
<p class="mo2fa_more_details_p1 mo2fa_hide1"><a href="#details" onclick="mo2fa_show_details()">Click here to hide comparison</a></p>
|
534 |
+
<center><h3 class="mo2fa_purchase_user_limit_mo mo2fa_purchase_limit_mo">Choose No. of Users </h3>
|
535 |
+
<p class="mo2fa_pricing_p">(Yearly Subscription Fees*)</p>
|
536 |
+
<select id="user_price" onclick="update_user_limit()" onchange="update_user_limit()" class="mo2fa_increase_my_limit">
|
537 |
+
<option value="59">Upto-5 users - $59 per year</option>
|
538 |
+
<option value="128">Upto-50 users - $128 per year</option>
|
539 |
+
<option value="228">Upto-100 users - $228 per year</option>
|
540 |
+
<option value="378">Upto-500 users - $378 per year</option>
|
541 |
+
<option value="528">Upto-1000 users - $528 per year</option>
|
542 |
+
<option value="828">Upto-5000 users - $828 per year</option>
|
543 |
+
<option value="1028">Upto-10000 users - $1028 per year</option>
|
544 |
+
<option value="1528">Upto-20000 users - $1528 per year</option>
|
545 |
+
<option value="0">Unlimited Users - Contact Us</option>
|
546 |
</select>
|
547 |
</center>
|
548 |
</div>
|
549 |
+
<div id="purchase_sms_limit" class="mo2fa_tooltip_sms_info">
|
550 |
+
<center><h3 class="mo2fa_purchase_otp_limit mo2fa_purchase_limit_mo">No. of SMS Transactions </h3>
|
551 |
+
<p class="mo2fa_country">(Only applicable if you will use OTP over SMS as authentication method.)</p>
|
552 |
+
<select id="sms_price" onchange="update_sms_limit()" class="mo2fa_increase_my_limit">
|
553 |
+
<option value="0">0 Transaction - $0</option>
|
554 |
+
<option value="5">$5 per 100 OTP + SMS Delivery Charges</option>
|
555 |
+
<option value="15">$15 per 500 OTP + SMS Delivery Charges</option>
|
556 |
+
<option value="22">$22 per 1K OTP + SMS Delivery Charges</option>
|
557 |
+
<option value="30">$30 per 5K OTP + SMS Delivery Charges</option>
|
558 |
+
<option value="40">$40 per 10K OTP + SMS Delivery Charges</option>
|
559 |
+
<option value="90">$90 per 50K OTP + SMS Delivery Charges</option>
|
560 |
+
</select>
|
561 |
+
<span class="mo2fa_sms_info">
|
562 |
+
<p class="mo2fa_country">Transaction prices & SMS delivery charges depend on country.</p>
|
563 |
+
</span>
|
564 |
+
</center>
|
565 |
+
</div>
|
566 |
+
<div class="mo2fa_dollar"> <center><span>$</span><span id="mo_pricing_adder"></span></center></div>
|
567 |
|
568 |
<div id="details">
|
569 |
<center>
|
570 |
<?php if( isset($is_customer_registered) && $is_customer_registered) { ?>
|
571 |
+
<a onclick="mo2f_upgradeform('wp_2fa_enterprise_plan','2fa_plan')" target="blank"><button class="mo2fa_upgrade_my_plan">Upgrade</button></a>
|
572 |
<?php }else{ ?>
|
573 |
+
<a onclick="mo2f_register_and_upgradeform('wp_2fa_enterprise_plan','2fa_plan')" target="blank"><button class="mo2fa_upgrade_my_plan">Upgrade</button></a>
|
574 |
<?php }?>
|
575 |
</center>
|
576 |
</div>
|
577 |
</center>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
578 |
</div>
|
|
|
579 |
</div>
|
580 |
|
581 |
<script>
|
582 |
var base_price =0;
|
583 |
var display_me = parseInt(base_price)+parseInt(30)+parseInt(0)+parseInt(0);
|
584 |
+
document.getElementById("mo_pricing_adder").innerHTML = + display_me;
|
585 |
+
jQuery('#user_price').click();
|
586 |
+
function update_user_limit() {
|
587 |
+
var users = document.getElementById("user_price").value;
|
588 |
+
var sms_user_selection= document.getElementById("sms_price").value;
|
589 |
+
var users_addion = parseInt(base_price)+parseInt(users)+parseInt(sms_user_selection);
|
590 |
|
591 |
+
document.getElementById("mo_pricing_adder").innerHTML = + users_addion;
|
592 |
|
593 |
}
|
594 |
|
595 |
+
function update_sms_limit() {
|
596 |
+
var sms = document.getElementById("sms_price").value;
|
597 |
+
var users_sms_selection = document.getElementById("user_price").value;
|
598 |
+
|
599 |
+
var sms_addion = parseInt(base_price)+parseInt(sms)+parseInt(users_sms_selection );
|
600 |
+
|
601 |
+
document.getElementById("mo_pricing_adder").innerHTML = + sms_addion;
|
602 |
+
|
603 |
+
}
|
604 |
|
605 |
</script>
|
606 |
|
608 |
</div>
|
609 |
<div id="mo2fa_compare">
|
610 |
<center>
|
611 |
+
<div class=""><a href="#details" onclick="mo2fa_show_details()"><button class="mo2fa_upgrade_my_plan mo2fa_compare1">Click here to Compare Features</button></a></div>
|
612 |
+
<div><a href="#details" onclick="mo2fa_show_details()"><button style="display: none;" class="mo2fa_upgrade_my_plan mo2fa_compare1">Click here to Hide Comparison</button></a></div>
|
613 |
</center>
|
614 |
</div>
|
615 |
+
<div id="mo_ns_features_only" style="display: none;">
|
|
|
616 |
|
617 |
<div class="mo_wpns_upgrade_security_title" >
|
618 |
<div class="mo_wpns_upgrade_page_title_name">
|
785 |
</div>
|
786 |
<center>
|
787 |
<br>
|
788 |
+
<div id="more_details" style="display:none;">
|
789 |
<div class="mo2fa_table-scrollbar"></br></br>
|
790 |
<table class="table mo2fa_table_features table-striped">
|
791 |
+
<caption class="pricing_head_mo_2fa"><h1>Feature Details</h1></caption>
|
792 |
<thead>
|
793 |
<tr class="mo2fa_main_category_header" style="font-size: 20px;">
|
794 |
<th scope="col">Features</th>
|
812 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
813 |
|
814 |
</tr>
|
815 |
+
<tr class="bg_category_main_mo_2fa">
|
816 |
<th scope="row">Authentication Methods</th>
|
817 |
<td></td>
|
818 |
<td></td>
|
819 |
<td></td>
|
820 |
</tr>
|
821 |
<tr>
|
822 |
+
<th scope="row" class="category_feature_mo_2fa">Google Authenticator</th>
|
823 |
<td><center><i class="fas fa-check"></i></center></td>
|
824 |
<td><center><i class="fas fa-check"></i></center></td>
|
825 |
<td><center><i class="fas fa-check"></i></center></td>
|
826 |
</tr>
|
827 |
<tr>
|
828 |
+
<th scope="row" class="category_feature_mo_2fa">Security Questions</th>
|
829 |
<td><center><i class="fas fa-check"></i></center></td>
|
830 |
<td><center><i class="fas fa-check"></i></center></td>
|
831 |
<td><center><i class="fas fa-check"></i></center></td>
|
832 |
|
833 |
</tr>
|
834 |
<tr>
|
835 |
+
<th scope="row" class="category_feature_mo_2fa">TOTP Based Authenticator</th>
|
836 |
<td><center><i class="fas fa-check"></i></center></td>
|
837 |
<td><center><i class="fas fa-check"></i></center></td>
|
838 |
<td><center><i class="fas fa-check"></i></center></td>
|
839 |
|
840 |
</tr>
|
841 |
<tr>
|
842 |
+
<th scope="row" class="category_feature_mo_2fa">Authy Authenticator</th>
|
843 |
<td><center><i class="fas fa-check"></i></center></td>
|
844 |
<td><center><i class="fas fa-check"></i></center></td>
|
845 |
<td><center><i class="fas fa-check"></i></center></td>
|
846 |
|
847 |
</tr>
|
848 |
<tr>
|
849 |
+
<th scope="row" class="category_feature_mo_2fa">Email Verification</th>
|
850 |
<td><center><i class="fas fa-check"></i></center></td>
|
851 |
<td><center><i class="fas fa-check"></i></center></td>
|
852 |
<td><center><i class="fas fa-check"></i></center></td>
|
853 |
|
854 |
</tr>
|
855 |
<tr>
|
856 |
+
<th scope="row" class="category_feature_mo_2fa">OTP Over Email (Email Charges apply)</th>
|
857 |
<td><center><i class="fas fa-check"></i></center></td>
|
858 |
<td><center><i class="fas fa-check"></i></center></td>
|
859 |
<td><center><i class="fas fa-check"></i></center></td>
|
861 |
|
862 |
</tr>
|
863 |
<tr>
|
864 |
+
<th scope="row" class="category_feature_mo_2fa">OTP Over SMS (SMS Charges apply)</th>
|
865 |
<td><center><i class="fas fa-check"></i></center></td>
|
866 |
<td><center><i class="fas fa-check"></i></center></td>
|
867 |
<td><center><i class="fas fa-check"></i></center></td>
|
869 |
</tr>
|
870 |
|
871 |
<tr>
|
872 |
+
<th scope="row" class="category_feature_mo_2fa">miniOrange QR Code Authentication</th>
|
873 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
874 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
875 |
<td><center><i class="fas fa-check"></i></center></td>
|
876 |
</tr>
|
877 |
<tr>
|
878 |
+
<th scope="row" class="category_feature_mo_2fa">miniOrange Soft Token</th>
|
879 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
880 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
881 |
<td><center><i class="fas fa-check"></i></center></td>
|
882 |
</tr>
|
883 |
<tr>
|
884 |
+
<th scope="row" class="category_feature_mo_2fa">miniOrange Push Notification</th>
|
885 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
886 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
887 |
<td><center><i class="fas fa-check"></i></center></td>
|
888 |
</tr>
|
889 |
<tr>
|
890 |
+
<th scope="row" class="category_feature_mo_2fa">OTP Over SMS and Email (SMS and Email Charges apply)</th>
|
891 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
892 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
893 |
<td><center><i class="fas fa-check"></i></center></td>
|
894 |
|
895 |
</tr>
|
896 |
<tr>
|
897 |
+
<th scope="row" class="category_feature_mo_2fa">Hardware Token</th>
|
898 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
899 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
900 |
<td><center><i class="fas fa-check"></i></center></td>
|
901 |
|
902 |
</tr>
|
903 |
<tr>
|
904 |
+
<th scope="row" class="category_feature_mo_2fa">OTP Over Whatsapp (Add-on)</th>
|
905 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
906 |
<td><center><i class="fas fa-check"></i></center></td>
|
907 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
908 |
</tr>
|
909 |
<tr>
|
910 |
+
<th scope="row" class="category_feature_mo_2fa">OTP Over Telegram</th>
|
911 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
912 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
913 |
<td><center><i class="fas fa-check"></i></center></td>
|
|
|
914 |
</tr>
|
915 |
+
<tr class="bg_category_main_mo_2fa">
|
916 |
<th scope="row">Backup Login Methods</th>
|
917 |
<td></td>
|
918 |
<td></td>
|
919 |
<td></td>
|
920 |
</tr>
|
921 |
<tr>
|
922 |
+
<th scope="row" class="category_feature_mo_2fa">Security Questions (KBA)</th>
|
923 |
<td><center><i class="fas fa-check"></i></center></td>
|
924 |
<td><center><i class="fas fa-check"></i></center></td>
|
925 |
<td><center><i class="fas fa-check"></i></center></td>
|
926 |
</tr>
|
927 |
<tr>
|
928 |
+
<th scope="row" class="category_feature_mo_2fa">OTP Over Email</th>
|
929 |
<td><center><i class="fas fa-check"></i></center></td>
|
930 |
<td><center><i class="fas fa-check"></i></center></td>
|
931 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
932 |
</tr>
|
933 |
<tr>
|
934 |
+
<th scope="row" class="category_feature_mo_2fa">Backup Codes</th>
|
935 |
<td><center><i class="fas fa-check"></i></center></td>
|
936 |
<td><center><i class="fas fa-check"></i></center></td>
|
937 |
<td><center><i class="fas fa-check"></i></center></td>
|
938 |
</tr>
|
939 |
+
<tr class="bg_category_main_mo_2fa">
|
940 |
<th scope="row">Password Policy</th>
|
941 |
<td></td>
|
942 |
<td></td>
|
944 |
|
945 |
</tr>
|
946 |
<tr>
|
947 |
+
<th scope="row" class="category_feature_mo_2fa">Passwordless Login</th>
|
948 |
<td><center><i class="fas fa-check"></i></center></td>
|
949 |
<td><center><i class="fas fa-check"></i></center></td>
|
950 |
<td><center><i class="fas fa-check"></i></center></td>
|
951 |
</tr>
|
952 |
+
<tr>
|
953 |
+
<th scope="row" class="category_feature_mo_2fa">Strong Password</th>
|
954 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
955 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
956 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
957 |
+
|
958 |
+
</tr>
|
959 |
<tr>
|
960 |
<th scope="row">Custom Gateway</th>
|
961 |
<td><center><i class="fas fa-check"></i></center></td>
|
963 |
<td><center><i class="fas fa-check"></i></center></td>
|
964 |
|
965 |
</tr>
|
966 |
+
<tr class="bg_category_main_mo_2fa">
|
967 |
<th scope="row">Add-Ons</th>
|
968 |
<td></td>
|
969 |
<td></td>
|
971 |
|
972 |
</tr>
|
973 |
<tr>
|
974 |
+
<th scope="row" class="category_feature_mo_2fa">Remember Device Add-on</br><p class="description_mo_2fa">You can save your device using the Remember device addon and you will get a two-factor authentication </br>prompt to check your identity if you try to login from different devices.</p></th>
|
975 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
976 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
977 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
978 |
</tr>
|
979 |
<tr>
|
980 |
+
<th scope="row" class="category_feature_mo_2fa">Personalization Add-on<p class="description_mo_2fa">You'll get many more customization options in Personalization, such as </br>ustom Email and SMS Template, Custom Login Popup, Custom Security Questions, and many more.</p></th>
|
981 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
982 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
983 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
984 |
</tr>
|
985 |
<tr>
|
986 |
+
<th scope="row" class="category_feature_mo_2fa">Short Codes Add-on<p class="description_mo_2fa">Shortcode Add-ons mostly include Allow 2fa shortcode (you can use this this to add 2fa on any page), </br>Reconfigure 2fa add-on (you can use this add-on to reconfigure your 2fa if you have lost your 2fa verification ability), remember device shortcode.</p></th>
|
987 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
988 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
989 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
990 |
</tr>
|
991 |
<tr>
|
992 |
+
<th scope="row" class="category_feature_mo_2fa">Session Management</th>
|
993 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
994 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
995 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
996 |
+
</tr><tr>
|
997 |
+
<th scope="row" class="category_feature_mo_2fa">Page Restriction Add-On</th>
|
998 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
999 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
1000 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1001 |
+
</tr><tr>
|
1002 |
+
<th scope="row" class="category_feature_mo_2fa">Attribute Based Redirection</th>
|
1003 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1004 |
<td><center><i class="fas fa-check"></i></center></td>
|
1005 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1006 |
</tr>
|
1007 |
+
<th scope="row" class="category_feature_mo_2fa">SCIM-User Provisioning</th>
|
1008 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1009 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
1010 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1011 |
+
</tr>
|
1012 |
+
|
1013 |
+
|
1014 |
+
<tr class="bg_category_main_mo_2fa">
|
1015 |
<th scope="row">Advance Wordpress Login Settings</th>
|
1016 |
<td></td>
|
1017 |
<td></td>
|
1019 |
|
1020 |
</tr>
|
1021 |
<tr>
|
1022 |
+
<th scope="row" class="category_feature_mo_2fa">Force Two Factor for Users</th>
|
1023 |
<td><center><i class="fas fa-check"></i></center></td>
|
1024 |
<td><center><i class="fas fa-check"></i></center></td>
|
1025 |
<td><center><i class="fas fa-check"></i></center></td>
|
1026 |
</tr>
|
1027 |
<tr>
|
1028 |
+
<th scope="row" class="category_feature_mo_2fa">Role Based and User Based Authentication settings</th>
|
1029 |
<td><center><i class="fas fa-check"></i></center></td>
|
1030 |
<td><center><i class="fas fa-check"></i></center></td>
|
1031 |
<td><center><i class="fas fa-check"></i></center></td>
|
1032 |
</tr>
|
1033 |
<tr>
|
1034 |
+
<th scope="row" class="category_feature_mo_2fa">Email Verififcation during Two-Factor Registration</th>
|
1035 |
<td><center><i class="fas fa-check"></i></center></td>
|
1036 |
<td><center><i class="fas fa-check"></i></center></td>
|
1037 |
<td><center><i class="fas fa-check"></i></center></td>
|
1038 |
|
1039 |
</tr>
|
1040 |
<tr>
|
1041 |
+
<th scope="row" class="category_feature_mo_2fa">Custom Redirect URL</th>
|
1042 |
<td><center><i class="fas fa-check"></i></center></td>
|
1043 |
<td><center><i class="fas fa-check"></i></center></td>
|
1044 |
<td><center><i class="fas fa-check"></i></center></td>
|
1045 |
|
1046 |
</tr><tr>
|
1047 |
+
<th scope="row" class="category_feature_mo_2fa">Inline Registration</th>
|
1048 |
<td><center><i class="fas fa-check"></i></center></td>
|
1049 |
<td><center><i class="fas fa-check"></i></center></td>
|
1050 |
<td><center><i class="fas fa-check"></i></center></td>
|
1051 |
|
1052 |
</tr><tr>
|
1053 |
+
<th scope="row" class="category_feature_mo_2fa">Mobile Support</th>
|
1054 |
<td><center><i class="fas fa-check"></i></center></td>
|
1055 |
<td><center><i class="fas fa-check"></i></center></td>
|
1056 |
<td><center><i class="fas fa-check"></i></center></td>
|
1057 |
|
1058 |
</tr><tr>
|
1059 |
+
<th scope="row" class="category_feature_mo_2fa">Privacy Policy Settings</th>
|
1060 |
<td><center><i class="fas fa-check"></i></center></td>
|
1061 |
<td><center><i class="fas fa-check"></i></center></td>
|
1062 |
<td><center><i class="fas fa-check"></i></center></td>
|
1063 |
|
1064 |
</tr><tr>
|
1065 |
+
<th scope="row" class="category_feature_mo_2fa">XML-RPC </th>
|
1066 |
<td><center><i class="fas fa-check"></i></center></td>
|
1067 |
<td><center><i class="fas fa-check"></i></center></td>
|
1068 |
<td><center><i class="fas fa-check"></i></center></td>
|
1069 |
|
1070 |
</tr>
|
1071 |
+
<tr class="bg_category_main_mo_2fa">
|
1072 |
<th scope="row">Advance Security Features</th>
|
1073 |
<td></td>
|
1074 |
<td></td>
|
1076 |
|
1077 |
</tr>
|
1078 |
<tr>
|
1079 |
+
<th scope="row" class="category_feature_mo_2fa">Brute Force Protection</th>
|
1080 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1081 |
<td><center><i class="fas fa-check"></i></center></td>
|
1082 |
<td><center><i class="fas fa-check"></i></center></td>
|
1083 |
|
1084 |
</tr>
|
1085 |
<tr>
|
1086 |
+
<th scope="row" class="category_feature_mo_2fa">IP Blocking </th>
|
1087 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1088 |
<td><center><i class="fas fa-check"></i></center></td>
|
1089 |
<td><center><i class="fas fa-check"></i></center></td>
|
1090 |
|
1091 |
</tr>
|
1092 |
<tr>
|
1093 |
+
<th scope="row" class="category_feature_mo_2fa">Monitoring</th>
|
1094 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1095 |
<td><center><i class="fas fa-check"></i></center></td>
|
1096 |
<td><center><i class="fas fa-check"></i></center></td>
|
1097 |
|
1098 |
</tr> <tr>
|
1099 |
+
<th scope="row" class="category_feature_mo_2fa">File Protection</th>
|
1100 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1101 |
<td><center><i class="fas fa-check"></i></center></td>
|
1102 |
<td><center><i class="fas fa-check"></i></center></td>
|
1103 |
|
1104 |
</tr>
|
1105 |
<tr>
|
1106 |
+
<th scope="row" class="category_feature_mo_2fa">Country Blocking </th>
|
1107 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1108 |
<td><center><i class="fas fa-check"></i></center></td>
|
1109 |
<td><center><i class="fas fa-check"></i></center></td>
|
1110 |
|
1111 |
</tr>
|
1112 |
<tr>
|
1113 |
+
<th scope="row" class="category_feature_mo_2fa">HTACCESS Level Blocking </th>
|
1114 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1115 |
<td><center><i class="fas fa-check"></i></center></td>
|
1116 |
<td><center><i class="fas fa-check"></i></center></td>
|
1117 |
|
1118 |
</tr>
|
1119 |
<tr>
|
1120 |
+
<th scope="row" class="category_feature_mo_2fa">Browser Blocking </th>
|
1121 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1122 |
<td><center><i class="fas fa-check"></i></center></td>
|
1123 |
<td><center><i class="fas fa-check"></i></center></td>
|
1124 |
|
1125 |
</tr>
|
1126 |
<tr>
|
1127 |
+
<th scope="row" class="category_feature_mo_2fa">Block Global Blacklisted Email Domains</th>
|
1128 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1129 |
<td><center><i class="fas fa-check"></i></center></td>
|
1130 |
<td><center><i class="fas fa-check"></i></center></td>
|
1131 |
|
1132 |
</tr>
|
1133 |
<tr>
|
1134 |
+
<th scope="row" class="category_feature_mo_2fa">Manual Block Email Domains</th>
|
1135 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1136 |
<td><center><i class="fas fa-check"></i></center></td>
|
1137 |
<td><center><i class="fas fa-check"></i></center></td>
|
1138 |
|
1139 |
</tr>
|
1140 |
<tr>
|
1141 |
+
<th scope="row" class="category_feature_mo_2fa">DB Backup</th>
|
1142 |
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1143 |
<td><center><i class="fas fa-check"></i></center></td>
|
1144 |
<td><center><i class="fas fa-check"></i></center></td>
|
1146 |
</tr>
|
1147 |
<tr>
|
1148 |
<th scope="row">Multi-Site Support</th>
|
|
|
|
|
1149 |
<td><center><i class="fas fa-check"></i></center></td>
|
1150 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1151 |
+
<td><center><i class="fas fa-times mo2fa_hide"></i></center></td>
|
1152 |
</tr><tr>
|
1153 |
<th scope="row">Language Translation Support</th>
|
|
|
1154 |
<td><center><i class="fas fa-check"></i></center></td>
|
1155 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
1156 |
+
<td><center><i class="fas fa-check"></i></center></td>
|
1157 |
|
1158 |
</tr><tr>
|
1159 |
<th scope="row">Get online support with GoTo/Zoom meeting</th>
|
1167 |
</div>
|
1168 |
</div>
|
1169 |
</center>
|
1170 |
+
<div class="mo_wpns_setting_layout mo2fa_setting_layout">
|
1171 |
<div>
|
1172 |
<h2><?php echo mo2f_lt('Steps to upgrade to the Premium Plan :');?></h2>
|
1173 |
<ol class="mo2f_licensing_plans_ol">
|
1185 |
<div>
|
1186 |
<h2><?php echo mo2f_lt('Note :');?></h2>
|
1187 |
<ol class="mo2f_licensing_plans_ol">
|
|
|
1188 |
<li><?php echo mo2f_lt( 'The plugin works with many of the default custom login forms (like Woocommerce/Theme My Login/Login With Ajax/User Pro/Elementor), however if you face any issues with your custom login form, contact us and we will help you with it.' ); ?></li>
|
1189 |
<li><?php echo mo2f_lt( 'The <b>license key </b>is required to activate the <b>Premium Lite/Premium</b> Plugins. You will have to login with the miniOrange Account you used to make the purchase then enter license key to activate plugin.' ); ?>
|
1190 |
|
1212 |
<hr>
|
1213 |
<br>
|
1214 |
<div>
|
1215 |
+
<?php echo mo2f_lt( '<b class="mo2fa_note">Privacy Policy : </b><a href="https://www.miniorange.com/2-factor-authentication-for-wordpress-gdpr">Click Here</a>
|
1216 |
to read our Privacy Policy.' ); ?>
|
1217 |
</div>
|
1218 |
<br>
|
1224 |
</div>
|
1225 |
</div>
|
1226 |
</center>
|
1227 |
+
<div id="mo2f_payment_option" class="mo_wpns_setting_layout mo2fa_setting_layout">
|
1228 |
<div>
|
1229 |
<h3>Supported Payment Methods</h3><hr>
|
1230 |
<div class="mo_2fa_container">
|
1277 |
function mo2f_waf_yearly_standard_pricing() {
|
1278 |
?>
|
1279 |
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
1280 |
+
id="mo2f_yearly_sub"><?php echo __( 'Yearly Subscription Fees', 'miniorange-2-factor-authentication' ); ?><br>
|
1281 |
|
1282 |
<select id="mo2f_yearly" class="form-control mo2fa_form_control1">
|
1283 |
<option> <?php echo mo2f_lt( '1 site - $50 per year' ); ?> </option>
|
1292 |
function mo2f_login_yearly_standard_pricing() {
|
1293 |
?>
|
1294 |
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
1295 |
+
id="mo2f_yearly_sub"><?php echo __( 'Yearly Subscription Fees', 'miniorange-2-factor-authentication' ); ?><br>
|
1296 |
|
1297 |
<select id="mo2f_yearly" class="form-control mo2fa_form_control1">
|
1298 |
<option> <?php echo mo2f_lt( '1 site - $15 per year' ); ?> </option>
|
1307 |
function mo2f_backup_yearly_standard_pricing() {
|
1308 |
?>
|
1309 |
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
1310 |
+
id="mo2f_yearly_sub"><?php echo __( 'Yearly Subscription Fees', 'miniorange-2-factor-authentication' ); ?><br>
|
1311 |
|
1312 |
<select id="mo2f_yearly" class="form-control mo2fa_form_control1">
|
1313 |
<option> <?php echo mo2f_lt( '1 site - $30 per year' ); ?> </option>
|
1322 |
function mo2f_scanner_yearly_standard_pricing() {
|
1323 |
?>
|
1324 |
<p class="mo2f_pricing_text mo_wpns_upgrade_page_starting_price"
|
1325 |
+
id="mo2f_yearly_sub"><?php echo __( 'Yearly Subscription Fees', 'miniorange-2-factor-authentication' ); ?><br>
|
1326 |
|
1327 |
<select id="mo2f_yearly" class="form-control mo2fa_form_control1">
|
1328 |
<option> <?php echo mo2f_lt( '1 site - $15 per year' ); ?> </option>
|
1338 |
function mo2f_get_binary_equivalent_2fa_lite( $mo2f_var ) {
|
1339 |
switch ( $mo2f_var ) {
|
1340 |
case 1:
|
1341 |
+
return "<div style='color: #20b2aa;font-size: x-large;float:left;margin:0px 5px;'>🗸</div>";
|
1342 |
case 0:
|
1343 |
+
return "<div style='color: red;font-size: x-large;float:left;margin:0px 5px;'>×</div>";
|
1344 |
default:
|
1345 |
return $mo2f_var;
|
1346 |
}
|
1399 |
}
|
1400 |
function show_2fa_plans()
|
1401 |
{
|
1402 |
+
document.getElementById('mo_ns_features_only').style.display = "none";
|
1403 |
document.getElementById('mo2f_twofa_plans').style.display = "flex";
|
1404 |
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "none";
|
1405 |
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "block";
|
1406 |
+
document.getElementById('mo_ns_licensing_plans_title').style.display = "block";
|
1407 |
document.getElementById('mo_ns_licensing_plans_title1').style.display = "none";
|
1408 |
document.getElementById('mo2fa_compare').style.display = "block";
|
1409 |
}
|
1410 |
function mo_ns_show_plans()
|
1411 |
{
|
1412 |
+
document.getElementById('mo_ns_features_only').style.display = "block";
|
1413 |
document.getElementById('mo2f_twofa_plans').style.display = "none";
|
1414 |
document.getElementById('mo_2fa_lite_licensing_plans_title').style.display = "block";
|
1415 |
document.getElementById('mo_2fa_lite_licensing_plans_title1').style.display = "none";
|
1416 |
+
document.getElementById('mo_ns_licensing_plans_title').style.display = "none";
|
1417 |
document.getElementById('mo_ns_licensing_plans_title1').style.display = "block";
|
1418 |
document.getElementById('mo2fa_compare').style.display = "none";
|
1419 |
}
|
1425 |
|
1426 |
function mo2fa_show_details()
|
1427 |
{
|
1428 |
+
jQuery('#more_details').toggle();
|
1429 |
jQuery('.mo2fa_more_details_p1').toggle();
|
1430 |
jQuery('.mo2fa_more_details_p').toggle();
|
1431 |
jQuery('.mo2fa_compare1').toggle();
|
views/upgrade_2fa_lite.php
CHANGED
@@ -628,7 +628,7 @@ function mo2f_create_li_2fa_lite( $mo2f_array ) {
|
|
628 |
function mo2f_get_binary_equivalent_2fa_lite( $mo2f_var ) {
|
629 |
switch ( $mo2f_var ) {
|
630 |
case 1:
|
631 |
-
return "<div style='color: #
|
632 |
case 0:
|
633 |
return "<div style='color: red;font-size: x-large;float:left;margin:0px 5px;'>×</div>";
|
634 |
default:
|
628 |
function mo2f_get_binary_equivalent_2fa_lite( $mo2f_var ) {
|
629 |
switch ( $mo2f_var ) {
|
630 |
case 1:
|
631 |
+
return "<div style='color: #20b2aa;font-size: x-large;float:left;margin:0px 5px;'>🗸</div>";
|
632 |
case 0:
|
633 |
return "<div style='color: red;font-size: x-large;float:left;margin:0px 5px;'>×</div>";
|
634 |
default:
|
views/waf.php
CHANGED
@@ -4,22 +4,21 @@ $setup_dirName = $mo2f_dirName.'views'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEP
|
|
4 |
include $setup_dirName;
|
5 |
include_once $mo2f_dirName.'handler'.DIRECTORY_SEPARATOR.'WAF'.DIRECTORY_SEPARATOR.'database'.DIRECTORY_SEPARATOR.'mo-waf-db-common.php';
|
6 |
?>
|
7 |
-
<div class="
|
8 |
-
<div class="
|
9 |
-
<button class="
|
10 |
-
<button class="
|
11 |
-
<button class="
|
12 |
-
<button class="
|
13 |
-
<button class="
|
14 |
</div>
|
15 |
</div>
|
16 |
<br>
|
17 |
-
<div>
|
18 |
-
<div id="mo2f_firewall_attack_dash_div" class="tabcontent">
|
19 |
<div class="mo_wpns_divided_layout">
|
20 |
-
<div class="
|
21 |
<div class="mo_wpns_small_2_layout">
|
22 |
-
<div class ="mo_wpns_sub_dashboards_layout">Attacks Blocked<hr><
|
23 |
<div class="mo_wpns_small_3_layout">
|
24 |
<div class ="mo_wpns_sub_sub_dashboard_layout">Injections<hr class="line"><?php echo $sqlC; ?></></div>
|
25 |
<div class ="mo_wpns_sub_sub_dashboard_layout">RCE<hr class="line"><?php echo $rceC; ?></div>
|
@@ -28,12 +27,13 @@ $setup_dirName = $mo2f_dirName.'views'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEP
|
|
28 |
</div>
|
29 |
</div>
|
30 |
<div class="mo_wpns_small_2_layout">
|
31 |
-
|
|
|
32 |
<div class="mo_wpns_small_3_layout">
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
</div>
|
38 |
</div>
|
39 |
</div>
|
@@ -42,7 +42,7 @@ $setup_dirName = $mo2f_dirName.'views'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEP
|
|
42 |
<p><i class="mo_wpns_not_bold">
|
43 |
This contains settings of your <b>Website Application Firewall</b> with settings of <b>SQL Injecton, Cross Site Scripting, Local File Inclusion, Remote File Inclusion, Remote Code Inclusion,</b> etc.<br><br><br><br>
|
44 |
</i></p>
|
45 |
-
<input type="button" name="SettingPage" id="SettingPage" value="Settings" class="
|
46 |
|
47 |
</div>
|
48 |
<div class="mo_wpns_small_layout">
|
@@ -50,7 +50,7 @@ $setup_dirName = $mo2f_dirName.'views'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEP
|
|
50 |
<p><i class="mo_wpns_not_bold">
|
51 |
Real Time Blocking is <b>blocking IPs in real time</b> by miniOrange IP dataset. If any IP is found malicious then that IP will be added to the <b>miniOrange IP dataset</b> which is <b>maintained in real time.</b> By enabling this feature, if any IP is found malicious on <b>any miniOrange customer's site</b> then that IP will be <b>automatically blocked from your site as well.</b> <br><br>
|
52 |
</i></p>
|
53 |
-
<input type="button" name="RTBPage" id="RTBPage" value="Real Time Blocking" class="
|
54 |
|
55 |
</div>
|
56 |
<div class="mo_wpns_small_layout">
|
@@ -58,18 +58,18 @@ $setup_dirName = $mo2f_dirName.'views'.DIRECTORY_SEPARATOR.'twofa'.DIRECTORY_SEP
|
|
58 |
<p><i class="mo_wpns_not_bold">
|
59 |
Rate Limiting is used for <b>controlling the amount of incoming requests</b> from a <b>specific IP</b> to a service(Website). In this feature you can decide the <b>number of requests</b> a user can make to your website. If this is not enabled, an attacker can send <b>any number of requests</b> to a service that can lead to a <b>denial of service</b> by which legitimate users of the website will not be able to access the website.
|
60 |
</i></p>
|
61 |
-
<input type="button" name="RLPage" id="RLPage" value="Rate limiting" class="
|
62 |
|
63 |
|
64 |
</div>
|
65 |
|
66 |
-
</div>
|
67 |
|
68 |
|
69 |
|
70 |
</div>
|
71 |
|
72 |
-
<div id="
|
73 |
<div class="mo_wpns_divided_layout">
|
74 |
<div class="mo_wpns_setting_layout">
|
75 |
<h2>Blocked attacks Report</h2>
|
@@ -98,7 +98,7 @@ echo "<td>".date("M j, Y, g:i:s a",$blockedattack->time)."</td><td>".$blocked
|
|
98 |
</div>
|
99 |
</div>
|
100 |
|
101 |
-
<div id="
|
102 |
<div class="mo_wpns_divided_layout">
|
103 |
<div class="mo_wpns_setting_layout">
|
104 |
|
@@ -121,14 +121,14 @@ echo "<td>".date("M j, Y, g:i:s a",$blockedattack->time)."</td><td>".$blocked
|
|
121 |
</div>
|
122 |
</div>
|
123 |
|
124 |
-
<div id="
|
125 |
<div class="mo_wpns_divided_layout">
|
126 |
-
<div class="mo_wpns_setting_layout" id='
|
127 |
<div id="RL" name="RL">
|
128 |
<table style="width:100%">
|
129 |
<tr>
|
130 |
<th align="left">
|
131 |
-
<h3>Rate Limiting : <a href='<?php echo $two_factor_premium_doc['Rate Limiting'];?>' target="_blank"><span class=" dashicons dashicons-text-page" style="font-size:23px;color:#
|
132 |
<br>
|
133 |
<p><i class="mo_wpns_not_bold">This will protect your Website from Dos attack and block request after a limit exceed.</i></p>
|
134 |
</th>
|
@@ -163,7 +163,7 @@ echo "<td>".date("M j, Y, g:i:s a",$blockedattack->time)."</td><td>".$blocked
|
|
163 |
</th></tr>
|
164 |
<tr><th></th>
|
165 |
<th align="center">
|
166 |
-
<br><input type="button" name="saveRateL" id="saveRateL" value="Save" class="
|
167 |
</th>
|
168 |
</tr>
|
169 |
</table>
|
@@ -205,7 +205,7 @@ echo "<td>".date("M j, Y, g:i:s a",$blockedattack->time)."</td><td>".$blocked
|
|
205 |
</th></tr>
|
206 |
<tr><th></th>
|
207 |
<th align="center">
|
208 |
-
<br><input type="button" name="saveRateLCrawler" id="saveRateLCrawler" value="Save" class="
|
209 |
</th>
|
210 |
</tr>
|
211 |
</table>
|
@@ -371,7 +371,7 @@ echo "<td>".date("M j, Y, g:i:s a",$blockedattack->time)."</td><td>".$blocked
|
|
371 |
|
372 |
</div>
|
373 |
|
374 |
-
<div id="
|
375 |
|
376 |
|
377 |
<?php
|
@@ -384,11 +384,11 @@ echo "<td>".date("M j, Y, g:i:s a",$blockedattack->time)."</td><td>".$blocked
|
|
384 |
|
385 |
?>
|
386 |
<div class="mo_wpns_divided_layout">
|
387 |
-
<div class="mo_wpns_setting_layout" id= '
|
388 |
<table style="width:100%">
|
389 |
<tr><th align="left">
|
390 |
<h3>Website Firewall on Plugin Level : <a href='<?php echo $two_factor_premium_doc['Plugin level waf'];?>' target="_blank">
|
391 |
-
<span class=" dashicons dashicons-text-page" style="font-size:23px;color:#
|
392 |
<br>
|
393 |
<p><i class="mo_wpns_not_bold">This will activate WAF after the WordPress load. This will block illegitimate requests after making connection to WordPress. This will check Every Request in plugin itself.</i></p>
|
394 |
</th><th align="right">
|
@@ -399,8 +399,8 @@ echo "<td>".date("M j, Y, g:i:s a",$blockedattack->time)."</td><td>".$blocked
|
|
399 |
</tr></th>
|
400 |
</h3>
|
401 |
<tr><th align="left">
|
402 |
-
<h3>Website Firewall on .htaccess Level <strong style="color: #
|
403 |
-
<span class="dashicons dashicons-text-page" style="font-size:23px;color:#
|
404 |
<p><i class="mo_wpns_not_bold">This will activate WAF before the WordPress load. This will block illegitimate request before any connection to WordPress. This level doesnot allow illegal requests to before any page gets loaded.</i></p>
|
405 |
</th><th align="right">
|
406 |
<label class='mo_wpns_switch'>
|
@@ -416,10 +416,10 @@ echo "<td>".date("M j, Y, g:i:s a",$blockedattack->time)."</td><td>".$blocked
|
|
416 |
</i></p>
|
417 |
<?php
|
418 |
echo "<a href='". $url."' download='".$nameDownload."'>";?>
|
419 |
-
<input type='button' name='CDhtaccess' id='CDhtaccess' value='Confirm & Download' class="
|
420 |
</a>
|
421 |
|
422 |
-
<input type='button' name='cnclDH' id='cnclDH' value='Cancel' class="
|
423 |
</div>
|
424 |
</div>
|
425 |
<div name = 'AttackTypes' id ='AttackTypes'>
|
@@ -433,13 +433,13 @@ echo "<a href='". $url."' download='".$nameDownload."'>";?>
|
|
433 |
|
434 |
</tr>
|
435 |
</table>
|
436 |
-
<hr color = "#
|
437 |
<table style="width:100%">
|
438 |
<tr>
|
439 |
|
440 |
-
<th align="left"><h2> SQL Injection Protection <strong style="color: #
|
441 |
|
442 |
-
<p><i class="mo_wpns_not_bold">SQL Injection attacks are used for attack on database. This option will block all illegal requests which tries to access your database. <a href="admin.php?page=mo_2fa_upgrade"><strong style="color: #
|
443 |
</th>
|
444 |
<th align="right">
|
445 |
<label class='mo_wpns_switch'>
|
@@ -452,9 +452,9 @@ echo "<a href='". $url."' download='".$nameDownload."'>";?>
|
|
452 |
|
453 |
</tr>
|
454 |
<tr>
|
455 |
-
<th align="left"><h2> Cross Site scripting Protection <strong style="color: #
|
456 |
<br>
|
457 |
-
<p><i class="mo_wpns_not_bold">cross site scripting is used for script attacks. This will block illegal scripting on website. <a href="admin.php?page=mo_2fa_upgrade"><strong style="color: #
|
458 |
</th>
|
459 |
<th align="right">
|
460 |
<label class='mo_wpns_switch'>
|
@@ -464,9 +464,9 @@ echo "<a href='". $url."' download='".$nameDownload."'>";?>
|
|
464 |
</th>
|
465 |
</h2></tr>
|
466 |
<tr>
|
467 |
-
<th align="left"><h2> Local File Inclusion Protection <strong style="color: #
|
468 |
<br>
|
469 |
-
<p><i class="mo_wpns_not_bold">Local File inclusion is used for making changes to the local files of the server. This option will block Local File Inclusion. <a href="admin.php?page=mo_2fa_upgrade"><strong style="color: #
|
470 |
</th>
|
471 |
<th align="right">
|
472 |
<label class='mo_wpns_switch'>
|
@@ -503,7 +503,7 @@ echo "<a href='". $url."' download='".$nameDownload."'>";?>
|
|
503 |
</h2>
|
504 |
</tr>
|
505 |
<tr>
|
506 |
-
<th align="left"><h2> SQL Injection Protection <strong style="color: #
|
507 |
<br>
|
508 |
<p><i class="mo_wpns_not_bold">Advance Level Protection includes advance signatures to detect SQL injection. It is the recommended protection for all websites. </i></p>
|
509 |
</th>
|
@@ -516,7 +516,7 @@ echo "<a href='". $url."' download='".$nameDownload."'>";?>
|
|
516 |
</h2>
|
517 |
</tr>
|
518 |
<tr>
|
519 |
-
<th align="left"><h2> Cross Site scripting Protection<strong style="color: #
|
520 |
<br>
|
521 |
<p><i class="mo_wpns_not_bold">Advance Level Protection includes advance signatures to detect Cross Site Scripting attacks.</i></p>
|
522 |
</th>
|
@@ -529,7 +529,7 @@ echo "<a href='". $url."' download='".$nameDownload."'>";?>
|
|
529 |
</h2>
|
530 |
</tr>
|
531 |
<tr>
|
532 |
-
<th align="left"><h2> Local File Inclusion Protection Protection<strong style="color: #
|
533 |
<br>
|
534 |
<p><i class="mo_wpns_not_bold">Advance Level Protection includes advance signatures to detect LFI attacks on your website. Advance protection covers all files of your server to get protected from any kind of LFI attack.</i></p>
|
535 |
</th>
|
@@ -548,12 +548,12 @@ echo "<a href='". $url."' download='".$nameDownload."'>";?>
|
|
548 |
<div class="mo_wpns_setting_layout" id="mo2f_waf_block_after">
|
549 |
<table style="width: 100%">
|
550 |
<tr>
|
551 |
-
<th align="left"><h2>Block After <strong style="color: #
|
552 |
<p><i class="mo_wpns_not_bold">Option for blocking the IP if the limit of the attacks has been exceeds.</i></p>
|
553 |
</th>
|
554 |
<th align="right"><input type ="number" name ="limitAttack" id = "limitAttack" required min="5"/></th>
|
555 |
<th><h2 align="left"> attacks</h2></th>
|
556 |
-
<th align="right"><input type="button" name="saveLimitAttacks" id="saveLimitAttacks" value="Save" class="
|
557 |
</h2>
|
558 |
</tr>
|
559 |
</table>
|
@@ -563,7 +563,7 @@ echo "<a href='". $url."' download='".$nameDownload."'>";?>
|
|
563 |
|
564 |
|
565 |
</div>
|
566 |
-
|
567 |
|
568 |
|
569 |
<script type="text/javascript">
|
@@ -1186,32 +1186,62 @@ jQuery('#waf_report').click(function(){
|
|
1186 |
document.getElementById("ReportTab").click();
|
1187 |
});
|
1188 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1189 |
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
jQuery("#"+tabarray[i]).removeClass("nav-tab-active");
|
1199 |
-
jQuery("#"+tabarray[i]+"_div").css("display", "none");
|
1200 |
-
}
|
1201 |
-
}
|
1202 |
-
|
1203 |
-
localStorage.setItem("waf_last_tab", tabname);
|
1204 |
-
}
|
1205 |
-
|
1206 |
-
jQuery('#mo_2fa_waf').addClass('nav-tab-active');
|
1207 |
-
|
1208 |
-
var tab = localStorage.getItem("waf_last_tab");
|
1209 |
|
1210 |
-
if(tab)
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
|
|
|
|
|
|
1214 |
}
|
1215 |
|
1216 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1217 |
</script>
|
4 |
include $setup_dirName;
|
5 |
include_once $mo2f_dirName.'handler'.DIRECTORY_SEPARATOR.'WAF'.DIRECTORY_SEPARATOR.'database'.DIRECTORY_SEPARATOR.'mo-waf-db-common.php';
|
6 |
?>
|
7 |
+
<div class="mo_wpns_divided_layout_tab">
|
8 |
+
<div class="mo_wpns_tab">
|
9 |
+
<button class="tablinks" onclick="waf_function(event, 'waf_dash')" id="defaultOpen">Firewall Dashboard</button>
|
10 |
+
<button class="tablinks" onclick="waf_function(event, 'settings')" id="settingsTab">Settings</button>
|
11 |
+
<button class="tablinks" onclick="waf_function(event, 'real_time')" id="RealTimeTab">Real Time Blocking</button>
|
12 |
+
<button class="tablinks" onclick="waf_function(event, 'rate_limiting')" id="RateLimitTab">Rate Limiting</button>
|
13 |
+
<button class="tablinks" onclick="waf_function(event, 'waf_report')" id="ReportTab">Report</button>
|
14 |
</div>
|
15 |
</div>
|
16 |
<br>
|
17 |
+
<div id="waf_dash" class="tabcontent">
|
|
|
18 |
<div class="mo_wpns_divided_layout">
|
19 |
+
<div class="mo_wpns_divided_layout_tab" id ="mo2f_firewall_attack_dash">
|
20 |
<div class="mo_wpns_small_2_layout">
|
21 |
+
<div class ="mo_wpns_sub_dashboards_layout">Attacks Blocked<hr class="line"><p class="wpns_font_shown" ><?php echo $totalAttacks; ?></p></div>
|
22 |
<div class="mo_wpns_small_3_layout">
|
23 |
<div class ="mo_wpns_sub_sub_dashboard_layout">Injections<hr class="line"><?php echo $sqlC; ?></></div>
|
24 |
<div class ="mo_wpns_sub_sub_dashboard_layout">RCE<hr class="line"><?php echo $rceC; ?></div>
|
27 |
</div>
|
28 |
</div>
|
29 |
<div class="mo_wpns_small_2_layout">
|
30 |
+
|
31 |
+
<div class ="mo_wpns_sub_dashboards_layout">Blocked IPs<hr class="line"><p class="wpns_font_shown"><?php echo $totalIPBlocked; ?></p></div>
|
32 |
<div class="mo_wpns_small_3_layout">
|
33 |
+
<div class ="mo_wpns_sub_sub_dashboard_layout">Manual<hr class="line"><?php echo $manualBlocks; ?></div>
|
34 |
+
<div class ="mo_wpns_sub_sub_dashboard_layout">Real Time<hr class="line"><?php echo $realTime; ?></div>
|
35 |
+
<div class ="mo_wpns_sub_sub_dashboard_layout">Country Blocked<hr class="line"><?php echo $countryBlocked; ?></div>
|
36 |
+
<div class ="mo_wpns_sub_sub_dashboard_layout">IP Blocked by WAF<hr class="line"><?php echo $IPblockedByWAF ?></div>
|
37 |
</div>
|
38 |
</div>
|
39 |
</div>
|
42 |
<p><i class="mo_wpns_not_bold">
|
43 |
This contains settings of your <b>Website Application Firewall</b> with settings of <b>SQL Injecton, Cross Site Scripting, Local File Inclusion, Remote File Inclusion, Remote Code Inclusion,</b> etc.<br><br><br><br>
|
44 |
</i></p>
|
45 |
+
<input type="button" name="SettingPage" id="SettingPage" value="Settings" class="mo_wpsn_button mo_wpsn_button1" />
|
46 |
|
47 |
</div>
|
48 |
<div class="mo_wpns_small_layout">
|
50 |
<p><i class="mo_wpns_not_bold">
|
51 |
Real Time Blocking is <b>blocking IPs in real time</b> by miniOrange IP dataset. If any IP is found malicious then that IP will be added to the <b>miniOrange IP dataset</b> which is <b>maintained in real time.</b> By enabling this feature, if any IP is found malicious on <b>any miniOrange customer's site</b> then that IP will be <b>automatically blocked from your site as well.</b> <br><br>
|
52 |
</i></p>
|
53 |
+
<input type="button" name="RTBPage" id="RTBPage" value="Real Time Blocking" class="mo_wpsn_button mo_wpsn_button1" />
|
54 |
|
55 |
</div>
|
56 |
<div class="mo_wpns_small_layout">
|
58 |
<p><i class="mo_wpns_not_bold">
|
59 |
Rate Limiting is used for <b>controlling the amount of incoming requests</b> from a <b>specific IP</b> to a service(Website). In this feature you can decide the <b>number of requests</b> a user can make to your website. If this is not enabled, an attacker can send <b>any number of requests</b> to a service that can lead to a <b>denial of service</b> by which legitimate users of the website will not be able to access the website.
|
60 |
</i></p>
|
61 |
+
<input type="button" name="RLPage" id="RLPage" value="Rate limiting" class="mo_wpsn_button mo_wpsn_button1" />
|
62 |
|
63 |
|
64 |
</div>
|
65 |
|
66 |
+
</div>
|
67 |
|
68 |
|
69 |
|
70 |
</div>
|
71 |
|
72 |
+
<div id="waf_report" class="tabcontent">
|
73 |
<div class="mo_wpns_divided_layout">
|
74 |
<div class="mo_wpns_setting_layout">
|
75 |
<h2>Blocked attacks Report</h2>
|
98 |
</div>
|
99 |
</div>
|
100 |
|
101 |
+
<div id="real_time" class="tabcontent">
|
102 |
<div class="mo_wpns_divided_layout">
|
103 |
<div class="mo_wpns_setting_layout">
|
104 |
|
121 |
</div>
|
122 |
</div>
|
123 |
|
124 |
+
<div id="rate_limiting" class="tabcontent">
|
125 |
<div class="mo_wpns_divided_layout">
|
126 |
+
<div class="mo_wpns_setting_layout" id='mo2f_ratelimiting'>
|
127 |
<div id="RL" name="RL">
|
128 |
<table style="width:100%">
|
129 |
<tr>
|
130 |
<th align="left">
|
131 |
+
<h3>Rate Limiting : <a href='<?php echo $two_factor_premium_doc['Rate Limiting'];?>' target="_blank"><span class=" dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;"></span></a>
|
132 |
<br>
|
133 |
<p><i class="mo_wpns_not_bold">This will protect your Website from Dos attack and block request after a limit exceed.</i></p>
|
134 |
</th>
|
163 |
</th></tr>
|
164 |
<tr><th></th>
|
165 |
<th align="center">
|
166 |
+
<br><input type="button" name="saveRateL" id="saveRateL" value="Save" class="mo_wpsn_button mo_wpsn_button1">
|
167 |
</th>
|
168 |
</tr>
|
169 |
</table>
|
205 |
</th></tr>
|
206 |
<tr><th></th>
|
207 |
<th align="center">
|
208 |
+
<br><input type="button" name="saveRateLCrawler" id="saveRateLCrawler" value="Save" class="mo_wpsn_button mo_wpsn_button1">
|
209 |
</th>
|
210 |
</tr>
|
211 |
</table>
|
371 |
|
372 |
</div>
|
373 |
|
374 |
+
<div id="settings" class="tabcontent">
|
375 |
|
376 |
|
377 |
<?php
|
384 |
|
385 |
?>
|
386 |
<div class="mo_wpns_divided_layout">
|
387 |
+
<div class="mo_wpns_setting_layout" id= 'mo_waf_options_tour'>
|
388 |
<table style="width:100%">
|
389 |
<tr><th align="left">
|
390 |
<h3>Website Firewall on Plugin Level : <a href='<?php echo $two_factor_premium_doc['Plugin level waf'];?>' target="_blank">
|
391 |
+
<span class=" dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;"></span></a>
|
392 |
<br>
|
393 |
<p><i class="mo_wpns_not_bold">This will activate WAF after the WordPress load. This will block illegitimate requests after making connection to WordPress. This will check Every Request in plugin itself.</i></p>
|
394 |
</th><th align="right">
|
399 |
</tr></th>
|
400 |
</h3>
|
401 |
<tr><th align="left">
|
402 |
+
<h3>Website Firewall on .htaccess Level <strong style="color: #20b2aa">[Recommended] </strong>: <a href='<?php echo $two_factor_premium_doc['htaccess level waf'];?>' target="_blank">
|
403 |
+
<span class="dashicons dashicons-text-page" style="font-size:23px;color:#269eb3;"></span></a>
|
404 |
<p><i class="mo_wpns_not_bold">This will activate WAF before the WordPress load. This will block illegitimate request before any connection to WordPress. This level doesnot allow illegal requests to before any page gets loaded.</i></p>
|
405 |
</th><th align="right">
|
406 |
<label class='mo_wpns_switch'>
|
416 |
</i></p>
|
417 |
<?php
|
418 |
echo "<a href='". $url."' download='".$nameDownload."'>";?>
|
419 |
+
<input type='button' name='CDhtaccess' id='CDhtaccess' value='Confirm & Download' class="mo_wpsn_button mo_wpsn_button1" />
|
420 |
</a>
|
421 |
|
422 |
+
<input type='button' name='cnclDH' id='cnclDH' value='Cancel' class="mo_wpsn_button mo_wpsn_button1"/>
|
423 |
</div>
|
424 |
</div>
|
425 |
<div name = 'AttackTypes' id ='AttackTypes'>
|
433 |
|
434 |
</tr>
|
435 |
</table>
|
436 |
+
<hr color = "#20b2aa"/>
|
437 |
<table style="width:100%">
|
438 |
<tr>
|
439 |
|
440 |
+
<th align="left"><h2> SQL Injection Protection <strong style="color: #20b2aa">[Basic Level Protection] </strong>::
|
441 |
|
442 |
+
<p><i class="mo_wpns_not_bold">SQL Injection attacks are used for attack on database. This option will block all illegal requests which tries to access your database. <a href="admin.php?page=mo_2fa_upgrade"><strong style="color: #20b2aa">Advance Signatures</strong></a></i></p>
|
443 |
</th>
|
444 |
<th align="right">
|
445 |
<label class='mo_wpns_switch'>
|
452 |
|
453 |
</tr>
|
454 |
<tr>
|
455 |
+
<th align="left"><h2> Cross Site scripting Protection <strong style="color: #20b2aa">[Basic Level Protection] </strong>::
|
456 |
<br>
|
457 |
+
<p><i class="mo_wpns_not_bold">cross site scripting is used for script attacks. This will block illegal scripting on website. <a href="admin.php?page=mo_2fa_upgrade"><strong style="color: #20b2aa">Advance Signatures</strong></a></i></p>
|
458 |
</th>
|
459 |
<th align="right">
|
460 |
<label class='mo_wpns_switch'>
|
464 |
</th>
|
465 |
</h2></tr>
|
466 |
<tr>
|
467 |
+
<th align="left"><h2> Local File Inclusion Protection <strong style="color: #20b2aa">[Basic Level Protection] </strong>::
|
468 |
<br>
|
469 |
+
<p><i class="mo_wpns_not_bold">Local File inclusion is used for making changes to the local files of the server. This option will block Local File Inclusion. <a href="admin.php?page=mo_2fa_upgrade"><strong style="color: #20b2aa">Advance Signatures</strong></a></i></p>
|
470 |
</th>
|
471 |
<th align="right">
|
472 |
<label class='mo_wpns_switch'>
|
503 |
</h2>
|
504 |
</tr>
|
505 |
<tr>
|
506 |
+
<th align="left"><h2> SQL Injection Protection <strong style="color: #20b2aa">[Advance Level Protection]</strong> <strong style="color: red"><a href="admin.php?page=mo_2fa_upgrade"> [Premium Feature] </a></strong>::
|
507 |
<br>
|
508 |
<p><i class="mo_wpns_not_bold">Advance Level Protection includes advance signatures to detect SQL injection. It is the recommended protection for all websites. </i></p>
|
509 |
</th>
|
516 |
</h2>
|
517 |
</tr>
|
518 |
<tr>
|
519 |
+
<th align="left"><h2> Cross Site scripting Protection<strong style="color: #20b2aa"> [Advance Level Protection]</strong> <strong style="color: red"><a href="admin.php?page=mo_2fa_upgrade"> [Premium Feature] </a></strong>::
|
520 |
<br>
|
521 |
<p><i class="mo_wpns_not_bold">Advance Level Protection includes advance signatures to detect Cross Site Scripting attacks.</i></p>
|
522 |
</th>
|
529 |
</h2>
|
530 |
</tr>
|
531 |
<tr>
|
532 |
+
<th align="left"><h2> Local File Inclusion Protection Protection<strong style="color: #20b2aa"> [Advance Level Protection]</strong> <strong style="color: red"><a href="admin.php?page=mo_2fa_upgrade"> [Premium Feature] </a></strong>::
|
533 |
<br>
|
534 |
<p><i class="mo_wpns_not_bold">Advance Level Protection includes advance signatures to detect LFI attacks on your website. Advance protection covers all files of your server to get protected from any kind of LFI attack.</i></p>
|
535 |
</th>
|
548 |
<div class="mo_wpns_setting_layout" id="mo2f_waf_block_after">
|
549 |
<table style="width: 100%">
|
550 |
<tr>
|
551 |
+
<th align="left"><h2>Block After <strong style="color: #20b2aa">[Recommended : 10] </strong>:
|
552 |
<p><i class="mo_wpns_not_bold">Option for blocking the IP if the limit of the attacks has been exceeds.</i></p>
|
553 |
</th>
|
554 |
<th align="right"><input type ="number" name ="limitAttack" id = "limitAttack" required min="5"/></th>
|
555 |
<th><h2 align="left"> attacks</h2></th>
|
556 |
+
<th align="right"><input type="button" name="saveLimitAttacks" id="saveLimitAttacks" value="Save" class="mo_wpsn_button mo_wpsn_button1" /></th>
|
557 |
</h2>
|
558 |
</tr>
|
559 |
</table>
|
563 |
|
564 |
|
565 |
</div>
|
566 |
+
|
567 |
|
568 |
|
569 |
<script type="text/javascript">
|
1186 |
document.getElementById("ReportTab").click();
|
1187 |
});
|
1188 |
|
1189 |
+
function waf_function(evt, cityName) {
|
1190 |
+
var i, tabcontent, tablinks;
|
1191 |
+
tabcontent = document.getElementsByClassName("tabcontent");
|
1192 |
+
for (i = 0; i < tabcontent.length; i++) {
|
1193 |
+
tabcontent[i].style.display = "none";
|
1194 |
+
}
|
1195 |
+
tablinks = document.getElementsByClassName("tablinks");
|
1196 |
+
for (i = 0; i < tablinks.length; i++) {
|
1197 |
+
tablinks[i].className = tablinks[i].className.replace(" active", "");
|
1198 |
+
}
|
1199 |
+
document.getElementById(cityName).style.display = "block";
|
1200 |
+
|
1201 |
+
localStorage.setItem("last_tab",cityName);
|
1202 |
+
evt.currentTarget.className += " active";
|
1203 |
+
if(cityName == "settings")
|
1204 |
+
{
|
1205 |
+
jQuery("#settingsTab").addClass(" active");
|
1206 |
+
}
|
1207 |
+
document.getElementById(cityName).style.display = "block";
|
1208 |
+
|
1209 |
+
}
|
1210 |
|
1211 |
+
|
1212 |
+
var tour = '<?php echo get_option("mo2f_tour_firewall");?>';
|
1213 |
+
|
1214 |
+
if(tour != 1)
|
1215 |
+
var tab = localStorage.getItem("last_tab");
|
1216 |
+
else
|
1217 |
+
var tab = '<?php echo get_option("mo2f_tour_tab");?>';
|
1218 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1219 |
|
1220 |
+
if(tab == "waf_dash")
|
1221 |
+
{
|
1222 |
+
document.getElementById("defaultOpen").click();
|
1223 |
+
}
|
1224 |
+
else if(tab == "settings")
|
1225 |
+
{
|
1226 |
+
document.getElementById("settingsTab").click();
|
1227 |
}
|
1228 |
|
1229 |
|
1230 |
+
else if(tab == "real_time")
|
1231 |
+
{
|
1232 |
+
document.getElementById("RealTimeTab").click();
|
1233 |
+
}
|
1234 |
+
|
1235 |
+
else if(tab == "rate_limiting")
|
1236 |
+
{
|
1237 |
+
document.getElementById("RateLimitTab").click();
|
1238 |
+
}
|
1239 |
+
else if(tab == "waf_report")
|
1240 |
+
{
|
1241 |
+
document.getElementById("ReportTab").click();
|
1242 |
+
}
|
1243 |
+
else
|
1244 |
+
{
|
1245 |
+
document.getElementById("settingsTab").click();
|
1246 |
+
}
|
1247 |
</script>
|