Version Description
- Fix: permanent ban on 404 lockouts now sends correct email.
- Fix: IP lockout logs not showing correct results/order on different pages.
- Fix: IP lockout logs showing wrong badge for 404 lockouts.
- Fix: 2FA not working properly when using Sensei plugin.
- Other minor enhancements and fixes.
Download this release
Release Info
Developer | jdailey |
Plugin | Defender Security – Malware Scanner, Login Security & Firewall |
Version | 2.0.1 |
Comparing to | |
See all releases |
Code changes from version 2.0 to 2.0.1
- app/module/advanced-tools/component/auth-api.php +1 -1
- app/module/advanced-tools/component/mask-api.php +36 -0
- app/module/advanced-tools/controller/main.php +5 -2
- app/module/advanced-tools/controller/mask-login.php +13 -0
- app/module/advanced-tools/view/layouts/layout.php +31 -29
- app/module/advanced-tools/view/login/disabled.php +71 -73
- app/module/advanced-tools/view/login/enabled.php +25 -27
- app/module/ip-lockout/component/login-protection-api.php +3 -1
- app/module/ip-lockout/component/logs-table.php +5 -1
- app/module/ip-lockout/controller/main.php +3 -3
- app/module/ip-lockout/js/script.js +19 -4
- app/module/ip-lockout/view/emails/404-ban.php +693 -0
- changelog.txt +15 -6
- free-dashboard/README.md +6 -6
- free-dashboard/admin.js +25 -32
- free-dashboard/module.php +26 -15
- languages/wpdef-default.pot +125 -105
- main-activator.php +3 -3
- readme.txt +10 -3
- wp-defender.php +1 -1
app/module/advanced-tools/component/auth-api.php
CHANGED
@@ -312,7 +312,7 @@ class Auth_API extends Component {
|
|
312 |
if ( $isConflict === 0 ) {
|
313 |
//no data, init
|
314 |
global $wpdb;
|
315 |
-
$sql = "SELECT blog_id FROM `{$wpdb->
|
316 |
$blogs = $wpdb->get_col( $sql );
|
317 |
foreach ( $blogs as $id ) {
|
318 |
$options = get_blog_option( $id, 'jetpack_active_modules', array() );
|
312 |
if ( $isConflict === 0 ) {
|
313 |
//no data, init
|
314 |
global $wpdb;
|
315 |
+
$sql = "SELECT blog_id FROM `{$wpdb->base_prefix}blogs`";
|
316 |
$blogs = $wpdb->get_col( $sql );
|
317 |
foreach ( $blogs as $id ) {
|
318 |
$options = get_blog_option( $id, 'jetpack_active_modules', array() );
|
app/module/advanced-tools/component/mask-api.php
CHANGED
@@ -5,6 +5,7 @@
|
|
5 |
|
6 |
namespace WP_Defender\Module\Advanced_Tools\Component;
|
7 |
|
|
|
8 |
use Hammer\WP\Component;
|
9 |
use WP_Defender\Behavior\Utils;
|
10 |
use WP_Defender\Component\Error_Code;
|
@@ -160,4 +161,39 @@ class Mask_Api extends Component {
|
|
160 |
|
161 |
return true;
|
162 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
}
|
5 |
|
6 |
namespace WP_Defender\Module\Advanced_Tools\Component;
|
7 |
|
8 |
+
use Hammer\Helper\HTTP_Helper;
|
9 |
use Hammer\WP\Component;
|
10 |
use WP_Defender\Behavior\Utils;
|
11 |
use WP_Defender\Component\Error_Code;
|
161 |
|
162 |
return true;
|
163 |
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* @return null|string
|
167 |
+
*/
|
168 |
+
public static function createOTPKey() {
|
169 |
+
if ( ! is_user_logged_in() ) {
|
170 |
+
return null;
|
171 |
+
}
|
172 |
+
|
173 |
+
$secret = Auth_API::getUserSecret();
|
174 |
+
$otp = uniqid();
|
175 |
+
$key = md5( $otp . $secret );
|
176 |
+
set_site_transient( $key, $otp, 300 );
|
177 |
+
|
178 |
+
return $otp;
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* @param $otp
|
183 |
+
*
|
184 |
+
* @return bool
|
185 |
+
*/
|
186 |
+
public static function verifyOTP( $otp ) {
|
187 |
+
$key = HTTP_Helper::retrieve_get( 'otp' );
|
188 |
+
$secret = Auth_API::getUserSecret();
|
189 |
+
$key = md5( $key . $secret );
|
190 |
+
$check = get_site_transient( $key );
|
191 |
+
if ( $check == $otp ) {
|
192 |
+
delete_site_transient( $key );
|
193 |
+
|
194 |
+
return true;
|
195 |
+
}
|
196 |
+
|
197 |
+
return false;
|
198 |
+
}
|
199 |
}
|
app/module/advanced-tools/controller/main.php
CHANGED
@@ -34,7 +34,7 @@ class Main extends Controller {
|
|
34 |
}
|
35 |
|
36 |
if ( $this->isInPage() || $this->isDashboard() ) {
|
37 |
-
$this->add_action( 'defender_enqueue_assets', 'scripts',
|
38 |
}
|
39 |
$this->add_ajax_action( 'saveAdvancedSettings', 'saveSettings' );
|
40 |
$this->add_ajax_action( 'saveTwoFactorOPTEmail', 'saveTwoFactorOPTEmail' );
|
@@ -49,7 +49,7 @@ class Main extends Controller {
|
|
49 |
/**
|
50 |
* hook into wordpress login, can't use authenticate hook as that badly conflict
|
51 |
*/
|
52 |
-
$this->add_action( 'wp_login', 'maybeShowOTPLogin',
|
53 |
$this->add_action( 'login_form_defenderVerifyOTP', 'defenderVerifyOTP' );
|
54 |
$this->add_action( 'set_logged_in_cookie', 'storeSessionKey' );
|
55 |
/**
|
@@ -533,6 +533,9 @@ class Main extends Controller {
|
|
533 |
$data = array(
|
534 |
'edit_email_title' => __( 'Edit Email', "defender-security" ),
|
535 |
);
|
|
|
|
|
|
|
536 |
wp_localize_script( 'adtools', 'defender_adtools', $data );
|
537 |
}
|
538 |
}
|
34 |
}
|
35 |
|
36 |
if ( $this->isInPage() || $this->isDashboard() ) {
|
37 |
+
$this->add_action( 'defender_enqueue_assets', 'scripts', 12 );
|
38 |
}
|
39 |
$this->add_ajax_action( 'saveAdvancedSettings', 'saveSettings' );
|
40 |
$this->add_ajax_action( 'saveTwoFactorOPTEmail', 'saveTwoFactorOPTEmail' );
|
49 |
/**
|
50 |
* hook into wordpress login, can't use authenticate hook as that badly conflict
|
51 |
*/
|
52 |
+
$this->add_action( 'wp_login', 'maybeShowOTPLogin', 9, 2 );
|
53 |
$this->add_action( 'login_form_defenderVerifyOTP', 'defenderVerifyOTP' );
|
54 |
$this->add_action( 'set_logged_in_cookie', 'storeSessionKey' );
|
55 |
/**
|
533 |
$data = array(
|
534 |
'edit_email_title' => __( 'Edit Email', "defender-security" ),
|
535 |
);
|
536 |
+
if ( $this->isInPage() ) {
|
537 |
+
remove_filter( 'admin_body_class', array( 'WDEV_Plugin_Ui', 'admin_body_class' ) );
|
538 |
+
}
|
539 |
wp_localize_script( 'adtools', 'defender_adtools', $data );
|
540 |
}
|
541 |
}
|
app/module/advanced-tools/controller/mask-login.php
CHANGED
@@ -164,6 +164,14 @@ class Mask_Login extends Controller {
|
|
164 |
return Mask_Api::getNewLoginUrl( $subDomain );
|
165 |
}
|
166 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
}
|
168 |
}
|
169 |
|
@@ -197,6 +205,11 @@ class Mask_Login extends Controller {
|
|
197 |
return;
|
198 |
}
|
199 |
|
|
|
|
|
|
|
|
|
|
|
200 |
$this->_maybeLock();
|
201 |
}
|
202 |
|
164 |
return Mask_Api::getNewLoginUrl( $subDomain );
|
165 |
}
|
166 |
}
|
167 |
+
} elseif ( $screen->id == 'my-sites' ) {
|
168 |
+
//case inside my sites page, sometime the login session does not share between sites and we get block
|
169 |
+
//we will add an OTP key for redirect to wp-admin without get block
|
170 |
+
$otp = Mask_Api::createOTPKey();
|
171 |
+
|
172 |
+
return add_query_arg( array(
|
173 |
+
'otp' => $otp
|
174 |
+
), $currentUrl );
|
175 |
}
|
176 |
}
|
177 |
|
205 |
return;
|
206 |
}
|
207 |
|
208 |
+
if ( ( $key = HTTP_Helper::retrieve_get( 'otp', false ) ) !== false
|
209 |
+
&& Mask_Api::verifyOTP( $key ) ) {
|
210 |
+
return;
|
211 |
+
}
|
212 |
+
|
213 |
$this->_maybeLock();
|
214 |
}
|
215 |
|
app/module/advanced-tools/view/layouts/layout.php
CHANGED
@@ -1,34 +1,36 @@
|
|
1 |
<div class="wrap">
|
2 |
-
<div
|
3 |
-
<div class="
|
4 |
-
<
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
<div class="
|
9 |
-
<
|
10 |
-
<
|
11 |
-
<
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
<
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
<
|
25 |
-
<
|
26 |
-
|
27 |
-
|
|
|
|
|
|
|
|
|
|
|
28 |
</div>
|
29 |
-
</div>
|
30 |
-
<div class="col-two-third">
|
31 |
-
<?php echo $contents ?>
|
32 |
</div>
|
33 |
</div>
|
34 |
</div>
|
1 |
<div class="wrap">
|
2 |
+
<div class="wpmud">
|
3 |
+
<div id="wp-defender" class="wp-defender">
|
4 |
+
<div class="advanced-tools">
|
5 |
+
<h2 class="title">
|
6 |
+
<?php _e( "Advanced Tools", "defender-security" ) ?>
|
7 |
+
</h2>
|
8 |
+
<div class="row">
|
9 |
+
<div class="col-third">
|
10 |
+
<ul class="inner-nav is-hidden-mobile">
|
11 |
+
<li class="issues-nav">
|
12 |
+
<a class="<?php echo \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', false ) == false ? 'active' : null ?>"
|
13 |
+
href="<?php echo network_admin_url( 'admin.php?page=wdf-advanced-tools' ) ?>">
|
14 |
+
<?php _e( "Two-Factor Authentication", "defender-security" ) ?>
|
15 |
+
</a>
|
16 |
+
</li>
|
17 |
+
<li class="issues-nav">
|
18 |
+
<a class="<?php echo \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', false ) == 'mask-login' ? 'active' : null ?>"
|
19 |
+
href="<?php echo network_admin_url( 'admin.php?page=wdf-advanced-tools&view=mask-login' ) ?>">
|
20 |
+
<?php _e( "Mask Login Area", "defender-security" ) ?>
|
21 |
+
</a>
|
22 |
+
</li>
|
23 |
+
</ul>
|
24 |
+
<div class="is-hidden-tablet mline">
|
25 |
+
<select class="mobile-nav">
|
26 |
+
<option <?php selected( '', \Hammer\Helper\HTTP_Helper::retrieve_get( 'view' ) ) ?>
|
27 |
+
value="<?php echo network_admin_url( 'admin.php?page=wdf-advanced-tools' ) ?>"><?php _e( "Two Factor Authentication", "defender-security" ) ?></option>
|
28 |
+
</select>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
<div class="col-two-third">
|
32 |
+
<?php echo $contents ?>
|
33 |
</div>
|
|
|
|
|
|
|
34 |
</div>
|
35 |
</div>
|
36 |
</div>
|
app/module/advanced-tools/view/login/disabled.php
CHANGED
@@ -1,80 +1,78 @@
|
|
1 |
-
<
|
2 |
-
|
3 |
-
<
|
4 |
-
|
5 |
-
<
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
if ( $settings->forceAuth ):
|
11 |
-
?>
|
12 |
-
<div class="def-warning">
|
13 |
-
<i class="dashicons dashicons-warning" aria-hidden="true"></i>
|
14 |
-
<?php
|
15 |
-
echo $settings->forceAuthMess
|
16 |
-
?>
|
17 |
-
</div>
|
18 |
-
<?php endif; ?>
|
19 |
-
<?php
|
20 |
-
$user = wp_get_current_user();
|
21 |
-
$email = '';
|
22 |
-
if ( is_object( $user ) ) {
|
23 |
-
$email = $user->user_email;
|
24 |
-
}
|
25 |
?>
|
26 |
-
<div
|
27 |
-
<
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
</div>
|
32 |
-
<p class="description">
|
33 |
-
<?php _e( "Use the Google Authenticator app to sign in with a separate passcode.", "defender-security" ) ?>
|
34 |
-
</p>
|
35 |
</div>
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
<
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
</div>
|
72 |
</div>
|
73 |
-
</
|
74 |
-
</
|
75 |
-
|
76 |
-
</
|
77 |
-
</
|
78 |
<script type="text/javascript">
|
79 |
jQuery(function ($) {
|
80 |
$('#def2qr').hide();
|
1 |
+
<h2><?php _e( "Security", "defender-security" ) ?></h2>
|
2 |
+
<table class="form-table">
|
3 |
+
<tbody>
|
4 |
+
<tr class="user-sessions-wrap hide-if-no-js">
|
5 |
+
<th><?php _e( "Two Factor Authentication", "defender-security" ) ?></th>
|
6 |
+
<td aria-live="assertive">
|
7 |
+
<?php
|
8 |
+
$settings = \WP_Defender\Module\Advanced_Tools\Model\Auth_Settings::instance();
|
9 |
+
if ( $settings->forceAuth ):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
?>
|
11 |
+
<div class="def-warning">
|
12 |
+
<i class="dashicons dashicons-warning" aria-hidden="true"></i>
|
13 |
+
<?php
|
14 |
+
echo $settings->forceAuthMess
|
15 |
+
?>
|
|
|
|
|
|
|
|
|
16 |
</div>
|
17 |
+
<?php endif; ?>
|
18 |
+
<?php
|
19 |
+
$user = wp_get_current_user();
|
20 |
+
$email = '';
|
21 |
+
if ( is_object( $user ) ) {
|
22 |
+
$email = $user->user_email;
|
23 |
+
}
|
24 |
+
?>
|
25 |
+
<div id="def2">
|
26 |
+
<div class="destroy-sessions">
|
27 |
+
<button type="button" class="button" id="show2AuthActivator">
|
28 |
+
<?php _e( "Enable", "defender-security" ) ?>
|
29 |
+
</button>
|
30 |
+
</div>
|
31 |
+
<p class="description">
|
32 |
+
<?php _e( "Use the Google Authenticator app to sign in with a separate passcode.", "defender-security" ) ?>
|
33 |
+
</p>
|
34 |
+
</div>
|
35 |
+
<div id="def2qr">
|
36 |
+
<button type="button" id="hide2AuthActivator"
|
37 |
+
class="button"><?php _e( "Cancel", "defender-security" ) ?></button>
|
38 |
+
<p><?php _e( "Use the Google Authenticator app to sign in with a separate passcode.", "defender-security" ) ?></p>
|
39 |
+
<div class="card">
|
40 |
+
<p>
|
41 |
+
<strong><?php _e( "1. Install the Verification app", "defender-security" ) ?></strong>
|
42 |
+
</p>
|
43 |
+
<p>
|
44 |
+
<?php _e( "Download and install the Google Authenticator app on your device using the links below.", "defender-security" ) ?>
|
45 |
+
</p>
|
46 |
+
<a href="https://itunes.apple.com/vn/app/google-authenticator/id388497605?mt=8">
|
47 |
+
<img src="<?php echo wp_defender()->getPluginUrl() . 'assets/img/ios-download.svg' ?>"/>
|
48 |
+
</a>
|
49 |
+
<a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2">
|
50 |
+
<img src="<?php echo wp_defender()->getPluginUrl() . 'assets/img/android-download.svg' ?>"/>
|
51 |
+
</a>
|
52 |
+
<div class="line"></div>
|
53 |
+
<p><strong><?php _e( "2. Scan the barcode", "defender-security" ) ?></strong></p>
|
54 |
+
<p><?php _e( "Open the Google Authenticator app you just downloaded, tap the “+” symbol and then use your phone’s camera to scan the barcode below.", "defender-security" ) ?></p>
|
55 |
+
<img class="barcode"
|
56 |
+
src="<?php echo \WP_Defender\Module\Advanced_Tools\Component\Auth_API::generateQRCode( urlencode( get_bloginfo( 'name' ) ) . ':' . $email, $secretKey, 149, 149, urlencode( get_bloginfo( 'name' ) ) ) ?>"/>
|
57 |
+
<div class="line"></div>
|
58 |
+
<p><strong><?php _e( "3. Enter passcode", "defender-security" ) ?></strong></p>
|
59 |
+
<p>
|
60 |
+
<?php _e( "Enter the 6 digit passcode that is shown on your device into the input field below and hit “Verify”.", "defender-security" ) ?>
|
61 |
+
</p>
|
62 |
+
<div class="well">
|
63 |
+
<p class="error"></p>
|
64 |
+
<input type="text" id="otpCode" class="def-small-text">
|
65 |
+
<button type="button" class="button button-primary" id="verifyOTP">
|
66 |
+
<?php _e( "Verify", "defender-security" ) ?>
|
67 |
+
</button>
|
68 |
+
<input type="hidden" id="defNonce" value="<?php echo wp_create_nonce( 'defVerifyOTP' ) ?>"/>
|
69 |
</div>
|
70 |
</div>
|
71 |
+
</div>
|
72 |
+
</td>
|
73 |
+
</tr>
|
74 |
+
</tbody>
|
75 |
+
</table>
|
76 |
<script type="text/javascript">
|
77 |
jQuery(function ($) {
|
78 |
$('#def2qr').hide();
|
app/module/advanced-tools/view/login/enabled.php
CHANGED
@@ -1,30 +1,28 @@
|
|
1 |
-
<
|
2 |
-
|
3 |
-
<
|
4 |
-
|
5 |
-
<
|
6 |
-
|
7 |
-
<
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
<
|
17 |
-
|
18 |
-
<
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
</table>
|
27 |
-
</div>
|
28 |
<script type="text/javascript">
|
29 |
jQuery(function ($) {
|
30 |
$('#disableOTP').click(function () {
|
1 |
+
<h2><?php _e( "Security", "defender-security" ) ?></h2>
|
2 |
+
<table class="form-table">
|
3 |
+
<tbody>
|
4 |
+
<tr class="user-sessions-wrap hide-if-no-js">
|
5 |
+
<th><?php _e( "Two Factor Authentication", "defender-security" ) ?></th>
|
6 |
+
<td aria-live="assertive">
|
7 |
+
<div class="def-notification">
|
8 |
+
<?php _e( "Two factor authentication is active.", "defender-security" ) ?>
|
9 |
+
</div>
|
10 |
+
<button type="button" class="button" id="disableOTP">
|
11 |
+
<?php _e( "Disable", "defender-security" ) ?>
|
12 |
+
</button>
|
13 |
+
</td>
|
14 |
+
</tr>
|
15 |
+
<tr class="user-sessions-wrap hide-if-no-js">
|
16 |
+
<th><?php _e( "Fallback email address", "defender-security" ) ?></th>
|
17 |
+
<td aria-live="assertive">
|
18 |
+
<input type="text" class="regular-text" name="def_backup_email" value="<?php echo $email ?>"/>
|
19 |
+
<p class="description">
|
20 |
+
<?php _e( "If you ever lose your device, you can send a fallback passcode to this email address.", "defender-security" ) ?>
|
21 |
+
</p>
|
22 |
+
</td>
|
23 |
+
</tr>
|
24 |
+
</tbody>
|
25 |
+
</table>
|
|
|
|
|
26 |
<script type="text/javascript">
|
27 |
jQuery(function ($) {
|
28 |
$('#disableOTP').click(function () {
|
app/module/ip-lockout/component/login-protection-api.php
CHANGED
@@ -156,10 +156,12 @@ class Login_Protection_Api extends Component {
|
|
156 |
$lock_log->log = sprintf( esc_html__( "Lockout occurred: Too many 404 requests for %s", "defender-security" ), $uri );
|
157 |
$lock_log->save();
|
158 |
//if fail2ban, we will add that IP to blacklist
|
|
|
159 |
if ( $settings->detect_404_lockout_ban ) {
|
160 |
$settings->addIpToList( $model->ip, 'blacklist' );
|
|
|
161 |
}
|
162 |
-
do_action( 'wd_404_lockout', $model, $uri );
|
163 |
}
|
164 |
}
|
165 |
|
156 |
$lock_log->log = sprintf( esc_html__( "Lockout occurred: Too many 404 requests for %s", "defender-security" ), $uri );
|
157 |
$lock_log->save();
|
158 |
//if fail2ban, we will add that IP to blacklist
|
159 |
+
$isBlacklist = false;
|
160 |
if ( $settings->detect_404_lockout_ban ) {
|
161 |
$settings->addIpToList( $model->ip, 'blacklist' );
|
162 |
+
$isBlacklist = true;
|
163 |
}
|
164 |
+
do_action( 'wd_404_lockout', $model, $uri, $isBlacklist );
|
165 |
}
|
166 |
}
|
167 |
|
app/module/ip-lockout/component/logs-table.php
CHANGED
@@ -273,7 +273,11 @@ class Logs_Table extends \WP_List_Table {
|
|
273 |
<div class="column is-4">
|
274 |
<p><strong><?php _e( "Type", "defender-security" ) ?></strong></p>
|
275 |
<p>
|
276 |
-
<a href=""><?php echo $item->type
|
|
|
|
|
|
|
|
|
277 |
</p>
|
278 |
</div>
|
279 |
</div>
|
273 |
<div class="column is-4">
|
274 |
<p><strong><?php _e( "Type", "defender-security" ) ?></strong></p>
|
275 |
<p>
|
276 |
+
<a href=""><?php echo in_array( $item->type, array(
|
277 |
+
Log_Model::ERROR_404,
|
278 |
+
Log_Model::ERROR_404_IGNORE,
|
279 |
+
Log_Model::LOCKOUT_404
|
280 |
+
) ) ? __( "404 error", "defender-security" ) : __( "Login failed", "defender-security" ) ?></a>
|
281 |
</p>
|
282 |
</div>
|
283 |
</div>
|
app/module/ip-lockout/controller/main.php
CHANGED
@@ -403,7 +403,7 @@ class Main extends Controller {
|
|
403 |
$this->add_action( 'wd_login_lockout', 'lockoutLoginNotification', 10, 3 );
|
404 |
}
|
405 |
if ( $settings->ip_lockout_notification ) {
|
406 |
-
$this->add_action( 'wd_404_lockout', 'lockout404Notification', 10,
|
407 |
}
|
408 |
}
|
409 |
|
@@ -426,7 +426,7 @@ class Main extends Controller {
|
|
426 |
* @param $model
|
427 |
* @param $uri
|
428 |
*/
|
429 |
-
public function lockout404Notification( $model, $uri ) {
|
430 |
$settings = Settings::instance();
|
431 |
if ( ! Login_Protection_Api::maybeSendNotification( '404', $model, $settings ) ) {
|
432 |
return;
|
@@ -434,7 +434,7 @@ class Main extends Controller {
|
|
434 |
foreach ( $settings->receipts as $user_id ) {
|
435 |
$user = get_user_by( 'id', $user_id );
|
436 |
if ( is_object( $user ) ) {
|
437 |
-
$content = $this->renderPartial( 'emails/404-lockout', array(
|
438 |
'admin' => $user->display_name,
|
439 |
'ip' => $model->ip,
|
440 |
'uri' => $uri
|
403 |
$this->add_action( 'wd_login_lockout', 'lockoutLoginNotification', 10, 3 );
|
404 |
}
|
405 |
if ( $settings->ip_lockout_notification ) {
|
406 |
+
$this->add_action( 'wd_404_lockout', 'lockout404Notification', 10, 3 );
|
407 |
}
|
408 |
}
|
409 |
|
426 |
* @param $model
|
427 |
* @param $uri
|
428 |
*/
|
429 |
+
public function lockout404Notification( $model, $uri, $isBlacklisted ) {
|
430 |
$settings = Settings::instance();
|
431 |
if ( ! Login_Protection_Api::maybeSendNotification( '404', $model, $settings ) ) {
|
432 |
return;
|
434 |
foreach ( $settings->receipts as $user_id ) {
|
435 |
$user = get_user_by( 'id', $user_id );
|
436 |
if ( is_object( $user ) ) {
|
437 |
+
$content = $this->renderPartial( $isBlacklisted == true ? 'emails/404-ban' : 'emails/404-lockout', array(
|
438 |
'admin' => $user->display_name,
|
439 |
'ip' => $model->ip,
|
440 |
'uri' => $uri
|
app/module/ip-lockout/js/script.js
CHANGED
@@ -25,7 +25,11 @@ jQuery(function ($) {
|
|
25 |
return;
|
26 |
}
|
27 |
if (data.success == true) {
|
28 |
-
|
|
|
|
|
|
|
|
|
29 |
Defender.showNotification('success', data.data.message);
|
30 |
} else {
|
31 |
var progress = data.data.progress;
|
@@ -115,6 +119,9 @@ jQuery(function ($) {
|
|
115 |
$('body').on('click', '.lockout-nav', function (e) {
|
116 |
e.preventDefault();
|
117 |
var query = WDIP.buildFilterQuery();
|
|
|
|
|
|
|
118 |
query += '&paged=' + $(this).data('paged');
|
119 |
WDIP.ajaxPull(query, function () {
|
120 |
|
@@ -164,18 +171,26 @@ jQuery(function ($) {
|
|
164 |
$('#bulk-select').on('click', function () {
|
165 |
$('.single-select').prop('checked', $(this).prop('checked'))
|
166 |
})
|
167 |
-
|
|
|
168 |
$('#lockout-logs-sort').change(function () {
|
169 |
var value = $(this).val();
|
170 |
if (value === 'latest') {
|
171 |
query = 'orderby=id&order=desc'
|
|
|
|
|
172 |
} else if (value === 'oldest') {
|
173 |
query = 'orderby=id&order=asc'
|
|
|
|
|
174 |
} else if (value === 'ip') {
|
175 |
query = 'orderby=ip&order=asc'
|
|
|
|
|
176 |
}
|
177 |
-
|
178 |
-
|
|
|
179 |
})
|
180 |
});
|
181 |
|
25 |
return;
|
26 |
}
|
27 |
if (data.success == true) {
|
28 |
+
setTimeout(function () {
|
29 |
+
location.reload();
|
30 |
+
}, 1000)
|
31 |
+
$('.scan-progress-text span').text('100%');
|
32 |
+
$('.scan-progress-bar span').css('width', '100%');
|
33 |
Defender.showNotification('success', data.data.message);
|
34 |
} else {
|
35 |
var progress = data.data.progress;
|
119 |
$('body').on('click', '.lockout-nav', function (e) {
|
120 |
e.preventDefault();
|
121 |
var query = WDIP.buildFilterQuery();
|
122 |
+
if (order !== false && orderby !== false) {
|
123 |
+
query += '&order=' + order + '&orderby=' + orderby;
|
124 |
+
}
|
125 |
query += '&paged=' + $(this).data('paged');
|
126 |
WDIP.ajaxPull(query, function () {
|
127 |
|
171 |
$('#bulk-select').on('click', function () {
|
172 |
$('.single-select').prop('checked', $(this).prop('checked'))
|
173 |
})
|
174 |
+
var order = false;
|
175 |
+
var orderby = false;
|
176 |
$('#lockout-logs-sort').change(function () {
|
177 |
var value = $(this).val();
|
178 |
if (value === 'latest') {
|
179 |
query = 'orderby=id&order=desc'
|
180 |
+
order = 'desc';
|
181 |
+
orderby = 'id';
|
182 |
} else if (value === 'oldest') {
|
183 |
query = 'orderby=id&order=asc'
|
184 |
+
order = 'asc';
|
185 |
+
orderby = 'id';
|
186 |
} else if (value === 'ip') {
|
187 |
query = 'orderby=ip&order=asc'
|
188 |
+
order = 'asc';
|
189 |
+
orderby = 'ip';
|
190 |
}
|
191 |
+
WDIP.ajaxPull(query, function () {
|
192 |
+
|
193 |
+
});
|
194 |
})
|
195 |
});
|
196 |
|
app/module/ip-lockout/view/emails/404-ban.php
ADDED
@@ -0,0 +1,693 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2 |
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3 |
+
|
4 |
+
<head>
|
5 |
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
6 |
+
<meta name="viewport" content="width=device-width">
|
7 |
+
<title><?php _e( "New 404 Lockout", "defender-security" ) ?></title>
|
8 |
+
<style>
|
9 |
+
a.plugin-brand:hover {
|
10 |
+
color: #e23717 !important;
|
11 |
+
}
|
12 |
+
|
13 |
+
table.top-content td a:hover {
|
14 |
+
color: #ff5c28 !important;
|
15 |
+
}
|
16 |
+
</style>
|
17 |
+
</head>
|
18 |
+
|
19 |
+
<body
|
20 |
+
style="-moz-box-sizing: border-box; -ms-text-size-adjust: 100%; -webkit-box-sizing: border-box; -webkit-text-size-adjust: 100%; Margin: 0; background-color: #e9ebe7; box-sizing: border-box; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; min-width: 100%; padding: 0; text-align: left; width: 100% !important;">
|
21 |
+
<style>
|
22 |
+
@media only screen {
|
23 |
+
html {
|
24 |
+
min-height: 100%;
|
25 |
+
background: #f3f3f3;
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
@media only screen and (max-width: 596px) {
|
30 |
+
.small-float-center {
|
31 |
+
margin: 0 auto !important;
|
32 |
+
float: none !important;
|
33 |
+
text-align: center !important;
|
34 |
+
}
|
35 |
+
|
36 |
+
.small-text-center {
|
37 |
+
text-align: center !important;
|
38 |
+
}
|
39 |
+
|
40 |
+
.small-text-left {
|
41 |
+
text-align: left !important;
|
42 |
+
}
|
43 |
+
|
44 |
+
.small-text-right {
|
45 |
+
text-align: right !important;
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
@media only screen and (max-width: 596px) {
|
50 |
+
.hide-for-large {
|
51 |
+
display: block !important;
|
52 |
+
width: auto !important;
|
53 |
+
overflow: visible !important;
|
54 |
+
max-height: none !important;
|
55 |
+
font-size: inherit !important;
|
56 |
+
line-height: inherit !important;
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
@media only screen and (max-width: 596px) {
|
61 |
+
table.body table.container .hide-for-large,
|
62 |
+
table.body table.container .row.hide-for-large {
|
63 |
+
display: table !important;
|
64 |
+
width: 100% !important;
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
@media only screen and (max-width: 596px) {
|
69 |
+
table.body table.container .callout-inner.hide-for-large {
|
70 |
+
display: table-cell !important;
|
71 |
+
width: 100% !important;
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
@media only screen and (max-width: 596px) {
|
76 |
+
table.body table.container .show-for-large {
|
77 |
+
display: none !important;
|
78 |
+
width: 0;
|
79 |
+
mso-hide: all;
|
80 |
+
overflow: hidden;
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
@media only screen and (max-width: 596px) {
|
85 |
+
table.body img {
|
86 |
+
width: auto;
|
87 |
+
height: auto;
|
88 |
+
}
|
89 |
+
|
90 |
+
table.body center {
|
91 |
+
min-width: 0 !important;
|
92 |
+
}
|
93 |
+
|
94 |
+
table.body .container {
|
95 |
+
width: 95% !important;
|
96 |
+
}
|
97 |
+
|
98 |
+
table.body .columns,
|
99 |
+
table.body .column {
|
100 |
+
height: auto !important;
|
101 |
+
-moz-box-sizing: border-box;
|
102 |
+
-webkit-box-sizing: border-box;
|
103 |
+
box-sizing: border-box;
|
104 |
+
padding-left: 16px !important;
|
105 |
+
padding-right: 16px !important;
|
106 |
+
}
|
107 |
+
|
108 |
+
table.body .columns .column,
|
109 |
+
table.body .columns .columns,
|
110 |
+
table.body .column .column,
|
111 |
+
table.body .column .columns {
|
112 |
+
padding-left: 0 !important;
|
113 |
+
padding-right: 0 !important;
|
114 |
+
}
|
115 |
+
|
116 |
+
table.body .collapse .columns,
|
117 |
+
table.body .collapse .column {
|
118 |
+
padding-left: 0 !important;
|
119 |
+
padding-right: 0 !important;
|
120 |
+
}
|
121 |
+
|
122 |
+
td.small-1,
|
123 |
+
th.small-1 {
|
124 |
+
display: inline-block !important;
|
125 |
+
width: 8.33333% !important;
|
126 |
+
}
|
127 |
+
|
128 |
+
td.small-2,
|
129 |
+
th.small-2 {
|
130 |
+
display: inline-block !important;
|
131 |
+
width: 16.66667% !important;
|
132 |
+
}
|
133 |
+
|
134 |
+
td.small-3,
|
135 |
+
th.small-3 {
|
136 |
+
display: inline-block !important;
|
137 |
+
width: 25% !important;
|
138 |
+
}
|
139 |
+
|
140 |
+
td.small-4,
|
141 |
+
th.small-4 {
|
142 |
+
display: inline-block !important;
|
143 |
+
width: 33.33333% !important;
|
144 |
+
}
|
145 |
+
|
146 |
+
td.small-5,
|
147 |
+
th.small-5 {
|
148 |
+
display: inline-block !important;
|
149 |
+
width: 41.66667% !important;
|
150 |
+
}
|
151 |
+
|
152 |
+
td.small-6,
|
153 |
+
th.small-6 {
|
154 |
+
display: inline-block !important;
|
155 |
+
width: 50% !important;
|
156 |
+
}
|
157 |
+
|
158 |
+
td.small-7,
|
159 |
+
th.small-7 {
|
160 |
+
display: inline-block !important;
|
161 |
+
width: 58.33333% !important;
|
162 |
+
}
|
163 |
+
|
164 |
+
td.small-8,
|
165 |
+
th.small-8 {
|
166 |
+
display: inline-block !important;
|
167 |
+
width: 66.66667% !important;
|
168 |
+
}
|
169 |
+
|
170 |
+
td.small-9,
|
171 |
+
th.small-9 {
|
172 |
+
display: inline-block !important;
|
173 |
+
width: 75% !important;
|
174 |
+
}
|
175 |
+
|
176 |
+
td.small-10,
|
177 |
+
th.small-10 {
|
178 |
+
display: inline-block !important;
|
179 |
+
width: 83.33333% !important;
|
180 |
+
}
|
181 |
+
|
182 |
+
td.small-11,
|
183 |
+
th.small-11 {
|
184 |
+
display: inline-block !important;
|
185 |
+
width: 91.66667% !important;
|
186 |
+
}
|
187 |
+
|
188 |
+
td.small-12,
|
189 |
+
th.small-12 {
|
190 |
+
display: inline-block !important;
|
191 |
+
width: 100% !important;
|
192 |
+
}
|
193 |
+
|
194 |
+
.columns td.small-12,
|
195 |
+
.column td.small-12,
|
196 |
+
.columns th.small-12,
|
197 |
+
.column th.small-12 {
|
198 |
+
display: block !important;
|
199 |
+
width: 100% !important;
|
200 |
+
}
|
201 |
+
|
202 |
+
table.body td.small-offset-1,
|
203 |
+
table.body th.small-offset-1 {
|
204 |
+
margin-left: 8.33333% !important;
|
205 |
+
Margin-left: 8.33333% !important;
|
206 |
+
}
|
207 |
+
|
208 |
+
table.body td.small-offset-2,
|
209 |
+
table.body th.small-offset-2 {
|
210 |
+
margin-left: 16.66667% !important;
|
211 |
+
Margin-left: 16.66667% !important;
|
212 |
+
}
|
213 |
+
|
214 |
+
table.body td.small-offset-3,
|
215 |
+
table.body th.small-offset-3 {
|
216 |
+
margin-left: 25% !important;
|
217 |
+
Margin-left: 25% !important;
|
218 |
+
}
|
219 |
+
|
220 |
+
table.body td.small-offset-4,
|
221 |
+
table.body th.small-offset-4 {
|
222 |
+
margin-left: 33.33333% !important;
|
223 |
+
Margin-left: 33.33333% !important;
|
224 |
+
}
|
225 |
+
|
226 |
+
table.body td.small-offset-5,
|
227 |
+
table.body th.small-offset-5 {
|
228 |
+
margin-left: 41.66667% !important;
|
229 |
+
Margin-left: 41.66667% !important;
|
230 |
+
}
|
231 |
+
|
232 |
+
table.body td.small-offset-6,
|
233 |
+
table.body th.small-offset-6 {
|
234 |
+
margin-left: 50% !important;
|
235 |
+
Margin-left: 50% !important;
|
236 |
+
}
|
237 |
+
|
238 |
+
table.body td.small-offset-7,
|
239 |
+
table.body th.small-offset-7 {
|
240 |
+
margin-left: 58.33333% !important;
|
241 |
+
Margin-left: 58.33333% !important;
|
242 |
+
}
|
243 |
+
|
244 |
+
table.body td.small-offset-8,
|
245 |
+
table.body th.small-offset-8 {
|
246 |
+
margin-left: 66.66667% !important;
|
247 |
+
Margin-left: 66.66667% !important;
|
248 |
+
}
|
249 |
+
|
250 |
+
table.body td.small-offset-9,
|
251 |
+
table.body th.small-offset-9 {
|
252 |
+
margin-left: 75% !important;
|
253 |
+
Margin-left: 75% !important;
|
254 |
+
}
|
255 |
+
|
256 |
+
table.body td.small-offset-10,
|
257 |
+
table.body th.small-offset-10 {
|
258 |
+
margin-left: 83.33333% !important;
|
259 |
+
Margin-left: 83.33333% !important;
|
260 |
+
}
|
261 |
+
|
262 |
+
table.body td.small-offset-11,
|
263 |
+
table.body th.small-offset-11 {
|
264 |
+
margin-left: 91.66667% !important;
|
265 |
+
Margin-left: 91.66667% !important;
|
266 |
+
}
|
267 |
+
|
268 |
+
table.body table.columns td.expander,
|
269 |
+
table.body table.columns th.expander {
|
270 |
+
display: none !important;
|
271 |
+
}
|
272 |
+
|
273 |
+
table.body .right-text-pad,
|
274 |
+
table.body .text-pad-right {
|
275 |
+
padding-left: 10px !important;
|
276 |
+
}
|
277 |
+
|
278 |
+
table.body .left-text-pad,
|
279 |
+
table.body .text-pad-left {
|
280 |
+
padding-right: 10px !important;
|
281 |
+
}
|
282 |
+
|
283 |
+
table.menu {
|
284 |
+
width: 100% !important;
|
285 |
+
}
|
286 |
+
|
287 |
+
table.menu td,
|
288 |
+
table.menu th {
|
289 |
+
width: auto !important;
|
290 |
+
display: inline-block !important;
|
291 |
+
}
|
292 |
+
|
293 |
+
table.menu.vertical td,
|
294 |
+
table.menu.vertical th,
|
295 |
+
table.menu.small-vertical td,
|
296 |
+
table.menu.small-vertical th {
|
297 |
+
display: block !important;
|
298 |
+
}
|
299 |
+
|
300 |
+
table.menu[align="center"] {
|
301 |
+
width: auto !important;
|
302 |
+
}
|
303 |
+
|
304 |
+
table.button.small-expand,
|
305 |
+
table.button.small-expanded {
|
306 |
+
width: 100% !important;
|
307 |
+
}
|
308 |
+
|
309 |
+
table.button.small-expand table,
|
310 |
+
table.button.small-expanded table {
|
311 |
+
width: 100%;
|
312 |
+
}
|
313 |
+
|
314 |
+
table.button.small-expand table a,
|
315 |
+
table.button.small-expanded table a {
|
316 |
+
text-align: center !important;
|
317 |
+
width: 100% !important;
|
318 |
+
padding-left: 0 !important;
|
319 |
+
padding-right: 0 !important;
|
320 |
+
}
|
321 |
+
|
322 |
+
table.button.small-expand center,
|
323 |
+
table.button.small-expanded center {
|
324 |
+
min-width: 0;
|
325 |
+
}
|
326 |
+
}
|
327 |
+
|
328 |
+
@media screen and (max-width: 596px) {
|
329 |
+
/* results list */
|
330 |
+
table.results-list thead th {
|
331 |
+
line-height: 34px !important;
|
332 |
+
}
|
333 |
+
|
334 |
+
/* top */
|
335 |
+
table.top-content td {
|
336 |
+
text-align: center !important;
|
337 |
+
}
|
338 |
+
|
339 |
+
/* related */
|
340 |
+
table.related table.related-items .columns {
|
341 |
+
padding-right: 0 !important;
|
342 |
+
padding-bottom: 15px !important;
|
343 |
+
padding-left: 0 !important;
|
344 |
+
}
|
345 |
+
|
346 |
+
table.related table.related-items .columns.last {
|
347 |
+
padding-bottom: 0 !important;
|
348 |
+
}
|
349 |
+
|
350 |
+
table.related a.related-item .plugin-info {
|
351 |
+
vertical-align: middle !important;
|
352 |
+
}
|
353 |
+
|
354 |
+
/* company info */
|
355 |
+
table.company-info .columns {
|
356 |
+
padding-right: 0 !important;
|
357 |
+
padding-left: 0 !important;
|
358 |
+
}
|
359 |
+
|
360 |
+
table.company-info .columns.last {
|
361 |
+
padding: 15px 0 0 !important;
|
362 |
+
}
|
363 |
+
|
364 |
+
table.company-info .logo,
|
365 |
+
table.company-info .logo-link,
|
366 |
+
table.company-info .logo img {
|
367 |
+
text-align: left !important;
|
368 |
+
}
|
369 |
+
}
|
370 |
+
|
371 |
+
@media screen and (max-width: 540px) {
|
372 |
+
/* hero */
|
373 |
+
table.hero table.hero-content {
|
374 |
+
width: 100%;
|
375 |
+
}
|
376 |
+
|
377 |
+
table.hero td.hero-title h1,
|
378 |
+
table.hero td.hero-title h2 {
|
379 |
+
padding: 0 !important;
|
380 |
+
text-align: center !important;
|
381 |
+
}
|
382 |
+
|
383 |
+
table.hero td.hero-image {
|
384 |
+
display: none;
|
385 |
+
}
|
386 |
+
}
|
387 |
+
</style>
|
388 |
+
|
389 |
+
<table class="body"
|
390 |
+
style="Margin: 0; background: #f3f3f3; background-color: #e9ebe7; border-collapse: collapse; border-spacing: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; height: 100%; line-height: 26px; margin: 0; padding: 0; text-align: left; vertical-align: top; width: 100%;">
|
391 |
+
<tbody>
|
392 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
393 |
+
<td class="center" align="center" valign="top"
|
394 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 0; text-align: left; vertical-align: top; word-wrap: break-word;">
|
395 |
+
|
396 |
+
<center style="min-width: 600px; width: 100%;">
|
397 |
+
|
398 |
+
<table class="container"
|
399 |
+
style="Margin: 0 auto; background: #fefefe; background-color: #fff; border-collapse: collapse; border-spacing: 0; margin: 0 auto; padding: 0; text-align: inherit; vertical-align: top; width: 600px;">
|
400 |
+
<tbody>
|
401 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
402 |
+
<td style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 0; text-align: left; vertical-align: top; word-wrap: break-word;">
|
403 |
+
<table class="wrapper hero" align="left"
|
404 |
+
style="background-color: #e9ebe7; border-collapse: collapse; border-spacing: 0; padding: 0; text-align: left; vertical-align: top; width: 100%;">
|
405 |
+
<tbody>
|
406 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
407 |
+
<td class="wrapper-inner hero-inner"
|
408 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 20px 0 0; text-align: left; vertical-align: top; word-wrap: break-word;">
|
409 |
+
|
410 |
+
<table class="hero-content" align="left"
|
411 |
+
style="border-collapse: collapse; border-spacing: 0; padding: 0; text-align: left; vertical-align: top;">
|
412 |
+
<tbody>
|
413 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
414 |
+
<td class="hero-title"
|
415 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 0; padding-bottom: 18px; text-align: left; vertical-align: bottom; word-wrap: break-word;">
|
416 |
+
<h2 style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 30px; font-weight: 700; line-height: 1em; margin: 0; margin-bottom: 0; padding: 0; padding-left: 9px; text-align: left; text-transform: uppercase; word-wrap: normal;">
|
417 |
+
<?php esc_html_e( "Protected By", "defender-security" ) ?></h2>
|
418 |
+
<h1 class="plugin-brand"
|
419 |
+
style="Margin: 0; Margin-bottom: 0; color: #ff5c28; font-family: Helvetica, Arial, sans-serif; font-size: 60px; font-weight: 700; line-height: 1em; margin: 0; margin-bottom: 0; padding: 0; padding-left: 6px; text-align: left; text-transform: uppercase; word-wrap: normal;">
|
420 |
+
<?php esc_html_e( "Defender!", "defender-security" ) ?></h1>
|
421 |
+
</td>
|
422 |
+
<td class="hero-image"
|
423 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 0; text-align: left; vertical-align: top; word-wrap: break-word;">
|
424 |
+
<a href="https://premium.wpmudev.org/"
|
425 |
+
style="Margin: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 1.3; margin: 0; padding: 0; text-align: left; text-decoration: none;"><img
|
426 |
+
src="<?php echo wp_defender()->getPluginUrl() ?>assets/email-images/hero-defender.png"
|
427 |
+
alt="Defender"
|
428 |
+
style="-ms-interpolation-mode: bicubic; border: none; clear: both; display: block; max-width: 100%; outline: none; text-decoration: none; width: auto;"></a>
|
429 |
+
</td>
|
430 |
+
</tr>
|
431 |
+
</tbody>
|
432 |
+
</table>
|
433 |
+
<!-- end hero-content -->
|
434 |
+
|
435 |
+
</td>
|
436 |
+
</tr>
|
437 |
+
</tbody>
|
438 |
+
</table>
|
439 |
+
<!-- end hero -->
|
440 |
+
|
441 |
+
<table class="wrapper main" align="center"
|
442 |
+
style="border-collapse: collapse; border-spacing: 0; padding: 0; text-align: left; vertical-align: top; width: 100%;">
|
443 |
+
<tbody>
|
444 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
445 |
+
<td class="wrapper-inner main-inner"
|
446 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 40px; text-align: left; vertical-align: top; word-wrap: break-word;">
|
447 |
+
|
448 |
+
<table class="main-intro"
|
449 |
+
style="border-collapse: collapse; border-spacing: 0; padding: 0; text-align: left; vertical-align: top;">
|
450 |
+
<tbody>
|
451 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
452 |
+
<td class="main-intro-content"
|
453 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 0; text-align: left; vertical-align: top; word-wrap: break-word;">
|
454 |
+
<h3 style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 32px; font-weight: normal; line-height: 32px; margin: 0; margin-bottom: 0; padding: 0 0 28px; text-align: left; word-wrap: normal;">
|
455 |
+
<?php printf( __( "Hi %s", "defender-security" ), $admin ) ?>
|
456 |
+
,</h3>
|
457 |
+
<?php $setting = \WP_Defender\Module\IP_Lockout\Model\Settings::instance() ?>
|
458 |
+
<?php $utils = \WP_Defender\Behavior\Utils::instance() ?>
|
459 |
+
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
460 |
+
<?php printf( __( "We've just locked out the host <strong>%s</strong> from %s due to more than <strong>%s</strong> 404 requests for the file <strong>%s</strong>. They have been banned permanently.", "defender-security" ), $ip, network_site_url(), $setting->detect_404_threshold, $uri, $setting->detect_404_lockout_duration ) ?>
|
461 |
+
</p>
|
462 |
+
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
463 |
+
<?php printf( __( "You can view the full lockout logs <a href=\"%s\">here</a>", "defender-security" ), network_admin_url( "admin.php?page=wdf-ip-lockout&view=logs" ) ) ?>
|
464 |
+
.</p>
|
465 |
+
</td>
|
466 |
+
</tr>
|
467 |
+
</tbody>
|
468 |
+
</table>
|
469 |
+
<!-- end main-intro -->
|
470 |
+
|
471 |
+
<table class="main-signature"
|
472 |
+
style="border-collapse: collapse; border-spacing: 0; padding: 0; text-align: left; vertical-align: top;">
|
473 |
+
<tbody>
|
474 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
475 |
+
<td class="main-signature-content"
|
476 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 0; text-align: left; vertical-align: top; word-wrap: break-word;">
|
477 |
+
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
478 |
+
<?php esc_html_e( "Stay vigilant.", "defender-security" ) ?></p>
|
479 |
+
<p class="last-item"
|
480 |
+
style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0; text-align: left;">
|
481 |
+
<strong><?php esc_html_e( "WP Defender", "defender-security" ) ?></strong>
|
482 |
+
<br>
|
483 |
+
<?php esc_html_e( "Security Hero", "defender-security" ) ?>
|
484 |
+
<br/>
|
485 |
+
<?php esc_html_e( "WPMU DEV", "defender-security" ) ?>
|
486 |
+
</p>
|
487 |
+
</td>
|
488 |
+
</tr>
|
489 |
+
</tbody>
|
490 |
+
</table>
|
491 |
+
<!-- end main-signature -->
|
492 |
+
|
493 |
+
</td>
|
494 |
+
</tr>
|
495 |
+
</tbody>
|
496 |
+
</table>
|
497 |
+
<!-- end main -->
|
498 |
+
|
499 |
+
<table class="related" align="center"
|
500 |
+
style="border-collapse: collapse; border-spacing: 0; margin: 0; padding: 0; text-align: left; vertical-align: top; width: 100%;">
|
501 |
+
<tbody>
|
502 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
503 |
+
<td class="related-inner"
|
504 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; border-top: 2px solid #e9ebe7; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 15px 30px 15px 40px; text-align: left; vertical-align: top; word-wrap: break-word;">
|
505 |
+
<table
|
506 |
+
style="border-collapse: collapse; border-spacing: 0; padding: 0; text-align: left; vertical-align: top;">
|
507 |
+
<tbody>
|
508 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
509 |
+
<td class="related-items-title brand" align="left"
|
510 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #3eb4e4; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 0; padding-bottom: 10px; text-align: left; vertical-align: top; word-wrap: break-word;">
|
511 |
+
<?php esc_html_e( "Related plugins worth giving a try", "defender-security" ) ?>
|
512 |
+
</td>
|
513 |
+
</tr>
|
514 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
515 |
+
<td style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 0; text-align: left; vertical-align: top; word-wrap: break-word;">
|
516 |
+
<table class="related-items row collapse" align="center"
|
517 |
+
style="border-collapse: collapse; border-spacing: 0; display: table; padding: 0; position: relative; text-align: left; vertical-align: top; width: 100%;">
|
518 |
+
<tbody>
|
519 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
520 |
+
<th class="small-12 large-6 columns first" align="left"
|
521 |
+
valign="top"
|
522 |
+
style="Margin: 0 auto; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0 auto; padding: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; text-align: left; width: 298px;">
|
523 |
+
<a class="related-item plugin-link"
|
524 |
+
href="https://premium.wpmudev.org/project/wp-hummingbird/"
|
525 |
+
style="Margin: 0; color: #555555; display: table; font-family: Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0; padding: 0; text-align: left; text-decoration: none;">
|
526 |
+
<img
|
527 |
+
src="<?php echo wp_defender()->getPluginUrl() ?>assets/email-images/plugin-hummingbird.png"
|
528 |
+
alt="Hummingbird" class="plugin-image"
|
529 |
+
style="-ms-interpolation-mode: bicubic; border: none; clear: both; display: table-cell; max-width: 100%; outline: none; text-decoration: none; width: auto;">
|
530 |
+
<span class="plugin-info"
|
531 |
+
style="display: table-cell; padding-left: 10px; vertical-align: bottom;">
|
532 |
+
<span><?php esc_html_e( "Optimize your site with", "defender-security" ) ?></span>
|
533 |
+
<span class="plugin-title hummingbird"
|
534 |
+
style="color: #febd30; display: block;"><strong><?php esc_html_e( "Hummingbird", "defender-security" ) ?></strong></span>
|
535 |
+
</span>
|
536 |
+
</a>
|
537 |
+
</th>
|
538 |
+
<th class="small-12 large-6 columns last" align="left"
|
539 |
+
valign="top"
|
540 |
+
style="Margin: 0 auto; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0 auto; padding: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; text-align: left; width: 298px;">
|
541 |
+
<a class="related-item plugin-link"
|
542 |
+
href="https://premium.wpmudev.org/project/snapshot/"
|
543 |
+
style="Margin: 0; color: #555555; display: table; font-family: Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0; padding: 0; text-align: left; text-decoration: none;">
|
544 |
+
<img
|
545 |
+
src="<?php echo wp_defender()->getPluginUrl() ?>assets/email-images/plugin-snapshot.png"
|
546 |
+
alt="Snapshot"
|
547 |
+
class="plugin-image"
|
548 |
+
style="-ms-interpolation-mode: bicubic; border: none; clear: both; display: table-cell; max-width: 100%; outline: none; text-decoration: none; width: auto;">
|
549 |
+
<span class="plugin-info"
|
550 |
+
style="display: table-cell; padding-left: 10px; vertical-align: bottom;">
|
551 |
+
<span><?php esc_html_e( "Back up your hard work with", "defender-security" ) ?></span>
|
552 |
+
<span class="plugin-title snapshot"
|
553 |
+
style="color: #642486; display: block;"><strong><?php _e( "Snapshot", "defender-security" ) ?></strong></span>
|
554 |
+
</span>
|
555 |
+
</a>
|
556 |
+
</th>
|
557 |
+
<th class="expander"
|
558 |
+
style="Margin: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; padding: 0 !important; text-align: left; visibility: hidden; width: 0;"></th>
|
559 |
+
</tr>
|
560 |
+
</tbody>
|
561 |
+
</table>
|
562 |
+
</td>
|
563 |
+
</tr>
|
564 |
+
</tbody>
|
565 |
+
</table>
|
566 |
+
<!-- end related-inner -->
|
567 |
+
</td>
|
568 |
+
</tr>
|
569 |
+
</tbody>
|
570 |
+
</table>
|
571 |
+
<!-- end related -->
|
572 |
+
|
573 |
+
<!-- Preferences -->
|
574 |
+
<table class="email-preferences" align="center" valign="middle"
|
575 |
+
style="border-collapse: collapse; border-spacing: 0; margin: 0; padding: 0; text-align: left; vertical-align: top; width: 100%;">
|
576 |
+
<tbody>
|
577 |
+
<tr style="padding: 0; text-align: center; vertical-align: top;">
|
578 |
+
<td class="email-preferences-inner"
|
579 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; border-top: 2px solid #e9ebe7; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 40px; text-align: left; vertical-align: top; word-wrap: break-word;">
|
580 |
+
<table class="email-preferences-content row collapse" align="center" valign="top"
|
581 |
+
style="border-collapse: collapse; border-spacing: 0; display: table; padding: 0; position: relative; text-align: center; vertical-align: top; width: 100%;">
|
582 |
+
<tbody>
|
583 |
+
<tr style="padding: 0; text-align: center; vertical-align: top;">
|
584 |
+
<th class="small-12 large-8 columns first copy" align="center"
|
585 |
+
style="Margin: 0 auto; color: #707070; font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-weight: normal; line-height: 20px; margin: 0 auto; padding: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; text-align: left; width: 394.66667px;">
|
586 |
+
<p style="Margin: 0; Margin-bottom: 0; color: #707070; font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-weight: normal; line-height: 20px; margin: 0; margin-bottom: 0; padding: 0; text-align: center;">
|
587 |
+
<?php printf( __( "<a href=\"%s\">Configure reporting preferences</a>", "defender-security" ), network_admin_url( "admin.php?page=wdf-ip-lockout&view=reporting" ) ) ?>
|
588 |
+
</p>
|
589 |
+
</th>
|
590 |
+
</tr>
|
591 |
+
</tbody>
|
592 |
+
</table>
|
593 |
+
</td>
|
594 |
+
</tr>
|
595 |
+
</tbody>
|
596 |
+
</table>
|
597 |
+
<!-- End Preferences -->
|
598 |
+
|
599 |
+
<table class="company-info" align="left" valign="middle"
|
600 |
+
style="border-collapse: collapse; border-spacing: 0; margin: 0; padding: 0; text-align: left; vertical-align: top; width: 100%;">
|
601 |
+
<tbody>
|
602 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
603 |
+
<td class="company-info-inner"
|
604 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; border-top: 2px solid #e9ebe7; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 40px; text-align: left; vertical-align: top; word-wrap: break-word;">
|
605 |
+
<table class="company-info-content row collapse" align="left" valign="top"
|
606 |
+
style="border-collapse: collapse; border-spacing: 0; display: table; padding: 0; position: relative; text-align: left; vertical-align: top; width: 100%;">
|
607 |
+
<tbody>
|
608 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
609 |
+
<th class="small-12 large-8 columns first copy" align="left"
|
610 |
+
style="Margin: 0 auto; color: #707070; font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-weight: normal; line-height: 20px; margin: 0 auto; padding: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; text-align: left; width: 394.66667px;">
|
611 |
+
<p style="Margin: 0; Margin-bottom: 0; color: #707070; font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-weight: normal; line-height: 20px; margin: 0; margin-bottom: 0; padding: 0; text-align: left;">
|
612 |
+
Copyright © Incsub, All rights reserved.</p>
|
613 |
+
<p style="Margin: 0; Margin-bottom: 0; color: #707070; font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-weight: normal; line-height: 20px; margin: 0; margin-bottom: 0; padding: 0; text-align: left;">
|
614 |
+
Incsub PO box 163 Albert Park, Victoria 3206 Australia</p>
|
615 |
+
</th>
|
616 |
+
<th class="small-12 large-4 columns last logo" align="right"
|
617 |
+
style="Margin: 0 auto; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0 auto; padding: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; text-align: right; width: 201.33333px;">
|
618 |
+
<a href="https://premium.wpmudev.org" class="logo-link"
|
619 |
+
style="Margin: 0; color: #555555; display: inline-block; font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 1.3; margin: 0; padding: 0; text-align: right; text-decoration: none;">
|
620 |
+
<img
|
621 |
+
src="<?php echo wp_defender()->getPluginUrl() ?>assets/email-images/wpmudev-logo.png"
|
622 |
+
alt="WPMU DEV"
|
623 |
+
style="-ms-interpolation-mode: bicubic; border: none; clear: both; display: inline-block; max-width: 100%; outline: none; text-align: right; text-decoration: none; width: auto;">
|
624 |
+
</a>
|
625 |
+
</th>
|
626 |
+
<th class="expander"
|
627 |
+
style="Margin: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; padding: 0 !important; text-align: left; visibility: hidden; width: 0;"></th>
|
628 |
+
</tr>
|
629 |
+
</tbody>
|
630 |
+
</table>
|
631 |
+
</td>
|
632 |
+
</tr>
|
633 |
+
</tbody>
|
634 |
+
</table>
|
635 |
+
<!-- end company-info -->
|
636 |
+
|
637 |
+
<table class="wrapper social" align="center"
|
638 |
+
style="background-color: #e9ebe7; border-collapse: collapse; border-spacing: 0; padding: 0; text-align: left; vertical-align: top; width: 100%;">
|
639 |
+
<tbody>
|
640 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
641 |
+
<td class="wrapper-inner social-inner"
|
642 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 40px 60px 20px; text-align: left; vertical-align: top; word-wrap: break-word;">
|
643 |
+
|
644 |
+
<table class="social-content" align="center"
|
645 |
+
style="border-collapse: collapse; border-spacing: 0; padding: 0; text-align: left; vertical-align: top;">
|
646 |
+
<tbody>
|
647 |
+
<tr style="padding: 0; text-align: left; vertical-align: top;">
|
648 |
+
<td class="social-content-inner"
|
649 |
+
style="-moz-hyphens: auto; -webkit-hyphens: auto; Margin: 0; border-collapse: collapse !important; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; hyphens: auto; line-height: 26px; margin: 0; padding: 0; text-align: center; vertical-align: top; word-wrap: break-word;">
|
650 |
+
<a href="https://plus.google.com/+wpmuorg/" target="_blank"
|
651 |
+
class="gplus"
|
652 |
+
style="Margin: 0; color: #555555; display: inline-block; font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 1.3; margin: 0; margin-right: 4px; padding: 0; text-align: left; text-decoration: none;"><img
|
653 |
+
src="<?php echo wp_defender()->getPluginUrl() ?>assets/email-images/icon-gplus.png"
|
654 |
+
alt="WPMU DEV on Google+"
|
655 |
+
style="-ms-interpolation-mode: bicubic; border: none; clear: both; display: block; max-width: 100%; outline: none; text-decoration: none; width: auto;"></a>
|
656 |
+
<a href="https://twitter.com/wpmudev" target="_blank"
|
657 |
+
class="twitter"
|
658 |
+
style="Margin: 0; color: #555555; display: inline-block; font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 1.3; margin: 0; margin-right: 4px; padding: 0; text-align: left; text-decoration: none;"><img
|
659 |
+
src="<?php echo wp_defender()->getPluginUrl() ?>assets/email-images/icon-twitter.png"
|
660 |
+
alt="WPMU DEV on Twitter"
|
661 |
+
style="-ms-interpolation-mode: bicubic; border: none; clear: both; display: block; max-width: 100%; outline: none; text-decoration: none; width: auto;"></a>
|
662 |
+
<a href="https://www.facebook.com/wpmudev" target="_blank"
|
663 |
+
class="facebook"
|
664 |
+
style="Margin: 0; color: #555555; display: inline-block; font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 1.3; margin: 0; margin-right: 0; padding: 0; text-align: left; text-decoration: none;"><img
|
665 |
+
src="<?php echo wp_defender()->getPluginUrl() ?>assets/email-images/icon-facebook.png"
|
666 |
+
alt="WPMU DEV on Facebook"
|
667 |
+
style="-ms-interpolation-mode: bicubic; border: none; clear: both; display: block; max-width: 100%; outline: none; text-decoration: none; width: auto;"></a>
|
668 |
+
</td>
|
669 |
+
</tr>
|
670 |
+
</tbody>
|
671 |
+
</table>
|
672 |
+
<!-- end social-content -->
|
673 |
+
|
674 |
+
</td>
|
675 |
+
</tr>
|
676 |
+
</tbody>
|
677 |
+
</table>
|
678 |
+
<!-- end top -->
|
679 |
+
</td>
|
680 |
+
</tr>
|
681 |
+
</tbody>
|
682 |
+
</table>
|
683 |
+
<!-- end main container -->
|
684 |
+
|
685 |
+
</center>
|
686 |
+
|
687 |
+
</td>
|
688 |
+
</tr>
|
689 |
+
</tbody>
|
690 |
+
</table>
|
691 |
+
<!-- end body -->
|
692 |
+
</body>
|
693 |
+
</html>
|
changelog.txt
CHANGED
@@ -4,16 +4,25 @@ Tested up to: 4.7.4
|
|
4 |
|
5 |
Change Log:
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
2.0 - 2018-04-09
|
8 |
----------------------------------------------------------------------
|
9 |
- New: added tweak “Disable XML-RPC”
|
10 |
- Improvement: Two factor authentication can now be force enabled by role.
|
11 |
-
- Improvement:
|
12 |
-
- Fix: Compatibility with Appointments login when Mask Login enabled.
|
13 |
-
- Fix: /login/ will be blocked instead of
|
14 |
-
- Fix: new site registration
|
15 |
-
- Fix: Accessibility
|
16 |
-
- Changes: Show Admin Pointer
|
|
|
17 |
|
18 |
1.9.1 - 2018-09-07
|
19 |
----------------------------------------------------------------------
|
4 |
|
5 |
Change Log:
|
6 |
|
7 |
+
2.0.1 - 2018-19-11
|
8 |
+
----------------------------------------------------------------------
|
9 |
+
- Fix: permanently ban 404 lockouts now send correct email
|
10 |
+
- Fix: IP lockout logs sorting show wrong results when pagination
|
11 |
+
- Fix: IP lockout logs show wrong badge for 404 lockout
|
12 |
+
- Fix: Conflict issue with sensei plugin make 2FA does not work properly
|
13 |
+
- Other minor enhancements and fixes
|
14 |
+
|
15 |
2.0 - 2018-04-09
|
16 |
----------------------------------------------------------------------
|
17 |
- New: added tweak “Disable XML-RPC”
|
18 |
- Improvement: Two factor authentication can now be force enabled by role.
|
19 |
+
- Improvement: Masking URL description.
|
20 |
+
- Fix: Compatibility with Appointments+ login when Mask Login is enabled.
|
21 |
+
- Fix: /login/ will be blocked instead of redirecting to right login URL
|
22 |
+
- Fix: new site registration email login URL will now show right Login URL instead of the original one when Mask URL is enabled.
|
23 |
+
- Fix: Accessibility issue when activating 2FA.
|
24 |
+
- Changes: Show Admin Pointer on initial Defender activation, and removing the redirect behavior.
|
25 |
+
- Other minor enhancements and fixes
|
26 |
|
27 |
1.9.1 - 2018-09-07
|
28 |
----------------------------------------------------------------------
|
free-dashboard/README.md
CHANGED
@@ -14,7 +14,7 @@ It will display a welcome message upon plugin activation that offers the user a
|
|
14 |
4. Done!
|
15 |
|
16 |
|
17 |
-
## Code Example (from
|
18 |
|
19 |
```
|
20 |
#!php
|
@@ -27,10 +27,10 @@ include_once 'lib/wdev-frash/module.php';
|
|
27 |
do_action(
|
28 |
'wdev-register-plugin',
|
29 |
/* 1 Plugin ID */ plugin_basename( __FILE__ ),
|
30 |
-
/* 2 Plugin Title */ '
|
31 |
-
/* 3 https://wordpress.org */ '/plugins/
|
32 |
-
/* 4 Email Button CTA */ __( 'Get
|
33 |
-
/* 5
|
34 |
);
|
35 |
// All done!
|
36 |
```
|
@@ -39,7 +39,7 @@ do_action(
|
|
39 |
2. The plugin title, same as in the plugin header (no translation!)
|
40 |
3. The wordpress.org plugin-URL
|
41 |
4. Optional: Title of the Email-subscription button. If empty no email message is displayed.
|
42 |
-
5. Optional:
|
43 |
|
44 |
|
45 |
## Optional: Customize the messages via filters ##
|
14 |
4. Done!
|
15 |
|
16 |
|
17 |
+
## Code Example (from Smush ) ##
|
18 |
|
19 |
```
|
20 |
#!php
|
27 |
do_action(
|
28 |
'wdev-register-plugin',
|
29 |
/* 1 Plugin ID */ plugin_basename( __FILE__ ),
|
30 |
+
/* 2 Plugin Title */ 'Smush',
|
31 |
+
/* 3 https://wordpress.org */ '/plugins/wp-smushit/',
|
32 |
+
/* 4 Email Button CTA */ __( 'Get Fast!', MYD_TEXT_DOMAIN ),
|
33 |
+
/* 5 Mailchimp List id for the plugin - e.g. 4b14b58816 is list id for Smush */ '4b14b58816'
|
34 |
);
|
35 |
// All done!
|
36 |
```
|
39 |
2. The plugin title, same as in the plugin header (no translation!)
|
40 |
3. The wordpress.org plugin-URL
|
41 |
4. Optional: Title of the Email-subscription button. If empty no email message is displayed.
|
42 |
+
5. Optional: Mailchimp List id for the plugin. If empty no email message is displayed
|
43 |
|
44 |
|
45 |
## Optional: Customize the messages via filters ##
|
free-dashboard/admin.js
CHANGED
@@ -3,10 +3,9 @@ jQuery(function() {
|
|
3 |
type = el_notice.find( "input[name=type]" ).val(),
|
4 |
plugin_id = el_notice.find( "input[name=plugin_id]" ).val(),
|
5 |
url_wp = el_notice.find( "input[name=url_wp]" ).val(),
|
6 |
-
|
7 |
-
inp_email = el_notice.find( "input[name=email]" )
|
8 |
btn_act = el_notice.find( ".frash-notice-act" ),
|
9 |
-
btn_dismiss = el_notice.find( ".frash-notice-dismiss" )
|
10 |
ajax_data = {};
|
11 |
|
12 |
ajax_data.plugin_id = plugin_id;
|
@@ -65,22 +64,22 @@ jQuery(function() {
|
|
65 |
}
|
66 |
|
67 |
// Submit the user to our email list.
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
//
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
|
85 |
// Notify WordPress about the users choice and close the message.
|
86 |
function notify_wordpress( action, message ) {
|
@@ -100,6 +99,12 @@ jQuery(function() {
|
|
100 |
btn_act.click(function( ev ) {
|
101 |
ev.preventDefault();
|
102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
switch ( type ) {
|
104 |
case 'rate': act_rate(); break;
|
105 |
case 'email': act_email(); break;
|
@@ -116,16 +121,4 @@ jQuery(function() {
|
|
116 |
});
|
117 |
|
118 |
window.setTimeout( initialize, 500 );
|
119 |
-
});
|
120 |
-
|
121 |
-
// Drip integration
|
122 |
-
var _dcq = _dcq || [];
|
123 |
-
var _dcs = _dcs || {};
|
124 |
-
|
125 |
-
_dcs.account = '6994213';
|
126 |
-
var dc = document.createElement( 'script' );
|
127 |
-
dc.type = 'text/javascript'; dc.async = true;
|
128 |
-
dc.src = '//tag.getdrip.com/6994213.js';
|
129 |
-
var s = document.getElementsByTagName('script')[0];
|
130 |
-
s.parentNode.insertBefore(dc, s);
|
131 |
-
// End of drip integration
|
3 |
type = el_notice.find( "input[name=type]" ).val(),
|
4 |
plugin_id = el_notice.find( "input[name=plugin_id]" ).val(),
|
5 |
url_wp = el_notice.find( "input[name=url_wp]" ).val(),
|
6 |
+
inp_email = el_notice.find( "input[name=EMAIL]" ),
|
|
|
7 |
btn_act = el_notice.find( ".frash-notice-act" ),
|
8 |
+
btn_dismiss = el_notice.find( ".frash-notice-dismiss" ),
|
9 |
ajax_data = {};
|
10 |
|
11 |
ajax_data.plugin_id = plugin_id;
|
64 |
}
|
65 |
|
66 |
// Submit the user to our email list.
|
67 |
+
function act_email() {
|
68 |
+
|
69 |
+
var form = inp_email.parent('form');
|
70 |
+
//Submit email to mailing list
|
71 |
+
jQuery.ajax({
|
72 |
+
type: form.attr('method'),
|
73 |
+
url: form.attr('action'),
|
74 |
+
data: form.serialize(),
|
75 |
+
cache: false,
|
76 |
+
dataType: 'json',
|
77 |
+
contentType: 'application/json; charset=utf-8',
|
78 |
+
success: function (data) {
|
79 |
+
console.log(data.msg);
|
80 |
+
}
|
81 |
+
});
|
82 |
+
}
|
83 |
|
84 |
// Notify WordPress about the users choice and close the message.
|
85 |
function notify_wordpress( action, message ) {
|
99 |
btn_act.click(function( ev ) {
|
100 |
ev.preventDefault();
|
101 |
|
102 |
+
//Do not submit form if the value is not set
|
103 |
+
var email_inpt = btn_act.parent().find('input[type="email"]');
|
104 |
+
if( !email_inpt.length || !email_inpt.val() ) {
|
105 |
+
return;
|
106 |
+
}
|
107 |
+
|
108 |
switch ( type ) {
|
109 |
case 'rate': act_rate(); break;
|
110 |
case 'email': act_email(); break;
|
121 |
});
|
122 |
|
123 |
window.setTimeout( initialize, 500 );
|
124 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
free-dashboard/module.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* WPMUDEV Frash - Free Dashboard Notification module.
|
4 |
* Used by wordpress.org hosted plugins.
|
5 |
*
|
6 |
-
* @version 1.
|
7 |
* @author Incsub (Philipp Stracker)
|
8 |
*/
|
9 |
if ( ! class_exists( 'WDev_Frash' ) ) {
|
@@ -28,6 +28,16 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
|
|
28 |
*/
|
29 |
protected $stored = array();
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
/**
|
32 |
* Initializes and returns the singleton instance.
|
33 |
*
|
@@ -106,9 +116,9 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
|
|
106 |
* @param string $title Plugin name for display.
|
107 |
* @param string $url_wp URL to the plugin on wp.org (domain not needed)
|
108 |
* @param string $cta_email Title of the Email CTA button.
|
109 |
-
* @param string $
|
110 |
*/
|
111 |
-
public function wdev_register_plugin( $plugin_id, $title, $url_wp, $cta_email = '', $
|
112 |
// Ignore incorrectly registered plugins to avoid errors later.
|
113 |
if ( empty( $plugin_id ) ) { return; }
|
114 |
if ( empty( $title ) ) { return; }
|
@@ -123,7 +133,7 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
|
|
123 |
'title' => $title,
|
124 |
'url_wp' => $url_wp,
|
125 |
'cta_email' => $cta_email,
|
126 |
-
'
|
127 |
);
|
128 |
|
129 |
/*
|
@@ -257,7 +267,8 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
|
|
257 |
}
|
258 |
}
|
259 |
if ( 'email' == $item['type'] ) {
|
260 |
-
|
|
|
261 |
// Do not display email message with missing email params.
|
262 |
$can_display = false;
|
263 |
}
|
@@ -350,7 +361,6 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
|
|
350 |
<input type="hidden" name="type" value="<?php echo esc_attr( $info->type ); ?>" />
|
351 |
<input type="hidden" name="plugin_id" value="<?php echo esc_attr( $info->plugin ); ?>" />
|
352 |
<input type="hidden" name="url_wp" value="<?php echo esc_attr( $plugin->url_wp ); ?>" />
|
353 |
-
<input type="hidden" name="drip_plugin" value="<?php echo esc_attr( $plugin->drip_plugin ); ?>" />
|
354 |
<?php
|
355 |
if ( 'email' == $info->type ) {
|
356 |
$this->render_email_message( $plugin );
|
@@ -370,9 +380,8 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
|
|
370 |
* @since 1.0.0
|
371 |
*/
|
372 |
protected function render_email_message( $plugin ) {
|
373 |
-
$user = wp_get_current_user();
|
374 |
-
$user_name = $user->display_name;
|
375 |
$admin_email = get_site_option( 'admin_email' );
|
|
|
376 |
|
377 |
$msg = __( "We're happy that you've chosen to install %s! Are you interested in how to make the most of this plugin? How would you like a quick 5 day email crash course with actionable advice on building your membership site? Only the info you want, no subscription!", 'wdev_frash' );
|
378 |
$msg = apply_filters( 'wdev-email-message-' . $plugin->id, $msg );
|
@@ -388,13 +397,15 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
|
|
388 |
?>
|
389 |
</div>
|
390 |
<div class="frash-notice-cta">
|
391 |
-
<
|
392 |
-
|
393 |
-
<?php
|
394 |
-
|
395 |
-
|
396 |
-
<?php _e( '
|
397 |
-
|
|
|
|
|
398 |
</div>
|
399 |
<?php
|
400 |
}
|
3 |
* WPMUDEV Frash - Free Dashboard Notification module.
|
4 |
* Used by wordpress.org hosted plugins.
|
5 |
*
|
6 |
+
* @version 1.2
|
7 |
* @author Incsub (Philipp Stracker)
|
8 |
*/
|
9 |
if ( ! class_exists( 'WDev_Frash' ) ) {
|
28 |
*/
|
29 |
protected $stored = array();
|
30 |
|
31 |
+
/**
|
32 |
+
* User id /API Key for Mailchimp subscriber list
|
33 |
+
*
|
34 |
+
* @since 1.2
|
35 |
+
*
|
36 |
+
* @var string
|
37 |
+
*
|
38 |
+
*/
|
39 |
+
private $mc_user_id = '53a1e972a043d1264ed082a5b';
|
40 |
+
|
41 |
/**
|
42 |
* Initializes and returns the singleton instance.
|
43 |
*
|
116 |
* @param string $title Plugin name for display.
|
117 |
* @param string $url_wp URL to the plugin on wp.org (domain not needed)
|
118 |
* @param string $cta_email Title of the Email CTA button.
|
119 |
+
* @param string $mc_list_id required. Mailchimp mailing list id for the plugin.
|
120 |
*/
|
121 |
+
public function wdev_register_plugin( $plugin_id, $title, $url_wp, $cta_email = '', $mc_list_id = '' ) {
|
122 |
// Ignore incorrectly registered plugins to avoid errors later.
|
123 |
if ( empty( $plugin_id ) ) { return; }
|
124 |
if ( empty( $title ) ) { return; }
|
133 |
'title' => $title,
|
134 |
'url_wp' => $url_wp,
|
135 |
'cta_email' => $cta_email,
|
136 |
+
'mc_list_id' => $mc_list_id,
|
137 |
);
|
138 |
|
139 |
/*
|
267 |
}
|
268 |
}
|
269 |
if ( 'email' == $item['type'] ) {
|
270 |
+
//If we don't have mailchimp list id
|
271 |
+
if ( ! $plugin->mc_list_id || ! $plugin->cta_email ) {
|
272 |
// Do not display email message with missing email params.
|
273 |
$can_display = false;
|
274 |
}
|
361 |
<input type="hidden" name="type" value="<?php echo esc_attr( $info->type ); ?>" />
|
362 |
<input type="hidden" name="plugin_id" value="<?php echo esc_attr( $info->plugin ); ?>" />
|
363 |
<input type="hidden" name="url_wp" value="<?php echo esc_attr( $plugin->url_wp ); ?>" />
|
|
|
364 |
<?php
|
365 |
if ( 'email' == $info->type ) {
|
366 |
$this->render_email_message( $plugin );
|
380 |
* @since 1.0.0
|
381 |
*/
|
382 |
protected function render_email_message( $plugin ) {
|
|
|
|
|
383 |
$admin_email = get_site_option( 'admin_email' );
|
384 |
+
$action = "https://edublogs.us1.list-manage.com/subscribe/post?u={$this->mc_user_id}&id={$plugin->mc_list_id}";
|
385 |
|
386 |
$msg = __( "We're happy that you've chosen to install %s! Are you interested in how to make the most of this plugin? How would you like a quick 5 day email crash course with actionable advice on building your membership site? Only the info you want, no subscription!", 'wdev_frash' );
|
387 |
$msg = apply_filters( 'wdev-email-message-' . $plugin->id, $msg );
|
397 |
?>
|
398 |
</div>
|
399 |
<div class="frash-notice-cta">
|
400 |
+
<form action="<?php echo $action; ?>" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
|
401 |
+
<input type="email" name="EMAIL" class="email" id="mce-EMAIL" value="<?php echo esc_attr( $admin_email ); ?>" required="required"/>
|
402 |
+
<button class="frash-notice-act button-primary" data-msg="<?php _e( 'Thanks :)', 'wdev_frash' ); ?>" type="submit">
|
403 |
+
<?php echo esc_html( $plugin->cta_email ); ?>
|
404 |
+
</button>
|
405 |
+
<button class="frash-notice-dismiss" data-msg="<?php _e( 'Saving', 'wdev_frash' ); ?>">
|
406 |
+
<?php _e( 'No thanks', 'wdev_frash' ); ?>
|
407 |
+
</button>
|
408 |
+
</form>
|
409 |
</div>
|
410 |
<?php
|
411 |
}
|
languages/wpdef-default.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the GNU General Public License (Version 2 - GPLv2).
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Defender Pro 2.0\n"
|
6 |
"Report-Msgid-Bugs-To: https://wpmudev.org\n"
|
7 |
-
"POT-Creation-Date: 2018-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -152,17 +152,17 @@ msgid "Lockout reports are active scheduled to send %s"
|
|
152 |
msgstr ""
|
153 |
|
154 |
#: app/behavior/report-free.php:129 app/behavior/report.php:224
|
155 |
-
#: app/behavior/utils.php:
|
156 |
msgid "daily"
|
157 |
msgstr ""
|
158 |
|
159 |
#: app/behavior/report-free.php:132 app/behavior/report.php:227
|
160 |
-
#: app/behavior/utils.php:
|
161 |
msgid "weekly"
|
162 |
msgstr ""
|
163 |
|
164 |
#: app/behavior/report-free.php:135 app/behavior/report.php:230
|
165 |
-
#: app/behavior/utils.php:
|
166 |
msgid "monthly"
|
167 |
msgstr ""
|
168 |
|
@@ -216,27 +216,27 @@ msgstr ""
|
|
216 |
msgid "Guest"
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: app/behavior/utils.php:
|
220 |
msgid "WordPress Core Integrity"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: app/behavior/utils.php:
|
224 |
msgid "Plugins & Themes vulnerability"
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: app/behavior/utils.php:
|
228 |
#: app/module/scan/view/layouts/layout.php:70
|
229 |
#: app/module/scan/view/setting-free.php:50 app/module/scan/view/setting.php:43
|
230 |
#: app/view/settings.php:98
|
231 |
msgid "Suspicious Code"
|
232 |
msgstr ""
|
233 |
|
234 |
-
#: app/behavior/utils.php:
|
235 |
#: app/module/ip-lockout/controller/main.php:93
|
236 |
msgid "Never"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: app/behavior/utils.php:
|
240 |
msgid "Please upgrade to 5.3 or later"
|
241 |
msgstr ""
|
242 |
|
@@ -351,7 +351,7 @@ msgstr ""
|
|
351 |
|
352 |
#: app/module/advanced-tools/behavior/at-widget.php:18
|
353 |
#: app/module/advanced-tools/controller/main.php:486
|
354 |
-
#: app/module/advanced-tools/view/layouts/layout.php:
|
355 |
msgid "Advanced Tools"
|
356 |
msgstr ""
|
357 |
|
@@ -362,7 +362,7 @@ msgid ""
|
|
362 |
msgstr ""
|
363 |
|
364 |
#: app/module/advanced-tools/behavior/at-widget.php:28
|
365 |
-
#: app/module/advanced-tools/view/layouts/layout.php:
|
366 |
#: app/module/advanced-tools/view/main-free.php:4
|
367 |
#: app/module/advanced-tools/view/main.php:4
|
368 |
msgid "Two-Factor Authentication"
|
@@ -410,7 +410,7 @@ msgid "Activate"
|
|
410 |
msgstr ""
|
411 |
|
412 |
#: app/module/advanced-tools/behavior/at-widget.php:75
|
413 |
-
#: app/module/advanced-tools/view/layouts/layout.php:
|
414 |
#: app/module/advanced-tools/view/mask-login/disabled.php:4
|
415 |
#: app/module/advanced-tools/view/mask-login/enabled.php:4
|
416 |
msgid "Mask Login Area"
|
@@ -431,12 +431,12 @@ msgstr ""
|
|
431 |
msgid "Masking is currently active at <strong>%s</strong>"
|
432 |
msgstr ""
|
433 |
|
434 |
-
#: app/module/advanced-tools/component/mask-api.php:
|
435 |
msgid "The URL is invalid"
|
436 |
msgstr ""
|
437 |
|
438 |
-
#: app/module/advanced-tools/component/mask-api.php:
|
439 |
-
#: app/module/advanced-tools/component/mask-api.php:
|
440 |
msgid ""
|
441 |
"A page already exists at this URL, please pick a unique page for your new "
|
442 |
"login area."
|
@@ -465,8 +465,8 @@ msgid "Your token is invalid"
|
|
465 |
msgstr ""
|
466 |
|
467 |
#: app/module/advanced-tools/controller/main.php:246
|
468 |
-
#: app/module/advanced-tools/controller/main.php:
|
469 |
-
#: app/module/advanced-tools/controller/main.php:
|
470 |
#: app/module/advanced-tools/view/2factor-otp-email-edit-from.php:3
|
471 |
msgid "Your OTP code"
|
472 |
msgstr ""
|
@@ -495,36 +495,36 @@ msgstr ""
|
|
495 |
msgid "Edit Email"
|
496 |
msgstr ""
|
497 |
|
498 |
-
#: app/module/advanced-tools/controller/main.php:
|
499 |
-
#: app/module/advanced-tools/controller/mask-login.php:
|
500 |
#: app/module/audit/controller/main.php:197
|
501 |
-
#: app/module/ip-lockout/controller/main.php:
|
502 |
#: app/module/scan/controller/main.php:306
|
503 |
msgid "Your settings have been updated."
|
504 |
msgstr ""
|
505 |
|
506 |
-
#: app/module/advanced-tools/controller/main.php:
|
507 |
-
#: app/module/advanced-tools/controller/main.php:
|
508 |
msgid "%s variable was not found in mail body."
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: app/module/advanced-tools/controller/main.php:
|
512 |
msgid "Email settings has been saved."
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: app/module/advanced-tools/controller/main.php:
|
516 |
msgid "Test email has been sent to your email."
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: app/module/advanced-tools/controller/main.php:
|
520 |
msgid "Test email failed."
|
521 |
msgstr ""
|
522 |
|
523 |
-
#: app/module/advanced-tools/controller/mask-login.php:
|
524 |
msgid "This feature is disabled"
|
525 |
msgstr ""
|
526 |
|
527 |
-
#: app/module/advanced-tools/controller/mask-login.php:
|
528 |
msgid "Login and 404 redirect URLs can't be the same. Please use different URLs."
|
529 |
msgstr ""
|
530 |
|
@@ -554,7 +554,7 @@ msgid "Available variables"
|
|
554 |
msgstr ""
|
555 |
|
556 |
#: app/module/advanced-tools/view/2factor-otp-email-edit-from.php:39
|
557 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
558 |
#: app/module/scan/controller/main.php:531 app/module/scan/view/setting.php:138
|
559 |
#: app/module/scan/view/setting.php:158
|
560 |
msgid "Cancel"
|
@@ -570,9 +570,9 @@ msgid "Send Test"
|
|
570 |
msgstr ""
|
571 |
|
572 |
#: app/module/advanced-tools/view/disabled.php:4
|
573 |
-
#: app/module/advanced-tools/view/layouts/layout.php:
|
574 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
575 |
-
#: app/module/advanced-tools/view/login/enabled.php:
|
576 |
msgid "Two Factor Authentication"
|
577 |
msgstr ""
|
578 |
|
@@ -584,69 +584,69 @@ msgid ""
|
|
584 |
"protection against brute force attacks."
|
585 |
msgstr ""
|
586 |
|
587 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
588 |
-
#: app/module/advanced-tools/view/login/enabled.php:
|
589 |
msgid "Security"
|
590 |
msgstr ""
|
591 |
|
592 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
593 |
#: app/module/ip-lockout/view/detect-404/disabled.php:16
|
594 |
#: app/module/ip-lockout/view/login-lockouts/disabled.php:18
|
595 |
msgid "Enable"
|
596 |
msgstr ""
|
597 |
|
598 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
599 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
600 |
msgid "Use the Google Authenticator app to sign in with a separate passcode."
|
601 |
msgstr ""
|
602 |
|
603 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
604 |
msgid "1. Install the Verification app"
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
608 |
msgid ""
|
609 |
"Download and install the Google Authenticator app on your device using the "
|
610 |
"links below."
|
611 |
msgstr ""
|
612 |
|
613 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
614 |
msgid "2. Scan the barcode"
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
618 |
msgid ""
|
619 |
"Open the Google Authenticator app you just downloaded, tap the “+” symbol "
|
620 |
"and then use your phone’s camera to scan the barcode below."
|
621 |
msgstr ""
|
622 |
|
623 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
624 |
msgid "3. Enter passcode"
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
628 |
msgid ""
|
629 |
"Enter the 6 digit passcode that is shown on your device into the input "
|
630 |
"field below and hit “Verify”."
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: app/module/advanced-tools/view/login/disabled.php:
|
634 |
msgid "Verify"
|
635 |
msgstr ""
|
636 |
|
637 |
-
#: app/module/advanced-tools/view/login/enabled.php:
|
638 |
msgid "Two factor authentication is active."
|
639 |
msgstr ""
|
640 |
|
641 |
-
#: app/module/advanced-tools/view/login/enabled.php:
|
642 |
msgid "Disable"
|
643 |
msgstr ""
|
644 |
|
645 |
-
#: app/module/advanced-tools/view/login/enabled.php:
|
646 |
msgid "Fallback email address"
|
647 |
msgstr ""
|
648 |
|
649 |
-
#: app/module/advanced-tools/view/login/enabled.php:
|
650 |
msgid ""
|
651 |
"If you ever lose your device, you can send a fallback passcode to this "
|
652 |
"email address."
|
@@ -990,37 +990,37 @@ msgid "restored"
|
|
990 |
msgstr ""
|
991 |
|
992 |
#: app/module/audit/component/audit-api.php:205
|
993 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
994 |
msgid "year"
|
995 |
msgstr ""
|
996 |
|
997 |
#: app/module/audit/component/audit-api.php:206
|
998 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
999 |
msgid "month"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
#: app/module/audit/component/audit-api.php:207
|
1003 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
1004 |
msgid "week"
|
1005 |
msgstr ""
|
1006 |
|
1007 |
#: app/module/audit/component/audit-api.php:208
|
1008 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
1009 |
msgid "day"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
#: app/module/audit/component/audit-api.php:209
|
1013 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
1014 |
msgid "hour"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
#: app/module/audit/component/audit-api.php:210
|
1018 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
1019 |
msgid "minute"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
#: app/module/audit/component/audit-api.php:211
|
1023 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
1024 |
msgid "second"
|
1025 |
msgstr ""
|
1026 |
|
@@ -1717,6 +1717,7 @@ msgid "Audit Update From"
|
|
1717 |
msgstr ""
|
1718 |
|
1719 |
#: app/module/audit/view/email_template.php:419
|
|
|
1720 |
#: app/module/ip-lockout/view/emails/404-lockout.php:420
|
1721 |
#: app/module/ip-lockout/view/emails/login-lockout.php:420
|
1722 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:420
|
@@ -1726,6 +1727,7 @@ msgid "Defender!"
|
|
1726 |
msgstr ""
|
1727 |
|
1728 |
#: app/module/audit/view/email_template.php:454
|
|
|
1729 |
#: app/module/ip-lockout/view/emails/404-lockout.php:511
|
1730 |
#: app/module/ip-lockout/view/emails/login-lockout.php:513
|
1731 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:512
|
@@ -1735,6 +1737,7 @@ msgid "Related plugins worth giving a try"
|
|
1735 |
msgstr ""
|
1736 |
|
1737 |
#: app/module/audit/view/email_template.php:475
|
|
|
1738 |
#: app/module/ip-lockout/view/emails/404-lockout.php:532
|
1739 |
#: app/module/ip-lockout/view/emails/login-lockout.php:534
|
1740 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:533
|
@@ -1744,6 +1747,7 @@ msgid "Optimize your site with"
|
|
1744 |
msgstr ""
|
1745 |
|
1746 |
#: app/module/audit/view/email_template.php:477
|
|
|
1747 |
#: app/module/ip-lockout/view/emails/404-lockout.php:534
|
1748 |
#: app/module/ip-lockout/view/emails/login-lockout.php:536
|
1749 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:535
|
@@ -1753,6 +1757,7 @@ msgid "Hummingbird"
|
|
1753 |
msgstr ""
|
1754 |
|
1755 |
#: app/module/audit/view/email_template.php:494
|
|
|
1756 |
#: app/module/ip-lockout/view/emails/404-lockout.php:551
|
1757 |
#: app/module/ip-lockout/view/emails/login-lockout.php:553
|
1758 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:552
|
@@ -1762,6 +1767,7 @@ msgid "Back up your hard work with"
|
|
1762 |
msgstr ""
|
1763 |
|
1764 |
#: app/module/audit/view/email_template.php:496
|
|
|
1765 |
#: app/module/ip-lockout/view/emails/404-lockout.php:553
|
1766 |
#: app/module/ip-lockout/view/emails/login-lockout.php:555
|
1767 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:554
|
@@ -1771,6 +1777,7 @@ msgid "Snapshot"
|
|
1771 |
msgstr ""
|
1772 |
|
1773 |
#: app/module/audit/view/email_template.php:530
|
|
|
1774 |
#: app/module/ip-lockout/view/emails/404-lockout.php:587
|
1775 |
#: app/module/ip-lockout/view/emails/login-lockout.php:589
|
1776 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:588
|
@@ -1824,7 +1831,7 @@ msgstr ""
|
|
1824 |
|
1825 |
#: app/module/audit/view/main.php:21 app/module/audit/view/main.php:27
|
1826 |
#: app/module/audit/view/main.php:78
|
1827 |
-
#: app/module/ip-lockout/component/logs-table.php:
|
1828 |
msgid "Filter"
|
1829 |
msgstr ""
|
1830 |
|
@@ -2852,8 +2859,8 @@ msgid "Lockout notifications are disabled"
|
|
2852 |
msgstr ""
|
2853 |
|
2854 |
#: app/module/ip-lockout/component/login-protection-api.php:61
|
2855 |
-
#: app/module/ip-lockout/controller/main.php:
|
2856 |
-
#: app/module/ip-lockout/controller/main.php:
|
2857 |
msgid ""
|
2858 |
"You have been locked out by the administrator for attempting to login with "
|
2859 |
"a banned username"
|
@@ -2875,36 +2882,36 @@ msgstr ""
|
|
2875 |
msgid "Lockout occurred: Too many 404 requests for %s"
|
2876 |
msgstr ""
|
2877 |
|
2878 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
2879 |
msgid "Ban IP"
|
2880 |
msgstr ""
|
2881 |
|
2882 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
2883 |
msgid "Unban IP"
|
2884 |
msgstr ""
|
2885 |
|
2886 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
2887 |
msgid "Add Whitelist"
|
2888 |
msgstr ""
|
2889 |
|
2890 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
2891 |
msgid "Unwhitelist"
|
2892 |
msgstr ""
|
2893 |
|
2894 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
2895 |
msgid "Is whitelisted"
|
2896 |
msgstr ""
|
2897 |
|
2898 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
2899 |
msgid "Is blacklisted"
|
2900 |
msgstr ""
|
2901 |
|
2902 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
2903 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
2904 |
msgid "Not banned"
|
2905 |
msgstr ""
|
2906 |
|
2907 |
-
#: app/module/ip-lockout/component/login-protection-api.php:
|
2908 |
msgid "Banned"
|
2909 |
msgstr ""
|
2910 |
|
@@ -2942,7 +2949,7 @@ msgid "Login lockout"
|
|
2942 |
msgstr ""
|
2943 |
|
2944 |
#: app/module/ip-lockout/component/logs-table.php:174
|
2945 |
-
#: app/module/ip-lockout/component/logs-table.php:
|
2946 |
#: app/module/ip-lockout/model/log-model-legacy.php:113
|
2947 |
#: app/module/ip-lockout/model/log-model-legacy.php:114
|
2948 |
#: app/module/ip-lockout/model/log-model.php:72
|
@@ -2977,33 +2984,33 @@ msgstr ""
|
|
2977 |
msgid "%s tried to login with username %s"
|
2978 |
msgstr ""
|
2979 |
|
2980 |
-
#: app/module/ip-lockout/component/logs-table.php:
|
2981 |
msgid "Login failed"
|
2982 |
msgstr ""
|
2983 |
|
2984 |
-
#: app/module/ip-lockout/component/logs-table.php:
|
2985 |
msgid "IP"
|
2986 |
msgstr ""
|
2987 |
|
2988 |
-
#: app/module/ip-lockout/component/logs-table.php:
|
2989 |
msgid "Date/Time"
|
2990 |
msgstr ""
|
2991 |
|
2992 |
-
#: app/module/ip-lockout/component/logs-table.php:
|
2993 |
msgid "Ban Status"
|
2994 |
msgstr ""
|
2995 |
|
2996 |
-
#: app/module/ip-lockout/component/logs-table.php:
|
2997 |
msgid ""
|
2998 |
"Note: Make sure this IP is not a legitimate operation, banning the IP will "
|
2999 |
"result in being permanently locked out from accessing your website."
|
3000 |
msgstr ""
|
3001 |
|
3002 |
-
#: app/module/ip-lockout/component/logs-table.php:
|
3003 |
msgid "%s results"
|
3004 |
msgstr ""
|
3005 |
|
3006 |
-
#: app/module/ip-lockout/component/logs-table.php:
|
3007 |
msgid "Select All"
|
3008 |
msgstr ""
|
3009 |
|
@@ -3033,64 +3040,64 @@ msgstr ""
|
|
3033 |
msgid "Demo"
|
3034 |
msgstr ""
|
3035 |
|
3036 |
-
#: app/module/ip-lockout/controller/main.php:
|
3037 |
msgid "404 lockout alert for %s"
|
3038 |
msgstr ""
|
3039 |
|
3040 |
-
#: app/module/ip-lockout/controller/main.php:
|
3041 |
msgid "Login lockout alert for %s"
|
3042 |
msgstr ""
|
3043 |
|
3044 |
-
#: app/module/ip-lockout/controller/main.php:
|
3045 |
msgid "Failed login attempt with username %s"
|
3046 |
msgstr ""
|
3047 |
|
3048 |
-
#: app/module/ip-lockout/controller/main.php:
|
3049 |
-
#: app/module/ip-lockout/controller/main.php:
|
3050 |
msgid "%d login attempts remaining"
|
3051 |
msgstr ""
|
3052 |
|
3053 |
-
#: app/module/ip-lockout/controller/main.php:
|
3054 |
msgid ""
|
3055 |
"Your settings have been updated, however some IPs were removed because "
|
3056 |
"invalid format, or you blacklist yourself"
|
3057 |
msgstr ""
|
3058 |
|
3059 |
-
#: app/module/ip-lockout/controller/main.php:
|
3060 |
msgid "Login Protection has been activated."
|
3061 |
msgstr ""
|
3062 |
|
3063 |
-
#: app/module/ip-lockout/controller/main.php:
|
3064 |
msgid "Login Protection has been deactivated."
|
3065 |
msgstr ""
|
3066 |
|
3067 |
-
#: app/module/ip-lockout/controller/main.php:
|
3068 |
msgid "404 Detection has been activated."
|
3069 |
msgstr ""
|
3070 |
|
3071 |
-
#: app/module/ip-lockout/controller/main.php:
|
3072 |
msgid "404 Detection has been deactivated."
|
3073 |
msgstr ""
|
3074 |
|
3075 |
-
#: app/module/ip-lockout/controller/main.php:
|
3076 |
#: app/view/activator-free.php:33 app/view/activator.php:49
|
3077 |
msgid "IP Lockouts"
|
3078 |
msgstr ""
|
3079 |
|
3080 |
-
#: app/module/ip-lockout/controller/main.php:
|
3081 |
-
#: app/module/ip-lockout/controller/main.php:
|
3082 |
msgid "Your file is invalid!"
|
3083 |
msgstr ""
|
3084 |
|
3085 |
-
#: app/module/ip-lockout/controller/main.php:
|
3086 |
msgid "Your file content is invalid!"
|
3087 |
msgstr ""
|
3088 |
|
3089 |
-
#: app/module/ip-lockout/controller/main.php:
|
3090 |
msgid "Your whitelist/blacklist has been successfully imported."
|
3091 |
msgstr ""
|
3092 |
|
3093 |
-
#: app/module/ip-lockout/controller/main.php:
|
3094 |
msgid "Thanks for your patience. All set."
|
3095 |
msgstr ""
|
3096 |
|
@@ -3301,10 +3308,12 @@ msgstr ""
|
|
3301 |
msgid "Monitor 404s from logged in users"
|
3302 |
msgstr ""
|
3303 |
|
|
|
3304 |
#: app/module/ip-lockout/view/emails/404-lockout.php:7
|
3305 |
msgid "New 404 Lockout"
|
3306 |
msgstr ""
|
3307 |
|
|
|
3308 |
#: app/module/ip-lockout/view/emails/404-lockout.php:417
|
3309 |
#: app/module/ip-lockout/view/emails/login-lockout.php:417
|
3310 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:417
|
@@ -3313,17 +3322,19 @@ msgstr ""
|
|
3313 |
msgid "Protected By"
|
3314 |
msgstr ""
|
3315 |
|
|
|
3316 |
#: app/module/ip-lockout/view/emails/404-lockout.php:455
|
3317 |
msgid "Hi %s"
|
3318 |
msgstr ""
|
3319 |
|
3320 |
-
#: app/module/ip-lockout/view/emails/404-
|
3321 |
msgid ""
|
3322 |
"We've just locked out the host <strong>%s</strong> from %s due to more than "
|
3323 |
"<strong>%s</strong> 404 requests for the file <strong>%s</strong>. They "
|
3324 |
-
"have been
|
3325 |
msgstr ""
|
3326 |
|
|
|
3327 |
#: app/module/ip-lockout/view/emails/404-lockout.php:463
|
3328 |
#: app/module/ip-lockout/view/emails/login-lockout.php:465
|
3329 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:464
|
@@ -3331,6 +3342,7 @@ msgstr ""
|
|
3331 |
msgid "You can view the full lockout logs <a href=\"%s\">here</a>"
|
3332 |
msgstr ""
|
3333 |
|
|
|
3334 |
#: app/module/ip-lockout/view/emails/404-lockout.php:478
|
3335 |
#: app/module/ip-lockout/view/emails/login-lockout.php:480
|
3336 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:479
|
@@ -3338,6 +3350,7 @@ msgstr ""
|
|
3338 |
msgid "Stay vigilant."
|
3339 |
msgstr ""
|
3340 |
|
|
|
3341 |
#: app/module/ip-lockout/view/emails/404-lockout.php:481
|
3342 |
#: app/module/ip-lockout/view/emails/login-lockout.php:483
|
3343 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:482
|
@@ -3345,6 +3358,7 @@ msgstr ""
|
|
3345 |
msgid "WP Defender"
|
3346 |
msgstr ""
|
3347 |
|
|
|
3348 |
#: app/module/ip-lockout/view/emails/404-lockout.php:483
|
3349 |
#: app/module/ip-lockout/view/emails/login-lockout.php:485
|
3350 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:484
|
@@ -3356,6 +3370,13 @@ msgstr ""
|
|
3356 |
msgid "WPMU DEV"
|
3357 |
msgstr ""
|
3358 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3359 |
#: app/module/ip-lockout/view/emails/login-lockout.php:7
|
3360 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:7
|
3361 |
msgid "New Login Lockout"
|
@@ -4648,15 +4669,14 @@ msgid ""
|
|
4648 |
msgstr ""
|
4649 |
|
4650 |
#: free/main-activator.php:70
|
4651 |
-
msgid "Get
|
4652 |
msgstr ""
|
4653 |
|
4654 |
#: free/main-activator.php:78
|
4655 |
msgid ""
|
4656 |
-
"
|
4657 |
-
"
|
4658 |
-
"
|
4659 |
-
"bulletproof? Only the info you want, no subscription!"
|
4660 |
msgstr ""
|
4661 |
|
4662 |
#: free/main-activator.php:120
|
@@ -4674,7 +4694,7 @@ msgstr ""
|
|
4674 |
msgid "Docs"
|
4675 |
msgstr ""
|
4676 |
|
4677 |
-
#: free-dashboard/module.php:
|
4678 |
msgid ""
|
4679 |
"We're happy that you've chosen to install %s! Are you interested in how to "
|
4680 |
"make the most of this plugin? How would you like a quick 5 day email crash "
|
@@ -4682,31 +4702,31 @@ msgid ""
|
|
4682 |
"info you want, no subscription!"
|
4683 |
msgstr ""
|
4684 |
|
4685 |
-
#: free-dashboard/module.php:
|
4686 |
msgid "Thanks :)"
|
4687 |
msgstr ""
|
4688 |
|
4689 |
-
#: free-dashboard/module.php:
|
4690 |
msgid "Saving"
|
4691 |
msgstr ""
|
4692 |
|
4693 |
-
#: free-dashboard/module.php:
|
4694 |
msgid "No thanks"
|
4695 |
msgstr ""
|
4696 |
|
4697 |
-
#: free-dashboard/module.php:
|
4698 |
msgid ""
|
4699 |
"Hey %s, you've been using %s for a while now, and we hope you're happy with "
|
4700 |
"it."
|
4701 |
msgstr ""
|
4702 |
|
4703 |
-
#: free-dashboard/module.php:
|
4704 |
msgid ""
|
4705 |
"We've spent countless hours developing this free plugin for you, and we "
|
4706 |
"would really appreciate it if you dropped us a quick rating!"
|
4707 |
msgstr ""
|
4708 |
|
4709 |
-
#: free-dashboard/module.php:
|
4710 |
msgid "Rate %s"
|
4711 |
msgstr ""
|
4712 |
|
2 |
# This file is distributed under the GNU General Public License (Version 2 - GPLv2).
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Defender Pro 2.0.1-beta2\n"
|
6 |
"Report-Msgid-Bugs-To: https://wpmudev.org\n"
|
7 |
+
"POT-Creation-Date: 2018-10-08 10:52:02+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
152 |
msgstr ""
|
153 |
|
154 |
#: app/behavior/report-free.php:129 app/behavior/report.php:224
|
155 |
+
#: app/behavior/utils.php:917 free/utils.php:709
|
156 |
msgid "daily"
|
157 |
msgstr ""
|
158 |
|
159 |
#: app/behavior/report-free.php:132 app/behavior/report.php:227
|
160 |
+
#: app/behavior/utils.php:920 free/utils.php:712
|
161 |
msgid "weekly"
|
162 |
msgstr ""
|
163 |
|
164 |
#: app/behavior/report-free.php:135 app/behavior/report.php:230
|
165 |
+
#: app/behavior/utils.php:923 free/utils.php:715
|
166 |
msgid "monthly"
|
167 |
msgstr ""
|
168 |
|
216 |
msgid "Guest"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: app/behavior/utils.php:741
|
220 |
msgid "WordPress Core Integrity"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: app/behavior/utils.php:742
|
224 |
msgid "Plugins & Themes vulnerability"
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: app/behavior/utils.php:743 app/module/scan/behavior/scan.php:145
|
228 |
#: app/module/scan/view/layouts/layout.php:70
|
229 |
#: app/module/scan/view/setting-free.php:50 app/module/scan/view/setting.php:43
|
230 |
#: app/view/settings.php:98
|
231 |
msgid "Suspicious Code"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: app/behavior/utils.php:772 app/module/audit/controller/main.php:144
|
235 |
#: app/module/ip-lockout/controller/main.php:93
|
236 |
msgid "Never"
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: app/behavior/utils.php:900 free/utils.php:692
|
240 |
msgid "Please upgrade to 5.3 or later"
|
241 |
msgstr ""
|
242 |
|
351 |
|
352 |
#: app/module/advanced-tools/behavior/at-widget.php:18
|
353 |
#: app/module/advanced-tools/controller/main.php:486
|
354 |
+
#: app/module/advanced-tools/view/layouts/layout.php:6
|
355 |
msgid "Advanced Tools"
|
356 |
msgstr ""
|
357 |
|
362 |
msgstr ""
|
363 |
|
364 |
#: app/module/advanced-tools/behavior/at-widget.php:28
|
365 |
+
#: app/module/advanced-tools/view/layouts/layout.php:14
|
366 |
#: app/module/advanced-tools/view/main-free.php:4
|
367 |
#: app/module/advanced-tools/view/main.php:4
|
368 |
msgid "Two-Factor Authentication"
|
410 |
msgstr ""
|
411 |
|
412 |
#: app/module/advanced-tools/behavior/at-widget.php:75
|
413 |
+
#: app/module/advanced-tools/view/layouts/layout.php:20
|
414 |
#: app/module/advanced-tools/view/mask-login/disabled.php:4
|
415 |
#: app/module/advanced-tools/view/mask-login/enabled.php:4
|
416 |
msgid "Mask Login Area"
|
431 |
msgid "Masking is currently active at <strong>%s</strong>"
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: app/module/advanced-tools/component/mask-api.php:142
|
435 |
msgid "The URL is invalid"
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: app/module/advanced-tools/component/mask-api.php:147
|
439 |
+
#: app/module/advanced-tools/component/mask-api.php:158
|
440 |
msgid ""
|
441 |
"A page already exists at this URL, please pick a unique page for your new "
|
442 |
"login area."
|
465 |
msgstr ""
|
466 |
|
467 |
#: app/module/advanced-tools/controller/main.php:246
|
468 |
+
#: app/module/advanced-tools/controller/main.php:588
|
469 |
+
#: app/module/advanced-tools/controller/main.php:632
|
470 |
#: app/module/advanced-tools/view/2factor-otp-email-edit-from.php:3
|
471 |
msgid "Your OTP code"
|
472 |
msgstr ""
|
495 |
msgid "Edit Email"
|
496 |
msgstr ""
|
497 |
|
498 |
+
#: app/module/advanced-tools/controller/main.php:568
|
499 |
+
#: app/module/advanced-tools/controller/mask-login.php:285
|
500 |
#: app/module/audit/controller/main.php:197
|
501 |
+
#: app/module/ip-lockout/controller/main.php:740
|
502 |
#: app/module/scan/controller/main.php:306
|
503 |
msgid "Your settings have been updated."
|
504 |
msgstr ""
|
505 |
|
506 |
+
#: app/module/advanced-tools/controller/main.php:594
|
507 |
+
#: app/module/advanced-tools/controller/main.php:638
|
508 |
msgid "%s variable was not found in mail body."
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: app/module/advanced-tools/controller/main.php:606
|
512 |
msgid "Email settings has been saved."
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: app/module/advanced-tools/controller/main.php:655
|
516 |
msgid "Test email has been sent to your email."
|
517 |
msgstr ""
|
518 |
|
519 |
+
#: app/module/advanced-tools/controller/main.php:659
|
520 |
msgid "Test email failed."
|
521 |
msgstr ""
|
522 |
|
523 |
+
#: app/module/advanced-tools/controller/mask-login.php:232
|
524 |
msgid "This feature is disabled"
|
525 |
msgstr ""
|
526 |
|
527 |
+
#: app/module/advanced-tools/controller/mask-login.php:278
|
528 |
msgid "Login and 404 redirect URLs can't be the same. Please use different URLs."
|
529 |
msgstr ""
|
530 |
|
554 |
msgstr ""
|
555 |
|
556 |
#: app/module/advanced-tools/view/2factor-otp-email-edit-from.php:39
|
557 |
+
#: app/module/advanced-tools/view/login/disabled.php:37
|
558 |
#: app/module/scan/controller/main.php:531 app/module/scan/view/setting.php:138
|
559 |
#: app/module/scan/view/setting.php:158
|
560 |
msgid "Cancel"
|
570 |
msgstr ""
|
571 |
|
572 |
#: app/module/advanced-tools/view/disabled.php:4
|
573 |
+
#: app/module/advanced-tools/view/layouts/layout.php:27
|
574 |
+
#: app/module/advanced-tools/view/login/disabled.php:5
|
575 |
+
#: app/module/advanced-tools/view/login/enabled.php:5
|
576 |
msgid "Two Factor Authentication"
|
577 |
msgstr ""
|
578 |
|
584 |
"protection against brute force attacks."
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: app/module/advanced-tools/view/login/disabled.php:1
|
588 |
+
#: app/module/advanced-tools/view/login/enabled.php:1
|
589 |
msgid "Security"
|
590 |
msgstr ""
|
591 |
|
592 |
+
#: app/module/advanced-tools/view/login/disabled.php:28
|
593 |
#: app/module/ip-lockout/view/detect-404/disabled.php:16
|
594 |
#: app/module/ip-lockout/view/login-lockouts/disabled.php:18
|
595 |
msgid "Enable"
|
596 |
msgstr ""
|
597 |
|
598 |
+
#: app/module/advanced-tools/view/login/disabled.php:32
|
599 |
+
#: app/module/advanced-tools/view/login/disabled.php:38
|
600 |
msgid "Use the Google Authenticator app to sign in with a separate passcode."
|
601 |
msgstr ""
|
602 |
|
603 |
+
#: app/module/advanced-tools/view/login/disabled.php:41
|
604 |
msgid "1. Install the Verification app"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: app/module/advanced-tools/view/login/disabled.php:44
|
608 |
msgid ""
|
609 |
"Download and install the Google Authenticator app on your device using the "
|
610 |
"links below."
|
611 |
msgstr ""
|
612 |
|
613 |
+
#: app/module/advanced-tools/view/login/disabled.php:53
|
614 |
msgid "2. Scan the barcode"
|
615 |
msgstr ""
|
616 |
|
617 |
+
#: app/module/advanced-tools/view/login/disabled.php:54
|
618 |
msgid ""
|
619 |
"Open the Google Authenticator app you just downloaded, tap the “+” symbol "
|
620 |
"and then use your phone’s camera to scan the barcode below."
|
621 |
msgstr ""
|
622 |
|
623 |
+
#: app/module/advanced-tools/view/login/disabled.php:58
|
624 |
msgid "3. Enter passcode"
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: app/module/advanced-tools/view/login/disabled.php:60
|
628 |
msgid ""
|
629 |
"Enter the 6 digit passcode that is shown on your device into the input "
|
630 |
"field below and hit “Verify”."
|
631 |
msgstr ""
|
632 |
|
633 |
+
#: app/module/advanced-tools/view/login/disabled.php:66
|
634 |
msgid "Verify"
|
635 |
msgstr ""
|
636 |
|
637 |
+
#: app/module/advanced-tools/view/login/enabled.php:8
|
638 |
msgid "Two factor authentication is active."
|
639 |
msgstr ""
|
640 |
|
641 |
+
#: app/module/advanced-tools/view/login/enabled.php:11
|
642 |
msgid "Disable"
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: app/module/advanced-tools/view/login/enabled.php:16
|
646 |
msgid "Fallback email address"
|
647 |
msgstr ""
|
648 |
|
649 |
+
#: app/module/advanced-tools/view/login/enabled.php:20
|
650 |
msgid ""
|
651 |
"If you ever lose your device, you can send a fallback passcode to this "
|
652 |
"email address."
|
990 |
msgstr ""
|
991 |
|
992 |
#: app/module/audit/component/audit-api.php:205
|
993 |
+
#: app/module/ip-lockout/component/login-protection-api.php:250
|
994 |
msgid "year"
|
995 |
msgstr ""
|
996 |
|
997 |
#: app/module/audit/component/audit-api.php:206
|
998 |
+
#: app/module/ip-lockout/component/login-protection-api.php:251
|
999 |
msgid "month"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
#: app/module/audit/component/audit-api.php:207
|
1003 |
+
#: app/module/ip-lockout/component/login-protection-api.php:252
|
1004 |
msgid "week"
|
1005 |
msgstr ""
|
1006 |
|
1007 |
#: app/module/audit/component/audit-api.php:208
|
1008 |
+
#: app/module/ip-lockout/component/login-protection-api.php:253
|
1009 |
msgid "day"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
#: app/module/audit/component/audit-api.php:209
|
1013 |
+
#: app/module/ip-lockout/component/login-protection-api.php:254
|
1014 |
msgid "hour"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
#: app/module/audit/component/audit-api.php:210
|
1018 |
+
#: app/module/ip-lockout/component/login-protection-api.php:255
|
1019 |
msgid "minute"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
#: app/module/audit/component/audit-api.php:211
|
1023 |
+
#: app/module/ip-lockout/component/login-protection-api.php:256
|
1024 |
msgid "second"
|
1025 |
msgstr ""
|
1026 |
|
1717 |
msgstr ""
|
1718 |
|
1719 |
#: app/module/audit/view/email_template.php:419
|
1720 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:420
|
1721 |
#: app/module/ip-lockout/view/emails/404-lockout.php:420
|
1722 |
#: app/module/ip-lockout/view/emails/login-lockout.php:420
|
1723 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:420
|
1727 |
msgstr ""
|
1728 |
|
1729 |
#: app/module/audit/view/email_template.php:454
|
1730 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:511
|
1731 |
#: app/module/ip-lockout/view/emails/404-lockout.php:511
|
1732 |
#: app/module/ip-lockout/view/emails/login-lockout.php:513
|
1733 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:512
|
1737 |
msgstr ""
|
1738 |
|
1739 |
#: app/module/audit/view/email_template.php:475
|
1740 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:532
|
1741 |
#: app/module/ip-lockout/view/emails/404-lockout.php:532
|
1742 |
#: app/module/ip-lockout/view/emails/login-lockout.php:534
|
1743 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:533
|
1747 |
msgstr ""
|
1748 |
|
1749 |
#: app/module/audit/view/email_template.php:477
|
1750 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:534
|
1751 |
#: app/module/ip-lockout/view/emails/404-lockout.php:534
|
1752 |
#: app/module/ip-lockout/view/emails/login-lockout.php:536
|
1753 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:535
|
1757 |
msgstr ""
|
1758 |
|
1759 |
#: app/module/audit/view/email_template.php:494
|
1760 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:551
|
1761 |
#: app/module/ip-lockout/view/emails/404-lockout.php:551
|
1762 |
#: app/module/ip-lockout/view/emails/login-lockout.php:553
|
1763 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:552
|
1767 |
msgstr ""
|
1768 |
|
1769 |
#: app/module/audit/view/email_template.php:496
|
1770 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:553
|
1771 |
#: app/module/ip-lockout/view/emails/404-lockout.php:553
|
1772 |
#: app/module/ip-lockout/view/emails/login-lockout.php:555
|
1773 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:554
|
1777 |
msgstr ""
|
1778 |
|
1779 |
#: app/module/audit/view/email_template.php:530
|
1780 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:587
|
1781 |
#: app/module/ip-lockout/view/emails/404-lockout.php:587
|
1782 |
#: app/module/ip-lockout/view/emails/login-lockout.php:589
|
1783 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:588
|
1831 |
|
1832 |
#: app/module/audit/view/main.php:21 app/module/audit/view/main.php:27
|
1833 |
#: app/module/audit/view/main.php:78
|
1834 |
+
#: app/module/ip-lockout/component/logs-table.php:340
|
1835 |
msgid "Filter"
|
1836 |
msgstr ""
|
1837 |
|
2859 |
msgstr ""
|
2860 |
|
2861 |
#: app/module/ip-lockout/component/login-protection-api.php:61
|
2862 |
+
#: app/module/ip-lockout/controller/main.php:635
|
2863 |
+
#: app/module/ip-lockout/controller/main.php:644
|
2864 |
msgid ""
|
2865 |
"You have been locked out by the administrator for attempting to login with "
|
2866 |
"a banned username"
|
2882 |
msgid "Lockout occurred: Too many 404 requests for %s"
|
2883 |
msgstr ""
|
2884 |
|
2885 |
+
#: app/module/ip-lockout/component/login-protection-api.php:285
|
2886 |
msgid "Ban IP"
|
2887 |
msgstr ""
|
2888 |
|
2889 |
+
#: app/module/ip-lockout/component/login-protection-api.php:287
|
2890 |
msgid "Unban IP"
|
2891 |
msgstr ""
|
2892 |
|
2893 |
+
#: app/module/ip-lockout/component/login-protection-api.php:292
|
2894 |
msgid "Add Whitelist"
|
2895 |
msgstr ""
|
2896 |
|
2897 |
+
#: app/module/ip-lockout/component/login-protection-api.php:294
|
2898 |
msgid "Unwhitelist"
|
2899 |
msgstr ""
|
2900 |
|
2901 |
+
#: app/module/ip-lockout/component/login-protection-api.php:570
|
2902 |
msgid "Is whitelisted"
|
2903 |
msgstr ""
|
2904 |
|
2905 |
+
#: app/module/ip-lockout/component/login-protection-api.php:573
|
2906 |
msgid "Is blacklisted"
|
2907 |
msgstr ""
|
2908 |
|
2909 |
+
#: app/module/ip-lockout/component/login-protection-api.php:580
|
2910 |
+
#: app/module/ip-lockout/component/login-protection-api.php:586
|
2911 |
msgid "Not banned"
|
2912 |
msgstr ""
|
2913 |
|
2914 |
+
#: app/module/ip-lockout/component/login-protection-api.php:584
|
2915 |
msgid "Banned"
|
2916 |
msgstr ""
|
2917 |
|
2949 |
msgstr ""
|
2950 |
|
2951 |
#: app/module/ip-lockout/component/logs-table.php:174
|
2952 |
+
#: app/module/ip-lockout/component/logs-table.php:280
|
2953 |
#: app/module/ip-lockout/model/log-model-legacy.php:113
|
2954 |
#: app/module/ip-lockout/model/log-model-legacy.php:114
|
2955 |
#: app/module/ip-lockout/model/log-model.php:72
|
2984 |
msgid "%s tried to login with username %s"
|
2985 |
msgstr ""
|
2986 |
|
2987 |
+
#: app/module/ip-lockout/component/logs-table.php:280
|
2988 |
msgid "Login failed"
|
2989 |
msgstr ""
|
2990 |
|
2991 |
+
#: app/module/ip-lockout/component/logs-table.php:286
|
2992 |
msgid "IP"
|
2993 |
msgstr ""
|
2994 |
|
2995 |
+
#: app/module/ip-lockout/component/logs-table.php:292
|
2996 |
msgid "Date/Time"
|
2997 |
msgstr ""
|
2998 |
|
2999 |
+
#: app/module/ip-lockout/component/logs-table.php:298
|
3000 |
msgid "Ban Status"
|
3001 |
msgstr ""
|
3002 |
|
3003 |
+
#: app/module/ip-lockout/component/logs-table.php:311
|
3004 |
msgid ""
|
3005 |
"Note: Make sure this IP is not a legitimate operation, banning the IP will "
|
3006 |
"result in being permanently locked out from accessing your website."
|
3007 |
msgstr ""
|
3008 |
|
3009 |
+
#: app/module/ip-lockout/component/logs-table.php:332
|
3010 |
msgid "%s results"
|
3011 |
msgstr ""
|
3012 |
|
3013 |
+
#: app/module/ip-lockout/component/logs-table.php:429
|
3014 |
msgid "Select All"
|
3015 |
msgstr ""
|
3016 |
|
3040 |
msgid "Demo"
|
3041 |
msgstr ""
|
3042 |
|
3043 |
+
#: app/module/ip-lockout/controller/main.php:449
|
3044 |
msgid "404 lockout alert for %s"
|
3045 |
msgstr ""
|
3046 |
|
3047 |
+
#: app/module/ip-lockout/controller/main.php:476
|
3048 |
msgid "Login lockout alert for %s"
|
3049 |
msgstr ""
|
3050 |
|
3051 |
+
#: app/module/ip-lockout/controller/main.php:574
|
3052 |
msgid "Failed login attempt with username %s"
|
3053 |
msgstr ""
|
3054 |
|
3055 |
+
#: app/module/ip-lockout/controller/main.php:637
|
3056 |
+
#: app/module/ip-lockout/controller/main.php:647
|
3057 |
msgid "%d login attempts remaining"
|
3058 |
msgstr ""
|
3059 |
|
3060 |
+
#: app/module/ip-lockout/controller/main.php:736
|
3061 |
msgid ""
|
3062 |
"Your settings have been updated, however some IPs were removed because "
|
3063 |
"invalid format, or you blacklist yourself"
|
3064 |
msgstr ""
|
3065 |
|
3066 |
+
#: app/module/ip-lockout/controller/main.php:747
|
3067 |
msgid "Login Protection has been activated."
|
3068 |
msgstr ""
|
3069 |
|
3070 |
+
#: app/module/ip-lockout/controller/main.php:749
|
3071 |
msgid "Login Protection has been deactivated."
|
3072 |
msgstr ""
|
3073 |
|
3074 |
+
#: app/module/ip-lockout/controller/main.php:754
|
3075 |
msgid "404 Detection has been activated."
|
3076 |
msgstr ""
|
3077 |
|
3078 |
+
#: app/module/ip-lockout/controller/main.php:756
|
3079 |
msgid "404 Detection has been deactivated."
|
3080 |
msgstr ""
|
3081 |
|
3082 |
+
#: app/module/ip-lockout/controller/main.php:786 app/module/ip-lockout.php:35
|
3083 |
#: app/view/activator-free.php:33 app/view/activator.php:49
|
3084 |
msgid "IP Lockouts"
|
3085 |
msgstr ""
|
3086 |
|
3087 |
+
#: app/module/ip-lockout/controller/main.php:803
|
3088 |
+
#: app/module/ip-lockout/controller/main.php:809
|
3089 |
msgid "Your file is invalid!"
|
3090 |
msgstr ""
|
3091 |
|
3092 |
+
#: app/module/ip-lockout/controller/main.php:815
|
3093 |
msgid "Your file content is invalid!"
|
3094 |
msgstr ""
|
3095 |
|
3096 |
+
#: app/module/ip-lockout/controller/main.php:824
|
3097 |
msgid "Your whitelist/blacklist has been successfully imported."
|
3098 |
msgstr ""
|
3099 |
|
3100 |
+
#: app/module/ip-lockout/controller/main.php:1009
|
3101 |
msgid "Thanks for your patience. All set."
|
3102 |
msgstr ""
|
3103 |
|
3308 |
msgid "Monitor 404s from logged in users"
|
3309 |
msgstr ""
|
3310 |
|
3311 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:7
|
3312 |
#: app/module/ip-lockout/view/emails/404-lockout.php:7
|
3313 |
msgid "New 404 Lockout"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:417
|
3317 |
#: app/module/ip-lockout/view/emails/404-lockout.php:417
|
3318 |
#: app/module/ip-lockout/view/emails/login-lockout.php:417
|
3319 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:417
|
3322 |
msgid "Protected By"
|
3323 |
msgstr ""
|
3324 |
|
3325 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:455
|
3326 |
#: app/module/ip-lockout/view/emails/404-lockout.php:455
|
3327 |
msgid "Hi %s"
|
3328 |
msgstr ""
|
3329 |
|
3330 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:460
|
3331 |
msgid ""
|
3332 |
"We've just locked out the host <strong>%s</strong> from %s due to more than "
|
3333 |
"<strong>%s</strong> 404 requests for the file <strong>%s</strong>. They "
|
3334 |
+
"have been banned permanently."
|
3335 |
msgstr ""
|
3336 |
|
3337 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:463
|
3338 |
#: app/module/ip-lockout/view/emails/404-lockout.php:463
|
3339 |
#: app/module/ip-lockout/view/emails/login-lockout.php:465
|
3340 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:464
|
3342 |
msgid "You can view the full lockout logs <a href=\"%s\">here</a>"
|
3343 |
msgstr ""
|
3344 |
|
3345 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:478
|
3346 |
#: app/module/ip-lockout/view/emails/404-lockout.php:478
|
3347 |
#: app/module/ip-lockout/view/emails/login-lockout.php:480
|
3348 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:479
|
3350 |
msgid "Stay vigilant."
|
3351 |
msgstr ""
|
3352 |
|
3353 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:481
|
3354 |
#: app/module/ip-lockout/view/emails/404-lockout.php:481
|
3355 |
#: app/module/ip-lockout/view/emails/login-lockout.php:483
|
3356 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:482
|
3358 |
msgid "WP Defender"
|
3359 |
msgstr ""
|
3360 |
|
3361 |
+
#: app/module/ip-lockout/view/emails/404-ban.php:483
|
3362 |
#: app/module/ip-lockout/view/emails/404-lockout.php:483
|
3363 |
#: app/module/ip-lockout/view/emails/login-lockout.php:485
|
3364 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:484
|
3370 |
msgid "WPMU DEV"
|
3371 |
msgstr ""
|
3372 |
|
3373 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:460
|
3374 |
+
msgid ""
|
3375 |
+
"We've just locked out the host <strong>%s</strong> from %s due to more than "
|
3376 |
+
"<strong>%s</strong> 404 requests for the file <strong>%s</strong>. They "
|
3377 |
+
"have been locked out for <strong>%s seconds.</strong>"
|
3378 |
+
msgstr ""
|
3379 |
+
|
3380 |
#: app/module/ip-lockout/view/emails/login-lockout.php:7
|
3381 |
#: app/module/ip-lockout/view/emails/login-username-ban.php:7
|
3382 |
msgid "New Login Lockout"
|
4669 |
msgstr ""
|
4670 |
|
4671 |
#: free/main-activator.php:70
|
4672 |
+
msgid "Get Secure!"
|
4673 |
msgstr ""
|
4674 |
|
4675 |
#: free/main-activator.php:78
|
4676 |
msgid ""
|
4677 |
+
"You're awesome for installing Defender! Are you interested in how to make "
|
4678 |
+
"the most of this plugin? We've collected all the best security resources we "
|
4679 |
+
"know in a single email - just for users of Defender!"
|
|
|
4680 |
msgstr ""
|
4681 |
|
4682 |
#: free/main-activator.php:120
|
4694 |
msgid "Docs"
|
4695 |
msgstr ""
|
4696 |
|
4697 |
+
#: free-dashboard/module.php:386
|
4698 |
msgid ""
|
4699 |
"We're happy that you've chosen to install %s! Are you interested in how to "
|
4700 |
"make the most of this plugin? How would you like a quick 5 day email crash "
|
4702 |
"info you want, no subscription!"
|
4703 |
msgstr ""
|
4704 |
|
4705 |
+
#: free-dashboard/module.php:402 free-dashboard/module.php:438
|
4706 |
msgid "Thanks :)"
|
4707 |
msgstr ""
|
4708 |
|
4709 |
+
#: free-dashboard/module.php:405 free-dashboard/module.php:445
|
4710 |
msgid "Saving"
|
4711 |
msgstr ""
|
4712 |
|
4713 |
+
#: free-dashboard/module.php:406 free-dashboard/module.php:446
|
4714 |
msgid "No thanks"
|
4715 |
msgstr ""
|
4716 |
|
4717 |
+
#: free-dashboard/module.php:423
|
4718 |
msgid ""
|
4719 |
"Hey %s, you've been using %s for a while now, and we hope you're happy with "
|
4720 |
"it."
|
4721 |
msgstr ""
|
4722 |
|
4723 |
+
#: free-dashboard/module.php:423
|
4724 |
msgid ""
|
4725 |
"We've spent countless hours developing this free plugin for you, and we "
|
4726 |
"would really appreciate it if you dropped us a quick rating!"
|
4727 |
msgstr ""
|
4728 |
|
4729 |
+
#: free-dashboard/module.php:441
|
4730 |
msgid "Rate %s"
|
4731 |
msgstr ""
|
4732 |
|
main-activator.php
CHANGED
@@ -67,15 +67,15 @@ class WD_Main_Activator {
|
|
67 |
'Defender',
|
68 |
'/plugins/defender-security/',
|
69 |
/* 4 Email Button CTA */
|
70 |
-
__( 'Get
|
71 |
/* 5 getdrip Plugin param */
|
72 |
-
'
|
73 |
);
|
74 |
}
|
75 |
}
|
76 |
|
77 |
public function defenderAdsMessage( $message ) {
|
78 |
-
$message = __( "
|
79 |
|
80 |
return $message;
|
81 |
}
|
67 |
'Defender',
|
68 |
'/plugins/defender-security/',
|
69 |
/* 4 Email Button CTA */
|
70 |
+
__( 'Get Secure!', "defender-security" ),
|
71 |
/* 5 getdrip Plugin param */
|
72 |
+
'0cecf2890e'
|
73 |
);
|
74 |
}
|
75 |
}
|
76 |
|
77 |
public function defenderAdsMessage( $message ) {
|
78 |
+
$message = __( "You're awesome for installing Defender! Are you interested in how to make the most of this plugin? We've collected all the best security resources we know in a single email - just for users of Defender!", "defender-security" );
|
79 |
|
80 |
return $message;
|
81 |
}
|
readme.txt
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
=== Defender Security, Monitoring, and Hack Protection ===
|
2 |
Plugin Name: Defender Security, Monitoring, and Hack Protection
|
3 |
-
Version: 2.0
|
4 |
Author: WPMU DEV
|
5 |
Author URI: http://premium.wpmudev.org/
|
6 |
Contributors: WPMUDEV
|
7 |
Tags: Security, Security Tweaks, Hardening, IP lockout, Monitoring, Blacklist, Site Protection, Hacked, Security Scan
|
8 |
Requires at least: 4.6
|
9 |
-
Tested up to:
|
10 |
-
Stable tag: 2.0
|
11 |
License: GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
12 |
|
13 |
Protect WordPress from hackers with security tweaks, code scans, 2-Step Verification, IP lockouts, and monitoring.
|
@@ -122,6 +122,13 @@ Hackers and bot attacks are not the only threat to your site. No matter what se
|
|
122 |
|
123 |
== Changelog ==
|
124 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
= 2.0 =
|
126 |
- New: added tweak “Disable XML-RPC”
|
127 |
- Improvement: Two factor authentication can now be force enabled by role.
|
1 |
=== Defender Security, Monitoring, and Hack Protection ===
|
2 |
Plugin Name: Defender Security, Monitoring, and Hack Protection
|
3 |
+
Version: 2.0.1
|
4 |
Author: WPMU DEV
|
5 |
Author URI: http://premium.wpmudev.org/
|
6 |
Contributors: WPMUDEV
|
7 |
Tags: Security, Security Tweaks, Hardening, IP lockout, Monitoring, Blacklist, Site Protection, Hacked, Security Scan
|
8 |
Requires at least: 4.6
|
9 |
+
Tested up to: 5.1
|
10 |
+
Stable tag: 2.0.1
|
11 |
License: GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
12 |
|
13 |
Protect WordPress from hackers with security tweaks, code scans, 2-Step Verification, IP lockouts, and monitoring.
|
122 |
|
123 |
== Changelog ==
|
124 |
|
125 |
+
= 2.0.1 =
|
126 |
+
- Fix: permanent ban on 404 lockouts now sends correct email.
|
127 |
+
- Fix: IP lockout logs not showing correct results/order on different pages.
|
128 |
+
- Fix: IP lockout logs showing wrong badge for 404 lockouts.
|
129 |
+
- Fix: 2FA not working properly when using Sensei plugin.
|
130 |
+
- Other minor enhancements and fixes.
|
131 |
+
|
132 |
= 2.0 =
|
133 |
- New: added tweak “Disable XML-RPC”
|
134 |
- Improvement: Two factor authentication can now be force enabled by role.
|
wp-defender.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Plugin Name: Defender
|
5 |
* Plugin URI: https://premium.wpmudev.org/project/wp-defender/
|
6 |
-
* Version: 2.0
|
7 |
* Description: Get regular security scans, vulnerability reports, safety recommendations and customized hardening for your site in just a few clicks. Defender is the analyst and enforcer who never sleeps.
|
8 |
* Author: WPMU DEV
|
9 |
* Author URI: http://premium.wpmudev.org/
|
3 |
/**
|
4 |
* Plugin Name: Defender
|
5 |
* Plugin URI: https://premium.wpmudev.org/project/wp-defender/
|
6 |
+
* Version: 2.0.1
|
7 |
* Description: Get regular security scans, vulnerability reports, safety recommendations and customized hardening for your site in just a few clicks. Defender is the analyst and enforcer who never sleeps.
|
8 |
* Author: WPMU DEV
|
9 |
* Author URI: http://premium.wpmudev.org/
|