function removeMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials) { $pEmailList = new paloSantoEmaillist($pDB); $id_list = getParameter("id"); if ($credentials['userlevel'] == 'superadmin') { $emailList = $pEmailList->getEmailList($id_list); } else { $emailList = $pEmailList->getEmailList($id_list, $credentials['domain']); } if ($emailList == false) { $smarty->assign("mb_title", _tr("Error")); $error = $emailList === false ? _tr("Couldn't be retrieved Email List data") : _tr("Email List does not exist"); $smarty->assign("mb_message", $error); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } $tempMembers = getParameter("del_emailmembers"); if (!is_array($tempMembers)) { $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("You must select at least one member")); return reportMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } $emailMembers = array_keys($tempMembers); if (count($emailMembers) == 0) { $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("You must select at least one member")); return reportMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); } $arrMembers = array(); $arrErrorMembers = array(); foreach ($emailMembers as $value) { $member = trim($value); if (preg_match("/^[[:alnum:]]+([\\._\\-]?[[:alnum:]]+)*@[[:alnum:]]+([\\._\\-]?[[:alnum:]]+)*(\\.[[:alnum:]]{2,4})+\$/", $member)) { if ($pEmailList->isAMemberOfList($member, $id_list)) { $arrMembers[]["member"] = $member; } else { $arrErrorMembers[] = _tr("It is not a member") . ": " . htmlentities($member); } } elseif ($member != "") { $arrErrorMembers[] = _tr("Invalid member") . ": " . htmlentities($member); } } if (count($arrMembers) > 0) { $pDB->beginTransaction(); if ($pEmailList->removeMembersList($id_list, $arrMembers)) { $pDB->commit(); $message = "<b>" . _tr("The following members were deleted of the list") . ":</b><br />"; foreach ($arrMembers as $member) { $message .= htmlentities($member["member"]) . "<br />"; } $smarty->assign("mb_title", _tr("Message")); $smarty->assign("mb_message", $message); } else { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("Members could not be deleted to the list") . ". " . $pEmailList->getError()); } } else { $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_title", _tr("Select at least one valid member")); } return reportMemberList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials); }
function deleteEmailList($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf) { $pEmaillist = new paloSantoEmaillist($pDB); $pDB->beginTransaction(); foreach ($_POST as $key => $value) { if ($value == "on") { if ($pEmaillist->listExistsbyId($key)) { $listName = $pEmaillist->getListName($key); if (is_null($listName)) { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("Mailman could not remove the list")); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } $id_domain = $pEmaillist->getIdDomainofList($key); if (is_null($id_domain)) { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("Mailman could not remove the list")); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } $domainName = $pEmaillist->getDomainName($id_domain); if (is_null($domainName)) { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("Mailman could not remove the list")); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } if (!$pEmaillist->deleteEmailList($key)) { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", $pEmaillist->getError()); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } if (!$pEmaillist->mailmanRemoveList($listName, $domainName)) { $pDB->rollBack(); $smarty->assign("mb_title", _tr("Error")); $smarty->assign("mb_message", _tr("Mailman could not remove the list")); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); } } } } $pDB->commit(); $smarty->assign("mb_title", _tr("Message")); $smarty->assign("mb_message", _tr("The email list(s) were successfully deleted")); return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); }