Eileen McNaughton [Fri, 14 Jan 2022 18:34:35 +0000 (07:34 +1300)]
Rename variable
colemanw [Fri, 14 Jan 2022 14:11:47 +0000 (09:11 -0500)]
Merge pull request #22495 from eileenmcnaughton/fin2
Move permission checks from Query & BAO to financialacl extension
colemanw [Fri, 14 Jan 2022 14:06:37 +0000 (09:06 -0500)]
Merge pull request #22491 from eileenmcnaughton/legacy2
Rationalise relationship validation
Eileen McNaughton [Fri, 14 Jan 2022 04:45:47 +0000 (17:45 +1300)]
Merge pull request #22503 from totten/master-pipe-nfc
(NFC) Civi::pipe - Swap various quotes
Eileen McNaughton [Fri, 14 Jan 2022 04:45:37 +0000 (17:45 +1300)]
Merge pull request #22501 from mattwire/alterdisplayname
NFC: Clean up description for alterDisplayName hook
Tim Otten [Fri, 14 Jan 2022 03:00:11 +0000 (19:00 -0800)]
(NFC) Civi::pipe - Swap various quotes
These are just some double-quoted PHP strings that need double-quotes.
Eileen McNaughton [Fri, 14 Jan 2022 01:40:41 +0000 (14:40 +1300)]
Merge pull request #22262 from totten/master-pipe
Civi::pipe - Add support for background worker-processes with JSON pipes
Eileen McNaughton [Fri, 14 Jan 2022 01:34:07 +0000 (14:34 +1300)]
Merge pull request #22502 from eileenmcnaughton/add_test
Port test form earlier PR
Seamus Lee [Thu, 13 Jan 2022 22:38:31 +0000 (09:38 +1100)]
Merge pull request #22343 from totten/master-gencode-mailqueue
MailingEventQueue - Use consistent CamelCaseName. Prevent conflicts.
Eileen McNaughton [Thu, 13 Jan 2022 22:31:38 +0000 (11:31 +1300)]
Port test form earlier PR
The test from this PR is now passing
https://github.com/civicrm/civicrm-core/pull/20095
So, I've rescued the test & cleaned up the class - assume
an interim fix addressed the bug
Tim Otten [Thu, 13 Jan 2022 21:36:20 +0000 (13:36 -0800)]
Civi::pipe - Comply with newer `authx_login()` contract. Declare flow names.
1. The original Civi::pipe() patch was built on a draft version of `authx_login()`. The
signature changed during review.
2. The original Civi::pipe() patch hacked the `flow` name - ie it used the
flow name `xheader` even though it wasn't HTTP-based. Now, it
uses either the existing `script` flow (for trusted/backend/principal-asserted runtimes)
or the new `pipe` flow (for untrusted/credential-based runtimes).
Matthew Wire [Thu, 13 Jan 2022 21:30:50 +0000 (21:30 +0000)]
Clean up description for alterDisplayName hook
Eileen McNaughton [Thu, 13 Jan 2022 21:28:46 +0000 (10:28 +1300)]
Merge pull request #22355 from colemanw/searchKitAddJoins
SearchKit - Enable joins for custom fields and option groups
Tim Otten [Thu, 16 Dec 2021 00:11:34 +0000 (16:11 -0800)]
Civi::pipe - Flip default for $apiError from `array` to `exception`
My initial use-case will likely benefit from `array`; however, for bespoke
code that works with a pipe, the `exception` is probably easier.
Tim Otten [Wed, 15 Dec 2021 22:36:18 +0000 (14:36 -0800)]
(REF) Civi::pipe() - Add authentication tests to AllFlowsTest
Tim Otten [Wed, 15 Dec 2021 22:21:48 +0000 (14:21 -0800)]
(REF) Civi::pipe - Extract `BasicPipeClient` from `CliRunnerTest`.
Make it is easier to use in other tests.
Tim Otten [Wed, 15 Dec 2021 09:41:18 +0000 (01:41 -0800)]
(REF) Civi::pipe - Add test coverage for interaction of (un)trusted & checkPermissions
Tim Otten [Wed, 15 Dec 2021 08:22:22 +0000 (00:22 -0800)]
(REF) Civi::pipe - Tighten up docblocks and type-hints
Tim Otten [Wed, 15 Dec 2021 07:47:00 +0000 (23:47 -0800)]
Civi::pipe - Convet from service-registry to negotation-flags
How will the protocol evolve? This changes the planned mechanism that will allow evoluation.
_Previous/Original_: Protocol had a version number.
_Previous/Interm_: Any change to the protocol requires registering a new service. New
connections must strictly choose between one service XOR another service.
_Now_: Any change to the protocol requires defining a flag. There is a list
of default flags, but callers may request alternative flags. The header
line indicates success or failure of these flags.
Comment: Handy characteristics of this design:
* Default info is generally more useful and skimmable.
* Addresses the current trusted/untrusted flag.
* Expands the default info to include (1) CiviCRM version and (2) whether logins are allowed.
* Allows augmenting or replacing jsonrpc-2.0 (if we don't like it).
* The `Civi::pipe()` shell statements remain pithy - even if they require extra flags.
Tim Otten [Wed, 15 Dec 2021 06:27:48 +0000 (22:27 -0800)]
(NFC) JsonRpc
Tim Otten [Wed, 15 Dec 2021 06:11:43 +0000 (22:11 -0800)]
Civi::pipe - Introduce `$trusted` flag and `$apiCheckPermissions` option
* `bool $trusted` is an immutable property of the session that determines whether you
can request special operations like:
* Bypassing API permissions
* Setting the active user without credentials
* `bool $apiCheckPermissions` is a convenience option for `api3` and `api4`.
This toggles the default value of `checkPermissions` / `check_permissions`
on API calls. (It is only applicable to trusted sessions.)
Tim Otten [Wed, 15 Dec 2021 06:23:30 +0000 (22:23 -0800)]
Civi::pipe - Comply more strictly with JSON-RPC v2.0. Don't allow scalar `params`.
Tim Otten [Wed, 15 Dec 2021 05:13:48 +0000 (21:13 -0800)]
(REF) Civi::pipe - Rename JsonRpcSession to PipeSession
Not supporting multiple session types
Tim Otten [Wed, 15 Dec 2021 05:10:15 +0000 (21:10 -0800)]
Civi::pipe - Extract class JsonRpc
Tim Otten [Wed, 15 Dec 2021 03:43:13 +0000 (19:43 -0800)]
Civi::pipe - Remove BasicJsonSession
Tim Otten [Wed, 15 Dec 2021 03:33:47 +0000 (19:33 -0800)]
Civi::pipe - Rename maxLines to bufferSize
Tim Otten [Wed, 15 Dec 2021 01:53:09 +0000 (17:53 -0800)]
Civi::pipe - Define option `apiError`
This option balances two interests:
- For generic plumbing code, it's easier to keep the API errors in their canonical format.
- For bespoke JSON-RPC client code, it's easier to bind errors into JSON-RPC errors. This way
downstream clients can adapt the errors to their own convention (PHP exceptions, JS exceptions,
promise-failures, ad nauseum)
Tim Otten [Wed, 15 Dec 2021 00:38:00 +0000 (16:38 -0800)]
Civi::pipe - Add top-level facade. Add E2E test.
Tim Otten [Wed, 15 Dec 2021 00:39:01 +0000 (16:39 -0800)]
Civi::pipe - JSON-RPC 2.0 session
Tim Otten [Wed, 15 Dec 2021 00:37:38 +0000 (16:37 -0800)]
Civi::pipe - Basic JSON session
Tim Otten [Wed, 15 Dec 2021 00:34:56 +0000 (16:34 -0800)]
Civi::pipe - Add some initial utilities
Tim Otten [Thu, 30 Dec 2021 03:35:29 +0000 (21:35 -0600)]
MailingEventQueue - Use consistent short/camel-name.
Unchanged
---------
* XML: `xml/schema/Mailing/Event/Queue.xml`
* DAO: `CRM/Mailing/Event/DAO/Queue.php`
* BAO: `CRM/Mailing/Event/BAO/Queue.php`
* APIv3: `api/v3/MailingEventQueue.php`
Changes: Before
---------------
* TLDR: Inconsistent mix of `MailingEventQueue` and `Queue`
* `AllCoreTables` lists the short/CamelCaseName as `Queue`, which
does not match the APIv3 name (`api/v3/MailingEventQueue.php`).
* When formatting results for `MailingEventQueue.create`, it
uses `_civicrm_api3_basic_create(...'Queue')`. Again, that
name does not match `api/v3/MailingEventQueue.php`.
(Substantively, this means that it may call `Queue.getfields`
to read extra metadata. But this returns an empty list...)
Changes: After
---------------
* TLDR: Consistent use of `MailingEventQueue`
* `AllCoreTables` lists the short/CamleCaseName as `MailingEventQueue`
which does match the `api/v3/MailingEventQueue.php`
* When formatting results for `MailingEventQueue.create`, it
uses `_civicrm_api3_basic_create(...'MailingEventQueue')`.
This matches. (Substantively, this means that it may call `MailingEventQueue.getfields`
to read extra metadata. As before, this returns an empty list...)
Comments
--------
In reconciling the conflicted names, I looked at both APIv3 and APIv4.
APIv4 does not expose an entity for this; so the Before+After ocuses on APIv3.
Tim Otten [Thu, 30 Dec 2021 03:25:21 +0000 (21:25 -0600)]
GenCode - Allow overriding the short entity name
Before
------
The short entity-name must always be an exact match to the _last_ part of the class-name.
Ex: The class `CRM_Mailing_Event_BAO_Queue` has short entity-name of `Queue`.
This will cause a conflict if any other subsystem has a class ending in `Queue`
(eg `CRM_Contribute_BAO_Queue` or `CRM_Queue_Queue`).
After
-----
By default, the short entity-name matches the last part of the class-name.
But this can be overridden in `xml/schema/*`, eg
```xml
<table>
<base>CRM/Mailing/Event</base>
<class>Queue</class>
<entity>MailingEventQueue</entity>
```
Comments
---------
To see that this change is generally safe (ie does not impact existing entity), I force-regenereated all DAOs
```
GENCODE_FORCE=1 ./bin/setup.sh -g
```
This produced no substantive change in existing DAOs -- because they do not have the `<entity>` tag.
Eileen McNaughton [Thu, 13 Jan 2022 00:52:14 +0000 (13:52 +1300)]
Move permission checks from Query & BAO to financialacl extension
Eileen McNaughton [Thu, 13 Jan 2022 00:27:44 +0000 (13:27 +1300)]
Clean up buildPermissionedWhereClause
Eileen McNaughton [Wed, 12 Jan 2022 21:32:13 +0000 (10:32 +1300)]
Rationalise relationship validation
The previous relationship validation was
1) throw a message is no valid employer relationship - this seems to be done
in a place that would make the site unusable I've centralised this check into a
cached function that gets the id & throws the exception & is used from
places previously fetching it (there is one that
didn't throw an exception previously but I think enough places did
that extending to that place would not break the site any more if it didn't exist
2) complicated look up to determine if the contact types match the relationship's
expectations. Since we already know the relationship's expectations we
can simplify this to just check contact a is an individual and b is an org which is
much more reasonable. It doesn;t seem like this would ever actually be false so
I added a deprecation to be a bit vocal if it is
Eileen McNaughton [Sat, 8 Jan 2022 00:28:39 +0000 (13:28 +1300)]
Function to get employer relationship type id
Eileen McNaughton [Thu, 13 Jan 2022 05:29:37 +0000 (18:29 +1300)]
Merge pull request #22496 from civicrm/5.46
5.46
colemanw [Thu, 13 Jan 2022 03:27:14 +0000 (22:27 -0500)]
Merge pull request #22443 from eileenmcnaughton/download
Remove support for deprecated key
colemanw [Thu, 13 Jan 2022 03:25:39 +0000 (22:25 -0500)]
Merge pull request #22485 from eileenmcnaughton/ab
Fully remove contactAB function
colemanw [Thu, 13 Jan 2022 03:24:55 +0000 (22:24 -0500)]
Merge pull request #22498 from eileenmcnaughton/mem_act
Don't default membership type create to inactive
Eileen McNaughton [Thu, 13 Jan 2022 02:08:56 +0000 (15:08 +1300)]
Merge pull request #22464 from colemanw/extRequirementCheck
Extensions - Add dependency status check
Eileen McNaughton [Thu, 13 Jan 2022 01:55:38 +0000 (14:55 +1300)]
Don't default membership type create to inactive
We don't do this for any other entity...
Eileen McNaughton [Thu, 13 Jan 2022 01:53:59 +0000 (14:53 +1300)]
Merge pull request #22494 from eileenmcnaughton/fin
Remove handling for impossible array
Seamus Lee [Thu, 13 Jan 2022 01:48:29 +0000 (12:48 +1100)]
Merge pull request #22490 from colemanw/refreshButton
SearchKit - Facilitate popup forms
Eileen McNaughton [Thu, 13 Jan 2022 00:57:36 +0000 (13:57 +1300)]
Merge pull request #22403 from colemanw/api4WriteRecords
[REF] Improve APIv4 save functions
Eileen McNaughton [Thu, 13 Jan 2022 00:45:02 +0000 (13:45 +1300)]
Merge pull request #22493 from eileenmcnaughton/546
Cleanup test class
Eileen McNaughton [Thu, 13 Jan 2022 00:42:19 +0000 (13:42 +1300)]
Merge pull request #22467 from colemanw/civigrantSearchKitTab
CiviGrant - Use SearchKit for contact summary tab
colemanw [Thu, 13 Jan 2022 00:31:56 +0000 (19:31 -0500)]
Merge pull request #22492 from braders/system-utils-docblock
Improve method phpdoc for CRM_Utils_System
Eileen McNaughton [Thu, 13 Jan 2022 00:11:24 +0000 (13:11 +1300)]
Remove handling for impossible array
CRM_Financial_BAO_FinancialType::buildPermissionedClause is only called from one place
outside of tests. That place passes in this->_whereClause which is the result of calling
this->whereClause() a few lines earlier. As that function always returns a string
we know that it cannot be an array & can remove the handling
Eileen McNaughton [Wed, 5 Jan 2022 22:04:10 +0000 (11:04 +1300)]
Cleanup test class
Coleman Watts [Wed, 12 Jan 2022 21:07:49 +0000 (16:07 -0500)]
crmDialog - Add convenience binding to automatically launch a dialog when clicking an element
Coleman Watts [Wed, 12 Jan 2022 21:06:33 +0000 (16:06 -0500)]
SearchKit - Auto-refresh search when popup forms submit
This expands the listener to the entire surrounding <form> element,
in case there are related popups on the Afform.
Bradley Taylor [Wed, 12 Jan 2022 22:37:43 +0000 (22:37 +0000)]
Improve method phpdoc for CRM_Utils_System
Coleman Watts [Wed, 12 Jan 2022 22:33:08 +0000 (17:33 -0500)]
CiviGrant - Ensure dependencies are installed before running tests
colemanw [Wed, 12 Jan 2022 21:02:58 +0000 (16:02 -0500)]
Merge pull request #22486 from eileenmcnaughton/rel_check
Remove always-true-if
Eileen McNaughton [Wed, 12 Jan 2022 05:06:56 +0000 (18:06 +1300)]
Remove always-true-if
We just ensured organization is numeric so .. it is
Eileen McNaughton [Wed, 12 Jan 2022 05:01:36 +0000 (18:01 +1300)]
Fully remove contactAB function
The function was a really long winded way of doing what the 3 lines do.
Universe search did not reveal other usages and it is not the
sort of function we would expect to be used by extensions so
I'm straight removing it
Seamus Lee [Wed, 12 Jan 2022 04:49:34 +0000 (15:49 +1100)]
Merge pull request #22468 from eileenmcnaughton/ab
Stop calling confusing function that doesn't do much .....
Eileen McNaughton [Wed, 12 Jan 2022 04:39:00 +0000 (17:39 +1300)]
Merge pull request #22484 from civicrm/5.46
5.46 to master
Eileen McNaughton [Wed, 12 Jan 2022 04:38:33 +0000 (17:38 +1300)]
Merge pull request #22479 from demeritcowboy/fulltext-quickfix-546
dev/core#3026 - 5.46 version of 22478
demeritcowboy [Wed, 12 Jan 2022 02:35:33 +0000 (21:35 -0500)]
quickfix for fulltext search drupal block
demeritcowboy [Wed, 12 Jan 2022 00:33:33 +0000 (19:33 -0500)]
Merge pull request #22469 from eileenmcnaughton/help
Remove seemingly unreachable help text
demeritcowboy [Wed, 12 Jan 2022 00:18:31 +0000 (19:18 -0500)]
Merge pull request #22472 from eileenmcnaughton/import
Move function to the class that 'owns' it
Eileen McNaughton [Tue, 11 Jan 2022 23:05:33 +0000 (12:05 +1300)]
Merge pull request #22451 from MegaphoneJon/member-count-fix
Crash when adding a relationship when CiviMember is disabled
Eileen McNaughton [Tue, 11 Jan 2022 20:36:19 +0000 (09:36 +1300)]
Merge pull request #22474 from braders/incoming-mail-broken-fn-reference
Fix broken function reference
Jon Goldberg [Mon, 10 Jan 2022 18:11:57 +0000 (13:11 -0500)]
fix accessing member/contribution count when not enabled
Eileen McNaughton [Tue, 11 Jan 2022 11:50:11 +0000 (00:50 +1300)]
Move function to the class that 'owns' it
Following https://github.com/civicrm/civicrm-core/commit/
f54e87d9cf1e216036adf92f744cdbac3c1fe79e#diff-5864d6a1d03dffb7699b930837c1c222b41fba16dad7d0a5f73b4923ac53dd42R198
neither of these functions are called from outside their class (I did a universe search)
so making them private (& in one case moving off the parent) means a universe seach won't be needed
next time
Eileen McNaughton [Tue, 11 Jan 2022 18:43:00 +0000 (07:43 +1300)]
Merge pull request #22473 from eileenmcnaughton/script
Remove broken script
Bradley Taylor [Tue, 11 Jan 2022 18:22:38 +0000 (18:22 +0000)]
Fix broken function reference
colemanw [Tue, 11 Jan 2022 17:07:52 +0000 (12:07 -0500)]
Merge pull request #22459 from mlutfy/core983acl
dev/core#983 Fix Access CiviCampaign permissions (instead of admin)
Eileen McNaughton [Tue, 11 Jan 2022 12:04:37 +0000 (01:04 +1300)]
Remove broken script
Eileen McNaughton [Tue, 11 Jan 2022 10:42:19 +0000 (23:42 +1300)]
Remove seemingly unreachable help text
This text is e-notice causing (with default modifiers on). I could not find the tpl file
or the potentially corresponding php file & concluded they were likely long-gone
(If I'm wrong some possibly-outdated help text disappears but I couldnt find it)
Eileen McNaughton [Tue, 11 Jan 2022 01:15:09 +0000 (14:15 +1300)]
Stop calling confusing function that doesn't do much .....
Seamus Lee [Tue, 11 Jan 2022 06:11:47 +0000 (17:11 +1100)]
Merge pull request #22448 from mattwire/recurid
Simplify getting contact_id from recurring contribution when generating subscription URLs
Seamus Lee [Tue, 11 Jan 2022 04:54:14 +0000 (15:54 +1100)]
Merge pull request #22456 from eileenmcnaughton/legt
Remove & deprecate silly function
Coleman Watts [Mon, 10 Jan 2022 01:24:12 +0000 (20:24 -0500)]
CiviGrant - Use SearchKit for contact summary tab
Eileen McNaughton [Tue, 11 Jan 2022 02:09:27 +0000 (15:09 +1300)]
Merge pull request #22064 from colemanw/civigrant
Migrate CiviGrant component to an extension
Eileen McNaughton [Tue, 11 Jan 2022 01:40:45 +0000 (14:40 +1300)]
Merge pull request #22264 from sunilpawar/dev_recurring_error
Fix Fatal Error on contribution tab and user dashboard when recurring payment generated using extension get disabled
Seamus Lee [Tue, 11 Jan 2022 01:38:57 +0000 (12:38 +1100)]
Merge pull request #22462 from eileenmcnaughton/inv2
Remove unused variable
Eileen McNaughton [Mon, 10 Jan 2022 19:33:14 +0000 (08:33 +1300)]
Remove & deprecate silly function
This function just calls another function & it's slightly MORE complicted to call that then the function
it calls - deprecate it....
Eileen McNaughton [Tue, 11 Jan 2022 01:08:02 +0000 (14:08 +1300)]
Merge pull request #22455 from eileenmcnaughton/legg
Remove IF that only loops through one value
colemanw [Tue, 11 Jan 2022 00:38:10 +0000 (19:38 -0500)]
Merge pull request #22421 from eileenmcnaughton/tax
Replace all isset checks on line.tax_rate
Eileen McNaughton [Tue, 11 Jan 2022 00:15:06 +0000 (13:15 +1300)]
Merge pull request #22453 from braders/autorespond-failure
Fix syntax error in CRM_Mailing_Event_BAO_Reply
Seamus Lee [Mon, 10 Jan 2022 23:14:48 +0000 (10:14 +1100)]
Merge pull request #22313 from mlutfy/eventDefaultUrlValues
Event Registration: allow default Price Set values from the URL
Coleman Watts [Mon, 10 Jan 2022 22:48:03 +0000 (17:48 -0500)]
Extensions - Add dependency status check
Adds a system status check to ensure extension dependencies are met
colemanw [Mon, 10 Jan 2022 21:34:50 +0000 (16:34 -0500)]
Merge pull request #22457 from eileenmcnaughton/label
Mark function as private
Eileen McNaughton [Mon, 10 Jan 2022 21:32:56 +0000 (10:32 +1300)]
Remove unused variable
Eileen McNaughton [Mon, 10 Jan 2022 21:29:39 +0000 (10:29 +1300)]
Merge pull request #22460 from civicrm/5.46
5.46
Seamus Lee [Mon, 10 Jan 2022 21:24:00 +0000 (08:24 +1100)]
Merge pull request #22445 from eileenmcnaughton/546
Use field value function to get html signature
Coleman Watts [Thu, 6 Jan 2022 22:46:10 +0000 (17:46 -0500)]
APIv4 - Refactor writeObjects to choose BAO function based on annotations
Instead of using a hardcoded list of BAO functions to call, with extra
hardcoded params to e.g. the Contact & Address BAOs, this switches
to picking the BAO's create/add only if it's not `@deprecated`,
and falling back to WriteRecords.
Also refactors the large `writeObjects` function into two smaller
functions so individual action classes can more easily override them.
Eileen McNaughton [Mon, 10 Jan 2022 21:14:47 +0000 (10:14 +1300)]
Merge pull request #22454 from braders/phpdoc-types
A whole bunch of phpdoc fixes
Mathieu Lutfy [Mon, 10 Jan 2022 21:06:33 +0000 (16:06 -0500)]
dev/core#983 Fix Access CiviCampaign permissions (instead of admin)
Eileen McNaughton [Sat, 8 Jan 2022 07:50:21 +0000 (20:50 +1300)]
Ensure tax is set when it comes form Order BAO
Eileen McNaughton [Sat, 8 Jan 2022 03:53:00 +0000 (16:53 +1300)]
Replace all isset checks on line.tax_rate
It is actually always set here
https://github.com/civicrm/civicrm-core/blob/
64f4eebe75dbaeb429abcaa4dfca90094ce8be20/CRM/Price/BAO/LineItem.php#L246-L253
Eileen McNaughton [Mon, 10 Jan 2022 19:22:14 +0000 (08:22 +1300)]
Remove IF that only loops through one value
Eileen McNaughton [Mon, 10 Jan 2022 19:47:38 +0000 (08:47 +1300)]
Mark function as private
I did a universe search & this is not called outside this class (the
one on the LabelCommon class is called from one place outside that class
Bradley Taylor [Mon, 10 Jan 2022 19:13:26 +0000 (19:13 +0000)]
A whole bunch of phpdoc fixes
Bradley Taylor [Mon, 10 Jan 2022 18:29:24 +0000 (18:29 +0000)]
Fix syntax error in CRM_Mailing_Event_BAO_Reply
Coleman Watts [Fri, 7 Jan 2022 20:37:07 +0000 (15:37 -0500)]
CiviGrant - Regenerate SQL