Members - Version 3.0.5

Version Description

If upgrading from a version prior to 2.0.0, please note that the plugin now requires PHP 5.3.0 or later.

Download this release

Release Info

Developer caseproof
Plugin Icon 128x128 Members
Version 3.0.5
Comparing to
See all releases

Code changes from version 3.0.4 to 3.0.5

addons/members-admin-access/app/class-view-settings.php CHANGED
File without changes
addons/members-block-permissions/public/js/upsell.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=1)}({1:function(e,t,n){e.exports=n("NyUW")},"9tPo":function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},I1BE:function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(a=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),i=r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"});return[n].concat(i).concat([o]).join("\n")}var a;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<e.length;o++){var a=e[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),t.push(a))}},t}},NyUW:function(e,t,n){"use strict";n.r(t);var r=n("mfq/"),o=wp.compose.createHigherOrderComponent,i=wp.element.Fragment,a=wp.hooks.addFilter,c=wp.components,s=c.PanelBody,u=c.Icon,l=wp.editor.InspectorControls,f=membersUpsell,p=f.title,d=f.message,m=function(e){return React.createElement(i,null,React.createElement(u,{icon:React.createElement("svg",{width:"20px","aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"users-cog",className:"svg-inline--fa fa-users-cog fa-w-20",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React.createElement("path",{fill:"currentColor",d:"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"}))}),React.createElement("div",{style:{marginLeft:"10px",position:"relative",top:"3px"}},e.title))};a("editor.BlockEdit","members/block/upsell",o(function(e){return function(t){return React.createElement(i,null,React.createElement(e,t),React.createElement(l,null,React.createElement(s,{title:React.createElement(m,{title:p}),initialOpen:!0,className:"members-upsell"},React.createElement(r.a,{message:d}))))}},"MembersUpsell"))},"PDM/":function(e,t,n){var r=n("RwBp");"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n("aET+")(r,o);r.locals&&(e.exports=r.locals)},RwBp:function(e,t,n){(e.exports=n("I1BE")(!1)).push([e.i,".members-bp-memberpress-upgrade {\n\tbackground-color: #f5f5f5;\n\tpadding: 20px;\n\tmargin-bottom: 20px;\n}\n\n.members-bp-memberpress-upgrade__cta-button {\n\tbackground-color: #06429e;\n\tcolor: #fff;\n\ttext-decoration: none;\n\tborder-radius: 300px;\n\tmargin: 20px auto 0;\n\twidth: auto;\n\ttext-align: center;\n\tmax-width: 200px;\n\tpadding: 10px;\n\tdisplay: block;\n\theight: auto;\n}\n\n.members-bp-memberpress-upgrade__cta-button:hover {\n\tcolor: #fff;\n}",""])},"aET+":function(e,t,n){var r,o,i={},a=(r=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=r.apply(this,arguments)),o}),c=function(e){var t={};return function(e,n){if("function"==typeof e)return e();if(void 0===t[e]){var r=function(e,t){return t?t.querySelector(e):document.querySelector(e)}.call(this,e,n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}}(),s=null,u=0,l=[],f=n("9tPo");function p(e,t){for(var n=0;n<e.length;n++){var r=e[n],o=i[r.id];if(o){o.refs++;for(var a=0;a<o.parts.length;a++)o.parts[a](r.parts[a]);for(;a<r.parts.length;a++)o.parts.push(y(r.parts[a],t))}else{var c=[];for(a=0;a<r.parts.length;a++)c.push(y(r.parts[a],t));i[r.id]={id:r.id,refs:1,parts:c}}}}function d(e,t){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],a=t.base?i[0]+t.base:i[0],c={css:i[1],media:i[2],sourceMap:i[3]};r[a]?r[a].parts.push(c):n.push(r[a]={id:a,parts:[c]})}return n}function m(e,t){var n=c(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var r=l[l.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),l.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var o=c(e.insertAt.before,n);n.insertBefore(t,o)}}function b(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=l.indexOf(e);t>=0&&l.splice(t,1)}function v(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var r=function(){0;return n.nc}();r&&(e.attrs.nonce=r)}return h(t,e.attrs),m(e,t),t}function h(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function y(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=i}if(t.singleton){var a=u++;n=s||(s=v(t)),r=x.bind(null,n,a,!1),o=x.bind(null,n,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(t,e.attrs),m(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var a=new Blob([r],{type:"text/css"}),c=e.href;e.href=URL.createObjectURL(a),c&&URL.revokeObjectURL(c)}.bind(null,n,t),o=function(){b(n),n.href&&URL.revokeObjectURL(n.href)}):(n=v(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){b(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=d(e,t);return p(n,t),function(e){for(var r=[],o=0;o<n.length;o++){var a=n[o];(c=i[a.id]).refs--,r.push(c)}e&&p(d(e,t),t);for(o=0;o<r.length;o++){var c;if(0===(c=r[o]).refs){for(var s=0;s<c.parts.length;s++)c.parts[s]();delete i[c.id]}}}};var g,w=(g=[],function(e,t){return g[e]=t,g.filter(Boolean).join("\n")});function x(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=w(t,o);else{var i=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}},"mfq/":function(e,t,n){"use strict";n("PDM/");function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var s=wp.element.Component,u=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i(this,a(t).apply(this,arguments))}var n,r,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,s),n=t,(r=[{key:"render",value:function(){return React.createElement("div",{className:"members-bp-memberpress-upgrade"},React.createElement("div",{className:"members-bp-memberpress-upgrade__message"},this.props.message),React.createElement("div",{className:"members-bp-memberpress-upgrade__cta"},React.createElement("a",{href:"https://memberpress.com/plans/pricing",target:"_blank",className:"members-bp-memberpress-upgrade__cta-button"},"Upgrade to MemberPress")))}}])&&o(n.prototype,r),u&&o(n,u),t}();t.a=u}});
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=1)}({1:function(e,t,n){e.exports=n("NyUW")},"9tPo":function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},I1BE:function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(a=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),i=r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"});return[n].concat(i).concat([o]).join("\n")}var a;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<e.length;o++){var a=e[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),t.push(a))}},t}},NyUW:function(e,t,n){"use strict";n.r(t);var r=n("mfq/"),o=wp.compose.createHigherOrderComponent,i=wp.element.Fragment,a=wp.hooks.addFilter,c=wp.components,s=c.PanelBody,u=c.Icon,l=wp.editor.InspectorControls,f=membersUpsell,p=f.title,d=f.message,m=function(e){return React.createElement(i,null,React.createElement(u,{icon:React.createElement("svg",{width:"20px","aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"users-cog",className:"svg-inline--fa fa-users-cog fa-w-20",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React.createElement("path",{fill:"currentColor",d:"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"}))}),React.createElement("div",{style:{marginLeft:"10px",position:"relative"}},e.title))};a("editor.BlockEdit","members/block/upsell",o(function(e){return function(t){return React.createElement(i,null,React.createElement(e,t),React.createElement(l,null,React.createElement(s,{title:React.createElement(m,{title:p}),initialOpen:!1,className:"members-upsell"},React.createElement(r.a,{message:d}))))}},"MembersUpsell"))},"PDM/":function(e,t,n){var r=n("RwBp");"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n("aET+")(r,o);r.locals&&(e.exports=r.locals)},RwBp:function(e,t,n){(e.exports=n("I1BE")(!1)).push([e.i,".members-bp-memberpress-upgrade {\n\tbackground-color: #f5f5f5;\n\tpadding: 20px;\n\tmargin-bottom: 20px;\n}\n\n.members-bp-memberpress-upgrade__cta-button {\n\tbackground-color: #06429e;\n\tcolor: #fff;\n\ttext-decoration: none;\n\tborder-radius: 300px;\n\tmargin: 20px auto 0;\n\twidth: auto;\n\ttext-align: center;\n\tmax-width: 200px;\n\tpadding: 10px;\n\tdisplay: block;\n\theight: auto;\n}\n\n.members-bp-memberpress-upgrade__cta-button:hover {\n\tcolor: #fff;\n}",""])},"aET+":function(e,t,n){var r,o,i={},a=(r=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=r.apply(this,arguments)),o}),c=function(e){var t={};return function(e,n){if("function"==typeof e)return e();if(void 0===t[e]){var r=function(e,t){return t?t.querySelector(e):document.querySelector(e)}.call(this,e,n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}}(),s=null,u=0,l=[],f=n("9tPo");function p(e,t){for(var n=0;n<e.length;n++){var r=e[n],o=i[r.id];if(o){o.refs++;for(var a=0;a<o.parts.length;a++)o.parts[a](r.parts[a]);for(;a<r.parts.length;a++)o.parts.push(y(r.parts[a],t))}else{var c=[];for(a=0;a<r.parts.length;a++)c.push(y(r.parts[a],t));i[r.id]={id:r.id,refs:1,parts:c}}}}function d(e,t){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],a=t.base?i[0]+t.base:i[0],c={css:i[1],media:i[2],sourceMap:i[3]};r[a]?r[a].parts.push(c):n.push(r[a]={id:a,parts:[c]})}return n}function m(e,t){var n=c(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var r=l[l.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),l.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var o=c(e.insertAt.before,n);n.insertBefore(t,o)}}function b(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=l.indexOf(e);t>=0&&l.splice(t,1)}function v(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var r=function(){0;return n.nc}();r&&(e.attrs.nonce=r)}return h(t,e.attrs),m(e,t),t}function h(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function y(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=i}if(t.singleton){var a=u++;n=s||(s=v(t)),r=x.bind(null,n,a,!1),o=x.bind(null,n,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(t,e.attrs),m(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var a=new Blob([r],{type:"text/css"}),c=e.href;e.href=URL.createObjectURL(a),c&&URL.revokeObjectURL(c)}.bind(null,n,t),o=function(){b(n),n.href&&URL.revokeObjectURL(n.href)}):(n=v(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){b(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=d(e,t);return p(n,t),function(e){for(var r=[],o=0;o<n.length;o++){var a=n[o];(c=i[a.id]).refs--,r.push(c)}e&&p(d(e,t),t);for(o=0;o<r.length;o++){var c;if(0===(c=r[o]).refs){for(var s=0;s<c.parts.length;s++)c.parts[s]();delete i[c.id]}}}};var g,w=(g=[],function(e,t){return g[e]=t,g.filter(Boolean).join("\n")});function x(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=w(t,o);else{var i=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}},"mfq/":function(e,t,n){"use strict";n("PDM/");function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var s=wp.element.Component,u=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i(this,a(t).apply(this,arguments))}var n,r,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(t,s),n=t,(r=[{key:"render",value:function(){return React.createElement("div",{className:"members-bp-memberpress-upgrade"},React.createElement("div",{className:"members-bp-memberpress-upgrade__message"},this.props.message),React.createElement("div",{className:"members-bp-memberpress-upgrade__cta"},React.createElement("a",{href:"https://memberpress.com/plans/pricing",target:"_blank",className:"members-bp-memberpress-upgrade__cta-button"},"Upgrade to MemberPress")))}}])&&o(n.prototype,r),u&&o(n,u),t}();t.a=u}});
addons/members-block-permissions/public/mix-manifest.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
  "/js/editor.js": "/js/editor.js?id=f93918b5693c8a3af062",
3
  "/css/editor.css": "/css/editor.css?id=dc3291c444832a7a271b",
4
- "/js/upsell.js": "/js/upsell.js?id=720b0b10c4172ffe62b0"
5
  }
1
  {
2
  "/js/editor.js": "/js/editor.js?id=f93918b5693c8a3af062",
3
  "/css/editor.css": "/css/editor.css?id=dc3291c444832a7a271b",
4
+ "/js/upsell.js": "/js/upsell.js?id=e8c13e66a767f7ddae0a"
5
  }
addons/members-block-permissions/resources/js/editor/filter-block-upsell.js CHANGED
@@ -23,7 +23,7 @@ const PermissionsIconTitle = ( props ) => (
23
  <svg width="20px" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="users-cog" className="svg-inline--fa fa-users-cog fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"></path></svg>
24
  }
25
  />
26
- <div style={{marginLeft: '10px', position: 'relative', top: '3px'}}>
27
  {props.title}
28
  </div>
29
  </Fragment>
@@ -39,7 +39,7 @@ const MembersUpsell = createHigherOrderComponent( ( BlockEdit ) => {
39
  <InspectorControls>
40
  <PanelBody
41
  title={ <PermissionsIconTitle title={ title } /> }
42
- initialOpen={ true }
43
  className="members-upsell"
44
  >
45
  <UpgradePrompt message={ message } />
23
  <svg width="20px" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="users-cog" className="svg-inline--fa fa-users-cog fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"></path></svg>
24
  }
25
  />
26
+ <div style={{marginLeft: '10px', position: 'relative'}}>
27
  {props.title}
28
  </div>
29
  </Fragment>
39
  <InspectorControls>
40
  <PanelBody
41
  title={ <PermissionsIconTitle title={ title } /> }
42
+ initialOpen={ false }
43
  className="members-upsell"
44
  >
45
  <UpgradePrompt message={ message } />
changelog.md CHANGED
@@ -1,11 +1,19 @@
1
  # Change Log
2
 
 
 
 
 
 
 
3
  ## [3.0.4] - 2020-04-20
4
 
5
  ### Fixed
 
6
  - Inaccessible settings page in Admin Access
7
 
8
  ### Added
 
9
  - Filter for applying custom validation to settings
10
 
11
  ## [3.0.3] - 2020-04-15
@@ -62,260 +70,260 @@
62
 
63
  ### Added
64
 
65
- * `user_name` parameter for the `[members_access]` shortcode.
66
- * `user_id` parameter for the `[members_access]` shortcode.
67
- * `user_email` parameter for the `[members_access]` shortcode.
68
- * `icon-members-core-create-caps.png` file for local access to the corresponding add-on thumbnail.
69
 
70
  ### Fixed
71
 
72
- * Incorrect roles (or empty roles) appearing on sub-sites when running multisite.
73
- * Invalid icon URL on the Settings > Members > Add-ons admin screen.
74
- * Fix for WooCommerce empty page ID in the private site feature.
75
 
76
  ### Changed
77
 
78
- * Bumped minimum PHP requirement to 5.6+. However, the code should still work on PHP 5.3. This is in preparation for a hard requirement of 5.6+ when version 3.0.0 is released.
79
 
80
  ## [2.0.2] - 2017-11-06
81
 
82
  ### Fixed
83
 
84
- * Role labels should now be handled correctly where the plugin outputs them. This was not corrected in 2.0.1 as previously thought.
85
 
86
  ### Security
87
 
88
- * Corrected a capability escalation issue on multisite where administrators could assign themselves network caps. Administrators are no longer given the `create_role`, `edit_role`, and `delete_role` caps on multisite. A Super Admin must manually set these caps if they want to grant them to a site administrator. Additionally, network caps are always blocked from being assigned.
89
 
90
  ## [2.0.1] - 2017-09-28
91
 
92
  ### Changed
93
 
94
- * Cap groups registered by the plugin bumped up 5 in priority. Primarily, this was to make sure post type cap groups were registered earlier than the default of `10`.
95
- * Better handling of the PHP notice. We're going to check prior to loading any other code and add an admin notice if the site doesn't meet minimum requirements.
96
 
97
  ### Fixed
98
 
99
- * The `show_human_caps` setting was not properly saving because it wasn't accounted for in the validation callback.
100
- * Make sure to use the correct `$old_user_data` variable when removing all roles from a user. Otherwise, this doesn't work.
101
- * Super admins should be able to see any private site when multisite is enabled.
102
- * Make sure that role labels (where the plugin outputs them) are the translated version.
103
- * Multi-role selection has been removed for the Add New User screen on multisite installs. This was to address multiple issues in core with hardcoded values that the plugin couldn't filter. The feature may return in the future in a different form. Note that this doesn't change single-site installs.
104
 
105
  ## [2.0.0] - 2017-07-19
106
 
107
  ### Added
108
 
109
- * Created a new admin view system, where there can be multiple views ("tabs", if you like) on the settings screen and other potential screens in the future.
110
- * Added an "Add-Ons" view for the Members Settings page, which lists add-ons for the plugin. The default add-ons are pulled from Theme Hybrid.
111
- * Created an add-ons API for other developers to list their own add-ons.
112
- * Created a capability registration system and API for plugin developers to register their capabilities with Members. The major benefit of this is having internationalized labels for capabilities.
113
- * Registered all of the core capabilities with human-readable, internationalized text labels so that users who do not speak English can benefit from capability translations.
114
- * Added the `members_enable_{$post_type}_content_permissions` filter hook to allow developers to enable/disable content permissions per post type.
115
- * Removed the core "Change Role" feature on the manage users screen and replaced it with an "Add Role" and "Remove Role" feature for bulk editing users. Note that this only appears when multiple roles is enabled.
116
- * Add a multi-role checkbox on the Add User screen when multiple roles are enabled.
117
- * Added a `members_has_post_roles()` conditional tag for checking if a post has content permissions roles assigned to it.
118
- * Added the `operator` parameter, which accepts a value of `!`, for the `[members_access]` shortcode. This allows users to negate the role or cap they've passed in.
119
 
120
  ### Changed
121
 
122
- * Roles states on the manage role screen now have array keys so they can more easily be overwritten.
123
- * Created a `.wp-tab-panel` wrapper around the user roles checklist on the edit user screen. This is to prevent long lists of roles from taking up too much screen space.
124
- * Moved the All capability tab to the bottom of the capability tabs list.
125
- * Removed the All cap group, since it is not a true cap group.
126
- * Removed the All, Mine, Active, Inactive, Editable, and Uneditable role groups. These are merely views for the role management screen. They are not true role groups.
127
- * Created a new, internal registry class for storing various collections of data. Note that this does break back-compat for developers who were directly accessing factory classes in previous versions rather than using the wrapper functions.
128
- * Old classes were added to the `Members` namespace or `Members\Admin` namespace. Again, this breaks back-compat for anyone not using the appropriate wrapper functions. This also bumps the requirement to PHP 5.3.0+.
129
- * Changed the text in the Content Permissions meta box to not specifically use the term "post".
130
- * Changed the Content Permissions meta box to have a tabbed UI so that it doesn't take up so much screen space.
131
- * Replaced the basic textarea with the WP editor in the Content Permissions meta box.
132
 
133
  ### Fixed
134
 
135
- * No longer save content permissions on autosave or for post revisions.
136
- * Prevent users from adding the internal core WP `do_not_allow` capability to their role.
137
- * On multisite with the private site feature enabled, block access to logged-in users who do not have access to the specific blog.
138
- * Make sure comments show an error in the comments feed if they belong to a private post.
139
 
140
  ### Security
141
 
142
- * General hardening and use of some better functions for escaping.
143
- * Added a private REST API option for users who are utilizing the private site feature. Users will likely want to enable this. Otherwise, their "private site" is exposed via the REST API endpoints.
144
 
145
  ## [1.1.3] - 2017-02-06
146
 
147
  ### Fixed
148
 
149
- * Removes the `customize_changeset` and `custom_css` post type cap groups so that they don't appear in the capability tabs on the edit role screen.
150
 
151
  ### Security
152
 
153
- * Added a check that the role is editable before attempting to add a new role to a user.
154
 
155
  ## [1.1.2] - 2016-06-20
156
 
157
  ### Fixed
158
 
159
- * Bug where custom capabilities would not appear after updating role.
160
- * Make BuddyPress activation page public in private site mode.
161
 
162
  ## [1.1.1] - 2016-01-09
163
 
164
  ### Changed
165
 
166
- * Allows a hyphen in role names. Alphanumeric characters, underscores, and hyphens now allowed.
167
 
168
  ### Fixed
169
 
170
- * Don't escaped allowed HTML in the login widget textarea.
171
- * When filter `user_has_cap`, check that the role is not null.
172
- * Remove broken property check when unregistering a cap group.
173
- * Typo corrections in the Content Permissions meta box.
174
- * Changed an incorrect textdomain instance.
175
 
176
  ## [1.1.0] - 2015-10-12
177
 
178
  ### Added
179
 
180
- * `Text Domain` plugin header added.
181
- * `Domain Path` plugin header added.
182
- * `members_role_updated` action hook for when a role is edited/updated.
183
- * `members_role_added` action hook for when a new role is created.
184
- * `members_manage_roles_column_{$column_name}` filter hook for handling the output of custom manage roles screen columns.
185
- * `members_cp_meta_box_before` action hook for hooking in before the Content Permissions meta box.
186
- * `members_cp_meta_box_after` action hook for hooking in after the Content Permissions meta box.
187
- * Added the `Members_Role_Factory::remove_role()` method to remove a stored role.
188
 
189
  ### Changed
190
 
191
- * Edit/New role forms just check the nonce instead of checking for form fields + nonce to see if the form was submitted (fields can be legitimately empty).
192
 
193
  ### Fixed
194
 
195
- * Correct "undefined index" notices with widgets.
196
- * Make sure custom caps (post types, taxonomies, etc.) that aren't stored get saved when editing a role.
197
- * Make sure the "All" capability group actually lists all caps from all groups.
198
- * Use the `$user` variable instead of `$author` variable in `members_list_users()`.
199
- * "Custom" cap group should always be added last.
200
- * Make sure roles edited with no caps get processed. Previously, we bailed if no caps were set.
201
- * Remove deleted roles from the manage roles screen list without having to refresh the page.
202
 
203
  ### Security
204
 
205
- * Use `wp_strip_all_tags()` over `strip_tags()` for sanitizing the role name.
206
- * Use `esc_url_raw()` to escape the redirect URL after creating a new role.
207
 
208
  ## [1.0.2] - 2015-09-15
209
 
210
  ### Fixed
211
 
212
- * Make sure `$attr` is set by `shortcode_atts()` in the `[members_access]` shortcode.
213
- * Use `members_current_user_has_role()` in the `[members_access]` shortcode.
214
- * Use `! empty()` to validate the checkboxes when settings are saved.
215
 
216
  ## [1.0.1] - 2015-09-14
217
 
218
  ### Fixed
219
 
220
- * Only load `edit-role.js` on the role management screens.
221
 
222
  ## [1.0.0] - 2015-09-13
223
 
224
  ### Added
225
 
226
- * Ability to clone existing roles.
227
- * Add multiple roles per user.
228
- * Ability to explicitly deny capabilities to roles.
229
- * Capability groups to find related caps when editing a role.
230
- * Role groups to group related roles together.
231
- * Content Permissions handles HTML, shortcodes, and auto-embeds.
232
- * Disabled capabilities (via `wp-config.php` settings) no longer show cap lists.
233
- * Additional role and capability functions to extend WP's existing APIs.
234
- * Role translation filters so that plugin authors can make role names translatable.
235
- * Uneditable roles are now shown in the UI. They can be viewed but not edited.
236
- * `Members_Role` object and API to extend WP's existing Roles API.
237
- * Plugin authors can now add meta boxes to the edit role screen.
238
- * Underscore JS based capabilities editing box for roles.
239
 
240
  ### Changed
241
 
242
- * Complete UI overhaul for all user-facing components in the plugin.
243
- * Overhaul of all text strings in the plugin.
244
- * Shortcodes are now prefixed with `members_`. Old shortcodes will continue to work.
245
- * Overhauled the widgets code with new text strings and general code cleanup.
246
- * Using the newer WP help tab functionality with custom tabs.
247
 
248
  ### Deprecated
249
 
250
- * `members_get_active_roles()`. Replaced by `members_get_active_role_names()`.
251
- * `members_get_inactive_roles()`. Replaced by `members_get_inactive_role_names()`.
252
- * `members_count_roles()`. Replaced by `members_get_role_count()`.
253
- * `members_get_default_capabilities()`. Replaced by `members_get_wp_capabilities()`.
254
- * `members_get_additional_capabilities()`. Replaced by `members_get_plugin_capabilities()`.
255
 
256
  ### Removed
257
 
258
- * Upgrade routine.
259
- * All old translation files since the text strings were overhauled.
260
- * Plugin constants in favor of `Members_Plugin` properties.
261
- * `$members` global in favor of `Members_Plugin` properties.
262
 
263
  ### Fixed
264
 
265
- * Content Permissions meta box now accepts HTML on the edit post screen.
266
- * User levels are now hidden from the role capability count.
267
- * Uses the proper path for translation files in case plugin folder name changes.
268
- * An "Are you sure?" (AYS) popup prevents users from inadvertently deleting roles.
269
- * Added missing `export` and `delete_themes` caps to the core caps backup function.
270
- * Removed CSS code that was hiding the "collapse menu" button for the admin menu.
271
 
272
  ### Security
273
 
274
- * Added the `members_sanitize_role()` function.
275
- * Added the `members_sanitize_cap()` function.
276
- * Security hardening by making sure all URLs are escaped.
277
- * Security hardening by making sure all dynamic data is escaped.
278
- * Security hardening by escaping translated text.
279
 
280
  ## [0.2.5] - 2015-07-09
281
 
282
  ### Fixed
283
 
284
- * Deprecated old widget constructor method in favor of using `__construct()` in preparation for WP 4.3.
285
- * Removed old `/components` folder and files that's not used.
286
 
287
  ## [0.2.4]
288
 
289
- * Fixed content permissions not saving for attachments. Note that this only protects **content** and not media files.
290
- * No longer runs the upgrade script when `WP_INSTALLING` is `TRUE`.
291
 
292
  ## [0.2.3]
293
 
294
- * Fixes the strict standards notice "Redefining already defined constructor for class Members_Load".
295
- * No longer uses `&` for passing the role name by reference on plugin activation.
296
- * Fixes the `[feed]` shortcode, which was using the wrong callback function.
297
 
298
  ## [0.2.2]
299
 
300
- * No longer displays non-editable roles on the edit roles screen.
301
 
302
  ## [0.2.1]
303
 
304
- * Fixes the " Creating default object from empty value" error.
305
 
306
  ## [0.2.0]
307
 
308
- * Updated everything. Nearly all the code was rewritten from the ground up to make for a better user experience.
309
- * Plugin users should check their plugin settings.
310
 
311
  ## [0.1.1]
312
 
313
- * Fixed a bug with the Content Permissions component that restricted access to everyone.
314
- * Added missing internationalization function call: `load_plugin_textdomain()`.
315
- * Added new `/languages` folder for holding translations.
316
- * Added `members-en_EN.po`, `members-en_EN.mo`, and `members.pot` to the `/languages` folder.
317
- * Updated some non-internationalized strings.
318
 
319
  ## [0.1.0]
320
 
321
- * Plugin launch. Everything's new!
1
  # Change Log
2
 
3
+ ## [3.0.5] - 2020-04-24
4
+
5
+ ### Fixed
6
+
7
+ - Collapse Permissions block editor section by default
8
+
9
  ## [3.0.4] - 2020-04-20
10
 
11
  ### Fixed
12
+
13
  - Inaccessible settings page in Admin Access
14
 
15
  ### Added
16
+
17
  - Filter for applying custom validation to settings
18
 
19
  ## [3.0.3] - 2020-04-15
70
 
71
  ### Added
72
 
73
+ - `user_name` parameter for the `[members_access]` shortcode.
74
+ - `user_id` parameter for the `[members_access]` shortcode.
75
+ - `user_email` parameter for the `[members_access]` shortcode.
76
+ - `icon-members-core-create-caps.png` file for local access to the corresponding add-on thumbnail.
77
 
78
  ### Fixed
79
 
80
+ - Incorrect roles (or empty roles) appearing on sub-sites when running multisite.
81
+ - Invalid icon URL on the Settings > Members > Add-ons admin screen.
82
+ - Fix for WooCommerce empty page ID in the private site feature.
83
 
84
  ### Changed
85
 
86
+ - Bumped minimum PHP requirement to 5.6+. However, the code should still work on PHP 5.3. This is in preparation for a hard requirement of 5.6+ when version 3.0.0 is released.
87
 
88
  ## [2.0.2] - 2017-11-06
89
 
90
  ### Fixed
91
 
92
+ - Role labels should now be handled correctly where the plugin outputs them. This was not corrected in 2.0.1 as previously thought.
93
 
94
  ### Security
95
 
96
+ - Corrected a capability escalation issue on multisite where administrators could assign themselves network caps. Administrators are no longer given the `create_role`, `edit_role`, and `delete_role` caps on multisite. A Super Admin must manually set these caps if they want to grant them to a site administrator. Additionally, network caps are always blocked from being assigned.
97
 
98
  ## [2.0.1] - 2017-09-28
99
 
100
  ### Changed
101
 
102
+ - Cap groups registered by the plugin bumped up 5 in priority. Primarily, this was to make sure post type cap groups were registered earlier than the default of `10`.
103
+ - Better handling of the PHP notice. We're going to check prior to loading any other code and add an admin notice if the site doesn't meet minimum requirements.
104
 
105
  ### Fixed
106
 
107
+ - The `show_human_caps` setting was not properly saving because it wasn't accounted for in the validation callback.
108
+ - Make sure to use the correct `$old_user_data` variable when removing all roles from a user. Otherwise, this doesn't work.
109
+ - Super admins should be able to see any private site when multisite is enabled.
110
+ - Make sure that role labels (where the plugin outputs them) are the translated version.
111
+ - Multi-role selection has been removed for the Add New User screen on multisite installs. This was to address multiple issues in core with hardcoded values that the plugin couldn't filter. The feature may return in the future in a different form. Note that this doesn't change single-site installs.
112
 
113
  ## [2.0.0] - 2017-07-19
114
 
115
  ### Added
116
 
117
+ - Created a new admin view system, where there can be multiple views ("tabs", if you like) on the settings screen and other potential screens in the future.
118
+ - Added an "Add-Ons" view for the Members Settings page, which lists add-ons for the plugin. The default add-ons are pulled from Theme Hybrid.
119
+ - Created an add-ons API for other developers to list their own add-ons.
120
+ - Created a capability registration system and API for plugin developers to register their capabilities with Members. The major benefit of this is having internationalized labels for capabilities.
121
+ - Registered all of the core capabilities with human-readable, internationalized text labels so that users who do not speak English can benefit from capability translations.
122
+ - Added the `members_enable_{$post_type}_content_permissions` filter hook to allow developers to enable/disable content permissions per post type.
123
+ - Removed the core "Change Role" feature on the manage users screen and replaced it with an "Add Role" and "Remove Role" feature for bulk editing users. Note that this only appears when multiple roles is enabled.
124
+ - Add a multi-role checkbox on the Add User screen when multiple roles are enabled.
125
+ - Added a `members_has_post_roles()` conditional tag for checking if a post has content permissions roles assigned to it.
126
+ - Added the `operator` parameter, which accepts a value of `!`, for the `[members_access]` shortcode. This allows users to negate the role or cap they've passed in.
127
 
128
  ### Changed
129
 
130
+ - Roles states on the manage role screen now have array keys so they can more easily be overwritten.
131
+ - Created a `.wp-tab-panel` wrapper around the user roles checklist on the edit user screen. This is to prevent long lists of roles from taking up too much screen space.
132
+ - Moved the All capability tab to the bottom of the capability tabs list.
133
+ - Removed the All cap group, since it is not a true cap group.
134
+ - Removed the All, Mine, Active, Inactive, Editable, and Uneditable role groups. These are merely views for the role management screen. They are not true role groups.
135
+ - Created a new, internal registry class for storing various collections of data. Note that this does break back-compat for developers who were directly accessing factory classes in previous versions rather than using the wrapper functions.
136
+ - Old classes were added to the `Members` namespace or `Members\Admin` namespace. Again, this breaks back-compat for anyone not using the appropriate wrapper functions. This also bumps the requirement to PHP 5.3.0+.
137
+ - Changed the text in the Content Permissions meta box to not specifically use the term "post".
138
+ - Changed the Content Permissions meta box to have a tabbed UI so that it doesn't take up so much screen space.
139
+ - Replaced the basic textarea with the WP editor in the Content Permissions meta box.
140
 
141
  ### Fixed
142
 
143
+ - No longer save content permissions on autosave or for post revisions.
144
+ - Prevent users from adding the internal core WP `do_not_allow` capability to their role.
145
+ - On multisite with the private site feature enabled, block access to logged-in users who do not have access to the specific blog.
146
+ - Make sure comments show an error in the comments feed if they belong to a private post.
147
 
148
  ### Security
149
 
150
+ - General hardening and use of some better functions for escaping.
151
+ - Added a private REST API option for users who are utilizing the private site feature. Users will likely want to enable this. Otherwise, their "private site" is exposed via the REST API endpoints.
152
 
153
  ## [1.1.3] - 2017-02-06
154
 
155
  ### Fixed
156
 
157
+ - Removes the `customize_changeset` and `custom_css` post type cap groups so that they don't appear in the capability tabs on the edit role screen.
158
 
159
  ### Security
160
 
161
+ - Added a check that the role is editable before attempting to add a new role to a user.
162
 
163
  ## [1.1.2] - 2016-06-20
164
 
165
  ### Fixed
166
 
167
+ - Bug where custom capabilities would not appear after updating role.
168
+ - Make BuddyPress activation page public in private site mode.
169
 
170
  ## [1.1.1] - 2016-01-09
171
 
172
  ### Changed
173
 
174
+ - Allows a hyphen in role names. Alphanumeric characters, underscores, and hyphens now allowed.
175
 
176
  ### Fixed
177
 
178
+ - Don't escaped allowed HTML in the login widget textarea.
179
+ - When filter `user_has_cap`, check that the role is not null.
180
+ - Remove broken property check when unregistering a cap group.
181
+ - Typo corrections in the Content Permissions meta box.
182
+ - Changed an incorrect textdomain instance.
183
 
184
  ## [1.1.0] - 2015-10-12
185
 
186
  ### Added
187
 
188
+ - `Text Domain` plugin header added.
189
+ - `Domain Path` plugin header added.
190
+ - `members_role_updated` action hook for when a role is edited/updated.
191
+ - `members_role_added` action hook for when a new role is created.
192
+ - `members_manage_roles_column_{$column_name}` filter hook for handling the output of custom manage roles screen columns.
193
+ - `members_cp_meta_box_before` action hook for hooking in before the Content Permissions meta box.
194
+ - `members_cp_meta_box_after` action hook for hooking in after the Content Permissions meta box.
195
+ - Added the `Members_Role_Factory::remove_role()` method to remove a stored role.
196
 
197
  ### Changed
198
 
199
+ - Edit/New role forms just check the nonce instead of checking for form fields + nonce to see if the form was submitted (fields can be legitimately empty).
200
 
201
  ### Fixed
202
 
203
+ - Correct "undefined index" notices with widgets.
204
+ - Make sure custom caps (post types, taxonomies, etc.) that aren't stored get saved when editing a role.
205
+ - Make sure the "All" capability group actually lists all caps from all groups.
206
+ - Use the `$user` variable instead of `$author` variable in `members_list_users()`.
207
+ - "Custom" cap group should always be added last.
208
+ - Make sure roles edited with no caps get processed. Previously, we bailed if no caps were set.
209
+ - Remove deleted roles from the manage roles screen list without having to refresh the page.
210
 
211
  ### Security
212
 
213
+ - Use `wp_strip_all_tags()` over `strip_tags()` for sanitizing the role name.
214
+ - Use `esc_url_raw()` to escape the redirect URL after creating a new role.
215
 
216
  ## [1.0.2] - 2015-09-15
217
 
218
  ### Fixed
219
 
220
+ - Make sure `$attr` is set by `shortcode_atts()` in the `[members_access]` shortcode.
221
+ - Use `members_current_user_has_role()` in the `[members_access]` shortcode.
222
+ - Use `! empty()` to validate the checkboxes when settings are saved.
223
 
224
  ## [1.0.1] - 2015-09-14
225
 
226
  ### Fixed
227
 
228
+ - Only load `edit-role.js` on the role management screens.
229
 
230
  ## [1.0.0] - 2015-09-13
231
 
232
  ### Added
233
 
234
+ - Ability to clone existing roles.
235
+ - Add multiple roles per user.
236
+ - Ability to explicitly deny capabilities to roles.
237
+ - Capability groups to find related caps when editing a role.
238
+ - Role groups to group related roles together.
239
+ - Content Permissions handles HTML, shortcodes, and auto-embeds.
240
+ - Disabled capabilities (via `wp-config.php` settings) no longer show cap lists.
241
+ - Additional role and capability functions to extend WP's existing APIs.
242
+ - Role translation filters so that plugin authors can make role names translatable.
243
+ - Uneditable roles are now shown in the UI. They can be viewed but not edited.
244
+ - `Members_Role` object and API to extend WP's existing Roles API.
245
+ - Plugin authors can now add meta boxes to the edit role screen.
246
+ - Underscore JS based capabilities editing box for roles.
247
 
248
  ### Changed
249
 
250
+ - Complete UI overhaul for all user-facing components in the plugin.
251
+ - Overhaul of all text strings in the plugin.
252
+ - Shortcodes are now prefixed with `members_`. Old shortcodes will continue to work.
253
+ - Overhauled the widgets code with new text strings and general code cleanup.
254
+ - Using the newer WP help tab functionality with custom tabs.
255
 
256
  ### Deprecated
257
 
258
+ - `members_get_active_roles()`. Replaced by `members_get_active_role_names()`.
259
+ - `members_get_inactive_roles()`. Replaced by `members_get_inactive_role_names()`.
260
+ - `members_count_roles()`. Replaced by `members_get_role_count()`.
261
+ - `members_get_default_capabilities()`. Replaced by `members_get_wp_capabilities()`.
262
+ - `members_get_additional_capabilities()`. Replaced by `members_get_plugin_capabilities()`.
263
 
264
  ### Removed
265
 
266
+ - Upgrade routine.
267
+ - All old translation files since the text strings were overhauled.
268
+ - Plugin constants in favor of `Members_Plugin` properties.
269
+ - `$members` global in favor of `Members_Plugin` properties.
270
 
271
  ### Fixed
272
 
273
+ - Content Permissions meta box now accepts HTML on the edit post screen.
274
+ - User levels are now hidden from the role capability count.
275
+ - Uses the proper path for translation files in case plugin folder name changes.
276
+ - An "Are you sure?" (AYS) popup prevents users from inadvertently deleting roles.
277
+ - Added missing `export` and `delete_themes` caps to the core caps backup function.
278
+ - Removed CSS code that was hiding the "collapse menu" button for the admin menu.
279
 
280
  ### Security
281
 
282
+ - Added the `members_sanitize_role()` function.
283
+ - Added the `members_sanitize_cap()` function.
284
+ - Security hardening by making sure all URLs are escaped.
285
+ - Security hardening by making sure all dynamic data is escaped.
286
+ - Security hardening by escaping translated text.
287
 
288
  ## [0.2.5] - 2015-07-09
289
 
290
  ### Fixed
291
 
292
+ - Deprecated old widget constructor method in favor of using `__construct()` in preparation for WP 4.3.
293
+ - Removed old `/components` folder and files that's not used.
294
 
295
  ## [0.2.4]
296
 
297
+ - Fixed content permissions not saving for attachments. Note that this only protects **content** and not media files.
298
+ - No longer runs the upgrade script when `WP_INSTALLING` is `TRUE`.
299
 
300
  ## [0.2.3]
301
 
302
+ - Fixes the strict standards notice "Redefining already defined constructor for class Members_Load".
303
+ - No longer uses `&` for passing the role name by reference on plugin activation.
304
+ - Fixes the `[feed]` shortcode, which was using the wrong callback function.
305
 
306
  ## [0.2.2]
307
 
308
+ - No longer displays non-editable roles on the edit roles screen.
309
 
310
  ## [0.2.1]
311
 
312
+ - Fixes the " Creating default object from empty value" error.
313
 
314
  ## [0.2.0]
315
 
316
+ - Updated everything. Nearly all the code was rewritten from the ground up to make for a better user experience.
317
+ - Plugin users should check their plugin settings.
318
 
319
  ## [0.1.1]
320
 
321
+ - Fixed a bug with the Content Permissions component that restricted access to everyone.
322
+ - Added missing internationalization function call: `load_plugin_textdomain()`.
323
+ - Added new `/languages` folder for holding translations.
324
+ - Added `members-en_EN.po`, `members-en_EN.mo`, and `members.pot` to the `/languages` folder.
325
+ - Updated some non-internationalized strings.
326
 
327
  ## [0.1.0]
328
 
329
+ - Plugin launch. Everything's new!
members.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Members
4
  * Plugin URI: https://memberpress.com/plugins/members
5
  * Description: A user and role management plugin that puts you in full control of your site's permissions. This plugin allows you to edit your roles and their capabilities, clone existing roles, assign multiple roles per user, block post content, or even make your site completely private.
6
- * Version: 3.0.4
7
  * Author: MemberPress
8
  * Author URI: https://memberpress.com
9
  * Text Domain: members
3
  * Plugin Name: Members
4
  * Plugin URI: https://memberpress.com/plugins/members
5
  * Description: A user and role management plugin that puts you in full control of your site's permissions. This plugin allows you to edit your roles and their capabilities, clone existing roles, assign multiple roles per user, block post content, or even make your site completely private.
6
+ * Version: 3.0.5
7
  * Author: MemberPress
8
  * Author URI: https://memberpress.com
9
  * Text Domain: members
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: members, users, roles, capabilities, editor, security, access, permission
6
  Requires at least: 4.7
7
  Tested up to: 5.4
8
  Requires PHP: 5.6
9
- Stable tag: 3.0.4
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
6
  Requires at least: 4.7
7
  Tested up to: 5.4
8
  Requires PHP: 5.6
9
+ Stable tag: 3.0.5
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12