HSAdmin Backend Domains, E-Mail, Datenbanken
Peter Hormanns
2011-07-27 8ae17912b75d169153e86d9c194a9752c33fe417
delete pac domains
2 files modified
34 ■■■■■ changed files
hsarback/src/de/hsadmin/mods/pac/PacModuleImpl.java 28 ●●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java 6 ●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/pac/PacModuleImpl.java
@@ -114,5 +114,33 @@
            throws HSAdminException {
        throw new AuthorisationException(getLoginUser(), "update", existingEntity);
    }
    @Override
    public void delete(AbstractEntity existingEntity) throws HSAdminException {
        EntityManager em = getTransaction().getEntityManager();
        Pac pac = (Pac) existingEntity;
        Date dateCancelled = pac.getCancelled();
        if (dateCancelled == null || dateCancelled.getTime() > System.currentTimeMillis()) {
            throw new AuthorisationException(getLoginUser(), "delete", existingEntity);
        }
        GenericModuleImpl helperModule = new GenericModuleImpl(getTransaction());
        Query qDoms = em.createQuery("SELECT dom FROM Domains dom WHERE dom.user.pac.name = :pac");
        qDoms.setParameter("pac", pac.getName());
        List<?> domsList = qDoms.getResultList();
        for (Object o : domsList) {
            if (o instanceof Domain) {
                helperModule.delete((AbstractEntity) o);
            }
        }
        UnixUser admin = pac.owningUser(em);
        for (UnixUser user : pac.getUnixUser()) {
            if (admin.getId() != user.getId()) {
                helperModule.delete(user);
            }
        }
        super.delete(existingEntity);
    }
    
}
hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java
@@ -77,7 +77,7 @@
                createNetworkInterfacesProc(hiveValues, pacValuesList), 
                createSudouersProc(hiveValues, pacValuesList), 
                createProftpdConfProc(hiveValues, pacValuesList), 
                createMakePacDirectoryStructure(unixUser));
                createDelUserProc(unixUser.getName()));
    }
    private TemplateProcessor createEtcHostsProc(
@@ -113,6 +113,10 @@
                        + ":" + unixUser.getShell() + "\n");
    }
    private ShellProcessor createDelUserProc(String pacName) {
        return new ShellProcessor("deluser --remove-all-files " + pacName);
    }
    private ShellProcessor createMakePacDirectoryStructure(UnixUser unixUser) {
        return new ShellProcessor("chmod 711 " + unixUser.getHomedir() + " && " +
                "su -l " + unixUser.getName() + " -s \"/bin/bash\" -c \"mkdir -p " +