Forum Replies Created

Viewing 1 replies (of 1 total)
  • Forum: Plugins
    In reply to: [WP-MQTT] Ignore IP address
    Thread Starter Tom Printy

    (@tprintyedisonave)

    I 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();

Viewing 1 replies (of 1 total)