示例#1
0
 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");
 }
示例#2
0
 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");
     }
 }