civicrm-core.git
3 years agofix comment
demeritcowboy [Mon, 14 Jun 2021 14:50:25 +0000 (10:50 -0400)]
fix comment

3 years agoMerge pull request #20597 from seamuslee001/php8_test_fixes
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

3 years agoMerge pull request #20523 from eileenmcnaughton/pcp2
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

3 years agoMerge pull request #20596 from seamuslee001/fix_authorizenet_test
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

3 years ago[php8-compact] Further test fixes for php8
Seamus Lee [Mon, 14 Jun 2021 07:39:02 +0000 (07:39 +0000)]
[php8-compact] Further test fixes for php8

3 years agoMerge pull request #20595 from seamuslee001/fix_invoke_test
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

3 years agoMerge pull request #20593 from seamuslee001/session_test_fix
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

3 years ago[php8-compact] Fix failing AuthorizeNetIPN tests on php8
Seamus Lee [Mon, 14 Jun 2021 05:34:05 +0000 (05:34 +0000)]
[php8-compact] Fix failing AuthorizeNetIPN tests on php8

3 years ago[php8-compact] Fix failing CRM_Core_InvokeTest on php8
Seamus Lee [Mon, 14 Jun 2021 05:30:45 +0000 (05:30 +0000)]
[php8-compact] Fix failing CRM_Core_InvokeTest on php8

3 years ago[php8-compact] Fix Session Test errors in php8
Seamus Lee [Mon, 14 Jun 2021 04:53:28 +0000 (04:53 +0000)]
[php8-compact] Fix Session Test errors in php8

3 years agoMerge pull request #20577 from eileenmcnaughton/smart
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

3 years agoMerge pull request #20592 from seamuslee001/fix_case_message_template
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…

3 years agoFix a few more undefined template vars
Eileen McNaughton [Fri, 11 Jun 2021 03:49:42 +0000 (15:49 +1200)]
Fix a few more undefined template vars

3 years agoMerge pull request #20574 from eileenmcnaughton/return2
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'

3 years agoMerge pull request #20591 from seamuslee001/fix_pdf_letter_test
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…

3 years ago[php8-compact] Fix Case Activity Message Template to fix test failure in php8
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

3 years agoMerge pull request #20589 from colemanw/pledgeApi
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

3 years ago[php8-compact] Fix PDF Letter Test by ensuring that all actual DB fields are in...
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

3 years agoReduce test api calls with no 'return'
Eileen McNaughton [Fri, 11 Jun 2021 01:48:12 +0000 (13:48 +1200)]
Reduce test api calls with no 'return'

3 years agoSearchKit - Show Pledge as a primary entity
Coleman Watts [Sun, 13 Jun 2021 20:32:41 +0000 (16:32 -0400)]
SearchKit - Show Pledge as a primary entity

3 years agoMerge pull request #20584 from totten/master-translation-api
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.

3 years agoMerge pull request #20585 from civicrm/5.39
colemanw [Sun, 13 Jun 2021 04:48:15 +0000 (00:48 -0400)]
Merge pull request #20585 from civicrm/5.39

5.39

3 years agodev/translation#67 - Add APIv4 support for "Translation" entity. Expand tests.
Tim Otten [Wed, 28 Apr 2021 06:03:46 +0000 (23:03 -0700)]
dev/translation#67 - Add APIv4 support for "Translation" entity. Expand tests.

3 years agoMerge pull request #20580 from demeritcowboy/upgrade-table
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

3 years agoDynamicFKAccessTrait - Emit explicit error-message for invalid table references
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

3 years agoMerge pull request #20579 from seamuslee001/fix_CRM_Contact_Form_IndividualTest
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…

3 years agoMerge pull request #20581 from seamuslee001/fix_contribution_form_tests
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…

3 years agobe re-runnable and don't force utf8mb4
demeritcowboy [Fri, 11 Jun 2021 15:18:45 +0000 (11:18 -0400)]
be re-runnable and don't force utf8mb4

