HSAdmin Backend Domains, E-Mail, Datenbanken
Peter Hormanns
2017-06-21 187bddaf8dbb25125c74319163d743e34c862e30
new field cert_dns_alt_names
3 files modified
30 ■■■■ changed files
hsarback/database/database_update.sql 10 ●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/dom/Domain.java 12 ●●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/dom/DomainModuleImpl.java 8 ●●●● patch | view | raw | blame | history
hsarback/database/database_update.sql
@@ -1,9 +1,15 @@
INSERT INTO domain_option (domain_option_name) 
    VALUES ('greylisting');
    VALUES ('letsencrypt');
ALTER TABLE domain
    ADD COLUMN cert_dns_alt_names CHARACTER VARYING(512);
UPDATE domain
    SET cert_dns_alt_names = domain_name || ',www.' || domain_name ;
INSERT INTO contactrole_ref (contact_id, role) 
    ( SELECT contact_id, 'voting-right' FROM contact );
CREATE TABLE member_asset (
    member_asset_id integer NOT NULL,
    bp_id integer NOT NULL,
hsarback/src/de/hsadmin/mods/dom/Domain.java
@@ -25,7 +25,6 @@
import de.hsadmin.core.model.AnnFieldIO;
import de.hsadmin.core.model.AnnModuleImpl;
import de.hsadmin.core.model.ReadWriteAccess;
import de.hsadmin.hostsharing.BasePacType;
import de.hsadmin.mods.user.UnixUser;
@Entity(name = "Domains")
@@ -62,6 +61,9 @@
        joinColumns={@JoinColumn(name="domain_id", referencedColumnName="domain_id")},
        inverseJoinColumns={@JoinColumn(name="domain_option_id", referencedColumnName="domain_option_id")})
    private Set<DomainOption> domainoptions;
    @Column(name = "cert_dns_alt_names", columnDefinition = "character varying(512)")
    private String certDNSAltNames;
    
    public Domain() {
    }
@@ -180,4 +182,12 @@
        this.domainoptions = domainOptions;
    }
    public String getCertDNSAltNames() {
        return certDNSAltNames;
    }
    public void setCertDNSAltNames(String certDNSAltNames) {
        this.certDNSAltNames = certDNSAltNames;
    }
}
hsarback/src/de/hsadmin/mods/dom/DomainModuleImpl.java
@@ -111,7 +111,8 @@
        Domain dom = (Domain) newEntity;
        Date now = new Date();
        dom.setSince(now);
        if (dom.getName() == null || dom.getName().length() == 0) {
        final String domName = dom.getName();
        if (domName == null || domName.length() == 0) {
            throw new HSAdminException("domain name required");
        }
        UnixUser admin = dom.getUser();
@@ -137,7 +138,7 @@
            boolean otherUserDomain = false;
            // search for domains superior to dom
            Query domainQuery = em.createQuery("SELECT d FROM Domains d WHERE d.name = :domainName");
            String superior = dom.getName();
            String superior = domName;
            while (superior.contains(".") && !usersDomain) {
                superior = superior.substring(superior.indexOf('.') + 1);
                domainQuery.setParameter("domainName", superior);
@@ -180,6 +181,9 @@
            }
            dom.setDomainoptions(domainOptions);
        }
        if (dom.getCertDNSAltNames() == null) {
            dom.setCertDNSAltNames(domName + ",www." + domName);
        }
        if (dom.isPacDomain()) {
            em.persist(new EMailAddress("owner", "", dom, dom.getUser().getPac().getCustomer().getName().substring(6) + "@hostsharing.net"));
            em.persist(new EMailAddress("admin", "", dom, dom.getUser().getPac().getName() + "@hostsharing.net"));