Skip to content
Snippets Groups Projects
Commit 20c0dc69 authored by mattwire's avatar mattwire
Browse files

Update system checks and recommend sweetalert

parent 4a34ffa5
No related branches found
No related tags found
1 merge request!1146.4.1
...@@ -26,10 +26,14 @@ class CRM_Stripe_Check { ...@@ -26,10 +26,14 @@ class CRM_Stripe_Check {
* @var string * @var string
*/ */
const MIN_VERSION_MJWSHARED = '0.8'; const MIN_VERSION_MJWSHARED = '0.8';
const MIN_VERSION_SWEETALERT = '1.2';
public static function checkRequirements(&$messages) { public static function checkRequirements(&$messages) {
// mjwshared: required. Requires min version
$extensionName = 'mjwshared';
$extensions = civicrm_api3('Extension', 'get', [ $extensions = civicrm_api3('Extension', 'get', [
'full_name' => "mjwshared", 'full_name' => $extensionName,
]); ]);
if (empty($extensions['id']) || ($extensions['values'][$extensions['id']]['status'] !== 'installed')) { if (empty($extensions['id']) || ($extensions['values'][$extensions['id']]['status'] !== 'installed')) {
...@@ -41,23 +45,30 @@ class CRM_Stripe_Check { ...@@ -41,23 +45,30 @@ class CRM_Stripe_Check {
'fa-money' 'fa-money'
); );
} }
self::requireExtensionMinVersion($messages, $extensionName, CRM_Stripe_Check::MIN_VERSION_MJWSHARED, $extensions['values'][$extensions['id']]['version']);
// mjwshared: Recommended
$extensionName = 'firewall';
$extensions = civicrm_api3('Extension', 'get', [
'full_name' => $extensionName,
]);
if (version_compare($extensions['values'][$extensions['id']]['version'], CRM_Stripe_Check::MIN_VERSION_MJWSHARED) === -1) { if (empty($extensions['id']) || ($extensions['values'][$extensions['id']]['status'] !== 'installed')) {
$messages[] = new CRM_Utils_Check_Message( $messages[] = new CRM_Utils_Check_Message(
'stripe_requirements', 'stripe_recommended',
E::ts('The Stripe extension requires the mjwshared extension version %1 or greater but your system has version %2.', E::ts('If you are using Stripe to accept payments on public forms (eg. contribution/event registration forms) it is recommended that you install the <strong><a href="https://lab.civicrm.org/extensions/firewall">firewall</a></strong> extension.
[ Some sites have become targets for spammers who use the payment endpoint to try and test credit cards by submitting invalid payments to your Stripe account.'),
1 => CRM_Stripe_Check::MIN_VERSION_MJWSHARED, E::ts('Recommended Extension: firewall'),
2 => $extensions['values'][$extensions['id']]['version'] \Psr\Log\LogLevel::NOTICE,
]), 'fa-lightbulb-o'
E::ts('Stripe: Missing Requirements'),
\Psr\Log\LogLevel::ERROR,
'fa-money'
); );
} }
// sweetalert: recommended. If installed requires min version
$extensionName = 'sweetalert';
$extensions = civicrm_api3('Extension', 'get', [ $extensions = civicrm_api3('Extension', 'get', [
'full_name' => 'firewall', 'full_name' => $extensionName,
]); ]);
if (empty($extensions['id']) || ($extensions['values'][$extensions['id']]['status'] !== 'installed')) { if (empty($extensions['id']) || ($extensions['values'][$extensions['id']]['status'] !== 'installed')) {
...@@ -70,6 +81,31 @@ class CRM_Stripe_Check { ...@@ -70,6 +81,31 @@ class CRM_Stripe_Check {
'fa-lightbulb-o' 'fa-lightbulb-o'
); );
} }
self::requireExtensionMinVersion($messages, $extensionName, CRM_Stripe_Check::MIN_VERSION_SWEETALERT, $extensions['values'][$extensions['id']]['version']);
}
/**
* @param array $messages
* @param string $extensionName
* @param string $minVersion
* @param string $actualVersion
*/
private static function requireExtensionMinVersion(&$messages, $extensionName, $minVersion, $actualVersion) {
if (version_compare($actualVersion, $minVersion) === -1) {
$messages[] = new CRM_Utils_Check_Message(
'stripe_requirements',
E::ts('The Stripe extension requires the %1 extension version %2 or greater but your system has version %3.',
[
1 => $extensionName,
2 => $minVersion,
3 => $actualVersion
]),
E::ts('Stripe: Missing Requirements'),
\Psr\Log\LogLevel::ERROR,
'fa-money'
);
}
} }
} }
...@@ -24,6 +24,8 @@ Where: ...@@ -24,6 +24,8 @@ Where:
* civicrmStripeConfirm.js is now a library available at CRM.payment.confirm and builds on CRM.payment. * civicrmStripeConfirm.js is now a library available at CRM.payment.confirm and builds on CRM.payment.
* Initial support for \Civi\Payment\PropertyBag. * Initial support for \Civi\Payment\PropertyBag.
* Improve handling of network errors when loading Stripe elements and add a new jquery event: *crmBillingFormReloadFailed*. * Improve handling of network errors when loading Stripe elements and add a new jquery event: *crmBillingFormReloadFailed*.
* Improve user notifications during pre-authentication and confirmation.
* Add check for recommended SweetAlert extension.
## Release 6.4 ## Release 6.4
**This release REQUIRES that you upgrade mjwshared to 0.7 and your Stripe API version must be 2019-12-03 or newer.** **This release REQUIRES that you upgrade mjwshared to 0.7 and your Stripe API version must be 2019-12-03 or newer.**
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
<author>Matthew Wire (MJW Consulting)</author> <author>Matthew Wire (MJW Consulting)</author>
<email>mjw@mjwconsult.co.uk</email> <email>mjw@mjwconsult.co.uk</email>
</maintainer> </maintainer>
<releaseDate>2020-06-06</releaseDate> <releaseDate>2020-06-08</releaseDate>
<version>6.4.1-beta2</version> <version>6.4.1-beta3</version>
<develStage>beta</develStage> <develStage>beta</develStage>
<compatibility> <compatibility>
<ver>5.24</ver> <ver>5.24</ver>
......
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