Seamus Lee [Sat, 12 Dec 2020 20:01:58 +0000 (07:01 +1100)]
Merge pull request #19145 from totten/master-qfkey
CRM_Core_Key - Provide more debugging hints about mismatched`qfKey`s
Seamus Lee [Sat, 12 Dec 2020 09:49:31 +0000 (20:49 +1100)]
Merge pull request #19193 from eileenmcnaughton/ref
[REF] Extract determination of subscription status information
Seamus Lee [Sat, 12 Dec 2020 08:40:21 +0000 (19:40 +1100)]
Merge pull request #19160 from eileenmcnaughton/import
Clean up error handling in legacy functions in import parser
Seamus Lee [Sat, 12 Dec 2020 08:39:58 +0000 (19:39 +1100)]
Merge pull request #19191 from eileenmcnaughton/deprecated
Remove some deprecated code chunks
eileen [Sat, 12 Dec 2020 06:01:42 +0000 (19:01 +1300)]
[REF] Extract determination of subscription status information
This gets us away from it being buried in a switch
eileen [Sat, 12 Dec 2020 05:37:25 +0000 (18:37 +1300)]
Remove some deprecated code chunks
eileen [Thu, 10 Dec 2020 19:42:27 +0000 (08:42 +1300)]
Clean up error handling in legacy functions in import parser
This makes the handling of errors cleaner & makes it easier for us to unravel what is going on here.
Seamus Lee [Fri, 11 Dec 2020 23:34:48 +0000 (10:34 +1100)]
Merge pull request #19182 from eileenmcnaughton/else
Remove extraneous elses
Seamus Lee [Fri, 11 Dec 2020 23:34:05 +0000 (10:34 +1100)]
Merge pull request #19085 from eileenmcnaughton/words
dev/financial#158 change UI parts of contribution soft schema to soft credit
Tim Otten [Fri, 11 Dec 2020 22:08:46 +0000 (14:08 -0800)]
CRM_Core_Key - Add some basic unit tests
Tim Otten [Tue, 8 Dec 2020 23:15:45 +0000 (15:15 -0800)]
CRM_Core_Key - Provide more debugging hints about `qfKey`s
Overview
--------
The `qfKey` parameter is a security mechanism (CSRF). The content of `qfKey` is also inscrutable - so when there's a problem
with `qfKey`, it can be difficult to determine the origin/nature of the problem.
Before
------
The `qfKey` provides a digital signature based on (1) session ID, (2) the
form being processed, (3) a random private-key (unique to the user/session).
In some cases, the `qfKey` also has a random nonce appended to distinguish
between concurrent tabs that work with the same form.
* Ex: `2abc4b7f23d9ae4dfcdbb0c692cc666e5f11256fe84ace7662b0e075834b81958` (w/o nonce)
* Ex: `2abc4b7f23d9ae4dfcdbb0c692cc666e5f11256fe84ace7662b0e075834b81958_9527` (w/nonce)
If there is a logic problem where the `qfKey` of form A gets mixed-up with
form B, then it's extremely hard to understand the mismatch All you see are
two long random codes.
* Inputted qfKey: `2abc4b7f23d9ae4dfcdbb0c692cc666e5f11256fe84ace7662b0e075834b81958`
* Expected fqKey: `89874b7a23192e4d6aab10c622ca369e5e11226f784a5c7652b95075536b81a5e`
After
-----
The `qfKey` has a prefix to indicate the token's intended usage (as well as a digital signature).
* Ex: `CRMContactControllerSearch154eitbf74v3ko0sw94k08gogo8448asdfw4goggkkwgkww08c` (w/o nonce)
* Ex: `CRMContactControllerSearch154eitbf74v3ko0sw94k08gogo8448asdfw4goggkkwgkww08c_9355` (w/ nonce)
If there is a logic problem where the `qfKey` of form A gets mixed-up with
form B, then the prefix can help you understand. Compare:
* Inputted qfKey: `CRMContactControllerSearch154eitbf74v3ko0sw94k08gogo8448asdfw4goggkkwgkww08c`
* Expected qfKey: `CRMContributeFormContribution5o2due205mp0384080sgc8omw8kwggoksw47sswchs80gw0kgs`
This tells you that there's logical mismatch - it's trying to render the contribution
screen using the key for the contact-search screen.
Comments
--------
* The identity of the `formname` is not sensitive information.
* The `qfKey` might look prettier with more delimeters (`{formname}_{signature}_{nonce}`). However, I belive there are random bits of existing code
which use `explode('_')` to split apart the signature and the nonce. This formula seems to be drop-in/interoperable.
* I switched the encoding of the signature from hex (0-9a-f) to base-36 (0-9a-z) to make it a bit shorter.
eileen [Fri, 11 Dec 2020 20:26:45 +0000 (09:26 +1300)]
Remove extraneous elses
eileen [Tue, 1 Dec 2020 03:51:48 +0000 (16:51 +1300)]
dev/financial#158 change UI parts of contribution soft schema to soft credit
Seamus Lee [Fri, 11 Dec 2020 09:05:56 +0000 (20:05 +1100)]
Merge pull request #19180 from civicrm/5.33
5.33
Seamus Lee [Fri, 11 Dec 2020 09:05:39 +0000 (20:05 +1100)]
Merge pull request #19179 from demeritcowboy/depwarn
[NFC] Convert civi.tag-deprecated to use central function
Seamus Lee [Fri, 11 Dec 2020 07:40:41 +0000 (18:40 +1100)]
Merge pull request #19176 from eileenmcnaughton/533m
dev/core#2246 Fix failure to filter exports
Seamus Lee [Fri, 11 Dec 2020 07:35:53 +0000 (18:35 +1100)]
Merge pull request #19172 from eileenmcnaughton/dep_match
[REF] extract getIdsOfMatchingContact
Seamus Lee [Fri, 11 Dec 2020 07:24:07 +0000 (18:24 +1100)]
Merge pull request #19167 from demeritcowboy/legacy-warnings
Unused writeLegacyWarnings() in PropertyBag
demeritcowboy [Fri, 11 Dec 2020 06:30:33 +0000 (01:30 -0500)]
convert to central function
eileen [Fri, 11 Dec 2020 01:58:41 +0000 (14:58 +1300)]
[REF] extract getIdsOfMatchingContact
It seems this really needs sorting to be shared between the parser classes
to fix up the error handling
Eileen McNaughton [Fri, 11 Dec 2020 05:14:01 +0000 (18:14 +1300)]
Merge pull request #19171 from eileenmcnaughton/else
Remove extraneous elses
Eileen McNaughton [Fri, 11 Dec 2020 05:13:41 +0000 (18:13 +1300)]
Merge pull request #19178 from civicrm/5.33
5.33 to master
Eileen McNaughton [Fri, 11 Dec 2020 05:13:06 +0000 (18:13 +1300)]
Merge pull request #19173 from eileenmcnaughton/533
dev/core#2244 Simplify and consistently apply checking of whether financial acls are enabled
eileen [Fri, 11 Dec 2020 05:04:25 +0000 (18:04 +1300)]
dev/core#2246 Fix failure to filter exports
This fixes regression caused by us more consistently setting componentTable.
The short version here is that the presence of a componentClause should take precedences
over the inner join intended as a blunt, and maybe unnecessary, measure to
limit the export to the entity in question
Seamus Lee [Fri, 11 Dec 2020 03:32:15 +0000 (14:32 +1100)]
Merge pull request #19164 from eileenmcnaughton/member
Switch to non-static functions
eileen [Fri, 11 Dec 2020 02:26:21 +0000 (15:26 +1300)]
dev/core#2244 Simplify and consistently apply checking of whether financial acls are enabled
Per https://lab.civicrm.org/dev/core/-/issues/2244 the move of some handling to this function
did not consistently include an early return when the setting is toggled off.
Eventually there will be no setting - just 'is this extension enabled or not' but
in the transition we need this. The new version is easier to copy and paste :-)
and uses a function in the extension. The function in the main code base is
mostly a lot of code to handle the way the setting used to be stored & it
could just check the setting too now
Seamus Lee [Fri, 11 Dec 2020 02:10:35 +0000 (13:10 +1100)]
Merge pull request #19166 from eileenmcnaughton/cont_type
dev/financial#163 Rename / remove internal references to contributionTypeID
Seamus Lee [Fri, 11 Dec 2020 02:10:05 +0000 (13:10 +1100)]
Merge pull request #19169 from eileenmcnaughton/cont_type2
Rename internal references to contributionTypeId
eileen [Fri, 11 Dec 2020 01:39:05 +0000 (14:39 +1300)]
Remove extraneous elses
Further removal of elses directly after a return
Seamus Lee [Fri, 11 Dec 2020 00:55:08 +0000 (11:55 +1100)]
Merge pull request #19168 from eileenmcnaughton/dup_error
Remove extraneous elses
Matthew Wire [Thu, 10 Dec 2020 23:46:06 +0000 (23:46 +0000)]
Merge pull request #19017 from eileenmcnaughton/remove_recur
dev/financial#152 remove determination of source
demeritcowboy [Thu, 10 Dec 2020 21:53:31 +0000 (16:53 -0500)]
no longer used
Eileen McNaughton [Thu, 10 Dec 2020 22:58:48 +0000 (11:58 +1300)]
Merge pull request #18854 from eileenmcnaughton/memlabel
[REF] Extract function to retrieve the membership labels.
Seamus Lee [Thu, 10 Dec 2020 22:53:20 +0000 (09:53 +1100)]
Merge pull request #19162 from civicrm/5.33
5.33
Seamus Lee [Thu, 10 Dec 2020 22:50:53 +0000 (09:50 +1100)]
Merge pull request #18905 from eileenmcnaughton/mail
dev/core#2159 Handle exceptions in Mail:send class
eileen [Thu, 10 Dec 2020 21:31:27 +0000 (10:31 +1300)]
Rename internal references to contributionTypeId
eileen [Thu, 10 Dec 2020 22:03:34 +0000 (11:03 +1300)]
Remove extraneous elses
This looks like a huge code change but it's just removing meaningless elses and reformatting
eileen [Thu, 10 Dec 2020 21:26:34 +0000 (10:26 +1300)]
dev/financial#163 Rename / remove internal references to contributionTypeID
https://lab.civicrm.org/dev/financial/-/issues/163
Seamus Lee [Thu, 10 Dec 2020 21:08:50 +0000 (08:08 +1100)]
Merge pull request #19159 from colemanw/api4DynamicJoinFix
APIv4 - Fix dynamic bridge joins (used by Search Kit)
eileen [Wed, 21 Oct 2020 10:51:51 +0000 (23:51 +1300)]
Extract function to retrieve the membership labels.
Rather than construct an array (membershipTypes) early on with a db lookup
and pass it around we retrieve the labels when needed using a helper function
to retrieve the values from the already-available array on membership type
details
eileen [Thu, 10 Dec 2020 20:48:35 +0000 (09:48 +1300)]
Switch to non-static functions
I realise these functions are static so that the formRule can call them - but
the formRule has access to the form object and the intention was obviously always
that the formRule can call functions on the form. This cleans that up:
Seamus Lee [Thu, 10 Dec 2020 20:28:10 +0000 (07:28 +1100)]
Merge pull request #19161 from seamuslee001/5.33
Add release-notes/5.32.1
Tim Otten [Sat, 5 Dec 2020 07:51:41 +0000 (23:51 -0800)]
Add release-notes/5.32.1
colemanw [Thu, 10 Dec 2020 19:38:19 +0000 (14:38 -0500)]
Merge pull request #19152 from MegaphoneJon/financial-160
financial#160 - set correct from_financial_account_id on an edited fee amount FinancialTrxn
Coleman Watts [Thu, 10 Dec 2020 19:24:29 +0000 (14:24 -0500)]
APIv4 - Fix dynamic bridge joins
Move ON clause conditions to the first join when they reference the bridge entity itself
Ensure bridge joins work with joining the same table to itself (e.g. Contact to Contact via RelationshipCache)
eileen [Mon, 2 Nov 2020 06:21:16 +0000 (19:21 +1300)]
dev/core#2159 Handle exceptions in Mail:send class
This adds handling for exceptions - allowing the class to be more effectivel swapped out
- need to think a bit more about the messages though
Eileen McNaughton [Thu, 10 Dec 2020 19:10:34 +0000 (08:10 +1300)]
Merge pull request #19157 from jgrygierek/feature/add-missing-south-korea-state
Add missing state for South Korea
Eileen McNaughton [Thu, 10 Dec 2020 19:06:04 +0000 (08:06 +1300)]
Merge pull request #19158 from demeritcowboy/old-from-to
Remove code deprecated +1 year ago - case_from_XX / case_to_XXX search parameters
demeritcowboy [Thu, 10 Dec 2020 17:03:05 +0000 (12:03 -0500)]
remove long-deprecated code
Jon Goldberg [Wed, 9 Dec 2020 16:20:05 +0000 (11:20 -0500)]
financial#160 - set correct from_financial_account_id on an edited fee amount FinancialTrxn
colemanw [Thu, 10 Dec 2020 14:15:19 +0000 (09:15 -0500)]
Merge pull request #19155 from eileenmcnaughton/except2
Remove meaningless calls to ignoreException
colemanw [Thu, 10 Dec 2020 14:14:15 +0000 (09:14 -0500)]
Merge pull request #19156 from eileenmcnaughton/vars
Remove some unused variables
Jarosław Grygierek [Thu, 10 Dec 2020 10:36:49 +0000 (11:36 +0100)]
add blank line
Jarosław Grygierek [Thu, 10 Dec 2020 10:33:58 +0000 (11:33 +0100)]
add missing state for South Korea
eileen [Thu, 10 Dec 2020 08:17:09 +0000 (21:17 +1300)]
Remove some unused variables
eileen [Thu, 10 Dec 2020 08:07:05 +0000 (21:07 +1300)]
Remove meaningless calls to ignoreException
The way ignoreException works is the exception mode is called until it is
deconstructed. In other words the result needs to be assigned to a variable
and when it is unset then the exception mode reverts back.
However, over time cleaner-uppers spot these unused variables & remove them -
meaning the line no longer actually does anything. Since these lines are already
borked they can go....
Eileen McNaughton [Thu, 10 Dec 2020 06:29:34 +0000 (19:29 +1300)]
Merge pull request #18855 from eileenmcnaughton/record
[REF] Simplify membership form code towards simplifying BAO
eileen [Mon, 26 Oct 2020 04:05:58 +0000 (17:05 +1300)]
[REF] Simplify membership form code towards simplifying BAO
On digging into the handling for the param relate_contribution_id in the BAO I found it is called
only from the membership form & it's really a hack for the way price sets were super-imposed on the form.
This has really solid testing in testTwoInheritedMembershipsViaPriceSetInBackend (Thanks @davejenx)
and stepping through there is the best way to make sense of it.
What is happening is that if there are 2 memberships in a price set Membership.create is called twice.
However, because the parameter contribution_status_id is passed in it attempts to create the contribution
twice. If we don't add this the second time then we wind up with the second membership payment not created
because that membership didn't exist the first round. So, an extra param relate_contribution_id got
added which says 'if this is passed in create the MembershipPayment record that didn't get created
the first time with the contribution id that we just did a lookup on.
All of this is needed because we create the contribution between the first Membership create
and the second. This removes both magic params from the create, and instead calls
recordMembershipContribution after both are done. I thought about calling Order.create or
just Contribution.create here but there is stuff to unravel around the soft credit creation
being done in RecordMembershipContribution and I am not yet clear if tests are adequate there
Seamus Lee [Thu, 10 Dec 2020 01:17:02 +0000 (12:17 +1100)]
Merge pull request #19154 from civicrm/5.33
5.33
Seamus Lee [Thu, 10 Dec 2020 00:22:58 +0000 (11:22 +1100)]
Merge pull request #19115 from totten/master-api4-perm
APIv4 - Add "Permission.get" for listing available permissions
Monish Deb [Thu, 10 Dec 2020 00:21:34 +0000 (05:51 +0530)]
Merge pull request #18794 from eileenmcnaughton/need_less
Membership BAO - do not require date fields to be passed in on update
Eileen McNaughton [Thu, 10 Dec 2020 00:15:17 +0000 (13:15 +1300)]
Merge pull request #19146 from JMAConsulting/issue-2174
core#2174: Activity Summary report is missing pagination
Seamus Lee [Wed, 9 Dec 2020 23:51:36 +0000 (10:51 +1100)]
Merge pull request #18838 from eileenmcnaughton/vrenew
dev/core#2024 extra line item issue on membership renewal
Seamus Lee [Wed, 9 Dec 2020 23:10:05 +0000 (10:10 +1100)]
Merge pull request #19120 from eileenmcnaughton/fee
Handle possibility of fee_amount = ''
Eileen McNaughton [Wed, 9 Dec 2020 22:49:06 +0000 (11:49 +1300)]
Merge pull request #19149 from seamuslee001/pager_notice_fix
Fix notice error on using max() with only one variable
Seamus Lee [Wed, 9 Dec 2020 22:45:59 +0000 (09:45 +1100)]
Merge pull request #19109 from eileenmcnaughton/cull
Remove extraneous handling duplicated from createProfileContact
Tim Otten [Fri, 4 Dec 2020 05:51:57 +0000 (21:51 -0800)]
Afform - Export list of synthetic permissions
Tim Otten [Fri, 4 Dec 2020 07:35:06 +0000 (23:35 -0800)]
APIv4 - Add "Permission.get" test. Include BD/D7/D8/WP variants.
Tim Otten [Fri, 4 Dec 2020 07:34:44 +0000 (23:34 -0800)]
APIv4 - Add "Permission.get" for browsing available permissions.
Tim Otten [Fri, 4 Dec 2020 07:05:25 +0000 (23:05 -0800)]
CRM_Core_Permission_* - Add getAvailablePermision(). Implement on BD/D7/D8/WP.
Eileen McNaughton [Wed, 9 Dec 2020 22:21:52 +0000 (11:21 +1300)]
Merge pull request #19153 from civicrm/5.33
5.33
Eileen McNaughton [Wed, 9 Dec 2020 20:44:19 +0000 (09:44 +1300)]
Merge pull request #19150 from colemanw/searchKitJoins
Search kit joins
eileen [Fri, 4 Dec 2020 02:33:21 +0000 (15:33 +1300)]
Remove extraneous handling duplicated from createProfileContact
I checked and tag and group are not available as import fields
While it's possible to add a contact to a group or tag them that is done elsewhere
- see
https://github.com/civicrm/civicrm-core/blob/
0a66a182969ae3fde9f8e54308c4a35fa415685b/CRM/Contact/Import/ImportJob.php#L248
Seamus Lee [Wed, 9 Dec 2020 19:18:23 +0000 (06:18 +1100)]
Merge pull request #19148 from civicrm/5.33
5.33
Seamus Lee [Wed, 9 Dec 2020 19:14:07 +0000 (06:14 +1100)]
Merge pull request #18995 from lucky091588/2199_ufgroup_pre_post_hook
Add pre() and post() hooks for ufgroup entity
Coleman Watts [Wed, 9 Dec 2020 15:08:43 +0000 (10:08 -0500)]
Search kit: bump version
Coleman Watts [Wed, 9 Dec 2020 14:27:16 +0000 (09:27 -0500)]
Search kit: Improve labels & relevance of smart group field selection
Coleman Watts [Wed, 9 Dec 2020 13:15:22 +0000 (08:15 -0500)]
Search kit: Display join name as part of default label
Seamus Lee [Wed, 9 Dec 2020 08:12:20 +0000 (19:12 +1100)]
Fix notice error on using max() with only one variable
Tim Otten [Wed, 9 Dec 2020 06:33:10 +0000 (22:33 -0800)]
Merge pull request #19125 from eileenmcnaughton/ev533
CiviEvent - Error registering participants via search task
Seamus Lee [Wed, 9 Dec 2020 04:16:21 +0000 (15:16 +1100)]
Merge pull request #19147 from civicrm/5.33
5.33
lucky091588 [Thu, 19 Nov 2020 13:47:13 +0000 (21:47 +0800)]
dev/core#2199: Add pre and post hooks for ufgroup entity
Monish Deb [Wed, 9 Dec 2020 02:05:49 +0000 (07:35 +0530)]
used separate query to fetch total count and renamed form variable totalRows
Seamus Lee [Wed, 9 Dec 2020 00:57:43 +0000 (11:57 +1100)]
Merge pull request #19141 from seamuslee001/dev_core_2232_2
dev/core#2232 Permit hook_civicrm_container and some other prebootish…
Monish Deb [Wed, 9 Dec 2020 00:07:40 +0000 (05:37 +0530)]
core#2174: Activity Summary report is missing pagination
Coleman Watts [Tue, 8 Dec 2020 23:04:14 +0000 (18:04 -0500)]
Search kit: Wider dropdowns for entity selection
Coleman Watts [Tue, 8 Dec 2020 22:52:44 +0000 (17:52 -0500)]
Search kit: Add UI support for multiple, nested joins
Seamus Lee [Tue, 8 Dec 2020 01:02:23 +0000 (12:02 +1100)]
dev/core#2232 Permit hook_civicrm_container and some other prebootish hooks to run during upgrade and clear out the asset builder cache post upgrade
colemanw [Tue, 8 Dec 2020 19:29:54 +0000 (14:29 -0500)]
Merge pull request #19023 from eileenmcnaughton/tt
Extend test to cover membership logs
colemanw [Tue, 8 Dec 2020 19:24:38 +0000 (14:24 -0500)]
Merge pull request #19110 from eileenmcnaughton/act_import
Preliminary cleanup -remove unused params from function signature
Tim Otten [Tue, 8 Dec 2020 05:27:13 +0000 (21:27 -0800)]
CRM_Event_Form_Task_Register - Fix error "getFieldValue failed" (tentative)
When preparing the event-registration form, `CRM_Event_Page_Tab::preProcess()` looks up the designated contact ID and
calls `checkUserPermission()`. The error message is (effectively) reporting that the permission-check fails because
there is no contact ID.
And this is a legit thing to complain about -- if you're embedding the event-registration form as part of a
search-task, then there is no *singular* contact ID. (There is a potentially very long list of contact IDs - which is
probably stored/reported some other way.) The permission-check for this context seems like it ought to be different.
I labeled the commit (tentative) because I'm not entirely certain that I understand the contract of this
route/controller. It has multiple overlapping use-cases, and I'm not certain if I've tracked them all. However, this
patch does seem to fix the "getFieldValue failed" problem when running as a search-task.
Seamus Lee [Tue, 8 Dec 2020 05:05:27 +0000 (16:05 +1100)]
Merge pull request #19117 from eileenmcnaughton/test_find
Add test to check pcp notification is sent
Seamus Lee [Tue, 8 Dec 2020 05:04:34 +0000 (16:04 +1100)]
Merge pull request #19142 from demeritcowboy/schema-comment
Minor typos in schema files
demeritcowboy [Tue, 8 Dec 2020 02:13:18 +0000 (21:13 -0500)]
no comment
Eileen McNaughton [Tue, 8 Dec 2020 02:14:40 +0000 (15:14 +1300)]
Merge pull request #19140 from civicrm/5.33
5.33
colemanw [Tue, 8 Dec 2020 01:42:54 +0000 (20:42 -0500)]
Merge pull request #18941 from colemanw/multiValueContactRef
Add support for multi-value contact reference custom fields
Seamus Lee [Tue, 8 Dec 2020 00:00:09 +0000 (11:00 +1100)]
Merge pull request #19138 from demeritcowboy/tabs-profile
dev/core#2233 - Fix broken tabs on profiles admin page
Seamus Lee [Mon, 7 Dec 2020 23:36:40 +0000 (10:36 +1100)]
Merge pull request #19139 from seamuslee001/dev_core_2235
[NFC] dev/core#2235 Fix url link to the OrderAPI Documenation
Seamus Lee [Mon, 7 Dec 2020 23:14:31 +0000 (10:14 +1100)]
Merge pull request #19099 from seamuslee001/ref_money_format_update
[REF] Deprecate passing a blank currecny to CRM_Utils_Money::format a…
Seamus Lee [Mon, 7 Dec 2020 19:41:43 +0000 (06:41 +1100)]
[NFC] dev/core#2235 Fix url link to the OrderAPI Documenation