Add premium key verification
[MAILPOET-5131]
This commit is contained in:
committed by
Aschepikov
parent
c0eed5b919
commit
fb93c73a34
@ -283,6 +283,11 @@ class Services extends APIEndpoint {
|
||||
return $this->checkMSSKey(['key' => $key]);
|
||||
}
|
||||
|
||||
public function refreshPremiumKeyStatus() {
|
||||
$key = $this->settings->get('premium.premium_key');
|
||||
return $this->checkPremiumKey(['key' => $key]);
|
||||
}
|
||||
|
||||
private function isItemInArray($item, $array): bool {
|
||||
return in_array($item, $array, true);
|
||||
}
|
||||
|
@ -512,6 +512,7 @@ class Settings extends APIEndpoint {
|
||||
'signup_confirmation' => [
|
||||
'enabled' => '1',
|
||||
],
|
||||
'premium.premium_key' => $apiKey,
|
||||
];
|
||||
return $this->set($new_settings);
|
||||
}
|
||||
|
@ -103,6 +103,14 @@ class DotcomLicenseProvisioner {
|
||||
return new WP_Error('Provisioning failed activating the data', $this->concatMessages($response));
|
||||
}
|
||||
|
||||
$response = $this->services->refreshPremiumKeyStatus();
|
||||
if ($response instanceof ErrorResponse) {
|
||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_PROVISIONING)->error(
|
||||
'Refreshing Premium key failed',
|
||||
['$response' => $response]
|
||||
);
|
||||
return new WP_Error('Provisioning failed activating the data', $this->concatMessages($response));
|
||||
}
|
||||
|
||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_PROVISIONING)->info(
|
||||
'License was provisioned'
|
||||
|
@ -73,7 +73,7 @@ class DotcomLicenseProvisionerTest extends \MailPoetTest {
|
||||
expect($error->get_error_message())->equals('some-error ');
|
||||
}
|
||||
|
||||
public function testItReturnsTrueIfCouldNotRefreshKey() {
|
||||
public function testItReturnsErrorIfCouldNotRefreshKey() {
|
||||
$result = false;
|
||||
$payload = ['apiKey' => 'some-key'];
|
||||
$eventType = DotcomLicenseProvisioner::EVENT_TYPE_PROVISION_LICENSE;
|
||||
@ -90,6 +90,27 @@ class DotcomLicenseProvisionerTest extends \MailPoetTest {
|
||||
expect($error->get_error_message())->equals('some-error ');
|
||||
}
|
||||
|
||||
public function testItReturnsErrorIfCouldNotVerifyPremiumKey() {
|
||||
$result = false;
|
||||
$payload = ['apiKey' => 'some-key'];
|
||||
$eventType = DotcomLicenseProvisioner::EVENT_TYPE_PROVISION_LICENSE;
|
||||
$provisioner = $this->construct(
|
||||
DotcomLicenseProvisioner::class,
|
||||
[
|
||||
$this->diContainer->get(LoggerFactory::class),
|
||||
$this->make(Settings::class, ['setupMSS' => new SuccessResponse()]),
|
||||
$this->make(Services::class,
|
||||
[
|
||||
'refreshMSSKeyStatus' => new SuccessResponse(),
|
||||
'refreshPremiumKeyStatus' => new ErrorResponse(['error' => 'some-error']),
|
||||
]),
|
||||
],
|
||||
['isAtomicPlatform' => true]);
|
||||
$error = $provisioner->provisionLicense($result, $payload, $eventType);
|
||||
$this->assertInstanceOf(\WP_Error::class, $error);
|
||||
expect($error->get_error_message())->equals('some-error ');
|
||||
}
|
||||
|
||||
public function testItReturnsTrueIfKeyProvidedMSSActivatedAndRefreshed() {
|
||||
$result = false;
|
||||
$payload = ['apiKey' => 'some-key'];
|
||||
@ -99,7 +120,11 @@ class DotcomLicenseProvisionerTest extends \MailPoetTest {
|
||||
[
|
||||
$this->diContainer->get(LoggerFactory::class),
|
||||
$this->make(Settings::class, ['setupMSS' => new SuccessResponse()]),
|
||||
$this->make(Services::class, ['refreshMSSKeyStatus' => new SuccessResponse()]),
|
||||
$this->make(Services::class,
|
||||
[
|
||||
'refreshMSSKeyStatus' => new SuccessResponse(),
|
||||
'refreshPremiumKeyStatus' => new SuccessResponse(),
|
||||
]),
|
||||
],
|
||||
['isAtomicPlatform' => true]);
|
||||
$result = $provisioner->provisionLicense($result, $payload, $eventType);
|
||||
|
Reference in New Issue
Block a user