diff --git a/ghost/admin/app/controllers/members.js b/ghost/admin/app/controllers/members.js index 0149df9f62..45598c6d5c 100644 --- a/ghost/admin/app/controllers/members.js +++ b/ghost/admin/app/controllers/members.js @@ -222,10 +222,10 @@ export default class MembersController extends Controller { if (filterParam) { // If the provided filter param is a single filter related to newsletter subscription status // remove the surrounding brackets to prevent https://github.com/TryGhost/NQL/issues/16 - const NEWSLETTER_SUBSCRIPTION_STATUS_RE = /^\(subscribed:(?:true|false)[+,]email_disabled:[01]\)$/; - const SPECIFIC_NEWSLETTER_SUBSCRIPTION_STATUS_RE = /^\(newsletters\.slug:[^()]+[+,]email_disabled:[01]\)$/; + const BRACKETS_SURROUNDED_RE = /^\(.*\)$/; + const MULTIPLE_GROUPS_RE = /\).*\(/; - if (NEWSLETTER_SUBSCRIPTION_STATUS_RE.test(filterParam) || SPECIFIC_NEWSLETTER_SUBSCRIPTION_STATUS_RE.test(filterParam)) { + if (BRACKETS_SURROUNDED_RE.test(filterParam) && !MULTIPLE_GROUPS_RE.test(filterParam)) { filterParam = filterParam.slice(1, -1); } }