public function NspiController::getCredentials in Acquia Connector 8
Same name and namespace in other branches
- 8.2 tests/modules/src/Controller/NspiController.php \Drupal\acquia_connector_test\Controller\NspiController::getCredentials()
- 3.x tests/modules/src/Controller/NspiController.php \Drupal\acquia_connector_test\Controller\NspiController::getCredentials()
Test returns subscriptions for an email.
Parameters
\GuzzleHttp\Psr7\Request $request: Request.
Return value
\GuzzleHttp\Psr7\Response JsonResponse.
File
- tests/
modules/ src/ Controller/ NspiController.php, line 407
Class
- NspiController
- Class NspiController.
Namespace
Drupal\acquia_connector_test\ControllerCode
public function getCredentials(Request $request) {
$data = json_decode($request
->getBody(), TRUE);
$fields = [
'time' => 'is_numeric',
'nonce' => 'is_string',
'hash' => 'is_string',
];
$result = $this
->basicAuthenticator($fields, $data);
if (!empty($result['error'])) {
return new Response(self::ACQTEST_SUBSCRIPTION_SERVICE_UNAVAILABLE, [], $result);
}
if (!empty($data['body']['email'])) {
$account = user_load_by_mail($data['body']['email']);
$this
->getLogger('getCredentials password')
->debug($account
->getPassword());
if (empty($account) || $account
->isAnonymous()) {
return new Response(self::ACQTEST_SUBSCRIPTION_SERVICE_UNAVAILABLE, [], json_encode($this
->errorResponse(self::ACQTEST_SUBSCRIPTION_VALIDATION_ERROR, $this
->t('Account not found'))));
}
}
else {
return new Response(self::ACQTEST_SUBSCRIPTION_SERVICE_UNAVAILABLE, [], json_encode($this
->errorResponse(self::ACQTEST_SUBSCRIPTION_VALIDATION_ERROR, $this
->t('Invalid arguments'))));
}
$hash = CryptConnector::acquiaHash($account
->getPassword(), $data['authenticator']['time'] . ':' . $data['authenticator']['nonce']);
if ($hash === $data['authenticator']['hash']) {
$result = [];
$result['is_error'] = FALSE;
$result['body']['subscription'][] = [
'identifier' => self::ACQTEST_ID,
'key' => self::ACQTEST_KEY,
'name' => self::ACQTEST_ID,
];
return new Response(200, [], json_encode($result));
}
else {
return new Response(self::ACQTEST_SUBSCRIPTION_SERVICE_UNAVAILABLE, [], json_encode($this
->errorResponse(self::ACQTEST_SUBSCRIPTION_VALIDATION_ERROR, $this
->t('Incorrect password.'))));
}
}