Re-apply server prohibited status codes in domain update for locked-down TLDs

For TLDs with domain create restriction. SERVER_TRANSFER_PROHIBITED and SERVER_UPDATE_PROHIBITED status codes
are automatically applied to newly created domains to make them immutable. When there is a legitimate for an update on a domain, the registry must first run nomulus update_server_locks to remove status before the registrar can request an update via EPP.

To eliminate the risk of the registry forgetting to reapply the codes after a update, we automatically re-apply these codes after a success update.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152533379
This commit is contained in:
jianglai 2017-04-07 13:03:14 -07:00 committed by Ben McIlwain
parent 4f94464eaf
commit bae5038b0a
2 changed files with 57 additions and 17 deletions

View file

@ -267,22 +267,30 @@ public final class DomainUpdateFlow implements TransactionalFlow {
checkSameValuesNotAddedAndRemoved(add.getStatusValues(), remove.getStatusValues());
Change change = command.getInnerChange();
SecDnsUpdateExtension secDnsUpdate = eppInput.getSingleExtension(SecDnsUpdateExtension.class);
return domain.asBuilder()
// Handle the secDNS extension.
.setDsData(secDnsUpdate != null
? updateDsData(domain.getDsData(), secDnsUpdate)
: domain.getDsData())
.setLastEppUpdateTime(now)
.setLastEppUpdateClientId(clientId)
.addStatusValues(add.getStatusValues())
.removeStatusValues(remove.getStatusValues())
.addNameservers(add.getNameservers())
.removeNameservers(remove.getNameservers())
.addContacts(add.getContacts())
.removeContacts(remove.getContacts())
.setRegistrant(firstNonNull(change.getRegistrant(), domain.getRegistrant()))
.setAuthInfo(firstNonNull(change.getAuthInfo(), domain.getAuthInfo()))
.build();
DomainResource.Builder domainBuilder =
domain
.asBuilder()
// Handle the secDNS extension.
.setDsData(
secDnsUpdate != null
? updateDsData(domain.getDsData(), secDnsUpdate)
: domain.getDsData())
.setLastEppUpdateTime(now)
.setLastEppUpdateClientId(clientId)
.addStatusValues(add.getStatusValues())
.removeStatusValues(remove.getStatusValues())
.addNameservers(add.getNameservers())
.removeNameservers(remove.getNameservers())
.addContacts(add.getContacts())
.removeContacts(remove.getContacts())
.setRegistrant(firstNonNull(change.getRegistrant(), domain.getRegistrant()))
.setAuthInfo(firstNonNull(change.getAuthInfo(), domain.getAuthInfo()));
if (Registry.get(domain.getTld()).getDomainCreateRestricted()) {
domainBuilder
.addStatusValue(StatusValue.SERVER_TRANSFER_PROHIBITED)
.addStatusValue(StatusValue.SERVER_UPDATE_PROHIBITED);
}
return domainBuilder.build();
}
private DomainResource convertSunrushAddToAdd(