Prevent backupmxforexternalmx option collision with active email addresses.
This commit is contained in:
parent
b29374939c
commit
5097cdd638
@ -230,6 +230,13 @@ public class DomainModuleImpl extends AbstractModuleImpl {
|
|||||||
if ("letsencrypt".equals(opt.getName()) && updatedDom.getServeraliases().contains("*")) {
|
if ("letsencrypt".equals(opt.getName()) && updatedDom.getServeraliases().contains("*")) {
|
||||||
throw new HSAdminException("invalid domain option: " + opt.getName() + " for wildcard subdomain");
|
throw new HSAdminException("invalid domain option: " + opt.getName() + " for wildcard subdomain");
|
||||||
}
|
}
|
||||||
|
if ("backupmxforexternalmx".equals(opt.getName())) {
|
||||||
|
final Query query = em.createQuery("SELECT e FROM EMailAddress e WHERE e.domain = :domname");
|
||||||
|
query.setParameter("domname", updatedDom.getName());
|
||||||
|
if (!query.getResultList().isEmpty()) {
|
||||||
|
throw new HSAdminException("domain option backupmaxforexternalmx may not be activated when email addresses exist");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
needsWriteAccessOn(oldDom, "update");
|
needsWriteAccessOn(oldDom, "update");
|
||||||
return super.update(existingEntity);
|
return super.update(existingEntity);
|
||||||
|
@ -12,6 +12,7 @@ import de.hsadmin.core.model.HSAdminException;
|
|||||||
import de.hsadmin.core.model.Transaction;
|
import de.hsadmin.core.model.Transaction;
|
||||||
import de.hsadmin.hostsharing.BasePacType;
|
import de.hsadmin.hostsharing.BasePacType;
|
||||||
import de.hsadmin.mods.dom.Domain;
|
import de.hsadmin.mods.dom.Domain;
|
||||||
|
import de.hsadmin.mods.dom.DomainOption;
|
||||||
import de.hsadmin.mods.user.UnixUser;
|
import de.hsadmin.mods.user.UnixUser;
|
||||||
|
|
||||||
public class EMailAddressModuleImpl extends AbstractModuleImpl {
|
public class EMailAddressModuleImpl extends AbstractModuleImpl {
|
||||||
@ -66,7 +67,12 @@ public class EMailAddressModuleImpl extends AbstractModuleImpl {
|
|||||||
qEmailAddresses.setParameter("pacId", dom.getUser().getPac().getId());
|
qEmailAddresses.setParameter("pacId", dom.getUser().getPac().getId());
|
||||||
if (qEmailAliases.getResultList().size() + qEmailAddresses.getResultList().size() >= EMAIL_PER_MULTI_OPTION * dom.getUser().getPac().getQuantityByComponentName("MULTI")) {
|
if (qEmailAliases.getResultList().size() + qEmailAddresses.getResultList().size() >= EMAIL_PER_MULTI_OPTION * dom.getUser().getPac().getQuantityByComponentName("MULTI")) {
|
||||||
throw new HSAdminException("included email addresses/aliases exceeded");
|
throw new HSAdminException("included email addresses/aliases exceeded");
|
||||||
}
|
}
|
||||||
|
for (DomainOption opt : adr.getDomain().getDomainoptions()) {
|
||||||
|
if ("backupmxforexternalmx".equals(opt.getName())) {
|
||||||
|
throw new HSAdminException("email addresses may not be added when domain option backumxforexternalmx is active");
|
||||||
|
}
|
||||||
|
}
|
||||||
return super.add(newEntity);
|
return super.add(newEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user