From a83d38295b207c515e92f9c481223850f8bbb9e5 Mon Sep 17 00:00:00 2001 From: Fernando Claussen Date: Mon, 4 Jun 2018 12:26:17 -0400 Subject: [PATCH 1/4] Fix warning on registration functions. --- includes/class-gdpr.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/includes/class-gdpr.php b/includes/class-gdpr.php index 253c3355..4c463925 100755 --- a/includes/class-gdpr.php +++ b/includes/class-gdpr.php @@ -304,9 +304,9 @@ public static function similar_in_array( $needle, $haystack ) { public static function save_user_consent_on_registration( $user_id ) { GDPR_Audit_Log::log( $user_id, esc_html__( 'User registered to the site.', 'gdpr' ) ); - if ( isset( $_POST['user_consents'] ) ) { + if ( isset( $_POST['user_consents'] ) && is_array( $_POST['user_consents'] ) ) { - $consents = array_map( 'sanitize_text_field', array_keys( sanitize_text_field( wp_unslash( $_POST['user_consents'] ) ) ) ); // WPCS: Input var ok, CSRF ok. + $consents = array_map( 'sanitize_text_field', array_keys( wp_unslash( $_POST['user_consents'] ) ) ); // WPCS: Input var ok, CSRF ok, XSS ok. foreach ( $consents as $consent ) { /* translators: Name of consent */ GDPR_Audit_Log::log( $user_id, sprintf( esc_html__( 'User gave explicit consent to %s', 'gdpr' ), $consent ) ); @@ -326,7 +326,10 @@ public static function get_consent_checkboxes( $consent_key = false ) { if ( empty( $consent_types ) ) { return; } - $sent_extras = ( isset( $_POST['user_consents'] ) ) ? sanitize_text_field( wp_unslash( $_POST['user_consents'] ) ) : array(); // WPCS: Input var ok, CSRF ok. + $sent_extras = ( isset( $_POST['user_consents'] ) ) ? wp_unslash( $_POST['user_consents'] ) : array(); // WPCS: Input var ok, CSRF ok. + if ( ! empty( $sent_extras ) ) { + $sent_extras = array_map( 'sanitize_text_field', $_POST['user_consents'] ); + } $allowed_html = array( 'a' => array( 'href' => true, From 8213acc844111a215b9d62bef4f56c91e35a4438 Mon Sep 17 00:00:00 2001 From: Fernando Claussen Date: Mon, 4 Jun 2018 13:47:59 -0400 Subject: [PATCH 2/4] Fix alert close button not working --- assets/js/gdpr-public.js | 2 +- src/js/public/gdpr-public.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/assets/js/gdpr-public.js b/assets/js/gdpr-public.js index 163cc41a..05925173 100644 --- a/assets/js/gdpr-public.js +++ b/assets/js/gdpr-public.js @@ -1 +1 @@ -!function(e){"use strict";var r=location.search,t=location.protocol+"//"+location.host+location.pathname;function n(r,t,n){n=void 0!==n,e(".gdpr-general-confirmation .gdpr-box-title h3").html(r),e(".gdpr-general-confirmation .gdpr-content p").html(t),n?(e(".gdpr-general-confirmation").addClass("gdpr-delete-confirmation"),e(".gdpr-general-confirmation footer").html(' ")):e(".gdpr-general-confirmation footer").html('"),e(".gdpr-overlay").fadeIn(),e("body").addClass("gdpr-noscroll"),e(".gdpr.gdpr-general-confirmation .gdpr-wrapper").css({display:"flex"}).hide().fadeIn()}window.has_consent=function(e){if(Cookies.get("gdpr[consent_types]")&&JSON.parse(Cookies.get("gdpr[consent_types]")).indexOf(e)>-1)return!0;return!1},window.is_allowed_cookie=function(e){if(Cookies.get("gdpr[allowed_cookies]")&&JSON.parse(Cookies.get("gdpr[allowed_cookies]")).indexOf(e)>-1)return!0;return!1},e(function(){-1!==r.indexOf("notify=1")&&(window.history.replaceState({},document.title,t),e("body").addClass("gdpr-notification")),e(document).on("submit",".gdpr-privacy-preferences-frm",function(r){r.preventDefault();e(this);var t=e(this).serialize();e.post(GDPR.ajaxurl,t,function(r){r.success?(Cookies.set("gdpr[privacy_bar]",1,{expires:365}),GDPR.refresh?window.location.reload():(e(".gdpr-overlay").fadeOut(),e("body").removeClass("gdpr-noscroll"),e(".gdpr.gdpr-privacy-preferences .gdpr-wrapper").fadeOut(),e(".gdpr-privacy-bar").fadeOut())):n(r.data.title,r.data.content)})}),e(document).on("submit",".gdpr-request-form",function(r){r.preventDefault();e(this),e(this).find('input[name="type"]').val();var t=e(this).serialize();e.post(GDPR.ajaxurl,t,function(e){n(e.data.title,e.data.content)})}),e(document).on("change",".gdpr-cookie-category",function(){var r=e(this).data("category"),t=e(this).prop("checked");e('[data-category="'+r+'"]').prop("checked",t)}),Cookies.get("gdpr[privacy_bar]")||0==e(".gdpr-reconsent-bar").length&&e(".gdpr.gdpr-privacy-bar").delay(1e3).slideDown(600),e(".gdpr-reconsent-bar").length>0&&e(".gdpr.gdpr-reconsent-bar").delay(1e3).slideDown(600),e(document).on("click",".gdpr.gdpr-privacy-bar .gdpr-agreement",function(){e(".gdpr-privacy-preferences-frm").submit()}),e(document).on("click",".gdpr.gdpr-reconsent-bar .gdpr-agreement",function(){var r=[];e('.gdpr-policy-list input[type="hidden"]').each(function(){r.push(e(this).val())}),e.post(GDPR.ajaxurl,{action:"agree_with_new_policies",nonce:e(this).data("nonce"),consents:r},function(r){r.success?GDPR.refresh?window.location.reload():(e(".gdpr-reconsent-bar").slideUp(600),Cookies.get("gdpr[privacy_bar]")||e(".gdpr.gdpr-privacy-bar").delay(1e3).slideDown(600)):n(r.data.title,r.data.content)})}),e(document).on("click",".gdpr-preferences",function(r){r.preventDefault();e(this).data("type");e(".gdpr-overlay").fadeIn(),e("body").addClass("gdpr-noscroll"),e(".gdpr.gdpr-privacy-preferences .gdpr-wrapper").fadeIn()}),e(document).on("click",".gdpr.gdpr-privacy-preferences .gdpr-close, .gdpr-overlay",function(){e(".gdpr-overlay").fadeOut(),e("body").removeClass("gdpr-noscroll"),e(".gdpr.gdpr-privacy-preferences .gdpr-wrapper").fadeOut()}),e(document).on("click",".gdpr.gdpr-privacy-preferences .gdpr-tabs button",function(){var r="."+e(this).data("target");e(".gdpr.gdpr-privacy-preferences .gdpr-tab-content > div").removeClass("gdpr-active"),e(".gdpr.gdpr-privacy-preferences .gdpr-tab-content "+r).addClass("gdpr-active"),e(".gdpr.gdpr-privacy-preferences .gdpr-tabs").hasClass("gdpr-mobile-expanded")&&(e(".gdpr.gdpr-privacy-preferences .gdpr-mobile-menu button").removeClass("gdpr-active"),e(".gdpr.gdpr-privacy-preferences .gdpr-tabs").toggle()),e(".gdpr.gdpr-privacy-preferences .gdpr-tabs button").removeClass("gdpr-active"),e(".gdpr-subtabs li button").removeClass("gdpr-active"),e(this).hasClass("gdpr-tab-button")?(e(this).addClass("gdpr-active"),e(this).hasClass("gdpr-cookie-settings")&&e(".gdpr-subtabs").find("li button").first().addClass("gdpr-active")):(e(".gdpr-cookie-settings").addClass("gdpr-active"),e(this).addClass("gdpr-active"))}),e(document).on("click",".gdpr.gdpr-privacy-preferences .gdpr-mobile-menu button",function(r){e(this).toggleClass("gdpr-active"),e(".gdpr.gdpr-privacy-preferences .gdpr-tabs").toggle().addClass("gdpr-mobile-expanded")}),e(window).resize(function(){e(window).width()>640&&e(".gdpr.gdpr-privacy-preferences .gdpr-tabs").hasClass("gdpr-mobile-expanded")&&(e(".gdpr.gdpr-privacy-preferences .gdpr-mobile-menu button").removeClass("gdpr-active"),e(".gdpr.gdpr-privacy-preferences .gdpr-tabs").removeClass("gdpr-mobile-expanded").removeAttr("style"))}),e("form.gdpr-add-to-deletion-requests").on("submit",function(r){e(this).hasClass("confirmed")||(r.preventDefault(),e(".gdpr-overlay").fadeIn(),e("body").addClass("gdpr-noscroll"),e(".gdpr.gdpr-delete-confirmation .gdpr-wrapper").css({display:"flex"}).hide().fadeIn())}),e(document).on("click",".gdpr.gdpr-delete-confirmation button.gdpr-delete-account",function(){e("form.gdpr-add-to-deletion-requests").addClass("confirmed"),e('form.gdpr-add-to-deletion-requests.confirmed input[type="submit"]').click(),e(".gdpr-overlay").fadeOut(),e("body").removeClass("gdpr-noscroll"),e(".gdpr.gdpr-delete-confirmation .gdpr-wrapper").fadeOut()}),e("body").hasClass("gdpr-notification")&&(e(".gdpr-overlay").fadeIn(),e("body").addClass("gdpr-noscroll"),e(".gdpr.gdpr-general-confirmation .gdpr-wrapper").css({display:"flex"}).hide().fadeIn()),e(document).on("click",".gdpr.gdpr-general-confirmation button.gdpr-ok",function(){e(".gdpr-overlay").fadeOut(),e("body").removeClass("gdpr-noscroll"),e(".gdpr.gdpr-general-confirmation .gdpr-wrapper").fadeOut()}),e(document).on("click",".gdpr-disagree",function(r){e(".gdpr-overlay").fadeIn(),e("body").addClass("gdpr-noscroll"),e(".gdpr.gdpr-disagree-confirmation .gdpr-wrapper").css({display:"flex"}).hide().fadeIn()}),e(document).on("click",".gdpr-disagree-confirm",function(r){r.preventDefault(),e(".gdpr-overlay").fadeOut(),e(".gdpr.gdpr-disagree-confirmation .gdpr-wrapper").fadeOut(),e(".gdpr-consent-buttons").fadeOut(300,function(){e(".gdpr-updating").html(GDPR.i18n.aborting),e(".gdpr-consent-loading").fadeIn(300)});var t=0;setInterval(function(){e(".gdpr-ellipsis").html();t<3?(e(".gdpr-ellipsis").append("."),t++):(e(".gdpr-ellipsis").html(""),t=0)},600);e.post(GDPR.ajaxurl,{action:"disagree_with_terms",nonce:e(this).data("nonce")},function(e){e.success&&location.reload()})})})}(jQuery),function(e){var r=!1;if("function"==typeof define&&define.amd&&(define(e),r=!0),"object"==typeof exports&&(module.exports=e(),r=!0),!r){var t=window.Cookies,n=window.Cookies=e();n.noConflict=function(){return window.Cookies=t,n}}}(function(){function e(){for(var e=0,r={};e1){if("number"==typeof(d=e({path:"/"},n.defaults,d)).expires){var p=new Date;p.setMilliseconds(p.getMilliseconds()+864e5*d.expires),d.expires=p}d.expires=d.expires?d.expires.toUTCString():"";try{a=JSON.stringify(o),/^[\{\[]/.test(a)&&(o=a)}catch(e){}o=t.write?t.write(o,r):encodeURIComponent(String(o)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),r=(r=(r=encodeURIComponent(String(r))).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent)).replace(/[\(\)]/g,escape);var i="";for(var s in d)d[s]&&(i+="; "+s,!0!==d[s]&&(i+="="+d[s]));return document.cookie=r+"="+o+i}r||(a={});for(var c=document.cookie?document.cookie.split("; "):[],g=/(%[0-9A-Z]{2})+/g,l=0;l