Version Description
- Missing jQuery images added.
- PHP 5 compatibility fixed.
- Custom App setup link replaced with setup code.
Download this release
Release Info
Developer | wpchefgadget |
Plugin | Limit Login Attempts Reloaded |
Version | 2.17.4 |
Comparing to | |
See all releases |
Code changes from version 2.17.3 to 2.17.4
- assets/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- assets/css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- assets/css/images/ui-icons_222222_256x240.png +0 -0
- assets/css/limit-login-attempts.css +1 -1
- assets/sass/limit-login-attempts.scss +2 -2
- core/App.php +1 -0
- core/LimitLoginAttempts.php +16 -5
- limit-login-attempts-reloaded.php +1 -1
- readme.txt +6 -1
- views/options-page.php +1 -1
- views/tab-debug.php +2 -2
- views/tab-settings.php +3 -3
assets/css/images/ui-bg_glass_65_ffffff_1x400.png
ADDED
Binary file
|
assets/css/images/ui-bg_glass_75_e6e6e6_1x400.png
ADDED
Binary file
|
assets/css/images/ui-icons_222222_256x240.png
ADDED
Binary file
|
assets/css/limit-login-attempts.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.limit-login-page-settings .field-col{display:inline-block;margin-right:20px}.limit-login-page-settings .limit-login-log table{background-color:#fff}.limit-login-page-settings .limit-login-log table th,.limit-login-page-settings .limit-login-log table td{padding:10px}.limit-login-page-settings .limit-login-log table tr:nth-child(even){background-color:rgba(0,0,0,0.09)}.limit-login-page-settings #limit-login-app-setup-link{width:85%}.limit-login-page-settings .nav-tab-wrapper{position:relative}.limit-login-page-settings .nav-tab-wrapper .llar-failover-link{font-size:14px;float:right;line-height:2}.limit-login-page-settings .limit-login-app-dashboard .llar-table-scroll-wrap{max-height:400px;overflow-y:auto}.limit-login-page-settings .limit-login-app-dashboard .form-table{background-color:#fff;border:1px solid #f4f4f4;border-top:3px solid #3c8dbc;position:relative}.limit-login-page-settings .limit-login-app-dashboard .form-table.llar-preloader:before{content:"";display:block;width:100%;height:100%;background-color:rgba(255,255,255,0.7);z-index:999;position:absolute;top:0;left:0}.limit-login-page-settings .limit-login-app-dashboard .form-table th{font-weight:bold;border-bottom:1px solid #dbdbdb !important}.limit-login-page-settings .limit-login-app-dashboard .form-table th,.limit-login-page-settings .limit-login-app-dashboard .form-table td{padding:10px;border:1px solid #b9b9b9}.limit-login-page-settings .limit-login-app-dashboard .form-table th.llar-col-nowrap,.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-col-nowrap{white-space:nowrap}.limit-login-page-settings .limit-login-app-dashboard .form-table td button{line-height:1;margin-right:5px}.limit-login-page-settings .limit-login-app-dashboard .form-table td button:last-child{margin-right:0}.limit-login-page-settings .limit-login-app-dashboard .form-table td button .dashicons{vertical-align:middle}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions{text-align:center}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn{display:inline-block;line-height:20px;cursor:pointer}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn i{vertical-align:middle}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn:hover i{color:#3c8dbc}.limit-login-page-settings .limit-login-app-dashboard .form-table tr:nth-child(even){background-color:#f9f9f9}.limit-login-page-settings .limit-login-app-dashboard .llar-app-log-pagination>a{font-size:16px;line-height:1.625}.limit-login-page-settings .limit-login-app-dashboard .llar-app-log-pagination .spinner{float:none}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col{-webkit-box-flex:0;-ms-flex:0 0 49%;flex:0 0 49%}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table select{width:100%}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-acl-action-col{text-align:center}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-pass{background-color:#cffbe8}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-allow{background-color:#abdfff}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-deny{background-color:#fd2c2c3d}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-acl-remove{color:crimson;border-color:crimson}.limit-login-page-settings .llar-app-notice{background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);padding:15px;border-radius:3px;margin-top:20px;margin-bottom:20px;font-size:14px;border-left:5px solid #ffba00}.limit-login-page-settings .llar-app-notice.success{border-color:#46b450}.limit-login-page-settings .llar-app-notice p{font-size:inherit;margin:0 0 20px}.limit-login-page-settings .llar-app-notice p:last-child{margin-bottom:0}.limit-login-page-settings input[name="admin_notify_email"]{min-width:243px}.limit-login-page-settings .llar-protect-notice{font-size:15px;color:#848484;margin-left:10px}.limit-login-page-settings .llar-protect-notice a{color:#222222;text-decoration:none;border-bottom:1px dashed}.limit-login-page-settings .llar-show-app-fields{position:absolute;right:15px;top:15px;color:#bdbdbd}.limit-login-page-settings .llar-show-app-fields:hover{color:#222}.limit-login-page-settings .llar-app-field{display:none}.limit-login-page-settings .llar-app-field.active{display:table-row}.llar-notice-review,.llar-notice-notify{display:-webkit-box;display:-ms-flexbox;display:flex;padding:15px 20px 0 !important;border-left:4px solid #333 !important}.llar-notice-review .llar-review-image img,.llar-notice-notify .llar-review-image img{margin-top:10px;margin-bottom:20px}.llar-notice-review .llar-review-image span,.llar-notice-notify .llar-review-image span{font-size:80px;color:orange;width:80px;height:auto;margin-bottom:20px}.llar-notice-review .llar-review-info,.llar-notice-notify .llar-review-info{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:30px}.llar-notice-review .llar-review-info .llar-buttons,.llar-notice-notify .llar-review-info .llar-buttons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.llar-notice-review .llar-review-info .llar-buttons li,.llar-notice-notify .llar-review-info .llar-buttons li{margin-right:10px}.llar-notice-review .llar-review-info .llar-buttons li .dashicons,.llar-notice-notify .llar-review-info .llar-buttons li .dashicons{margin-right:5px}.llar-accordion .ui-accordion-header{font-weight:bold;background
|
1 |
+
.limit-login-page-settings .field-col{display:inline-block;margin-right:20px}.limit-login-page-settings .limit-login-log table{background-color:#fff}.limit-login-page-settings .limit-login-log table th,.limit-login-page-settings .limit-login-log table td{padding:10px}.limit-login-page-settings .limit-login-log table tr:nth-child(even){background-color:rgba(0,0,0,0.09)}.limit-login-page-settings #limit-login-app-setup-link{width:85%}.limit-login-page-settings .nav-tab-wrapper{position:relative}.limit-login-page-settings .nav-tab-wrapper .llar-failover-link{font-size:14px;float:right;line-height:2}.limit-login-page-settings .limit-login-app-dashboard .llar-table-scroll-wrap{max-height:400px;overflow-y:auto}.limit-login-page-settings .limit-login-app-dashboard .form-table{background-color:#fff;border:1px solid #f4f4f4;border-top:3px solid #3c8dbc;position:relative}.limit-login-page-settings .limit-login-app-dashboard .form-table.llar-preloader:before{content:"";display:block;width:100%;height:100%;background-color:rgba(255,255,255,0.7);z-index:999;position:absolute;top:0;left:0}.limit-login-page-settings .limit-login-app-dashboard .form-table th{font-weight:bold;border-bottom:1px solid #dbdbdb !important}.limit-login-page-settings .limit-login-app-dashboard .form-table th,.limit-login-page-settings .limit-login-app-dashboard .form-table td{padding:10px;border:1px solid #b9b9b9}.limit-login-page-settings .limit-login-app-dashboard .form-table th.llar-col-nowrap,.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-col-nowrap{white-space:nowrap}.limit-login-page-settings .limit-login-app-dashboard .form-table td button{line-height:1;margin-right:5px}.limit-login-page-settings .limit-login-app-dashboard .form-table td button:last-child{margin-right:0}.limit-login-page-settings .limit-login-app-dashboard .form-table td button .dashicons{vertical-align:middle}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions{text-align:center}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn{display:inline-block;line-height:20px;cursor:pointer}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn i{vertical-align:middle}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn:hover i{color:#3c8dbc}.limit-login-page-settings .limit-login-app-dashboard .form-table tr:nth-child(even){background-color:#f9f9f9}.limit-login-page-settings .limit-login-app-dashboard .llar-app-log-pagination>a{font-size:16px;line-height:1.625}.limit-login-page-settings .limit-login-app-dashboard .llar-app-log-pagination .spinner{float:none}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col{-webkit-box-flex:0;-ms-flex:0 0 49%;flex:0 0 49%}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table select{width:100%}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-acl-action-col{text-align:center}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-pass{background-color:#cffbe8}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-allow{background-color:#abdfff}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-deny{background-color:#fd2c2c3d}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-acl-remove{color:crimson;border-color:crimson}.limit-login-page-settings .llar-app-notice{background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);padding:15px;border-radius:3px;margin-top:20px;margin-bottom:20px;font-size:14px;border-left:5px solid #ffba00}.limit-login-page-settings .llar-app-notice.success{border-color:#46b450}.limit-login-page-settings .llar-app-notice p{font-size:inherit;margin:0 0 20px}.limit-login-page-settings .llar-app-notice p:last-child{margin-bottom:0}.limit-login-page-settings input[name="admin_notify_email"]{min-width:243px}.limit-login-page-settings .llar-protect-notice{font-size:15px;color:#848484;margin-left:10px}.limit-login-page-settings .llar-protect-notice a{color:#222222;text-decoration:none;border-bottom:1px dashed}.limit-login-page-settings .llar-show-app-fields{position:absolute;right:15px;top:15px;color:#bdbdbd}.limit-login-page-settings .llar-show-app-fields:hover{color:#222}.limit-login-page-settings .llar-app-field{display:none}.limit-login-page-settings .llar-app-field.active{display:table-row}.llar-notice-review,.llar-notice-notify{display:-webkit-box;display:-ms-flexbox;display:flex;padding:15px 20px 0 !important;border-left:4px solid #333 !important}.llar-notice-review .llar-review-image img,.llar-notice-notify .llar-review-image img{margin-top:10px;margin-bottom:20px}.llar-notice-review .llar-review-image span,.llar-notice-notify .llar-review-image span{font-size:80px;color:orange;width:80px;height:auto;margin-bottom:20px}.llar-notice-review .llar-review-info,.llar-notice-notify .llar-review-info{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:30px}.llar-notice-review .llar-review-info .llar-buttons,.llar-notice-notify .llar-review-info .llar-buttons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.llar-notice-review .llar-review-info .llar-buttons li,.llar-notice-notify .llar-review-info .llar-buttons li{margin-right:10px}.llar-notice-review .llar-review-info .llar-buttons li .dashicons,.llar-notice-notify .llar-review-info .llar-buttons li .dashicons{margin-right:5px}.llar-accordion .ui-accordion-header{font-weight:bold;background:#778899;color:#fff}.llar-accordion .ui-accordion-header.ui-accordion-header-active{background:#87CEFA}.custom-app-tab{position:relative}.custom-app-tab .spinner{float:none}.custom-app-tab .llar-app-ajax-msg{font-size:13px;margin-top:5px;display:block}.custom-app-tab .llar-app-ajax-msg.error{color:red}.custom-app-tab .llar-app-ajax-msg.success{color:green}.custom-app-tab .llar-delete-app{color:#dc3232;position:absolute;bottom:15px;right:15px}.custom-app-tab .llar-delete-app:hover{opacity:0.8}.custom-app-tab .llar-why-use-premium-text{margin-top:20px}.custom-app-tab .llar-why-use-premium-text .title{font-weight:bold;font-size:16px;color:#4d4d4d}.custom-app-tab .llar-why-use-premium-text ul li .dashicons{color:#3ab54a;font-size:25px;width:25px;top:-2px;position:relative}#llar-progress-bar{position:fixed;top:0;height:6px;left:0;width:100%;z-index:999999;background-color:#eee}#llar-progress-bar span{height:100%;position:absolute;display:block;width:0;background-color:#00b357;-webkit-transition:width 0.4s;transition:width 0.4s}#llar-header-upgrade-message{text-align:center;background-color:#fff;color:#222;padding:10px;margin-left:-20px;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.2);box-shadow:0 0 3px rgba(0,0,0,0.2)}#llar-header-upgrade-message p{margin:0}#llar-header-upgrade-message p .dashicons{color:#f2a64c;margin-right:5px}.settings_page_limit-login-attempts .update-nag{display:none}
|
assets/sass/limit-login-attempts.scss
CHANGED
@@ -254,11 +254,11 @@
|
|
254 |
.llar-accordion {
|
255 |
.ui-accordion-header {
|
256 |
font-weight: bold;
|
257 |
-
background
|
258 |
color: #fff;
|
259 |
|
260 |
&.ui-accordion-header-active {
|
261 |
-
background
|
262 |
}
|
263 |
}
|
264 |
}
|
254 |
.llar-accordion {
|
255 |
.ui-accordion-header {
|
256 |
font-weight: bold;
|
257 |
+
background: #778899;
|
258 |
color: #fff;
|
259 |
|
260 |
&.ui-accordion-header-active {
|
261 |
+
background: #87CEFA;
|
262 |
}
|
263 |
}
|
264 |
}
|
core/App.php
CHANGED
@@ -90,6 +90,7 @@ class LLAR_App {
|
|
90 |
return $return;
|
91 |
}
|
92 |
|
|
|
93 |
$link = add_query_arg( 'domain', $_SERVER['SERVER_NAME'], $link );
|
94 |
|
95 |
$plugin_data = get_plugin_data( LLA_PLUGIN_DIR . '/limit-login-attempts-reloaded.php' );
|
90 |
return $return;
|
91 |
}
|
92 |
|
93 |
+
$link = 'https://' . $link;
|
94 |
$link = add_query_arg( 'domain', $_SERVER['SERVER_NAME'], $link );
|
95 |
|
96 |
$plugin_data = get_plugin_data( LLA_PLUGIN_DIR . '/limit-login-attempts-reloaded.php' );
|
core/LimitLoginAttempts.php
CHANGED
@@ -190,6 +190,16 @@ class Limit_Login_Attempts {
|
|
190 |
add_action('wp_ajax_limit-login-unlock', array( $this, 'ajax_unlock' ) );
|
191 |
|
192 |
add_filter( 'plugin_action_links_' . LLA_PLUGIN_BASENAME, array( $this, 'add_action_links' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
}
|
194 |
|
195 |
public function add_action_links( $actions ) {
|
@@ -446,7 +456,7 @@ class Limit_Login_Attempts {
|
|
446 |
|
447 |
foreach ( $_SERVER as $key => $value ) {
|
448 |
|
449 |
-
if( in_array( $key,
|
450 |
|
451 |
if( filter_var( $value, FILTER_VALIDATE_IP ) ) {
|
452 |
|
@@ -1526,7 +1536,7 @@ class Limit_Login_Attempts {
|
|
1526 |
|
1527 |
if( !empty( $_POST['llar_app_settings'] ) && $this->app ) {
|
1528 |
|
1529 |
-
if( ( $
|
1530 |
|
1531 |
if( $setup_result['success'] && $active_app_config = $setup_result['app_config'] ) {
|
1532 |
|
@@ -1875,7 +1885,8 @@ class Limit_Login_Attempts {
|
|
1875 |
|
1876 |
if( !empty( $_POST['link'] ) ) {
|
1877 |
|
1878 |
-
$
|
|
|
1879 |
|
1880 |
if( $setup_result = LLAR_App::setup( $link ) ) {
|
1881 |
|
@@ -1886,7 +1897,7 @@ class Limit_Login_Attempts {
|
|
1886 |
$this->app_update_config( $setup_result['app_config'], true );
|
1887 |
$this->update_option( 'active_app', 'custom' );
|
1888 |
|
1889 |
-
$this->update_option( '
|
1890 |
|
1891 |
wp_send_json_success(array(
|
1892 |
'msg' => ( !empty( $setup_result['app_config']['messages']['setup_success'] ) )
|
@@ -1905,7 +1916,7 @@ class Limit_Login_Attempts {
|
|
1905 |
}
|
1906 |
|
1907 |
wp_send_json_error(array(
|
1908 |
-
'msg' => __( 'Please specify the Setup
|
1909 |
));
|
1910 |
}
|
1911 |
|
190 |
add_action('wp_ajax_limit-login-unlock', array( $this, 'ajax_unlock' ) );
|
191 |
|
192 |
add_filter( 'plugin_action_links_' . LLA_PLUGIN_BASENAME, array( $this, 'add_action_links' ) );
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Transform setup link to setup code.
|
196 |
+
*/
|
197 |
+
if( ( $setup_link = $this->get_option( 'app_setup_link' ) ) && empty( $this->get_option( 'app_setup_code' ) ) ) {
|
198 |
+
|
199 |
+
$setup_link = str_replace( array( 'http://', 'https://' ), '', $setup_link );
|
200 |
+
$this->update_option( 'app_setup_code', strrev( $setup_link ) );
|
201 |
+
$this->delete_option( 'app_setup_link' );
|
202 |
+
}
|
203 |
}
|
204 |
|
205 |
public function add_action_links( $actions ) {
|
456 |
|
457 |
foreach ( $_SERVER as $key => $value ) {
|
458 |
|
459 |
+
if( in_array( $key, array( 'SERVER_ADDR' ) ) ) continue;
|
460 |
|
461 |
if( filter_var( $value, FILTER_VALIDATE_IP ) ) {
|
462 |
|
1536 |
|
1537 |
if( !empty( $_POST['llar_app_settings'] ) && $this->app ) {
|
1538 |
|
1539 |
+
if( ( $app_setup_code = $this->get_option( 'app_setup_code' ) ) && $setup_result = LLAR_App::setup( strrev( $app_setup_code ) ) ) {
|
1540 |
|
1541 |
if( $setup_result['success'] && $active_app_config = $setup_result['app_config'] ) {
|
1542 |
|
1885 |
|
1886 |
if( !empty( $_POST['link'] ) ) {
|
1887 |
|
1888 |
+
$setup_code = sanitize_text_field( $_POST['link'] );
|
1889 |
+
$link = strrev( $setup_code );
|
1890 |
|
1891 |
if( $setup_result = LLAR_App::setup( $link ) ) {
|
1892 |
|
1897 |
$this->app_update_config( $setup_result['app_config'], true );
|
1898 |
$this->update_option( 'active_app', 'custom' );
|
1899 |
|
1900 |
+
$this->update_option( 'app_setup_code', $setup_code );
|
1901 |
|
1902 |
wp_send_json_success(array(
|
1903 |
'msg' => ( !empty( $setup_result['app_config']['messages']['setup_success'] ) )
|
1916 |
}
|
1917 |
|
1918 |
wp_send_json_error(array(
|
1919 |
+
'msg' => __( 'Please specify the Setup Code', 'limit-login-attempts-reloaded' )
|
1920 |
));
|
1921 |
}
|
1922 |
|
limit-login-attempts-reloaded.php
CHANGED
@@ -5,7 +5,7 @@ Description: Limit the rate of login attempts for each IP address.
|
|
5 |
Author: Limit Login Attempts Reloaded
|
6 |
Author URI: https://limitloginattempts.com/
|
7 |
Text Domain: limit-login-attempts-reloaded
|
8 |
-
Version: 2.17.
|
9 |
|
10 |
Copyright 2008 - 2012 Johan Eenfeldt, 2016 - 2020 Limit Login Attempts Reloaded
|
11 |
*/
|
5 |
Author: Limit Login Attempts Reloaded
|
6 |
Author URI: https://limitloginattempts.com/
|
7 |
Text Domain: limit-login-attempts-reloaded
|
8 |
+
Version: 2.17.4
|
9 |
|
10 |
Copyright 2008 - 2012 Johan Eenfeldt, 2016 - 2020 Limit Login Attempts Reloaded
|
11 |
*/
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/donate?hosted_button_id=FKD4MYFCMNVQQ
|
|
4 |
Tags: brute force, login, security, GDPR, protection
|
5 |
Requires at least: 3.0
|
6 |
Tested up to: 5.6
|
7 |
-
Stable tag: 2.17.
|
8 |
|
9 |
Reloaded version of the original Limit Login Attempts plugin for Login Protection by a team of WordPress developers. GDPR compliant.
|
10 |
|
@@ -90,6 +90,11 @@ Please follow this link: <a href="https://www.limitloginattempts.com/resources/"
|
|
90 |
|
91 |
== Changelog ==
|
92 |
|
|
|
|
|
|
|
|
|
|
|
93 |
= 2.17.3 =
|
94 |
* Plugin pages message.
|
95 |
|
4 |
Tags: brute force, login, security, GDPR, protection
|
5 |
Requires at least: 3.0
|
6 |
Tested up to: 5.6
|
7 |
+
Stable tag: 2.17.4
|
8 |
|
9 |
Reloaded version of the original Limit Login Attempts plugin for Login Protection by a team of WordPress developers. GDPR compliant.
|
10 |
|
90 |
|
91 |
== Changelog ==
|
92 |
|
93 |
+
= 2.17.4 =
|
94 |
+
* Missing jQuery images added.
|
95 |
+
* PHP 5 compatibility fixed.
|
96 |
+
* Custom App setup link replaced with setup code.
|
97 |
+
|
98 |
= 2.17.3 =
|
99 |
* Plugin pages message.
|
100 |
|
views/options-page.php
CHANGED
@@ -4,7 +4,7 @@ if( !defined( 'ABSPATH' ) ) exit();
|
|
4 |
|
5 |
$active_tab = "settings";
|
6 |
$active_app = $this->get_option( 'active_app' );
|
7 |
-
if(!empty($_GET["tab"]) && in_array($_GET["tab"],
|
8 |
|
9 |
if(!$this->app && $_GET['tab'] === 'logs-custom') {
|
10 |
|
4 |
|
5 |
$active_tab = "settings";
|
6 |
$active_app = $this->get_option( 'active_app' );
|
7 |
+
if( !empty($_GET["tab"]) && in_array( $_GET["tab"], array( 'logs-local', 'logs-custom', 'settings', 'debug' ) ) ) {
|
8 |
|
9 |
if(!$this->app && $_GET['tab'] === 'logs-custom') {
|
10 |
|
views/tab-debug.php
CHANGED
@@ -11,7 +11,7 @@ $debug_info = '';
|
|
11 |
$ips = $server = array();
|
12 |
foreach ($_SERVER as $key => $value) {
|
13 |
|
14 |
-
if(in_array($key,
|
15 |
|
16 |
if( $this->is_ip_valid( $value ) ) {
|
17 |
|
@@ -20,7 +20,7 @@ foreach ($_SERVER as $key => $value) {
|
|
20 |
$ips[] = $value;
|
21 |
}
|
22 |
|
23 |
-
if(in_array($value,
|
24 |
$server[$key] = $value;
|
25 |
else
|
26 |
$server[$key] = 'IP'.array_search($value, $ips);
|
11 |
$ips = $server = array();
|
12 |
foreach ($_SERVER as $key => $value) {
|
13 |
|
14 |
+
if( in_array( $key, array( 'SERVER_ADDR' ) ) ) continue;
|
15 |
|
16 |
if( $this->is_ip_valid( $value ) ) {
|
17 |
|
20 |
$ips[] = $value;
|
21 |
}
|
22 |
|
23 |
+
if( in_array( $value, array( '127.0.0.1', '0.0.0.0' ) ) )
|
24 |
$server[$key] = $value;
|
25 |
else
|
26 |
$server[$key] = 'IP'.array_search($value, $ips);
|
views/tab-settings.php
CHANGED
@@ -19,7 +19,7 @@ $trusted_ip_origins = $this->get_option( 'trusted_ip_origins' );
|
|
19 |
$trusted_ip_origins = ( is_array( $trusted_ip_origins ) && !empty( $trusted_ip_origins ) ) ? implode( ", ", $trusted_ip_origins ) : 'REMOTE_ADDR';
|
20 |
|
21 |
$active_app = $this->get_option( 'active_app' );
|
22 |
-
$
|
23 |
$active_app_config = $this->get_custom_app_config();
|
24 |
|
25 |
?>
|
@@ -160,9 +160,9 @@ $active_app_config = $this->get_custom_app_config();
|
|
160 |
|
161 |
<tr class="llar-app-field <?php echo ( $active_app === 'local' || !$active_app_config ) ? 'active' : ''; ?>">
|
162 |
<th scope="row"
|
163 |
-
valign="top"><?php echo __( 'Setup
|
164 |
<td>
|
165 |
-
<input type="text" class="regular-text" id="limit-login-app-setup-link" value="<?php echo ( !empty( $
|
166 |
<button class="button" id="limit-login-app-setup"><?php echo __( 'Submit', 'limit-login-attempts-reloaded' ); ?></button>
|
167 |
<span class="spinner llar-app-ajax-spinner"></span><br>
|
168 |
<span class="llar-app-ajax-msg"></span>
|
19 |
$trusted_ip_origins = ( is_array( $trusted_ip_origins ) && !empty( $trusted_ip_origins ) ) ? implode( ", ", $trusted_ip_origins ) : 'REMOTE_ADDR';
|
20 |
|
21 |
$active_app = $this->get_option( 'active_app' );
|
22 |
+
$app_setup_code = $this->get_option( 'app_setup_code' );
|
23 |
$active_app_config = $this->get_custom_app_config();
|
24 |
|
25 |
?>
|
160 |
|
161 |
<tr class="llar-app-field <?php echo ( $active_app === 'local' || !$active_app_config ) ? 'active' : ''; ?>">
|
162 |
<th scope="row"
|
163 |
+
valign="top"><?php echo __( 'Setup Code', 'limit-login-attempts-reloaded' ); ?></th>
|
164 |
<td>
|
165 |
+
<input type="text" class="regular-text" id="limit-login-app-setup-link" value="<?php echo ( !empty( $app_setup_code ) ) ? esc_attr( $app_setup_code ) : ''; ?>">
|
166 |
<button class="button" id="limit-login-app-setup"><?php echo __( 'Submit', 'limit-login-attempts-reloaded' ); ?></button>
|
167 |
<span class="spinner llar-app-ajax-spinner"></span><br>
|
168 |
<span class="llar-app-ajax-msg"></span>
|