| | |
| | | |
| | | $this->update_config(); |
| | | |
| | | exec("nohup /usr/lib/mailman/bin/newlist -u ".escapeshellcmd($data["new"]["domain"])." -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &"); |
| | | $pid = exec("nohup /usr/lib/mailman/bin/newlist -u ".escapeshellcmd($data["new"]["domain"])." -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 & echo $!;"); |
| | | // wait for /usr/lib/mailman/bin/newlist-call |
| | | $running = true; |
| | | do { |
| | | exec('ps -p '.intval($pid), $out); |
| | | if (count($out) ==1) $running=false; else sleep(1); |
| | | unset($out); |
| | | } while ($running); |
| | | unset($out); |
| | | if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); |
| | | if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); |
| | | exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); |
| | | |
| | | $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ".$app->db->quote($data["new"]['mailinglist_id'])); |
| | | $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ?", $data["new"]['mailinglist_id']); |
| | | |
| | | } |
| | | |
| | | // The purpose of this plugin is to rewrite the main.cf file |
| | | function update($event_name, $data) { |
| | | global $app, $conf; |
| | | |
| | | $this->update_config(); |
| | | |
| | | if($data["new"]["password"] != $data["old"]["password"] && $data["new"]["password"] != '') { |
| | | exec("nohup /usr/lib/mailman/bin/change_pw -l ".escapeshellcmd($data["new"]["listname"])." -p ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &"); |
| | | exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); |
| | | $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ".$app->db->quote($data["new"]['mailinglist_id'])); |
| | | $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ?", $data["new"]['mailinglist_id']); |
| | | } |
| | | |
| | | if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); |
| | | if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); |
| | | } |
| | | |
| | | function delete($event_name, $data) { |
| | |
| | | exec("nohup /usr/lib/mailman/bin/rmlist -a ".escapeshellcmd($data["old"]["listname"])." >/dev/null 2>&1 &"); |
| | | |
| | | exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); |
| | | |
| | | if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); |
| | | if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); |
| | | |
| | | } |
| | | |
| | | function update_config() { |
| | | global $app, $conf; |
| | | |
| | | copy($this->mailman_config_dir.'mm_cfg.py', $this->mailman_config_dir.'mm_cfg.py'); |
| | | copy($this->mailman_config_dir.'mm_cfg.py', $this->mailman_config_dir.'mm_cfg.py~'); |
| | | |
| | | // load the server configuration options |
| | | $app->uses('getconf'); |
| | |
| | | if (strlen($line) && substr($line, 0, 1) != '#') |
| | | { |
| | | list($key, $value) = explode("=", $line); |
| | | if (!empty($value)) |
| | | if ($value && $value !== '') |
| | | { |
| | | $key = rtrim($key); |
| | | $old_options[$key] = trim($value); |