Skip to content
Snippets Groups Projects
Verified Commit 072d718a authored by Kevin Cristiano's avatar Kevin Cristiano :earth_americas:
Browse files

civicrm 5.10.1 release


full cleanup

Signed-off-by: default avatarKevin Cristiano <kcristiano@kcristiano.com>
parent 502513d5
No related branches found
No related tags found
No related merge requests found
Showing
with 131 additions and 179 deletions
File moved
# Contacts
* [ ] Create a Contact
* [ ] Edit a Contact
* [ ] Create an Organization
* [ ] Assign a Contact to an Organization
* [ ] Add an Activity
* [ ] Create and Send Email to a Contact
* [ ] Create a Group and Assign a Contact to Group
* [ ] Create Tags, Tag Sets
* [ ] Find and Merge Duplicate Contacts
# Contributions
* [ ] Add a new Contribution
* [ ] Add a Contribution via a Page
* [ ] Add a new Contribution Page (Title tab)
* [ ] Add a new Contribution Page (Amounts tab)
* [ ] Add a new Contribution Page (Memberships tab)
* [ ] Add a new Contribution Page (Receipts and Tell a Friend tabs)
* [ ] Add a new Contribution Page (Profiles tab)
* [ ] Add a new Contribution Page (Premiums tab)
* [ ] Add a New Contribution Page (Personal Campaigns tab)
* [ ] Add a new Pledge
* [ ] Add a Premium
# Membership
* [ ] Add a Membership Price Set
* [ ] Add a new membership Contribution Page -- All Tabs
* [ ] Add a Price set with both Public and Admin visibility on line items
* [ ] Add a Premium
* [ ] Complete Membership - test with attention to public and private line items
* [ ] Renew Membership Admin
* [ ] Renew Membership Front End
* [ ] Edit Membership back end
* [ ] Review Bookkeeping Report
# Events
* [ ] Event Creation
* [ ] Add a Price set with line items of both Public and Admin visibility
* [ ] Event Registration - test with attention to Public/Admin visibility
* [ ] Event Confirmation
# Price Sets
* [ ] Add a new Price Set (Memberships)
* [ ] Add a new Price Set (Contributions)
* [ ] Add a new Price Set (Events)
# Search
* [ ] Find Contacts
* [ ] Find Activities
* [ ] Find Contributions
* [ ] Find Memberships
* [ ] Find Participants
* [ ] Export above search Results
# Mail
* [ ] Create and Send CiviMail
* [ ] Track Open
* [ ] Track Links
\ No newline at end of file
......@@ -2,11 +2,10 @@
/*
Plugin Name: CiviCRM
Description: CiviCRM - Growing and Sustaining Relationships
Version: 5.10.0
Version: 5.10.1
Author: CiviCRM LLC
Author URI: https://civicrm.org/
Plugin URI: https://wiki.civicrm.org/confluence/display/CRMDOC/Installing+CiviCRM+for+WordPress
GitHub Plugin URI: https://github.com/tadpolecc/civicrm.git
License: AGPL3
Text Domain: civicrm
Domain Path: /languages
......
CiviCRM is a community-driven open-source project. It has a small, full-time
[core team](https://civicrm.org/core-team)
which facilitates development and works on critical issues.
Additionally, a large community of active contributors and
[partner organizations](https://civicrm.org/partners-contributors)
drive much of the development work.
For developers, CiviCRM maintains a comprehensive
[Developer Guide](https://docs.civicrm.org/dev/en/latest).
Topics of particular importance while submitting pull requests include:
* [Contributing to CiviCRM core](https://docs.civicrm.org/dev/en/latest/core/contributing/)
* [Pull requests](https://docs.civicrm.org/dev/en/latest/tools/git/#pr)
* [Git workflow overview](https://docs.civicrm.org/dev/en/latest/tools/git/#contributing)
* [Writing automated tests](https://docs.civicrm.org/dev/en/latest/testing/setup/)
* [Jenkins continuous integration](https://docs.civicrm.org/dev/en/latest/tools/jenkins/)
* [Release Process](https://docs.civicrm.org/dev/en/latest/core/release-process/)
* [Developer Community](https://docs.civicrm.org/dev/en/latest/basics/community/)
CiviCRM thanks you for your contributions and invites you to [log your time spent](https://civicrm.org/contributor-log) so that you (or your organization) may receive public recognition and promotion for your efforts.
Overview
----------------------------------------
_A brief description of the pull request. Try to keep it non-technical._
Before
----------------------------------------
_The current status. Please provide screenshots or gifs ([LICEcap](http://www.cockos.com/licecap/), [SilentCast](https://github.com/colinkeenan/silentcast)) where appropriate._
After
----------------------------------------
_What has been changed. Please provide screenshots or gifs ([LICEcap](http://www.cockos.com/licecap/), [SilentCast](https://github.com/colinkeenan/silentcast)) where appropriate._
Technical Details
----------------------------------------
_If the PR introduces noteworthy technical changes, please describe them here. Provide code snippets if necessary_
Comments
----------------------------------------
_Anything else you would like the reviewer to note_
*~
*.bak
.use-civicrm-setup
/ext/
backdrop/
bower_components
CRM/Case/xml/configuration
CRM/Core/DAO/.listAll.php
CRM/Core/DAO/listAll.php
bin/setup.conf
civicrm-version.txt
civicrm.config.php
node_modules
settings_location.php
sql/case_sample.mysql
sql/civicrm.mysql
sql/civicrm_acl.??_??.mysql
sql/civicrm_acl.mysql
sql/civicrm_data.??_??.mysql
sql/civicrm_data.mysql
sql/civicrm_drop.mysql
sql/civicrm_navigation.mysql
sql/civicrm_sample.mysql
tests/phpunit/CiviTest/CiviSeleniumSettings.php
tests/phpunit/CiviTest/civicrm.settings.php
tools/stats/config.php
authors.txt
drupal/
WordPress
joomla
packages/
tests/output
tests/phpunit/CiviTest/civicrm.settings.local.php
tests/phpunit/CiviTest/truncate.xml
tools/scripts/releaser/releaser.conf
tools/tests/reports/logfile.tap
tools/tests/reports/testdox.html
tools/tests/reports/testdox.txt
l10n
vendor
civicrm.settings.php
sql/dummy_processor.mysql
distmaker/distmaker.conf
distmaker/out
/tmp
......@@ -699,7 +699,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
}
// add various dates
$this->addField('receive_date', array('entity' => 'contribution'), TRUE, FALSE);
$this->addField('receive_date', array('entity' => 'contribution'), !$this->_mode, FALSE);
$this->addField('receipt_date', array('entity' => 'contribution'), FALSE, FALSE);
$this->addField('cancel_date', array('entity' => 'contribution', 'label' => ts('Cancelled / Refunded Date')), FALSE, FALSE);
......
......@@ -298,7 +298,13 @@ class CRM_Contribute_Form_Task_Invoice extends CRM_Contribute_Form_Task {
$invoiceDate = date("F j, Y");
$dueDate = date('F j, Y', strtotime($contributionReceiveDate . "+" . $prefixValue['due_date'] . "" . $prefixValue['due_date_period']));
$lineItem = CRM_Price_BAO_LineItem::getLineItemsByContributionID($contribID);
if ($input['component'] == 'contribute') {
$lineItem = CRM_Price_BAO_LineItem::getLineItemsByContributionID($contribID);
}
else {
$eid = $contribution->_relatedObjects['participant']->id;
$lineItem = CRM_Price_BAO_LineItem::getLineItems($eid, 'participant', NULL, TRUE, FALSE, TRUE);
}
$resultPayments = civicrm_api3('Payment', 'get', array(
'sequential' => 1,
......
......@@ -171,6 +171,12 @@ class CRM_Core_Payment_AuthorizeNet extends CRM_Core_Payment {
// fetch available contribution statuses
$contributionStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
// check gateway MD5 response
if (!$this->checkMD5($response_fields[37], $response_fields[6], $response_fields[9])) {
$params['payment_status_id'] = array_search('Failed', $contributionStatus);
return self::error(9003, 'MD5 Verification failed');
}
// check for application errors
// TODO:
// AVS, CVV2, CAVV, and other verification results
......@@ -431,6 +437,39 @@ class CRM_Core_Payment_AuthorizeNet extends CRM_Core_Payment {
}
}
/**
* Check the gateway MD5 response to make sure that this is a proper
* gateway response
*
* @param string $responseMD5
* MD5 hash generated by the gateway.
* @param string $transaction_id
* Transaction id generated by the gateway.
* @param string $amount
* Purchase amount.
*
* @param bool $ipn
*
* @return bool
*/
public function checkMD5($responseMD5, $transaction_id, $amount, $ipn = FALSE) {
// cannot check if no MD5 hash
$md5Hash = $this->_getParam('md5Hash');
if (empty($md5Hash)) {
return TRUE;
}
$loginid = $this->_getParam('apiLogin');
$hashString = $ipn ? ($md5Hash . $transaction_id . $amount) : ($md5Hash . $loginid . $transaction_id . $amount);
$result = strtoupper(md5($hashString));
if ($result == $responseMD5) {
return TRUE;
}
else {
return FALSE;
}
}
/**
* Calculate and return the transaction fingerprint.
*
......
......@@ -164,6 +164,8 @@ class CRM_Core_Payment_AuthorizeNetIPN extends CRM_Core_Payment_BaseIPN {
$objects['contribution']->total_amount = $input['amount'];
$objects['contribution']->trxn_id = $input['trxn_id'];
$this->checkMD5($paymentProcessorObject, $input);
$isFirstOrLastRecurringPayment = FALSE;
if ($input['response_code'] == 1) {
// Approved
......@@ -357,4 +359,25 @@ INNER JOIN civicrm_membership_payment mp ON m.id = mp.membership_id AND mp.contr
return $value;
}
/**
* Check and validate gateway MD5 response if present.
*
* @param CRM_Core_Payment_AuthorizeNet $paymentObject
* @param array $input
*
* @throws CRM_Core_Exception
*/
public function checkMD5($paymentObject, $input) {
if (empty($input['trxn_id'])) {
// For decline we have nothing to check against.
return;
}
if (!$paymentObject->checkMD5($input['MD5_Hash'], $input['trxn_id'], $input['amount'], TRUE)) {
$message = "Failure: Security verification failed";
$log = new CRM_Utils_SystemLogger();
$log->error('payment_notification', array('message' => $message, 'input' => $input));
throw new CRM_Core_Exception($message);
}
}
}
......@@ -769,10 +769,7 @@ WHERE li.contribution_id = %1";
));
unset($updateFinancialItemInfoValues['financialTrxn']);
}
elseif ($newFinancialItem->amount != 0 && (// bug in EntityFinancialTrxn.create API which doesn't recognize 0 amount
!empty($updateFinancialItemInfoValues['link-financial-trxn']) ||
in_array($contributionStatus, ['Pending refund', 'Partially paid'])
)) {
elseif (!empty($updateFinancialItemInfoValues['link-financial-trxn']) && $newFinancialItem->amount != 0) {
civicrm_api3('EntityFinancialTrxn', 'create', array(
'entity_id' => $newFinancialItem->id,
'entity_table' => 'civicrm_financial_item',
......
{* file to handle db changes in 5.10.1 during upgrade *}
......@@ -815,13 +815,11 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
$contactCreated = 0;
$contactMatching = 0;
// previously used $wpdb - which means WordPress *must* be bootstrapped
$wpUsers = get_users(array(
'blog_id' => get_current_blog_id(),
'number' => -1,
));
global $wpdb;
$wpUserIds = $wpdb->get_col("SELECT $wpdb->users.ID FROM $wpdb->users");
foreach ($wpUsers as $wpUserData) {
foreach ($wpUserIds as $wpUserId) {
$wpUserData = get_userdata($wpUserId);
$contactCount++;
if ($match = CRM_Core_BAO_UFMatch::synchronizeUFMatch($wpUserData,
$wpUserData->$id,
......
<?php
/** @deprecated */
function civicrmVersion( ) {
return array( 'version' => '5.10.0',
return array( 'version' => '5.10.1',
'cms' => 'Wordpress',
'revision' => '' );
}
......
# CiviCRM 5.10.1
Released February 12, 2019
- **[Synopsis](#synopsis)**
- **[Bugs resolved](#bugs)**
- **[Credits](#credits)**
- **[Feedback](#feedback)**
## <a name="synopsis"></a>Synopsis
| *Does this version...?* | |
|:--------------------------------------------------------------- |:-------:|
| Fix security vulnerabilities? | no |
| Change the database schema? | no |
| Alter the API? | no |
| Require attention to configuration options? | no |
| Fix problems installing or upgrading to a previous version? | no |
| Introduce features? | no |
| **Fix bugs?** | **yes** |
## <a name="bugs"></a>Bugs resolved
- **[13570](https://github.com/civicrm/civicrm-core/pull/13570) Fix Regression
where recieve date field being required broke backend credit card contribution
form**
To fix another problem the receive date field was made a required field, this
subsequently broke the back office credit card form as the receive date isn't
exposed on that form.
## <a name="credits"></a>Credits
This release was developed by the following authors and reviewers:
Wikimedia Foundation - Eileen McNaughton; CiviCRM - Tim
Otten; Australian Greens - Seamus Lee
## <a name="feedback"></a>Feedback
These release notes are edited by Tim Otten and Andrew Hunt. If you'd like to
provide feedback on them, please login to https://chat.civicrm.org/civicrm and
contact `@agh1`.
......@@ -24043,4 +24043,4 @@ INSERT INTO `civicrm_report_instance`
( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
VALUES
( @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}');
UPDATE civicrm_domain SET version = '5.10.0';
UPDATE civicrm_domain SET version = '5.10.1';
......@@ -399,7 +399,7 @@ UNLOCK TABLES;
 
LOCK TABLES `civicrm_domain` WRITE;
/*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */;
INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `config_backend`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,NULL,'5.10.0',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}');
INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `config_backend`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,NULL,'5.10.1',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}');
/*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */;
UNLOCK TABLES;
 
cividiscount
civisualize
civivolunteer
org.civicoop.civirules
org.civicrm.angularprofiles
......@@ -4,4 +4,4 @@
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit74db121d2bef062e09584e1afca7e69c::getLoader();
return ComposerAutoloaderInit4475206d531e7b9a0504d26f121dc3c4::getLoader();
......@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInit74db121d2bef062e09584e1afca7e69c
class ComposerAutoloaderInit4475206d531e7b9a0504d26f121dc3c4
{
private static $loader;
......@@ -19,9 +19,9 @@ class ComposerAutoloaderInit74db121d2bef062e09584e1afca7e69c
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInit74db121d2bef062e09584e1afca7e69c', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit4475206d531e7b9a0504d26f121dc3c4', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInit74db121d2bef062e09584e1afca7e69c', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit4475206d531e7b9a0504d26f121dc3c4', 'loadClassLoader'));
$includePaths = require __DIR__ . '/include_paths.php';
$includePaths[] = get_include_path();
......@@ -31,7 +31,7 @@ class ComposerAutoloaderInit74db121d2bef062e09584e1afca7e69c
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit74db121d2bef062e09584e1afca7e69c::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit4475206d531e7b9a0504d26f121dc3c4::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
......@@ -52,19 +52,19 @@ class ComposerAutoloaderInit74db121d2bef062e09584e1afca7e69c
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInit74db121d2bef062e09584e1afca7e69c::$files;
$includeFiles = Composer\Autoload\ComposerStaticInit4475206d531e7b9a0504d26f121dc3c4::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire74db121d2bef062e09584e1afca7e69c($fileIdentifier, $file);
composerRequire4475206d531e7b9a0504d26f121dc3c4($fileIdentifier, $file);
}
return $loader;
}
}
function composerRequire74db121d2bef062e09584e1afca7e69c($fileIdentifier, $file)
function composerRequire4475206d531e7b9a0504d26f121dc3c4($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment