Tom Printy
Forum Replies Created
-
Forum: Plugins
In reply to: [WP-MQTT] Ignore IP addressI have added this feature here is a patchfile
——————————————————————————
diff -ruN ./inc/wp-mqtt-settings.php /var/www/edisonave/wordpress/wp-content/plugins/wp-mqtt/inc/wp-mqtt-settings.php
— ./inc/wp-mqtt-settings.php 2019-01-08 08:37:08.000000000 -0600
+++ /var/www/edisonave/wordpress/wp-content/plugins/wp-mqtt/inc/wp-mqtt-settings.php 2019-07-09 16:55:12.527178827 -0500
@@ -93,6 +93,7 @@
array( ‘section’=>’wp_mqtt_broker_settings’, ‘id’=>’broker_client_id’, ‘label’=>__(‘Client ID’, ‘wp-mqtt’ ), ‘callback’=>’broker_client_id_callback’ ),
array( ‘section’=>’wp_mqtt_broker_settings’, ‘id’=>’broker_username’, ‘label’=>__(‘Username’, ‘wp-mqtt’ ), ‘callback’=>’broker_username_callback’ ),
array( ‘section’=>’wp_mqtt_broker_settings’, ‘id’=>’broker_password’, ‘label’=>__(‘Password’, ‘wp-mqtt’ ), ‘callback’=>’broker_password_callback’ ),
+ array( ‘section’=>’wp_mqtt_broker_settings’, ‘id’=>’ignore_ips’, ‘label’=>__(‘Ignore IP addresses’, ‘wp-mqtt’ ), ‘callback’=>’ignore_ip_addresses’ ),
array( ‘section’=>’wp_mqtt_event_settings’, ‘id’=>’event_pageview’, ‘label’=>__(‘Pageview’, ‘wp-mqtt’ ), ‘callback’=>’event_callback’ ),
array( ‘section’=>’wp_mqtt_event_settings’, ‘id’=>’event_login’, ‘label’=>__(‘User login’, ‘wp-mqtt’ ), ‘callback’=>’event_callback’ ),
array( ‘section’=>’wp_mqtt_event_settings’, ‘id’=>’event_login_failed’, ‘label’=>__(‘Failed user login’, ‘wp-mqtt’ ), ‘callback’=>’event_callback’ ),
@@ -150,6 +151,12 @@
if( isset( $input[‘broker_password’] ) ){
$new_input[‘broker_password’] = sanitize_text_field( $input[‘broker_password’] );
}
+
+ if( isset( $input[‘ignore_ips’] ) ){
+ $new_input[‘ignore_ips’] = sanitize_text_field( $input[‘ignore_ips’] );
+ }
+
+// use the fields array to loop through all events
foreach( $this->fields as $field ){
@@ -264,6 +271,16 @@
echo ‘<input id=”broker_password” name=”wp_mqtt_settings[broker_password]” size=”30″ type=”password” value=”‘ . $current_setting . ‘” />’;
}+
+ /**
+ * Callback for the ignore_ips
+ */
+ function ignore_ip_addresses() {
+ $current_setting = isset( $this->current_settings[‘ignore_ips’] ) ? $this->current_settings[‘ignore_ips’] : ”;
+ echo ‘<input id=”ignore_ips” name=”wp_mqtt_settings[ignore_ips]” size=”120″ type=”text” value=”‘ . $current_setting . ‘” />’;
+ }
+
+
/**
* Callback for the event settings
*/
@@ -330,4 +347,4 @@
$wp_mqtt_settings_instance = new WP_MQTT_Settings();
}-?>
\ No newline at end of file
+?>
diff -ruN ./Patchfile /var/www/edisonave/wordpress/wp-content/plugins/wp-mqtt/Patchfile
— ./Patchfile 2019-07-09 17:25:26.327244574 -0500
+++ /var/www/edisonave/wordpress/wp-content/plugins/wp-mqtt/Patchfile 1969-12-31 18:00:00.000000000 -0600
@@ -1,48 +0,0 @@
-diff -ruN ./inc/wp-mqtt-settings.php /var/www/edisonave/wordpress/wp-content/plugins/wp-mqtt/inc/wp-mqtt-settings.php
—- ./inc/wp-mqtt-settings.php 2019-01-08 08:37:08.000000000 -0600
-+++ /var/www/edisonave/wordpress/wp-content/plugins/wp-mqtt/inc/wp-mqtt-settings.php 2019-07-09 16:55:12.527178827 -0500
-@@ -93,6 +93,7 @@
– array( ‘section’=>’wp_mqtt_broker_settings’, ‘id’=>’broker_client_id’, ‘label’=>__(‘Client ID’, ‘wp-mqtt’ ), ‘callback’=>’broker_client_id_callback’ ),
– array( ‘section’=>’wp_mqtt_broker_settings’, ‘id’=>’broker_username’, ‘label’=>__(‘Username’, ‘wp-mqtt’ ), ‘callback’=>’broker_username_callback’ ),
– array( ‘section’=>’wp_mqtt_broker_settings’, ‘id’=>’broker_password’, ‘label’=>__(‘Password’, ‘wp-mqtt’ ), ‘callback’=>’broker_password_callback’ ),
-+ array( ‘section’=>’wp_mqtt_broker_settings’, ‘id’=>’ignore_ips’, ‘label’=>__(‘Ignore IP addresses’, ‘wp-mqtt’ ), ‘callback’=>’ignore_ip_addresses’ ),
– array( ‘section’=>’wp_mqtt_event_settings’, ‘id’=>’event_pageview’, ‘label’=>__(‘Pageview’, ‘wp-mqtt’ ), ‘callback’=>’event_callback’ ),
– array( ‘section’=>’wp_mqtt_event_settings’, ‘id’=>’event_login’, ‘label’=>__(‘User login’, ‘wp-mqtt’ ), ‘callback’=>’event_callback’ ),
– array( ‘section’=>’wp_mqtt_event_settings’, ‘id’=>’event_login_failed’, ‘label’=>__(‘Failed user login’, ‘wp-mqtt’ ), ‘callback’=>’event_callback’ ),
-@@ -150,6 +151,12 @@
– if( isset( $input[‘broker_password’] ) ){
– $new_input[‘broker_password’] = sanitize_text_field( $input[‘broker_password’] );
– }
-+
-+ if( isset( $input[‘ignore_ips’] ) ){
-+ $new_input[‘ignore_ips’] = sanitize_text_field( $input[‘ignore_ips’] );
-+ }
-+
-+
–
– // use the fields array to loop through all events
– foreach( $this->fields as $field ){
-@@ -264,6 +271,16 @@
– echo ‘<input id=”broker_password” name=”wp_mqtt_settings[broker_password]” size=”30″ type=”password” value=”‘ . $current_setting . ‘” />’;
– }
–
-+
-+ /**
-+ * Callback for the ignore_ips
-+ */
-+ function ignore_ip_addresses() {
-+ $current_setting = isset( $this->current_settings[‘ignore_ips’] ) ? $this->current_settings[‘ignore_ips’] : ”;
-+ echo ‘<input id=”ignore_ips” name=”wp_mqtt_settings[ignore_ips]” size=”120″ type=”text” value=”‘ . $current_setting . ‘” />’;
-+ }
-+
-+
– /**
– * Callback for the event settings
– */
-@@ -330,4 +347,4 @@
– $wp_mqtt_settings_instance = new WP_MQTT_Settings();
– }
–
–?>
-\ No newline at end of file
-+?>
diff -ruN ./wp-mqtt.php /var/www/edisonave/wordpress/wp-content/plugins/wp-mqtt/wp-mqtt.php
— ./wp-mqtt.php 2019-01-08 08:37:08.000000000 -0600
+++ /var/www/edisonave/wordpress/wp-content/plugins/wp-mqtt/wp-mqtt.php 2019-07-09 17:13:04.862131925 -0500
@@ -208,11 +208,25 @@
}public function assemble_mqtt_message( $event_id, $args ){
– $topic = isset( $this->settings[$event_id][‘topic’] ) ? $this->settings[$event_id][‘topic’] : ‘default’;
– $message = isset( $this->settings[$event_id][‘message’] ) ? $this->settings[$event_id][‘message’] : ‘default’;
– // replace placeholders with actual content
– $message = $this->replace_placeholders( $message, $args );
– $this->publish( $topic, $message );
+ $ips_array = explode(“,”, $this->settings[‘ignore_ips’]);
+ $ip = “”;
+ if ( ! empty( $_SERVER[‘HTTP_CLIENT_IP’] ) ) {
+ //check ip from share internet
+ $ip = $_SERVER[‘HTTP_CLIENT_IP’];
+ } elseif ( ! empty( $_SERVER[‘HTTP_X_FORWARDED_FOR’] ) ) {
+ //to check ip is pass from proxy
+ $ip = $_SERVER[‘HTTP_X_FORWARDED_FOR’];
+ } else {
+ $ip = $_SERVER[‘REMOTE_ADDR’];
+ }
+
+ if (!in_array($ip, $ips_array)){
+ $topic = isset( $this->settings[$event_id][‘topic’] ) ? $this->settings[$event_id][‘topic’] : ‘default’;
+ $message = isset( $this->settings[$event_id][‘message’] ) ? $this->settings[$event_id][‘message’] : ‘default’;
+ // replace placeholders with actual content
+ $message = $this->replace_placeholders( $message, $args );
+ $this->publish( $topic, $message );
+ }
}@@ -355,4 +369,4 @@
}// create an instance
-$wp_mqtt_instance = new WP_MQTT();
\ No newline at end of file
+$wp_mqtt_instance = new WP_MQTT();