Bernd Wurst commited on 2019-12-04 16:55:39
              Zeige 3 geänderte Dateien mit 51 Einfügungen und 1 Löschungen.
            
| ... | ... | 
                      @@ -114,12 +114,19 @@ if ($is_current_user) {
                     | 
                  
| 114 | 114 | 
                        $everused = true;  | 
                    
| 115 | 115 | 
                        }  | 
                    
| 116 | 116 | 
                             if (have_module('mailman') && mailman_subdomains($dom->id)) {
                       | 
                    
| 117 | 
                        +        use_module('mailman');
                       | 
                    |
| 118 | 
                        +        include('mailman.php');
                       | 
                    |
| 117 | 119 | 
                        $mailmanhosts = mailman_subdomains($dom->id);  | 
                    
| 118 | 120 | 
                        $hostname = $dom->fqdn;  | 
                    
| 119 | 121 | 
                                 if (count($mailmanhosts) == 1) {
                       | 
                    
| 120 | 122 | 
                        $hostname = $mailmanhosts[0]['hostname'].'.'.$dom->fqdn;  | 
                    
| 121 | 123 | 
                        }  | 
                    
| 122 | 
                        -        output("<div class=\"tile usage used\"><p><strong>".internal_link('../mailman/lists', "Mailinglisten", 'filter='.$hostname)."</strong></p><p>Diese Domain wird für Mailinglisten verwendet</p></div>");
                       | 
                    |
| 124 | 
                        + $lists = lists_on_domain($dom->id);  | 
                    |
| 125 | 
                        + $delete = '';  | 
                    |
| 126 | 
                        +        if (count($lists) == 0) {
                       | 
                    |
| 127 | 
                        +            $delete = '<p class="delete">'.internal_link('save', "Nicht mehr für Mailinglisten verwenden", "action=nomailman&domain=".$dom->id).'</p>';
                       | 
                    |
| 128 | 
                        + }  | 
                    |
| 129 | 
                        +        output("<div class=\"tile usage used\"><p><strong>".internal_link('../mailman/lists', "Mailinglisten", 'filter='.$hostname)."</strong></p><p>Diese Domain wird für Mailinglisten verwendet</p>$delete</div>");
                       | 
                    |
| 123 | 130 | 
                        $used = true;  | 
                    
| 124 | 131 | 
                        $everused = true;  | 
                    
| 125 | 132 | 
                        }  | 
                    
| ... | ... | 
                      @@ -51,4 +51,24 @@ if ($_REQUEST['action'] == 'delete') {
                     | 
                  
| 51 | 51 | 
                             check_form_token('domains_transfer');
                       | 
                    
| 52 | 52 | 
                        api_unlock_domain($dom->fqdn);  | 
                    
| 53 | 53 | 
                             redirect('detail?id='.$dom->id);
                       | 
                    
| 54 | 
                        +} elseif ($_REQUEST['action'] == 'nomailman') {
                       | 
                    |
| 55 | 
                        +    if (have_module('mailman')) {
                       | 
                    |
| 56 | 
                        +        use_module('mailman');
                       | 
                    |
| 57 | 
                        +        include('mailman.php');
                       | 
                    |
| 58 | 
                        +        if (count(lists_on_domain($dom->id)) > 0) {
                       | 
                    |
| 59 | 
                        +            system_failure("Es gibt noch Mailinglisten auf dieser Domain, daher kann sie nicht gelöscht werden");
                       | 
                    |
| 60 | 
                        + }  | 
                    |
| 61 | 
                        + $sure = user_is_sure();  | 
                    |
| 62 | 
                        +        if ($sure === null) {
                       | 
                    |
| 63 | 
                        +            are_you_sure("action=nomailman&domain={$dom->id}", "Möchten Sie die Domain »{$dom->fqdn}« wirklich aus der Mailinglisten-Konfiguration entfernen?");
                       | 
                    |
| 64 | 
                        +        } elseif ($sure === true) {
                       | 
                    |
| 65 | 
                        + delete_mailman_domain($dom->id);  | 
                    |
| 66 | 
                        +            redirect('detail?id='.$dom->id);
                       | 
                    |
| 67 | 
                        +        } elseif ($sure === false) {
                       | 
                    |
| 68 | 
                        +            redirect('detail?id='.$dom->id);
                       | 
                    |
| 69 | 
                        + }  | 
                    |
| 70 | 
                        +  | 
                    |
| 71 | 
                        +    } else {
                       | 
                    |
| 72 | 
                        +        system_failure('Das Mailman-Modul ist nicht verfügbar');
                       | 
                    |
| 73 | 
                        + }  | 
                    |
| 54 | 74 | 
                        }  | 
                    
| ... | ... | 
                      @@ -123,6 +123,29 @@ function insert_mailman_domain($subdomain, $domainid)  | 
                  
| 123 | 123 | 
                        }  | 
                    
| 124 | 124 | 
                         | 
                    
| 125 | 125 | 
                         | 
                    
| 126 | 
                        +function lists_on_domain($domainid)  | 
                    |
| 127 | 
                        +{
                       | 
                    |
| 128 | 
                        +    DEBUG("lists_on_domain()");
                       | 
                    |
| 129 | 
                        +    $result = db_query("SELECT id, listname FROM mail.mailman_lists WHERE status != 'delete' AND maildomain=(SELECT id FROM mail.mailman_domains WHERE domain=?)", array($domainid));
                       | 
                    |
| 130 | 
                        + $ret = array();  | 
                    |
| 131 | 
                        +    while ($l = $result->fetch()) {
                       | 
                    |
| 132 | 
                        + $ret[] = $l;  | 
                    |
| 133 | 
                        + }  | 
                    |
| 134 | 
                        + return $ret;  | 
                    |
| 135 | 
                        +}  | 
                    |
| 136 | 
                        +  | 
                    |
| 137 | 
                        +  | 
                    |
| 138 | 
                        +function delete_mailman_domain($domainid)  | 
                    |
| 139 | 
                        +{
                       | 
                    |
| 140 | 
                        +    DEBUG("delete_mailman_domain()");
                       | 
                    |
| 141 | 
                        + $lists = lists_on_domain($domainid);  | 
                    |
| 142 | 
                        +    if (count($lists) > 0) {
                       | 
                    |
| 143 | 
                        +        system_failure("Es gibt noch Mailinglisten unter diesem Domainnamen, er kann daher nicht gelöscht werden");
                       | 
                    |
| 144 | 
                        +    } else {
                       | 
                    |
| 145 | 
                        +        db_query("DELETE FROM mail.mailman_domains WHERE domain=? AND (SELECT COUNT(*) FROM mail.mailman_lists WHERE maildomain=mail.mailman_domains.id)=0;", array($domainid));
                       | 
                    |
| 146 | 
                        + }  | 
                    |
| 147 | 
                        +}  | 
                    |
| 148 | 
                        +  | 
                    |
| 126 | 149 | 
                        function get_mailman_domains()  | 
                    
| 127 | 150 | 
                         {
                       | 
                    
| 128 | 151 | 
                             DEBUG('get_mailman_domains()');
                       | 
                    
| 129 | 152 |