demeritcowboy [Mon, 14 Jun 2021 14:47:47 +0000 (10:47 -0400)]
Merge pull request #20597 from seamuslee001/php8_test_fixes
[php8-compact] Further test fixes for php8
Monish Deb [Mon, 14 Jun 2021 12:22:27 +0000 (17:52 +0530)]
Merge pull request #20523 from eileenmcnaughton/pcp2
Send pcp notification only when the contribution is completed
Eileen McNaughton [Mon, 14 Jun 2021 08:29:07 +0000 (20:29 +1200)]
Merge pull request #20596 from seamuslee001/fix_authorizenet_test
[php8-compact] Fix failing AuthorizeNetIPN tests on php8
Seamus Lee [Mon, 14 Jun 2021 07:39:02 +0000 (07:39 +0000)]
[php8-compact] Further test fixes for php8
Eileen McNaughton [Mon, 14 Jun 2021 07:25:23 +0000 (19:25 +1200)]
Merge pull request #20595 from seamuslee001/fix_invoke_test
[php8-compact] Fix failing CRM_Core_InvokeTest on php8
Eileen McNaughton [Mon, 14 Jun 2021 07:03:26 +0000 (19:03 +1200)]
Merge pull request #20593 from seamuslee001/session_test_fix
[php8-compact] Fix Session Test errors in php8
Seamus Lee [Mon, 14 Jun 2021 05:34:05 +0000 (05:34 +0000)]
[php8-compact] Fix failing AuthorizeNetIPN tests on php8
Seamus Lee [Mon, 14 Jun 2021 05:30:45 +0000 (05:30 +0000)]
[php8-compact] Fix failing CRM_Core_InvokeTest on php8
Seamus Lee [Mon, 14 Jun 2021 04:53:28 +0000 (04:53 +0000)]
[php8-compact] Fix Session Test errors in php8
Seamus Lee [Mon, 14 Jun 2021 04:48:15 +0000 (14:48 +1000)]
Merge pull request #20577 from eileenmcnaughton/smart
Fix a few more undefined template vars
Seamus Lee [Mon, 14 Jun 2021 02:06:24 +0000 (12:06 +1000)]
Merge pull request #20592 from seamuslee001/fix_case_message_template
[php8-compact] Fix Case Activity Message Template to fix test failure…
Eileen McNaughton [Fri, 11 Jun 2021 03:49:42 +0000 (15:49 +1200)]
Fix a few more undefined template vars
Eileen McNaughton [Mon, 14 Jun 2021 00:39:47 +0000 (12:39 +1200)]
Merge pull request #20574 from eileenmcnaughton/return2
Reduce test api calls with no 'return'
Eileen McNaughton [Mon, 14 Jun 2021 00:39:24 +0000 (12:39 +1200)]
Merge pull request #20591 from seamuslee001/fix_pdf_letter_test
[php8-compact] Fix PDF Letter Test by ensuring that all actual DB fi…
Seamus Lee [Sun, 13 Jun 2021 23:58:19 +0000 (23:58 +0000)]
[php8-compact] Fix Case Activity Message Template to fix test failure in php8
Eileen McNaughton [Mon, 14 Jun 2021 00:00:19 +0000 (12:00 +1200)]
Merge pull request #20589 from colemanw/pledgeApi
SearchKit - Show Pledge as a primary entity
Seamus Lee [Sun, 13 Jun 2021 22:59:20 +0000 (22:59 +0000)]
[php8-compact] Fix PDF Letter Test by ensuring that all actual DB fields are in the tokens array and also by resetting the static cache of tokens
Remove uncessary function call
Eileen McNaughton [Fri, 11 Jun 2021 01:48:12 +0000 (13:48 +1200)]
Reduce test api calls with no 'return'
Coleman Watts [Sun, 13 Jun 2021 20:32:41 +0000 (16:32 -0400)]
SearchKit - Show Pledge as a primary entity
colemanw [Sun, 13 Jun 2021 16:23:26 +0000 (12:23 -0400)]
Merge pull request #20584 from totten/master-translation-api
dev/translation#67 - Add APIv4 support for "Translation" entity.
colemanw [Sun, 13 Jun 2021 04:48:15 +0000 (00:48 -0400)]
Merge pull request #20585 from civicrm/5.39
5.39
Tim Otten [Wed, 28 Apr 2021 06:03:46 +0000 (23:03 -0700)]
dev/translation#67 - Add APIv4 support for "Translation" entity. Expand tests.
Seamus Lee [Sat, 12 Jun 2021 00:11:27 +0000 (10:11 +1000)]
Merge pull request #20580 from demeritcowboy/upgrade-table
dev/core#2649 - Make 5.39 upgrade more robust
Tim Otten [Fri, 11 Jun 2021 23:44:06 +0000 (16:44 -0700)]
DynamicFKAccessTrait - Emit explicit error-message for invalid table references
Use-Case: You create a dynamic FK with a reference to an invalid table.
Before: Returns an API error/exception about type-matching (string vs null)
After: Returns an API error/exception about the invalid reference
Seamus Lee [Fri, 11 Jun 2021 23:01:01 +0000 (09:01 +1000)]
Merge pull request #20579 from seamuslee001/fix_CRM_Contact_Form_IndividualTest
[php8-compact] Add in guards into various templates to fix the CRM_Co…
Seamus Lee [Fri, 11 Jun 2021 23:00:48 +0000 (09:00 +1000)]
Merge pull request #20581 from seamuslee001/fix_contribution_form_tests
[php8-compact] Fixes test failures in the CRM_Contribute_Form_Contrib…
demeritcowboy [Fri, 11 Jun 2021 15:18:45 +0000 (11:18 -0400)]
be re-runnable and don't force utf8mb4
Seamus Lee [Fri, 11 Jun 2021 21:22:26 +0000 (21:22 +0000)]
[php8-compact] Fixes test failures in the CRM_Contribute_Form_ContributionTest class due to template issues
Seamus Lee [Fri, 11 Jun 2021 11:54:21 +0000 (11:54 +0000)]
[php8-compact] Add in guards into various templates to fix the CRM_Contact_Form_IndividualTest suite
Seamus Lee [Fri, 11 Jun 2021 05:58:27 +0000 (15:58 +1000)]
Merge pull request #20575 from seamuslee001/dashboard_test_fix
[php8-compact] Fix Dashboard Tests by adding in if guards into smarty…
Seamus Lee [Fri, 11 Jun 2021 05:58:20 +0000 (15:58 +1000)]
Merge pull request #20544 from seamuslee001/even_more_guards
[php8-compact] Add in guards into various templates to fix issues in …
Seamus Lee [Tue, 8 Jun 2021 01:02:08 +0000 (01:02 +0000)]
[php8-compact] Add in guards into various templates to fix issues in test runs on php8
Eileen McNaughton [Fri, 11 Jun 2021 03:36:28 +0000 (15:36 +1200)]
Merge pull request #20546 from seamuslee001/even_more_guards2
[php8-compact] Add in more protection for unset variables in various …
Seamus Lee [Fri, 11 Jun 2021 02:54:06 +0000 (12:54 +1000)]
Merge pull request #20547 from seamuslee001/admin_guards
[php8-compact] Add in protection for unset variables in admin smarty …
Seamus Lee [Mon, 7 Jun 2021 22:21:45 +0000 (22:21 +0000)]
[php8-compact] Fix Dashboard Tests by adding in if guards into smarty templates
Eileen McNaughton [Fri, 11 Jun 2021 02:36:49 +0000 (14:36 +1200)]
Merge pull request #20576 from civicrm/5.39
5.39 to master
Eileen McNaughton [Fri, 11 Jun 2021 02:36:23 +0000 (14:36 +1200)]
Merge pull request #20571 from demeritcowboy/regen-539
Update civicrm_generated (5.39 version)
colemanw [Fri, 11 Jun 2021 02:31:19 +0000 (22:31 -0400)]
Merge pull request #20543 from seamuslee001/guards_common
[php8-compact] Add in guards into common templates to assit with fixi…
Seamus Lee [Tue, 8 Jun 2021 01:08:01 +0000 (01:08 +0000)]
[php8-compact] Add in more protection for unset variables in various smarty templates
Seamus Lee [Tue, 8 Jun 2021 01:08:07 +0000 (01:08 +0000)]
[php8-compact] Add in protection for unset variables in admin smarty templates
demeritcowboy [Fri, 11 Jun 2021 00:50:12 +0000 (20:50 -0400)]
update civicrm_generated
Seamus Lee [Fri, 11 Jun 2021 00:06:21 +0000 (10:06 +1000)]
Merge pull request #20568 from civicrm/5.39
5.39
Seamus Lee [Thu, 10 Jun 2021 22:34:31 +0000 (08:34 +1000)]
Merge pull request #20567 from seamuslee001/fix_unittest_warning
[NFC] Fix phpunit9 deprecation issues on using assertType instead of …
Seamus Lee [Thu, 10 Jun 2021 21:05:45 +0000 (07:05 +1000)]
[NFC] Fix phpunit9 deprecation issues on using assertType instead of more explicit assertIsArray or AssertIsInt
colemanw [Thu, 10 Jun 2021 11:49:16 +0000 (07:49 -0400)]
Merge pull request #20566 from eileenmcnaughton/role
Add pseudoconstant to acl_entity_role
Monish Deb [Thu, 10 Jun 2021 06:58:59 +0000 (12:28 +0530)]
Merge pull request #20565 from eileenmcnaughton/val_err
Throw exception rather than allow php fail
Eileen McNaughton [Thu, 10 Jun 2021 06:11:27 +0000 (18:11 +1200)]
Add pseudoconstant to acl_entity_role
Not sure this will help with dev/core#2615 but spotted it while trying to see if I can replicate
(still doing that)
CiviCRM [Thu, 10 Jun 2021 05:59:26 +0000 (05:59 +0000)]
Set version to 5.40.alpha1
Eileen McNaughton [Thu, 10 Jun 2021 05:55:51 +0000 (17:55 +1200)]
Merge pull request #20432 from JMAConsulting/core_365_2
(dev/core#365) Scheduled Reminders - Add effective start and end date to admin UI
Eileen McNaughton [Thu, 10 Jun 2021 05:54:00 +0000 (17:54 +1200)]
Merge pull request #19973 from JMAConsulting/core_365_1
(dev/core#365) Scheduled Reminders - Add effective end and start date, extend unit test
CiviCRM [Thu, 10 Jun 2021 05:46:43 +0000 (05:46 +0000)]
ext/*/info.xml - Update version
CiviCRM [Thu, 10 Jun 2021 04:53:32 +0000 (04:53 +0000)]
Set version to 5.39.beta1
Eileen McNaughton [Thu, 10 Jun 2021 02:34:36 +0000 (14:34 +1200)]
Throw exception rather than allow php fail
Seamus Lee [Thu, 10 Jun 2021 00:00:47 +0000 (10:00 +1000)]
Merge pull request #20532 from eileenmcnaughton/f_add
Fix Financial item test to validate Financials
Seamus Lee [Wed, 9 Jun 2021 23:59:51 +0000 (09:59 +1000)]
Merge pull request #20552 from eileenmcnaughton/fin
Mark DetailTest as having invalid financials
Eileen McNaughton [Wed, 9 Jun 2021 23:46:06 +0000 (11:46 +1200)]
Merge pull request #20533 from totten/master-api4-omnivent
Introduce civi.api4.authorizeRecord and civi.api4.validate
Eileen McNaughton [Wed, 9 Jun 2021 21:14:41 +0000 (09:14 +1200)]
Merge pull request #20564 from eileenmcnaughton/report
dev/core#2646 juice up the error a little
Eileen McNaughton [Wed, 9 Jun 2021 19:39:04 +0000 (07:39 +1200)]
Merge pull request #20493 from jaapjansma/dev_membership_37
Fix for dev/membership#37
demeritcowboy [Wed, 9 Jun 2021 19:34:42 +0000 (15:34 -0400)]
Merge pull request #20563 from colemanw/array_key
REF - Cleanup array key checking to use array_key_exists
Eileen McNaughton [Wed, 9 Jun 2021 19:34:06 +0000 (07:34 +1200)]
dev/core#2646 juice up the error a little
On explaining the issue in https://lab.civicrm.org/dev/core/-/issues/2646 not
having the name of the failed entity in the error message seemed like a pain point
Tim Otten [Wed, 9 Jun 2021 10:24:21 +0000 (03:24 -0700)]
Expand CustomValue::_checkAccess()
Before: Reports that access is available based one delegated-check for `Contact.update`
After: Reports that access is available based on multiple checks:
1. The user must have access to the relevant CustomGroup (by way of ACL or perms)
2. The user must have acces to the underlying entity (by way of checkAccessDelgated)
Comments: I did a bit of testing with `Custom_*.get`, and it does seem to
give access to single-value CustomGroups. So I removed a comment about
multi-value CustomGroups and expanded to a larger list of entities.
demeritcowboy [Wed, 9 Jun 2021 14:22:52 +0000 (10:22 -0400)]
Merge pull request #20562 from colemanw/shortArrayContactTask
[REF] CRM_Contact_Task - Use short array syntax
colemanw [Wed, 9 Jun 2021 13:56:21 +0000 (09:56 -0400)]
Merge pull request #20059 from samuelsov/dev/core#2479
dev/core#2479 Adjust generic copy for localizable fields
Coleman Watts [Wed, 9 Jun 2021 13:41:52 +0000 (09:41 -0400)]
REF - Cleanup array key checking to use array_key_exists
Before: in_array($foo, array_keys($bar))
After: array_key_exists($foo, $bar)
Coleman Watts [Wed, 9 Jun 2021 12:45:26 +0000 (08:45 -0400)]
CRM_Contact_Task - Use short array syntax
Tim Otten [Wed, 9 Jun 2021 02:46:17 +0000 (19:46 -0700)]
Partially rollback changes to `$userID`. Merely lay groundwork for future update.
Context: AuthorizeEvent did not allow tracking userID. AuthorizeRecordEvent
is spec'd to track userID. This is a step toward supporting checks when the
target user is non-present (ie not the user in the browser/session).
However, this step is not *sufficient* - additional work is also needed to
support non-present users.
Original: AuthorizeEvent and AbstractAction::isAuthorized did not report
current userID. However, the wiring for AuthorizeRecordEvent is spec'd
to allow userID.
Previous: Made a breaking change in the signature of
AuthorizeEvent/AbstractAction::isAuthorized() to report userID. However,
even with the break, it's not clear if this is the best approach.
Revised:
* Both AuthorizeEvent and AuthorizeRecordEvent report `userID`. This allows consumers to start using
this information -- laying the groundwork for future changes.
* If an existing event-consumer ignores the `userID`, it will still work as correctly as before. This is
because we guarantee that the userID matches the session-user.
* The signature of `AbstractAction::isAuthorized()` matches its original. No BC break. However, the method
is flagged `@internal` to warn about the prospect of future changes.
* In the future, after we do more legwork on to ensure that the overall
system makes sense, we may flip this and start doing non-present users.
Eileen McNaughton [Wed, 9 Jun 2021 03:18:05 +0000 (15:18 +1200)]
Merge pull request #20560 from colemanw/searchable
APIv4 - Make the @searchable flag explicit for OptionList type entities.
demeritcowboy [Wed, 9 Jun 2021 02:18:53 +0000 (22:18 -0400)]
Merge pull request #20545 from seamuslee001/hook_test_fix_part1
[php8-compat] Partial Fix of hook tests for php8
Seamus Lee [Wed, 9 Jun 2021 01:09:10 +0000 (11:09 +1000)]
Merge pull request #20548 from eileenmcnaughton/group
Fix the populateTempTable to be more direct
Coleman Watts [Tue, 8 Jun 2021 23:18:30 +0000 (19:18 -0400)]
APIv4 - Make the @searchable flag explicit for OptionList type entities.
The OptionList trait may or may not be useful in future, maybe we'll just get rid of it if not.
But I think it's better not to couple it with the @searchable flag, as that's not exactly the same thing.
Seamus Lee [Wed, 9 Jun 2021 00:29:05 +0000 (10:29 +1000)]
Merge pull request #20557 from demeritcowboy/test-turkish
[NFC/Unit Test] Failing test for civicrm-packages PR 324
Seamus Lee [Tue, 8 Jun 2021 00:54:20 +0000 (00:54 +0000)]
[php8-compat] Partial Fix of hook tests for php8
colemanw [Wed, 9 Jun 2021 00:07:24 +0000 (20:07 -0400)]
Merge pull request #20542 from seamuslee001/hook_test_fixes_2
[php8-compact] Add in guards into various templates to fix hook tests…
Eileen McNaughton [Tue, 8 Jun 2021 07:25:04 +0000 (19:25 +1200)]
Mark DetailTest as having invalid financials
This class sets up in a weird way it will never pass financial checks
Eileen McNaughton [Tue, 8 Jun 2021 22:23:11 +0000 (10:23 +1200)]
Merge pull request #20549 from seamuslee001/php8_report
[php8-compact] Fix Report tests failing on php8
Seamus Lee [Tue, 8 Jun 2021 22:16:39 +0000 (08:16 +1000)]
Merge pull request #20540 from seamuslee001/tcpdf_upgrade
[php8-compat] Upgrade TCPDF version to support php8
Eileen McNaughton [Tue, 8 Jun 2021 22:16:17 +0000 (10:16 +1200)]
Merge pull request #20558 from colemanw/searchKitRelationships
SearchKit - allow searches based on relationships
Eileen McNaughton [Tue, 8 Jun 2021 21:44:49 +0000 (09:44 +1200)]
Merge pull request #20559 from colemanw/wordReplacement
dev/core#2486 - Add WordReplacement APIv4 entity
demeritcowboy [Tue, 8 Jun 2021 16:00:53 +0000 (12:00 -0400)]
unit test for db insert in TR locale
Coleman Watts [Tue, 8 Jun 2021 19:08:15 +0000 (15:08 -0400)]
dev/core#2486 - Add WordReplacement APIv4 entity
Eileen McNaughton [Tue, 8 Jun 2021 19:04:55 +0000 (07:04 +1200)]
Merge pull request #20555 from ahed-compucorp/dev/core#1744-afform
(REF) dev/core#1744 - Simplify Afform event naming
Coleman Watts [Tue, 8 Jun 2021 16:33:00 +0000 (12:33 -0400)]
SearchKit - Enable search for relationships as base entity
This makes it possible to use a bridge entity for the base of a search
(only if it is annotated @searchable primary|secondary)
It also ensures that fields needed for links are available in search displays
(previously it ensured ID was returned but some links require other fields as well)
Coleman Watts [Tue, 8 Jun 2021 16:22:51 +0000 (12:22 -0400)]
SearchKit - Fix error when trying to update operator in ON clause
Ahed [Tue, 8 Jun 2021 12:48:57 +0000 (15:48 +0300)]
dev/core#1744 - Simplify afform event naming
Monish Deb [Tue, 8 Jun 2021 07:34:21 +0000 (13:04 +0530)]
Merge pull request #20530 from eileenmcnaughton/val
Fix v3 api payment test to validate on postAssert
Eileen McNaughton [Tue, 8 Jun 2021 01:57:52 +0000 (13:57 +1200)]
Fix the populateTempTable to be more direct
It's currently using a round-about method to populate the table which goes through
apiv3 and the query object before winding up at the load function
which makes the same 3 calls now being called directly
Note the tests api_v3_ReportTemplateTest as well as the apiv4 tests
cover this function
Seamus Lee [Tue, 8 Jun 2021 04:34:47 +0000 (04:34 +0000)]
[php8-compact] Fix Report tests failing on php8
Tim Otten [Fri, 4 Jun 2021 18:57:55 +0000 (11:57 -0700)]
Convert hook_civicrm_checkAccess to civi.api4.authorizeRecord
Tim Otten [Mon, 7 Jun 2021 10:12:10 +0000 (03:12 -0700)]
(REF) Consolidate calls to `Hook::checkAccess()`. Define initial value `$granted=NULL`.
Regarding invocations:
* Before: There are three different ways `Hook::checkAccess()` may be invoked, e.g.
* `CRM_Core_DAO::checkAccess()`, which sprinkles in a call to `static::_checkAccess()` before `Hook::checkAccess()`
* `CRM_Core_BAO_CustomValue::checkAccess()`, which sprinkles in a call to `checkAccessDelegated()` after `Hook::checkAccess()`
* `CoreUtil::checkAccessRecord()`, which delegates to one of the above (if appropriate) or else calls `Hook::checkAccess()`
* `CoreUtil::checkAccessRecord()` is the most general entry-point
* After: There is one way to invoke `Hook::checkAccess()`, and it incorporates some qausi/unofficial listeners.
* `CoreUtil::checkAccessRecord()` is still the most general entry-point.
* `CoreUtil::checkAccessRecord()` fires `Hook::checkAccess()` unconditionally
* `CoreUtil::checkAccessRecord()` calls `CRM_Core_DAO::checkAccess()` and/or `CRM_Core_BAO_CustomValue::_checkAccess()`,
which are now quasi/unofficial listeners for the hook
Regarding initialization and passing of `$granted`:
* Before: The value of `$granted` defaults to `TRUE`. Listeners may flip between `TRUE`/`FALSE`. The value of `$granted` is passed to each listener.
* After: The value of `$granted` defaults to `NULL`. Listeners may flip to `TRUE`/`FALSE`. If it remains `NULL` until the end, then it's treated as `TRUE`.
The value of `$granted` is not passed to each listener.
* Comment: IMHO, this is an overall simplification. If you pass in `$granted`, then each listener has to decide
whether/how to mix the inputted value with its own decision. (Ex: Should it be `return $grantedInput &&
$myGrantedDecision` or `return $grantedInput || $myGrantedDecision` or `return $myGrantedDecision`? That choice appears to be
carefully informed by the context of what steps ran before.) In the updated protocol, each `_checkAccess()` a smaller scope.
Tim Otten [Mon, 7 Jun 2021 06:28:43 +0000 (23:28 -0700)]
(REF) Change CoreUtil::checkAccess() to CoreUtil::checkAccessRecord()
This change invovles a few things:
1. Pass the `AbstractAction $apiRequest` instead of the tuple `string $entity, string $action`.
2. There are a couple cases where we don't actually want to re-use the current `$apiRequest`.
Switch these using `checkAccessDelegated()`.
3. Always resolve the userID before calling `checkAccessRecord()`. `$userID===null` can mean
two different things (ie "active user" vs "anonymous user"). By
resolving this once before we do any work with `checkAccess()`, we ensure that it will
consistently mean "anonymous user" (even if there are multiple rounds of delegation).
3. Change the name from `checkAccess()` to `checkAccessRecord`. There are a few flavors of
`...checkAccess...`, and this makes it easier to differentiate when skimming.
Tim Otten [Mon, 7 Jun 2021 06:05:40 +0000 (23:05 -0700)]
(REF) Consistently pass `string $entity` to all flavors of checkAccess
1. This removes the special-case where `CustomValue::checkAccess()` needs an extra parameter
to identify the target entity.
2. This lines things up to do the swap from `_checkAccess()` to a hook/event listener
Tim Otten [Mon, 7 Jun 2021 03:13:12 +0000 (20:13 -0700)]
(REF) Isolate calls to $bao::checkAccess. Prefer CoreUtil::checkAccessDelegate.
Code paths:
* Before: There are many callers to `$bao::checkAccess()`.
* After: There is only one caller to `$bao::checkAccess()` (ie `CoreUtil`).
Delegation mechanics:
* Before: When delegating access-control to another entity, various things invoke `$bao::checkAccess()`.
* After: When delegating access-control to another entity, various things invoke `CoreUtil::checkAccessDelegated()`
Tim Otten [Fri, 4 Jun 2021 23:42:29 +0000 (16:42 -0700)]
CoreUtil::checkAccess() - Accept optional argument $userID
Technically, there is an inheritable contract-change here - modifying
`isAuthorized()` to accept the current user ID. However, I grepped
universe for references:
```
[bknix-min:~/bknix/build/universe] grep -ri isAuthorized $( find -name Civi )
```
And all references were internal to `civicrm-core.git`. This makes some
sense, given the available alternative extension-points
(`Civi\Api4\$ENTITY::permissions()` and `civi.api.authorize`).
Seamus Lee [Tue, 8 Jun 2021 02:24:36 +0000 (12:24 +1000)]
Merge pull request #20541 from eileenmcnaughton/alpha_trigg
Sort trigger data before processing
Seamus Lee [Tue, 8 Jun 2021 00:59:14 +0000 (00:59 +0000)]
[php8-compact] Add in guards into common templates to assit with fixing test failures on php8
Seamus Lee [Tue, 8 Jun 2021 00:55:50 +0000 (00:55 +0000)]
[php8-compact] Add in guards into various templates to fix hook tests in php8
Eileen McNaughton [Tue, 8 Jun 2021 00:06:57 +0000 (12:06 +1200)]
Sort trigger data before processing
At some point these stopped being consistently alpha sorted - which doesn't matter
if you are just letting Civi run the trigger updates but if you output it
and diff it this inconsistency is a problem
Subset of https://github.com/civicrm/civicrm-core/pull/20472
in the hope of getting this merged
https://github.com/civicrm/civicrm-core/pull/20471 also grooms this output for diffing
albeit only in an edge case
Eileen McNaughton [Mon, 7 Jun 2021 23:55:27 +0000 (11:55 +1200)]
Merge pull request #20539 from seamuslee001/group_custom_search_fix
[php8-compat] Fix Include/Exclude Group Custom Search Tests by better…
Eileen McNaughton [Mon, 7 Jun 2021 23:48:21 +0000 (11:48 +1200)]
Merge pull request #20537 from colemanw/searchKitLinkFix
SearchKit - Fix link target selection
Seamus Lee [Mon, 7 Jun 2021 23:08:39 +0000 (23:08 +0000)]
[php8-compat] Upgrade TCPDF version to support php8