function acquia_connector_test_credentials in Acquia Connector 7.2
Same name and namespace in other branches
- 7.3 acquia_agent/tests/acquia_connector_test.module \acquia_connector_test_credentials()
1 call to acquia_connector_test_credentials()
- acquia_connector_test_xmlrpc_server_emulator in acquia_agent/
tests/ acquia_connector_test.module
1 string reference to 'acquia_connector_test_credentials'
- acquia_connector_test_xmlrpc in acquia_agent/
tests/ acquia_connector_test.module
File
- acquia_agent/
tests/ acquia_connector_test.module, line 191 - Test endpoint for Acquia Connector XML-RPC calls.
Code
function acquia_connector_test_credentials($data) {
$fields = array(
'time' => 'is_numeric',
'nonce' => 'is_string',
'hash' => 'is_string',
);
$result = acquia_connector_test_basic_authenticator($fields, $data);
if (!empty($result->is_error)) {
return $result;
}
if (!empty($data['body']['email'])) {
$account = user_load_by_mail($data['body']['email']);
if (empty($account) || $account->uid == 0) {
return xmlrpc_error(ACQSUBSCRIPTION_VALIDATION_ERROR, t('Account not found'));
}
}
else {
return xmlrpc_error(ACQSUBSCRIPTION_VALIDATION_ERROR, t('Invalid arguments'));
}
$hash = _acquia_agent_hmac($account->pass, $data['authenticator']['time'], $data['authenticator']['nonce'], $data['body']);
if ($hash === $data['authenticator']['hash']) {
$result = array();
$result['is_error'] = FALSE;
$result['body']['subscription'][] = array(
'identifier' => ACQTEST_ID,
'key' => ACQTEST_KEY,
'name' => ACQTEST_ID,
);
return $result;
}
else {
return xmlrpc_error(ACQSUBSCRIPTION_VALIDATION_ERROR, t('Incorrect password.'));
}
}