mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 16:07:15 +02:00
Apply status during creation for domain create restricted TLDs
When a TLD is domain create restricted, every domain that is created under it will have both SERVER_TRANSFER_PROHIBITED and SERVER_UPDATE_PROHIBITED status applied on it. This way after a domain is created no registrar can change any settings on it. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=152266535
This commit is contained in:
parent
69cf0d4b55
commit
09393dc8ce
2 changed files with 63 additions and 18 deletions
|
@ -38,6 +38,8 @@ import static google.registry.flows.domain.DomainFlowUtils.verifyNotReserved;
|
||||||
import static google.registry.flows.domain.DomainFlowUtils.verifyPremiumNameIsNotBlocked;
|
import static google.registry.flows.domain.DomainFlowUtils.verifyPremiumNameIsNotBlocked;
|
||||||
import static google.registry.flows.domain.DomainFlowUtils.verifyUnitIsYears;
|
import static google.registry.flows.domain.DomainFlowUtils.verifyUnitIsYears;
|
||||||
import static google.registry.model.EppResourceUtils.createDomainRepoId;
|
import static google.registry.model.EppResourceUtils.createDomainRepoId;
|
||||||
|
import static google.registry.model.eppcommon.StatusValue.SERVER_TRANSFER_PROHIBITED;
|
||||||
|
import static google.registry.model.eppcommon.StatusValue.SERVER_UPDATE_PROHIBITED;
|
||||||
import static google.registry.model.index.DomainApplicationIndex.loadActiveApplicationsByDomainName;
|
import static google.registry.model.index.DomainApplicationIndex.loadActiveApplicationsByDomainName;
|
||||||
import static google.registry.model.ofy.ObjectifyService.ofy;
|
import static google.registry.model.ofy.ObjectifyService.ofy;
|
||||||
import static google.registry.model.registry.label.ReservedList.matchesAnchorTenantReservation;
|
import static google.registry.model.registry.label.ReservedList.matchesAnchorTenantReservation;
|
||||||
|
@ -85,6 +87,7 @@ import google.registry.model.domain.metadata.MetadataExtension;
|
||||||
import google.registry.model.domain.rgp.GracePeriodStatus;
|
import google.registry.model.domain.rgp.GracePeriodStatus;
|
||||||
import google.registry.model.domain.secdns.SecDnsCreateExtension;
|
import google.registry.model.domain.secdns.SecDnsCreateExtension;
|
||||||
import google.registry.model.eppcommon.AuthInfo;
|
import google.registry.model.eppcommon.AuthInfo;
|
||||||
|
import google.registry.model.eppcommon.StatusValue;
|
||||||
import google.registry.model.eppinput.EppInput;
|
import google.registry.model.eppinput.EppInput;
|
||||||
import google.registry.model.eppinput.ResourceCommand;
|
import google.registry.model.eppinput.ResourceCommand;
|
||||||
import google.registry.model.eppoutput.CreateData.DomainCreateData;
|
import google.registry.model.eppoutput.CreateData.DomainCreateData;
|
||||||
|
@ -276,7 +279,8 @@ public class DomainCreateFlow implements TransactionalFlow {
|
||||||
if (!feesAndCredits.getEapCost().isZero()) {
|
if (!feesAndCredits.getEapCost().isZero()) {
|
||||||
entitiesToSave.add(createEapBillingEvent(feesAndCredits, createBillingEvent));
|
entitiesToSave.add(createEapBillingEvent(feesAndCredits, createBillingEvent));
|
||||||
}
|
}
|
||||||
DomainResource newDomain = new DomainResource.Builder()
|
DomainResource newDomain =
|
||||||
|
new DomainResource.Builder()
|
||||||
.setCreationClientId(clientId)
|
.setCreationClientId(clientId)
|
||||||
.setPersistedCurrentSponsorClientId(clientId)
|
.setPersistedCurrentSponsorClientId(clientId)
|
||||||
.setRepoId(repoId)
|
.setRepoId(repoId)
|
||||||
|
@ -291,6 +295,10 @@ public class DomainCreateFlow implements TransactionalFlow {
|
||||||
.setAuthInfo(command.getAuthInfo())
|
.setAuthInfo(command.getAuthInfo())
|
||||||
.setFullyQualifiedDomainName(targetId)
|
.setFullyQualifiedDomainName(targetId)
|
||||||
.setNameservers(command.getNameservers())
|
.setNameservers(command.getNameservers())
|
||||||
|
.setStatusValues(
|
||||||
|
registry.getDomainCreateRestricted()
|
||||||
|
? ImmutableSet.of(SERVER_UPDATE_PROHIBITED, SERVER_TRANSFER_PROHIBITED)
|
||||||
|
: ImmutableSet.<StatusValue>of())
|
||||||
.setContacts(command.getContacts())
|
.setContacts(command.getContacts())
|
||||||
.addGracePeriod(GracePeriod.forBillingEvent(GracePeriodStatus.ADD, createBillingEvent))
|
.addGracePeriod(GracePeriod.forBillingEvent(GracePeriodStatus.ADD, createBillingEvent))
|
||||||
.build();
|
.build();
|
||||||
|
|
|
@ -17,6 +17,9 @@ package google.registry.flows.domain;
|
||||||
import static com.google.common.io.BaseEncoding.base16;
|
import static com.google.common.io.BaseEncoding.base16;
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static google.registry.model.domain.fee.Fee.FEE_EXTENSION_URIS;
|
import static google.registry.model.domain.fee.Fee.FEE_EXTENSION_URIS;
|
||||||
|
import static google.registry.model.eppcommon.StatusValue.OK;
|
||||||
|
import static google.registry.model.eppcommon.StatusValue.SERVER_TRANSFER_PROHIBITED;
|
||||||
|
import static google.registry.model.eppcommon.StatusValue.SERVER_UPDATE_PROHIBITED;
|
||||||
import static google.registry.model.ofy.ObjectifyService.ofy;
|
import static google.registry.model.ofy.ObjectifyService.ofy;
|
||||||
import static google.registry.pricing.PricingEngineProxy.isDomainPremium;
|
import static google.registry.pricing.PricingEngineProxy.isDomainPremium;
|
||||||
import static google.registry.testing.DatastoreHelper.assertBillingEvents;
|
import static google.registry.testing.DatastoreHelper.assertBillingEvents;
|
||||||
|
@ -1879,6 +1882,40 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow,
|
||||||
runFlow();
|
runFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_domainCreateRestricted_serverStatusSet() throws Exception {
|
||||||
|
persistContactsAndHosts();
|
||||||
|
persistResource(
|
||||||
|
Registry.get("tld")
|
||||||
|
.asBuilder()
|
||||||
|
.setDomainCreateRestricted(true)
|
||||||
|
.setReservedLists(
|
||||||
|
persistReservedList(
|
||||||
|
"reserved",
|
||||||
|
"example,NAMESERVER_RESTRICTED,"
|
||||||
|
+ "ns1.example.net:ns2.example.net:ns3.example.net"))
|
||||||
|
.build());
|
||||||
|
doSuccessfulTest();
|
||||||
|
assertThat(reloadResourceByForeignKey().getStatusValues())
|
||||||
|
.containsExactly(SERVER_UPDATE_PROHIBITED, SERVER_TRANSFER_PROHIBITED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSuccess_domainCreateNotRestricted_serverStatusNotSet() throws Exception {
|
||||||
|
persistContactsAndHosts();
|
||||||
|
persistResource(
|
||||||
|
Registry.get("tld")
|
||||||
|
.asBuilder()
|
||||||
|
.setReservedLists(
|
||||||
|
persistReservedList(
|
||||||
|
"reserved",
|
||||||
|
"example,NAMESERVER_RESTRICTED,"
|
||||||
|
+ "ns1.example.net:ns2.example.net:ns3.example.net"))
|
||||||
|
.build());
|
||||||
|
doSuccessfulTest();
|
||||||
|
assertThat(reloadResourceByForeignKey().getStatusValues()).containsExactly(OK);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSuccess_eapFeeApplied_v06() throws Exception {
|
public void testSuccess_eapFeeApplied_v06() throws Exception {
|
||||||
setEppInput("domain_create_eap_fee.xml", ImmutableMap.of("FEE_VERSION", "0.6"));
|
setEppInput("domain_create_eap_fee.xml", ImmutableMap.of("FEE_VERSION", "0.6"));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue