diff --git a/core/src/main/java/google/registry/flows/domain/DomainInfoFlow.java b/core/src/main/java/google/registry/flows/domain/DomainInfoFlow.java
index 4275ec245..05c2e603b 100644
--- a/core/src/main/java/google/registry/flows/domain/DomainInfoFlow.java
+++ b/core/src/main/java/google/registry/flows/domain/DomainInfoFlow.java
@@ -105,6 +105,7 @@ public final class DomainInfoFlow implements Flow {
verifyOptionalAuthInfo(authInfo, domain);
flowCustomLogic.afterValidation(
AfterValidationParameters.newBuilder().setDomain(domain).build());
+ HostsRequest hostsRequest = ((Info) resourceCommand).getHostsRequest();
// Registrars can only see a few fields on unauthorized domains.
// This is a policy decision that is left up to us by the rfcs.
DomainInfoData.Builder infoBuilder =
@@ -112,25 +113,25 @@ public final class DomainInfoFlow implements Flow {
.setDomainName(domain.getDomainName())
.setRepoId(domain.getRepoId())
.setCurrentSponsorRegistrarId(domain.getCurrentSponsorRegistrarId())
+ .setStatusValues(domain.getStatusValues())
+ .setNameservers(
+ hostsRequest.requestDelegated() ? domain.loadNameserverHostNames() : null)
+ .setCreationTime(domain.getCreationTime())
+ .setLastEppUpdateTime(domain.getLastEppUpdateTime())
+ .setRegistrationExpirationTime(domain.getRegistrationExpirationTime())
+ .setLastTransferTime(domain.getLastTransferTime())
.setRegistrant(
tm().transact(() -> tm().loadByKey(domain.getRegistrant())).getContactId());
// If authInfo is non-null, then the caller is authorized to see the full information since we
// will have already verified the authInfo is valid.
if (registrarId.equals(domain.getCurrentSponsorRegistrarId()) || authInfo.isPresent()) {
- HostsRequest hostsRequest = ((Info) resourceCommand).getHostsRequest();
infoBuilder
- .setStatusValues(domain.getStatusValues())
.setContacts(
tm().transact(() -> loadForeignKeyedDesignatedContacts(domain.getContacts())))
- .setNameservers(hostsRequest.requestDelegated() ? domain.loadNameserverHostNames() : null)
.setSubordinateHosts(
hostsRequest.requestSubordinate() ? domain.getSubordinateHosts() : null)
.setCreationRegistrarId(domain.getCreationRegistrarId())
- .setCreationTime(domain.getCreationTime())
.setLastEppUpdateRegistrarId(domain.getLastEppUpdateRegistrarId())
- .setLastEppUpdateTime(domain.getLastEppUpdateTime())
- .setRegistrationExpirationTime(domain.getRegistrationExpirationTime())
- .setLastTransferTime(domain.getLastTransferTime())
.setAuthInfo(domain.getAuthInfo());
}
BeforeResponseReturnData responseData =
diff --git a/core/src/test/resources/google/registry/flows/domain/domain_info_response_superuser_package.xml b/core/src/test/resources/google/registry/flows/domain/domain_info_response_superuser_package.xml
index 84a2608fe..e3797f409 100644
--- a/core/src/test/resources/google/registry/flows/domain/domain_info_response_superuser_package.xml
+++ b/core/src/test/resources/google/registry/flows/domain/domain_info_response_superuser_package.xml
@@ -8,8 +8,17 @@
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
example.tld
%ROID%
+
jd1234
+
+ ns1.example.net
+ ns1.example.tld
+
NewRegistrar
+ 1999-04-03T22:00:00Z
+ 1999-12-03T09:00:00Z
+ 2005-04-03T22:00:00Z
+ 2000-04-08T09:00:00Z
diff --git a/core/src/test/resources/google/registry/flows/domain/domain_info_response_unauthorized.xml b/core/src/test/resources/google/registry/flows/domain/domain_info_response_unauthorized.xml
index c4058770e..39259352a 100644
--- a/core/src/test/resources/google/registry/flows/domain/domain_info_response_unauthorized.xml
+++ b/core/src/test/resources/google/registry/flows/domain/domain_info_response_unauthorized.xml
@@ -8,8 +8,17 @@
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
example.tld
%ROID%
+
jd1234
+
+ ns1.example.net
+ ns1.example.tld
+
NewRegistrar
+ 1999-04-03T22:00:00Z
+ 1999-12-03T09:00:00Z
+ 2005-04-03T22:00:00Z
+ 2000-04-08T09:00:00Z