Don't clear cert ID if static properties change; updates to DDV

This commit is contained in:
Zach Fox 2017-10-06 17:12:40 -07:00
parent 59a6726af6
commit c70ee6055f
2 changed files with 34 additions and 38 deletions

View file

@ -431,39 +431,47 @@ void EntityServer::startDynamicDomainVerification() {
while (i.hasNext()) { while (i.hasNext()) {
i.next(); i.next();
QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); if (!tree->findEntityByEntityItemID(i.value())->verifyStaticCertificateProperties()) {
QNetworkRequest networkRequest; qCDebug(entities) << "During Dynamic Domain Verification, a certified entity with ID" << i.value() << "failed"
networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); << "static certificate verification.";
QUrl requestURL = NetworkingConstants::METAVERSE_SERVER_URL; // Delete the entity if it doesn't pass static certificate verification
requestURL.setPath("/api/v1/commerce/proof_of_purchase_status"); tree->deleteEntity(i.value(), true);
QJsonObject request; } else {
request["certificate_id"] = i.key();
networkRequest.setUrl(requestURL);
QNetworkReply* networkReply = NULL; QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
networkReply = networkAccessManager.get(networkRequest); QNetworkRequest networkRequest;
networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
QUrl requestURL = NetworkingConstants::METAVERSE_SERVER_URL;
requestURL.setPath("/api/v1/commerce/proof_of_purchase_status");
QJsonObject request;
request["certificate_id"] = i.key();
networkRequest.setUrl(requestURL);
connect(networkReply, &QNetworkReply::finished, [=]() { QNetworkReply* networkReply = NULL;
QJsonObject jsonObject = QJsonDocument::fromJson(networkReply->readAll()).object(); networkReply = networkAccessManager.get(networkRequest);
QJsonDocument doc(jsonObject);
qCDebug(entities) << "ZRF FIXME" << doc.toJson(QJsonDocument::Compact); connect(networkReply, &QNetworkReply::finished, [=]() {
QJsonObject jsonObject = QJsonDocument::fromJson(networkReply->readAll()).object();
QJsonDocument doc(jsonObject);
qCDebug(entities) << "ZRF FIXME" << doc.toJson(QJsonDocument::Compact);
// ZRF FIXME!!!
//if (networkReply->error() == QNetworkReply::NoError) {
if (true) {
// ZRF FIXME!!! // ZRF FIXME!!!
//if (jsonObject["location"].toString() != thisDomainID) { //if (networkReply->error() == QNetworkReply::NoError) {
if (false) { if (true) {
qCDebug(entities) << "invalid_reason not empty, deleting entity" << i.value(); // ZRF FIXME!!!
//if (jsonObject["location"].toString() != thisDomainID) {
if (false) {
qCDebug(entities) << "invalid_reason not empty, deleting entity" << i.value();
tree->deleteEntity(i.value(), true);
}
} else {
qCDebug(entities) << "Call to proof_of_purchase_status endpoint failed; deleting entity" << i.value();
tree->deleteEntity(i.value(), true); tree->deleteEntity(i.value(), true);
} }
} else {
qCDebug(entities) << "Call to proof_of_purchase_status endpoint failed; deleting entity" << i.value();
tree->deleteEntity(i.value(), true);
}
networkReply->deleteLater(); networkReply->deleteLater();
}); });
}
} }
int nextInterval = qrand() % ((MAXIMUM_DYNAMIC_DOMAIN_VERIFICATION_TIMER_MS + 1) - MINIMUM_DYNAMIC_DOMAIN_VERIFICATION_TIMER_MS) + MINIMUM_DYNAMIC_DOMAIN_VERIFICATION_TIMER_MS; int nextInterval = qrand() % ((MAXIMUM_DYNAMIC_DOMAIN_VERIFICATION_TIMER_MS + 1) - MINIMUM_DYNAMIC_DOMAIN_VERIFICATION_TIMER_MS) + MINIMUM_DYNAMIC_DOMAIN_VERIFICATION_TIMER_MS;

View file

@ -382,18 +382,6 @@ bool EntityTree::updateEntity(EntityItemPointer entity, const EntityItemProperti
qCDebug(entities) << (senderNode ? senderNode->getUUID() : "null") << "physical edits suppressed"; qCDebug(entities) << (senderNode ? senderNode->getUUID() : "null") << "physical edits suppressed";
} }
} }
// Clear Certificate ID if any static certificate property is changed
if (properties.itemNameChanged() || properties.itemDescriptionChanged() || properties.itemCategoriesChanged() ||
properties.itemArtistChanged() || properties.itemLicenseChanged() || properties.limitedRunChanged() ||
properties.editionNumberChanged() || properties.entityInstanceNumberChanged() || properties.certificateIDChanged()) {
qCDebug(entities) << "A static certificate property on Entity" << entity->getID() << "has changed."
<< "Clearing Certificate ID.";
QWriteLocker locker(&_entityCertificateIDMapLock);
_entityCertificateIDMap.remove(entity->getCertificateID());
properties.setCertificateID("");
properties.setCertificateIDChanged(true);
}
} }
// else client accepts what the server says // else client accepts what the server says