diff --git a/java/google/registry/flows/domain/DomainUpdateFlow.java b/java/google/registry/flows/domain/DomainUpdateFlow.java index 6a05a2ac0..1a27b5235 100644 --- a/java/google/registry/flows/domain/DomainUpdateFlow.java +++ b/java/google/registry/flows/domain/DomainUpdateFlow.java @@ -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( diff --git a/javatests/google/registry/flows/domain/DomainUpdateFlowTest.java b/javatests/google/registry/flows/domain/DomainUpdateFlowTest.java index e776f73bb..bed5d735a 100644 --- a/javatests/google/registry/flows/domain/DomainUpdateFlowTest.java +++ b/javatests/google/registry/flows/domain/DomainUpdateFlowTest.java @@ -1260,7 +1260,7 @@ public class DomainUpdateFlowTest extends ResourceFlowTestCase