1
0
mirror of https://github.com/google/nomulus synced 2026-01-06 21:47:31 +00:00

Allow status, crDate, upDate, trDate, exDate and ns fields for all Domain Info responses (#1842)

This commit is contained in:
Pavlo Tkach
2022-11-08 16:40:50 -05:00
committed by GitHub
parent 0ee15b3a59
commit 9546408a3a
3 changed files with 26 additions and 7 deletions

View File

@@ -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 =

View File

@@ -8,8 +8,17 @@
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>example.tld</domain:name>
<domain:roid>%ROID%</domain:roid>
<domain:status s="ok"/>
<domain:registrant>jd1234</domain:registrant>
<domain:ns>
<domain:hostObj>ns1.example.net</domain:hostObj>
<domain:hostObj>ns1.example.tld</domain:hostObj>
</domain:ns>
<domain:clID>NewRegistrar</domain:clID>
<domain:crDate>1999-04-03T22:00:00Z</domain:crDate>
<domain:upDate>1999-12-03T09:00:00Z</domain:upDate>
<domain:exDate>2005-04-03T22:00:00Z</domain:exDate>
<domain:trDate>2000-04-08T09:00:00Z</domain:trDate>
</domain:infData>
</resData>
<extension>

View File

@@ -8,8 +8,17 @@
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>example.tld</domain:name>
<domain:roid>%ROID%</domain:roid>
<domain:status s="ok"/>
<domain:registrant>jd1234</domain:registrant>
<domain:ns>
<domain:hostObj>ns1.example.net</domain:hostObj>
<domain:hostObj>ns1.example.tld</domain:hostObj>
</domain:ns>
<domain:clID>NewRegistrar</domain:clID>
<domain:crDate>1999-04-03T22:00:00Z</domain:crDate>
<domain:upDate>1999-12-03T09:00:00Z</domain:upDate>
<domain:exDate>2005-04-03T22:00:00Z</domain:exDate>
<domain:trDate>2000-04-08T09:00:00Z</domain:trDate>
</domain:infData>
</resData>
<trID>