Example #1
0
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);
}
Example #2
0
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);
}