private function overview() { global $user, $smarty; $mails = array(); foreach ($user->getMails() as $mail) { if ($user->isVerified($mail)) { $mails[] = $mail; } } $smarty->assign("mails", $mails); $mailman = new Mailman($user, $this->options["mailman_group"], $this->options["mailman_binpath"]); if (isset($_POST["save"])) { foreach ($mailman->getLists() as $list) { $mail = stripslashes($_POST["mail"][$list->getName()]); if (empty($mail) && $list->hasMember() || !empty($mail) && !$list->hasMember($mail)) { foreach ($list->getMembers() as $member) { if ($user->hasMail($member)) { $list->removeMember($member); } } } if (!empty($mail) && !$list->hasMember($mail)) { $list->addMember($mail); } } } $lists = array(); foreach ($mailman->getLists() as $list) { $members = array(); $has = false; foreach ($mails as $mail) { if ($list->hasMember($mail)) { $members[] = $mail; $has = true; } } $lists[] = array($list->getName(), $list->getSendAddress(), $list->getDescription(), $list->getArchiveURL(), $has, $members); } $smarty->assign("lists", $lists); return $smarty->fetch("lists.tpl"); }
private function deleteMail() { global $smarty, $user, $userdb; $smarty->assign("mail", stripslashes($_REQUEST["mail"])); $allmails = $user->getMails(); $mails = array(); foreach ($allmails as $mail) { if ($user->isVerified($mail)) { $mails[] = $mail; } } $smarty->assign("mails", $mails); if (isset($_POST["act"])) { $mail = stripslashes($_POST["mail"]); $listsoption = stripslashes($_POST["listsoption"]); $movemail = stripslashes($_REQUEST["movemail"]); if (!in_array($mail, $user->getMails())) { $smarty->assign("mailnotinuse", 1); return $this->overview(); } else { if ($listsoption == "move" && !$user->isVerified($movemail)) { $smarty->assign("notverified", 1); return $smarty->fetch("delete_mail.tpl"); } else { if ($listsoption == "move" && $mail == $movemail) { $smarty->assign("sourceequalsdestination", 1); return $smarty->fetch("delete_mail.tpl"); } else { $mailman = new Mailman($user); if ($listsoption == "delete") { $mailman = new Mailman($user); foreach ($mailman->getLists() as $list) { if ($list->hasMember($mail)) { $list->removeMember($mail); } } } if ($listsoption == "move") { $mailman = new Mailman($user); foreach ($mailman->getLists() as $list) { if ($list->hasMember($mail)) { $list->removeMember($mail); $list->addMember($movemail); } } } $user->deleteMail($mail); $user->save(); $smarty->assign("success", 1); return $this->overview(); } } } } else { return $smarty->fetch("delete_mail.tpl"); } }