3 years ago[php8-compact] Fixes test failures in the CRM_Contribute_Form_ContributionTest class...
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

3 years ago[php8-compact] Add in guards into various templates to fix the CRM_Contact_Form_Indiv...
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

3 years agoMerge pull request #20575 from seamuslee001/dashboard_test_fix
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…

3 years agoMerge pull request #20544 from seamuslee001/even_more_guards
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 …

3 years ago[php8-compact] Add in guards into various templates to fix issues in test runs on...
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

3 years agoMerge pull request #20546 from seamuslee001/even_more_guards2
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 …

3 years agoMerge pull request #20547 from seamuslee001/admin_guards
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 …

3 years ago[php8-compact] Fix Dashboard Tests by adding in if guards into smarty templates
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

3 years agoMerge pull request #20576 from civicrm/5.39
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

3 years agoMerge pull request #20571 from demeritcowboy/regen-539
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)

3 years agoMerge pull request #20543 from seamuslee001/guards_common
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…

3 years ago[php8-compact] Add in more protection for unset variables in various smarty templates
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

3 years ago[php8-compact] Add in protection for unset variables in admin 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

3 years agoupdate civicrm_generated
demeritcowboy [Fri, 11 Jun 2021 00:50:12 +0000 (20:50 -0400)]
update civicrm_generated

3 years agoMerge pull request #20568 from civicrm/5.39
Seamus Lee [Fri, 11 Jun 2021 00:06:21 +0000 (10:06 +1000)]
Merge pull request #20568 from civicrm/5.39

5.39

3 years agoMerge pull request #20567 from seamuslee001/fix_unittest_warning
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 …

3 years ago[NFC] Fix phpunit9 deprecation issues on using assertType instead of more explicit...
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

3 years agoMerge pull request #20566 from eileenmcnaughton/role
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

3 years agoMerge pull request #20565 from eileenmcnaughton/val_err
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

3 years agoAdd pseudoconstant to acl_entity_role
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)

3 years agoSet version to 5.40.alpha1
CiviCRM [Thu, 10 Jun 2021 05:59:26 +0000 (05:59 +0000)]
Set version to 5.40.alpha1

3 years agoMerge pull request #20432 from JMAConsulting/core_365_2
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

3 years agoMerge pull request #19973 from JMAConsulting/core_365_1
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

3 years agoext/*/info.xml - Update version
CiviCRM [Thu, 10 Jun 2021 05:46:43 +0000 (05:46 +0000)]
ext/*/info.xml - Update version

3 years agoSet version to 5.39.beta1
CiviCRM [Thu, 10 Jun 2021 04:53:32 +0000 (04:53 +0000)]
Set version to 5.39.beta1

3 years agoThrow exception rather than allow php fail
Eileen McNaughton [Thu, 10 Jun 2021 02:34:36 +0000 (14:34 +1200)]
Throw exception rather than allow php fail

3 years agoMerge pull request #20532 from eileenmcnaughton/f_add
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

3 years agoMerge pull request #20552 from eileenmcnaughton/fin
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

3 years agoMerge pull request #20533 from totten/master-api4-omnivent
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

3 years agoMerge pull request #20564 from eileenmcnaughton/report
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

3 years agoMerge pull request #20493 from jaapjansma/dev_membership_37
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

3 years agoMerge pull request #20563 from colemanw/array_key
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

3 years agodev/core#2646 juice up the error a little
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

3 years agoExpand CustomValue::_checkAccess()
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.

3 years agoMerge pull request #20562 from colemanw/shortArrayContactTask
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

3 years agoMerge pull request #20059 from samuelsov/dev/core#2479
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

3 years agoREF - Cleanup array key checking to use array_key_exists
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)

3 years agoCRM_Contact_Task - Use short array syntax
Coleman Watts [Wed, 9 Jun 2021 12:45:26 +0000 (08:45 -0400)]
CRM_Contact_Task - Use short array syntax

