Multisite ACL functionality breaks after upgrade from 5.20.0 to 5.23.3
We upgraded from 5.20.0 to 5.23.3 and found that users relying on the multisite extension cannot query any records and receive the error below:
Network Error Unable to reach the server. Please refresh this page in your browser and try again.
PHP Fatal error: Uncaught Error: Call to protected method CRM_ACL_BAO_ACL::matchType() from context '' in ...wp-content/uploads/civicrm/ext/org.civicrm.multisite/multisite.php:533\nStack trace:\n#0 ...wp-content/uploads/civicrm/ext/org.civicrm.multisite/multisite.php(277): _multisite_add_permissions(1)\n#1 ...wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook.php(302): multisite_civicrm_aclWhereClause(1, Array, Array, 114985, NULL)\n#2 ...wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook/WordPress.php(139): CRM_Utils_Hook->runHooks(Array, 'civicrm_aclWher...', 5, 1, Array, Array, 114985, NULL, NULL)\n#3 ...wp-content/plugins/civicrm/civicrm/Civi/Core/CiviEventDispatcher.php(102): CRM_Utils_Hook_WordPress->invokeViaUF(5, 1, Array, Array, 114985, NULL, NULL, 'civicrm_aclWher...')\n#4 ...wp-content/plugins/civicrm/civicrm/vendor/symfony/event-dispatcher/EventDispatcher.php(184): Civi\\Core\\CiviEventDispatcher::delegateToUF(Object(Civi\\Core\\Event\\GenericHookEvent), ' in .../wp-content/uploads/civicrm/ext/org.civicrm.multisite/multisite.php on line 533, referer: https://example.org/wp-admin/admin.php?page=CiviCRM
After investigation, we found that the function matchType() on line 637 in wp-content/plugins/civicrm/civicrm/CRM/ACL/BAO/ACL.php was changed from public to protected. Changing it back to public fixed the problem (similar to this issue).
We are looking for a long-term fix in future releases.