HSAdmin Backend Domains, E-Mail, Datenbanken
Peter Hormanns
2012-01-04 4d31afc0182eed36c3080d431282809dd2e08b3c
subdomains to pacdomain are not allowed
1 files modified
18 ■■■■■ changed files
hsarback/src/de/hsadmin/mods/dom/DomainModuleImpl.java 18 ●●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/dom/DomainModuleImpl.java
@@ -100,16 +100,16 @@
            Query domainQuery = em.createQuery("SELECT d FROM Domains d WHERE d.name = :domainName");
            String superior = dom.getName();
            while (superior.contains(".")) {
                superior = superior.substring(superior.indexOf('.') + 1);
                if (dom.isPacDomain()) {
                    break;
                }
                superior = superior.substring(superior.indexOf('.') + 1);
                domainQuery.setParameter("domainName", superior);
                List<?> resultList = domainQuery.getResultList();
                if (resultList.size() > 0) {
                    Domain superDom = (Domain) resultList.get(0);
                    if (superDom.isPacDomain()) {
                        throw new HSAdminException("subdomains to pacdomain " + superDom.getName() + " are not allowed");
                        throw new HSAdminException("subdomains to pacdomain " + superDom.getName() + " is not allowed");
                    }
                    if (loginUser.hasPacAdminRoleFor(superDom.getUser().getPac())) {
                        break;    // same pac
@@ -131,13 +131,15 @@
        adminQuery.setParameter("adminName", admin.getName());
        dom.setUser((UnixUser) adminQuery.getSingleResult());
        needsWriteAccessOn(newEntity, "add");
//        Entity addedEntity = super.add(dom);
//        Domain addedDomain = (Domain) addedEntity;
        em.persist(dom);
        String[] emailAddresses = new String[] { "abuse", "postmaster", "webmaster" };
        for (String emailLocalpart : emailAddresses) {
            EMailAddress eMailAddress = new EMailAddress(emailLocalpart, "", dom, admin.getName());
            em.persist(eMailAddress);
        if (dom.isPacDomain()) {
            em.persist(new EMailAddress("owner", "", dom, dom.getUser().getPac().getCustomer().getContractualContact().getEmail()));
            em.persist(new EMailAddress("admin", "", dom, admin.getName()));
            em.persist(new EMailAddress(dom.getUser().getPac().getName(), "", dom, admin.getName()));
        } else {
            em.persist(new EMailAddress("abuse", "", dom, admin.getName()));
            em.persist(new EMailAddress("postmaster", "", dom, admin.getName()));
            em.persist(new EMailAddress("webmaster", "", dom, admin.getName()));
        }
        return super.add(dom);
    }