3 years agoPartially rollback changes to `$userID`. Merely lay groundwork for future update.
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.

3 years agoMerge pull request #20560 from colemanw/searchable
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.

3 years agoMerge pull request #20545 from seamuslee001/hook_test_fix_part1
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

3 years agoMerge pull request #20548 from eileenmcnaughton/group
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

3 years agoAPIv4 - Make the @searchable flag explicit for OptionList type entities.
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.

3 years agoMerge pull request #20557 from demeritcowboy/test-turkish
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

3 years ago[php8-compat] Partial Fix of hook tests for php8
Seamus Lee [Tue, 8 Jun 2021 00:54:20 +0000 (00:54 +0000)]
[php8-compat] Partial Fix of hook tests for php8

3 years agoMerge pull request #20542 from seamuslee001/hook_test_fixes_2
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…

3 years agoMark DetailTest as having invalid financials
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

3 years agoMerge pull request #20549 from seamuslee001/php8_report
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

3 years agoMerge pull request #20540 from seamuslee001/tcpdf_upgrade
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

3 years agoMerge pull request #20558 from colemanw/searchKitRelationships
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

3 years agoMerge pull request #20559 from colemanw/wordReplacement
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

3 years agounit test for db insert in TR locale
demeritcowboy [Tue, 8 Jun 2021 16:00:53 +0000 (12:00 -0400)]
unit test for db insert in TR locale

3 years agodev/core#2486 - Add WordReplacement APIv4 entity
Coleman Watts [Tue, 8 Jun 2021 19:08:15 +0000 (15:08 -0400)]
dev/core#2486 - Add WordReplacement APIv4 entity

3 years agoMerge pull request #20555 from ahed-compucorp/dev/core#1744-afform
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

3 years agoSearchKit - Enable search for relationships as base entity
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)

3 years agoSearchKit - Fix error when trying to update operator in ON clause
Coleman Watts [Tue, 8 Jun 2021 16:22:51 +0000 (12:22 -0400)]
SearchKit - Fix error when trying to update operator in ON clause

3 years agodev/core#1744 - Simplify afform event naming
Ahed [Tue, 8 Jun 2021 12:48:57 +0000 (15:48 +0300)]
dev/core#1744 - Simplify afform event naming

3 years agoMerge pull request #20530 from eileenmcnaughton/val
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

3 years agoFix the populateTempTable to be more direct
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

3 years ago[php8-compact] Fix Report tests failing on php8
Seamus Lee [Tue, 8 Jun 2021 04:34:47 +0000 (04:34 +0000)]
[php8-compact] Fix Report tests failing on php8

3 years agoConvert hook_civicrm_checkAccess to civi.api4.authorizeRecord
Tim Otten [Fri, 4 Jun 2021 18:57:55 +0000 (11:57 -0700)]
Convert hook_civicrm_checkAccess to civi.api4.authorizeRecord

3 years ago(REF) Consolidate calls to `Hook::checkAccess()`. Define initial value `$granted...
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.

3 years ago(REF) Change CoreUtil::checkAccess() to CoreUtil::checkAccessRecord()
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.

3 years ago(REF) Consistently pass `string $entity` to all flavors of checkAccess
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

3 years ago(REF) Isolate calls to $bao::checkAccess. Prefer CoreUtil::checkAccessDelegate.
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()`

3 years agoCoreUtil::checkAccess() - Accept optional argument $userID
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`).

3 years agoMerge pull request #20541 from eileenmcnaughton/alpha_trigg
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

3 years ago[php8-compact] Add in guards into common templates to assit with fixing test failures...
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

3 years ago[php8-compact] Add in guards into various templates to fix hook tests in 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

3 years agoSort trigger data before processing
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

3 years agoMerge pull request #20539 from seamuslee001/group_custom_search_fix
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…

3 years agoMerge pull request #20537 from colemanw/searchKitLinkFix
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