Eileen McNaughton [Wed, 30 Jan 2019 20:25:56 +0000 (09:25 +1300)]
Merge pull request #13513 from colemanw/Fix
Fix undefined throwing error in CRM.checkPerm
Eileen McNaughton [Wed, 30 Jan 2019 20:24:56 +0000 (09:24 +1300)]
Merge pull request #13514 from totten/master-nack-rev
(dev/core#635) CRM_Utils_Cache::nack() - Fix format
Tim Otten [Wed, 30 Jan 2019 07:42:06 +0000 (23:42 -0800)]
Merge pull request #13298 from colemanw/extCompat
Add extension compatibility list
Tim Otten [Wed, 30 Jan 2019 05:08:23 +0000 (21:08 -0800)]
(dev/core#635) CRM_Utils_Cache::nack() - Fix format
This is a follow-up to #13500.
Before
------
* `CRM_Utils_Cache::nack()` returns an array with a value named `nack`.
* The value returned is somewhat unique -- a random value is generated once per page-view.
* There is no explicit/direct unit-test.
After
-----
* `CRM_Utils_Cache::nack()` returns a string.
* The value returned is more unique -- combining that random value (per page-view) and an offset (per invocation).
* There is an explicit/direct unit-test.
Comments
--------
* The code was originally written with the intent of returning a string.
However, there was a slight copy-paste error which caused it to return an
array (which contained that string). Functionally, that worked (because
it was serializable and met the same minimum uniqueness constraint),
but it's weird to read/inspect, and we should change quickly before
something else locks-in the odd structure.
* The more unique the nack-value is, the more correct the nack-checking
pattern is. Appending a static-counter is a simple, fast way to provide
stronger uniqueness within a page-view.
* There may be some obscure edge-cases in which the previous pattern was not
sufficiently unique -- e.g. combining tiers-of-tiers or
decorators-of-decorators. I haven't verified that, but it seems
unimportant given that the static-counter is so straightforward.
* In `NaiveHasTrait`, the extra `ht` suffix was an attempt to increase the
uniquness. However, the static-counter seems better.
Coleman Watts [Wed, 30 Jan 2019 02:36:00 +0000 (21:36 -0500)]
Fix undefined throwing error in CRM.checkPerm
Eileen McNaughton [Wed, 30 Jan 2019 02:20:55 +0000 (15:20 +1300)]
Merge pull request #13496 from totten/master-cache-tier
(dev/core#635) Implement local array-cache for use with Redis/Memcache
Tim Otten [Mon, 21 Jan 2019 10:26:23 +0000 (02:26 -0800)]
CRM_Utils_Cache::create() - Accept new option `withArray`
This adds and documents a new config option which can be passed into the cache factory.
The option, `withArray`, indicates that we prefer to have a thread-local
array acting as an extra cache-tier.
Tim Otten [Mon, 21 Jan 2019 11:06:10 +0000 (03:06 -0800)]
Implement CRM_Utils_Cache_FastArrayDecorator
Tim Otten [Mon, 21 Jan 2019 10:06:21 +0000 (02:06 -0800)]
Implement CRM_Utils_Cache_ArrayDecorator
This allows you to put a static array in front of another cache. It is the
same basic idea as CRM_Utils_Cache_Tiered, but it's optimized for a typical case
where you only want one front-cache.
Based on some naive benchmarking (performing several trials with a few
thousand duplicate reads over the same cached data), this basically cut the
read-time in half. The following is pretty representative of the results:
```
Redis-only cache write=0.1044s read=1.3266s
2-Tier (ArrayCache+Redis) write=0.1189s read=0.3765s
Decorated-Redis cache write=0.1105s read=0.1505s
```
See also: https://gist.github.com/totten/
6d6524be115c193e0704ff3cf250336d
Note: To ensure that TTL data is respected consistently regardless of how
the tiers behave and the order in which they are used, the TTL/expiration
must be stored extra times.
Tim Otten [Mon, 21 Jan 2019 09:59:48 +0000 (01:59 -0800)]
Implement CRM_Utils_Cache_Tiered
Before
------
* No way to daisy-chain caches to form a cache hierarchy
* ArrayCache::reobjectify() would fail to reobjectify objects in an array, which seems against the spirit of PSR-16
After
-----
* You can create a cache hierarchy with `new CRM_Utils_Cache_Tiered([$fastCache, $mediumCache, $slowCache])`
* ArrayCache::reobjectify() will reobjectify if it detects an object directly in an array
Note: To ensure that TTL data is respected consistently regardless of how
the tiers behave and the order in which they are used, the TTL/expiration
must be stored extra times.
Tim Otten [Wed, 23 Jan 2019 03:20:26 +0000 (19:20 -0800)]
ArrayCache::getExpires() - Add helper for unit testing
Eileen McNaughton [Wed, 30 Jan 2019 00:42:46 +0000 (13:42 +1300)]
Merge pull request #13500 from totten/master-nack
(REF) Add CRM_Utils_Cache::nack(). Use it for NaiveHasTrait.
Eileen McNaughton [Tue, 29 Jan 2019 23:32:43 +0000 (12:32 +1300)]
Merge pull request #13511 from greenpeace-cee/optimize-creditnote
CRM/Contribute - Add query optimization for creditnote_id
Patrick Figel [Tue, 29 Jan 2019 21:10:12 +0000 (22:10 +0100)]
CRM/Contribute - Add query optimization for creditnote_id
This adds a minor query optimization to createCreditNoteId() that
should significantly improve performance when contributions are
cancelled or refunded in environments with many contributions.
Monish Deb [Tue, 29 Jan 2019 19:01:26 +0000 (00:31 +0530)]
Merge pull request #13509 from ixiam/dev-duplicateCreateCreditNote
remove duplicated call to createCreditNoteId()
Luciano Spiegel [Tue, 29 Jan 2019 17:10:18 +0000 (18:10 +0100)]
remove duplicate call to createCreditNoteId()
Eileen McNaughton [Mon, 28 Jan 2019 23:36:57 +0000 (12:36 +1300)]
Merge pull request #13319 from eileenmcnaughton/cont_queries
Add selectWhere hook call to the query that generates the 'annual' query - the 'amount this year' on a contact dash
eileen [Wed, 19 Dec 2018 05:29:23 +0000 (18:29 +1300)]
Add ACL hook call and test to financial ACLs
If the hook call changes the where cause we will not implement the
core pseudo-hook-code for financial type acls.
This allows us to not conflict with reportfinancialacls extension
Eventually we will not have any of this in core other than the hook.
Eileen McNaughton [Sun, 27 Jan 2019 21:57:35 +0000 (10:57 +1300)]
Merge pull request #13501 from civicrm/5.10
5.10
Eileen McNaughton [Sun, 27 Jan 2019 21:57:07 +0000 (10:57 +1300)]
Merge pull request #13505 from mattwire/caseview_fatalerror
Display error instead of fatal error when trying to view a case that you don't have permission to access
colemanw [Fri, 25 Jan 2019 22:28:02 +0000 (17:28 -0500)]
Merge pull request #13460 from mattwire/case_getlabel_pseudoconstant
Convert deprecated OptionGroup::getLabel to PseudoConstant::getLabel for cases
Matthew Wire (MJW Consulting) [Tue, 15 Jan 2019 11:18:30 +0000 (11:18 +0000)]
Convert deprecated OptionGroup::getLabel to PseudoConstant::getLabel for case
colemanw [Fri, 25 Jan 2019 14:58:36 +0000 (09:58 -0500)]
Merge pull request #13485 from colemanw/grantTaskDate
dev/core#561 - Convert grant task form to datepicker
colemanw [Fri, 25 Jan 2019 14:54:54 +0000 (09:54 -0500)]
Merge pull request #13497 from jitendrapurohit/core-681
dev/core#681 - Fatal Error on submitting "Change Case Status" activit…
colemanw [Fri, 25 Jan 2019 14:40:25 +0000 (09:40 -0500)]
Merge pull request #13491 from colemanw/campaign
Convert Campaign widgets to entityRef
colemanw [Fri, 25 Jan 2019 14:26:07 +0000 (09:26 -0500)]
Merge pull request #13493 from colemanw/entityRefFilters
dev/core#677 EntityRef filters fixes
Matthew Wire (MJW Consulting) [Fri, 25 Jan 2019 11:58:35 +0000 (11:58 +0000)]
Show error popup and return to dashboard instead of showing fatal error page when trying to access case that you do not have permission for
Joe Murray [Thu, 24 Jan 2019 19:28:04 +0000 (14:28 -0500)]
Merge pull request #13503 from colemanw/numberWidget
Survey form - use number widget for number fields
Coleman Watts [Thu, 17 Jan 2019 19:10:00 +0000 (14:10 -0500)]
dev/core#561 - Convert grant task form to datepicker
Coleman Watts [Tue, 22 Jan 2019 14:46:41 +0000 (09:46 -0500)]
Survey form - use number widget for number fields
colemanw [Thu, 24 Jan 2019 17:34:45 +0000 (12:34 -0500)]
Merge pull request #13421 from chamilwijesooriya/issue-650
dev/core#650 Use popups for links
Joe Murray [Thu, 24 Jan 2019 17:03:30 +0000 (12:03 -0500)]
Merge pull request #13490 from colemanw/Fix
Fix broken date fields in survey response form
colemanw [Thu, 24 Jan 2019 00:14:14 +0000 (19:14 -0500)]
Merge pull request #12647 from compucorp/fix-case-type-issues
Case type management fixes
colemanw [Wed, 23 Jan 2019 22:02:25 +0000 (17:02 -0500)]
Merge pull request #13478 from pradpnayak/eventRegression
dev/core/issues/653, fixed regression on creating new event using event template
Tim Otten [Wed, 23 Jan 2019 20:52:58 +0000 (12:52 -0800)]
NaiveHasTrait - Reduce roundtrips in `has()`
The `NaiveHasTrait` is a generic implementation of PSR-16 `has()` which
builds on the logic of PSR-16 `get()`. This reduces I/O for `has()`.
Before
------
* Each call to `has()` triggers two calls to `get()`.
After
-----
* Each call to `has()` triggers one call to `get()`.
Comments
--------
The correctness of this stems from the uniqueness of the `$nack` value. To
wit: if you always use the same constant (e.g. `NULL` or `0` or `''` or
`'no-value'`) to signify a cache-miss, then it's trivial to produce a
collision/incorrect-result. (Simply store that constant.) But if the value
is a sufficiently unique nonce, then it becomes impractical to produce a
collision/incorrect-result.
Tim Otten [Wed, 23 Jan 2019 20:49:21 +0000 (12:49 -0800)]
CRM_Utils_Cache::nack() - Add helper for combining get()+has() calls in PSR-16
Monish Deb [Wed, 23 Jan 2019 10:26:21 +0000 (15:56 +0530)]
Merge pull request #13480 from pradpnayak/AdvanceSearch
dev/core/issues/506, Fatal error on advance search when using cases from display results as
Jitendra Purohit [Wed, 23 Jan 2019 09:54:23 +0000 (15:24 +0530)]
dev/core#681 - Fatal Error on submitting "Change Case Status" activity form
Pradeep Nayak [Wed, 16 Jan 2019 23:16:48 +0000 (23:16 +0000)]
dev/core/issues/653, fixed regression on creating new event using event template
Use core function to over-ride values
Tim Otten [Wed, 23 Jan 2019 00:46:02 +0000 (16:46 -0800)]
Merge pull request #13495 from seamuslee001/lab_core_676
dev/core#676 Disable GeoCoding Tests for PR jobs and re-enable Mailin…
Seamus Lee [Tue, 22 Jan 2019 19:25:53 +0000 (06:25 +1100)]
dev/core#676 Disable GeoCoding Tests for PR jobs and re-enable Mailing Test jobs for PRs previously disabled now fixed
Seamus Lee [Tue, 22 Jan 2019 19:16:27 +0000 (11:16 -0800)]
Merge pull request #13492 from pradpnayak/typoErrors
Removed '>' from comment
colemanw [Tue, 22 Jan 2019 18:33:24 +0000 (13:33 -0500)]
Merge pull request #13461 from christianwach/lab-666
Fix trailing ampersands when empty array passed as query param
Coleman Watts [Tue, 22 Jan 2019 17:35:13 +0000 (12:35 -0500)]
Hide gender & deceased filters for non-individual entityRef
Coleman Watts [Tue, 22 Jan 2019 17:02:25 +0000 (12:02 -0500)]
Fix entityRef contact type filter
Pradeep Nayak [Tue, 22 Jan 2019 17:08:48 +0000 (17:08 +0000)]
Removed '>' from comment
Coleman Watts [Tue, 22 Jan 2019 14:39:43 +0000 (09:39 -0500)]
Convert addCampaignToComponent widget to entityRef
Coleman Watts [Tue, 22 Jan 2019 14:39:39 +0000 (09:39 -0500)]
Campaign entityRef improvements
Coleman Watts [Tue, 22 Jan 2019 01:13:09 +0000 (20:13 -0500)]
Use entityRef for campaigns on Survey & Petition forms
Coleman Watts [Tue, 22 Jan 2019 01:12:30 +0000 (20:12 -0500)]
Allow entityRef widget to create campaigns
Coleman Watts [Mon, 21 Jan 2019 18:11:54 +0000 (13:11 -0500)]
Fix broken date fields in survey response form
colemanw [Mon, 21 Jan 2019 16:51:32 +0000 (11:51 -0500)]
Merge pull request #13456 from mfb/geocode-country_id
geocode job: Provide country_id to geocoders.
colemanw [Mon, 21 Jan 2019 16:49:48 +0000 (11:49 -0500)]
Merge pull request #13482 from jgillmanjr/front_contribution_page
Test-drive contribution pages to the front
colemanw [Mon, 21 Jan 2019 16:41:32 +0000 (11:41 -0500)]
Merge pull request #13427 from chamilwijesooriya/issue-652
GitLab issue 652 Copying activity file custom data doesn't copy mime …
colemanw [Mon, 21 Jan 2019 14:25:01 +0000 (09:25 -0500)]
Merge pull request #13486 from
deb1990/core-670-fix-activity-tags
(WIP) dev/core#670 - Fix Saving of Case Activity tags
Debarshi Bhaumik [Fri, 18 Jan 2019 06:36:23 +0000 (12:06 +0530)]
dev/core#670 - Fix saving of tags in case activity
colemanw [Sun, 20 Jan 2019 21:23:13 +0000 (16:23 -0500)]
Merge pull request #13437 from mattwire/ref_simplifybillingblock_template
Simplify billingblock in Contribution/Form/Main template
colemanw [Sun, 20 Jan 2019 21:19:06 +0000 (16:19 -0500)]
Merge pull request #13473 from
deb1990/C51-384-add-case-token-in-email
C51-384: Added case tokens on Email Activity Modal
colemanw [Sun, 20 Jan 2019 21:13:35 +0000 (16:13 -0500)]
Merge pull request #13457 from mattwire/contact_note
REF Remove undefined variable when creating note
colemanw [Thu, 17 Jan 2019 16:37:09 +0000 (11:37 -0500)]
Merge pull request #13481 from laryn/patch-1
Add main nav icon for CiviCRM (Backdrop)
Jason Gillman Jr [Thu, 17 Jan 2019 15:59:24 +0000 (10:59 -0500)]
Removed extra space
Monish Deb [Thu, 17 Jan 2019 14:18:30 +0000 (19:48 +0530)]
Merge pull request #13479 from pradpnayak/cruftCode
removed unwanted parameter from getLineItems()
Laryn - CEDC.org [Thu, 17 Jan 2019 05:54:55 +0000 (23:54 -0600)]
Add main nav icon for CiviCRM
(since Backdrop core now has main nav icons)
Jason Gillman Jr [Thu, 17 Jan 2019 05:51:41 +0000 (00:51 -0500)]
Specify front end (where applicable) when getNotifyUrl is called
Jason Gillman Jr [Thu, 17 Jan 2019 05:23:22 +0000 (00:23 -0500)]
Force test contribution pages to front end
Seamus Lee [Thu, 17 Jan 2019 01:13:12 +0000 (12:13 +1100)]
Merge pull request #13452 from eileenmcnaughton/depre
Deprecate unused function
Pradeep Nayak [Thu, 17 Jan 2019 01:11:23 +0000 (01:11 +0000)]
dev/core/issues/506, Fatal error on advance search when using cases from display results as
Pradeep Nayak [Thu, 17 Jan 2019 00:34:52 +0000 (00:34 +0000)]
removed unwanted parameter from getLineItems()
Eileen McNaughton [Thu, 17 Jan 2019 00:15:41 +0000 (13:15 +1300)]
Merge pull request #13317 from eileenmcnaughton/order_pseudo
Fix order api to support a pseudoConstant for financial_type_id
eileen [Wed, 19 Dec 2018 05:06:50 +0000 (18:06 +1300)]
Fix order api to support a pseudoConstant for financial_type_id
Adds functionality & test to support 'Event Fee' instead of '4' for Order.create financial_type_id.
This improves consistency with Contribution.create api and others
Eileen McNaughton [Wed, 16 Jan 2019 21:47:51 +0000 (10:47 +1300)]
Merge pull request #13474 from JMAConsulting/dev-financial-39
dev/financial#39: Drop checkMD5 support from Authorize.net
Eileen McNaughton [Wed, 16 Jan 2019 21:46:55 +0000 (10:46 +1300)]
Merge pull request #13475 from civicrm/5.10
5.10 to master
Tim Otten [Wed, 16 Jan 2019 21:42:36 +0000 (13:42 -0800)]
Merge pull request #13451 from eileenmcnaughton/everyone_510
(dev/core#660) Address regression whereby Anonymous users can no longer register for an event if they have ACLs to see a contact
Monish Deb [Wed, 16 Jan 2019 13:35:04 +0000 (19:05 +0530)]
dev/financial#39: Drop checkMD5 support from Authorize.net
Monish Deb [Wed, 16 Jan 2019 13:21:09 +0000 (18:51 +0530)]
Merge pull request #13324 from agileware/CIVICRM-947
Email sent from CiviCRM for a new Case and Activity does not evaluate the $activityTypeName or $manageCaseURL tokens
Monish Deb [Wed, 16 Jan 2019 13:20:14 +0000 (18:50 +0530)]
Merge pull request #13471 from seamuslee001/nfc_note_tests
(NFC) Add unit test of creating notes from the contact.create API
Debarshi Bhaumik [Wed, 16 Jan 2019 09:22:50 +0000 (14:52 +0530)]
C51-384: Added case tokens on Email Modal
Seamus Lee [Wed, 16 Jan 2019 06:00:19 +0000 (17:00 +1100)]
(NFC) Add unit test of creating notes from the contact.create API
Seamus Lee [Wed, 16 Jan 2019 05:17:40 +0000 (16:17 +1100)]
Merge pull request #13439 from jgillmanjr/paypal-standard-ipn-tz-fix
Convert Paypal Standard IPN payment_date to system's time zone
Monish Deb [Wed, 16 Jan 2019 04:29:38 +0000 (09:59 +0530)]
Merge pull request #13442 from eileenmcnaughton/paymen_line
Remove inappropriate exception handling.
Eileen McNaughton [Wed, 16 Jan 2019 01:48:18 +0000 (14:48 +1300)]
Merge pull request #13466 from colemanw/tsFix
Translate untranslated string
Eileen McNaughton [Tue, 15 Jan 2019 23:21:40 +0000 (12:21 +1300)]
Merge pull request #13458 from mattwire/unused_var_caseformcustomdata
REF Remove duplicate call to session singleton
colemanw [Tue, 15 Jan 2019 22:46:06 +0000 (17:46 -0500)]
Merge pull request #13453 from eileenmcnaughton/report_tpl
Escape the header title & section title in reports to better support extensions
colemanw [Tue, 15 Jan 2019 22:40:52 +0000 (17:40 -0500)]
Merge pull request #13465 from mlutfy/setLocale
setLocale: precaution for when setLocale is called on an unilingual site
Coleman Watts [Tue, 15 Jan 2019 22:30:33 +0000 (17:30 -0500)]
Translate untranslated string
Alok Patel [Fri, 12 Oct 2018 06:16:14 +0000 (11:46 +0530)]
Activity emails: Fix activityTypeName template var & fix priority_id label
Seamus Lee [Tue, 15 Jan 2019 19:52:18 +0000 (06:52 +1100)]
Merge pull request #13455 from eileenmcnaughton/payment_email_test
Add unit test for emailing receipts from additional payment page
Mathieu Lutfy [Tue, 15 Jan 2019 19:14:53 +0000 (14:14 -0500)]
setLocale: precaution for when setLocale is called on an unilingual site
Christian Wach [Tue, 15 Jan 2019 12:28:17 +0000 (12:28 +0000)]
Fix trailing ampersands when empty array passed as query param
Matthew Wire (MJW Consulting) [Tue, 15 Jan 2019 11:02:08 +0000 (11:02 +0000)]
Remove undefined variable when creating note
Matthew Wire (MJW Consulting) [Tue, 15 Jan 2019 10:48:11 +0000 (10:48 +0000)]
Remove duplicate call to session singleton
eileen [Tue, 15 Jan 2019 00:48:18 +0000 (13:48 +1300)]
Remove foreign key on civicrm_acl_contact_id.user_id.
This won't actually remove it from installs - we need to address that separately via ensuring people can and do run
the System.updateIndices api call but it removes it from new installs and from
tests, hence the test should pass
eileen [Mon, 14 Jan 2019 23:48:36 +0000 (12:48 +1300)]
Fix mishandling / loss of check_permission flag
eileen [Mon, 14 Jan 2019 23:44:50 +0000 (12:44 +1300)]
Add test to demonstrate fatal error when accessing permitted users that are cached using the acl_cache.
This has arisen during investigation of a possible regression - it turns out that if you give the 'everyone' group
access to a contact using ACLs (or hooks I believe) they get a fatal error on any attempt at event or other registration.
The issue is that when attempting to check for duplicates the call is made using check_permission. This in itself is a possible
regression as the CRM_Dedupe_Finder::dupesByParams function now drops the check_permission key when it is equal to 0 from
https://github.com/civicrm/civicrm-core/commit/
4f33e78b901fb7cdb38a3026f88b59a2f9fd2c68
So we have an issue that
1) we are now applying check_permission when doing a dupe_check from front end forms - this probably is resulting in 5.9
sites getting too many duplicates are they would always be null for anon users
2) if we DO do a permissions check when an acl or hook has been used to give anon users permission to access
contacts then they will get a fatal error. This is because it sets contact_id to 0 and attempts to insert it into the
acl_contact_cache.
I think we need to either remove the array_filter line that we think we may not need per code comments
or add specific handling for the check_permission flag
AND drop the foreign key constraint on the civicm_acl_contact_cache table. This means they will
no longer be removed when a contact is deleted but this is a clean up issue rather than one with
functionaly implications & we *should* have some form of cleanup in play on that table. In addition,
removing the constraint will reduce write contention
mark burdett [Tue, 15 Jan 2019 08:11:38 +0000 (00:11 -0800)]
geocode job: Provide country_id to geocoders.
eileen [Tue, 15 Jan 2019 05:44:19 +0000 (18:44 +1300)]
Add unit test for payment email from AdditionalPayment form, rationalise some parameters to do this.
Note that the goal is to move this function off this class to somewhere api accessible so breaking the connections
with the form makes sense & in fact some like the fromEmails handling are really just badly copied & pasted from elsewhere
(ie. the fromEmailIds doesn't exist & is created on the fly to house the email being passed in
Seamus Lee [Tue, 15 Jan 2019 03:16:03 +0000 (14:16 +1100)]
Merge pull request #13444 from eileenmcnaughton/payment_smarty
[REF] Replace ->assign with CRM_Core_Smarty::singleton()->assign in preparation for making function shareable
eileen [Tue, 15 Jan 2019 02:43:34 +0000 (15:43 +1300)]
Escape the header title & section title in reports.
In extended reports I'm making it possible for column titles to be user edited. since they will represent user input it
makes sense to escape on output. I think core makes sense as the place to do this as it is best practice
to escape all output in the smarty layer and I have tested that it still works fine
eileen [Mon, 14 Jan 2019 10:39:48 +0000 (23:39 +1300)]
Deprecate unused function
Eileen McNaughton [Mon, 14 Jan 2019 23:05:52 +0000 (12:05 +1300)]
Merge pull request #13450 from civicrm/5.10
5.10 to master