Exemple #1
0
function exportAccounts($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $arrLang)
{
    $pEmail = new paloEmail($pDB);
    $id_domain = getParameter("domain");
    $arrAccounts = $pEmail->getAccountsByDomain($id_domain);
    $domainName = $pEmail->getDomains($id_domain);
    if (isset($domainName[0][1])) {
        $domainName = $domainName[0][1];
    } else {
        $domainName = "no_domain";
    }
    $text = "";
    if ($arrAccounts === false) {
        $text = $domainName . "," . _tr("A Error has ocurred when tryed to obtain emails accounts data. ") . $pEmail->errMsg;
    } elseif (count($arrAccounts) == 0) {
        $text = $domainName . "," . _tr("There aren't emails accounts associted with the domain");
    } else {
        foreach ($arrAccounts as $account) {
            if ($text != "") {
                $text .= "\n";
            }
            $user = explode("@", $account[0]);
            $text .= $user[0] . "," . $account[1] . "," . $account[3];
        }
    }
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    header("Content-Description: csv file");
    header("Content-Type: application/download");
    header("Content-Disposition: attachment; filename={$domainName}" . "_accounts.csv");
    header("Content-Transfer-Encoding: binary");
    header("Content-length: " . strlen($text));
    echo $text;
}
Exemple #2
0
function deleteDomain($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $arrLang, $virtual_postfix)
{
    $pEmail = new paloEmail($pDB);
    $id = (int) getParameter("id");
    $arrDomain = $pEmail->getDomains($id);
    if (!is_array($arrDomain) || count($arrDomain) <= 0) {
        $smarty->assign('mb_title', _tr('Error'));
        $smarty->assign('mb_message', _tr('Domain not found by ID'));
    } else {
        $sNombreDominio = $arrDomain[0][1];
        /*** preguntar si el domino que se desea eliminar tiene cuentas o listas de correos creadas ***/
        $arrList = $pEmail->getListByDomain($id);
        $arrAccounts = $pEmail->getAccountsByDomain($id);
        if (is_array($arrList) && count($arrList) > 0) {
            /*** 1) Existen listas creadas asignadas a ese dominio **/
            $smarty->assign("mb_title", _tr("Error"));
            $smarty->assign("mb_message", _tr("Please before to delete a domain delete all email lists asociated to ") . $sNombreDominio);
        } elseif (is_array($arrAccounts) && count($arrAccounts) > 0) {
            /*** 2) Existen creada cuentas de correos que corresponden a ese dominio ***/
            $smarty->assign("mb_title", _tr("Error"));
            $smarty->assign("mb_message", _tr("Please before to delete a domain delete all email accounts asociated to ") . $sNombreDominio);
        } else {
            $bExito = $pEmail->deleteDomain($sNombreDominio);
            if (!$bExito) {
                $smarty->assign("mb_title", _tr("Error"));
                $smarty->assign("mb_message", $pEmail->errMsg);
            } else {
                $smarty->assign("mb_message", _tr("Domain has been deleted"));
            }
        }
    }
    return viewFormDomain($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $arrLang);
}
Exemple #3
0
function saveNewList($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf)
{
    $pEmaillist = new paloSantoEmaillist($pDB);
    $pEmail = new paloEmail($pDB);
    $arrDominios = array("0" => '-- ' . _tr("Select a domain") . ' --');
    $arrDomains = $pEmail->getDomains();
    foreach ($arrDomains as $domain) {
        $arrDominios[$domain[0]] = $domain[1];
    }
    $arrFormEmaillist = createFieldForm($arrDominios);
    $oForm = new paloForm($smarty, $arrFormEmaillist);
    $emailmailman = getParameter("emailmailman") ? getParameter("emailmailman") : null;
    $passwdmailman = getParameter("passwdmailman") ? getParameter("passwdmailman") : null;
    $id_domain = getParameter("domain");
    $namelist = getParameter("namelist");
    $password = getParameter("password");
    $passwordconfirm = getParameter("passwordconfirm");
    $emailadmin = getParameter("emailadmin");
    $namelist = strtolower($namelist);
    if (!$oForm->validateForm($_POST)) {
        // Falla la validación básica del formulario
        $strErrorMsg = "<b>" . _tr('The following fields contain errors') . ":</b><br/>";
        $arrErrores = $oForm->arrErroresValidacion;
        if (is_array($arrErrores) && count($arrErrores) > 0) {
            foreach ($arrErrores as $k => $v) {
                $strErrorMsg .= "{$k}: [{$v['mensaje']}] <br /> ";
            }
        }
        $smarty->assign("mb_title", _tr("Validation Error"));
        $smarty->assign("mb_message", $strErrorMsg);
        return viewFormEmaillist($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
    } elseif (!preg_match("/^[[:alpha:]]+([\\-_\\.]?[[:alnum:]]+)*\$/", $namelist)) {
        $smarty->assign("mb_title", _tr("Validation Error"));
        $smarty->assign("mb_message", _tr("Wrong List Name"));
        return viewFormEmaillist($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
    } elseif ($password != $passwordconfirm) {
        $smarty->assign("mb_title", _tr("Validation Error"));
        $smarty->assign("mb_message", _tr("The Password List and Confirm Password List do not match"));
        return viewFormEmaillist($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
    } elseif (!$pEmaillist->domainExists($id_domain)) {
        $smarty->assign("mb_title", _tr("Validation Error"));
        $smarty->assign("mb_message", _tr("The domain selected does not exist"));
        return viewFormEmaillist($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
    } elseif ($pEmaillist->listExistsbyName($namelist)) {
        $smarty->assign("mb_title", _tr("Validation Error"));
        $smarty->assign("mb_message", _tr("The List entered already exists"));
        return viewFormEmaillist($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
    }
    if (isset($emailmailman) && isset($passwdmailman) && !$pEmaillist->isMailmanListCreated()) {
        if (!$pEmaillist->mailmanCreateList("mailman", $emailmailman, $passwdmailman)) {
            $smarty->assign("mb_title", _tr("Error"));
            $smarty->assign("mb_message", _tr("Could not create the list") . " mailman");
            return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
        }
    }
    $pDB->beginTransaction();
    if (!$pEmaillist->saveEmailList($id_domain, $namelist, $password, $emailadmin)) {
        $pDB->rollBack();
        $smarty->assign("mb_title", _tr("Error"));
        $smarty->assign("mb_message", $pEmaillist->getError());
        return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
    }
    $domainName = $pEmaillist->getDomainName($id_domain);
    if (!isset($domainName)) {
        $pDB->rollBack();
        $smarty->assign("mb_title", _tr("Validation Error"));
        $smarty->assign("mb_message", _tr("The domain selected does not exist"));
        return viewFormEmaillist($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
    }
    if (!$pEmaillist->mailmanCreateList($namelist, $emailadmin, $password, $domainName)) {
        $pDB->rollBack();
        $smarty->assign("mb_title", _tr("Error"));
        $smarty->assign("mb_message", _tr("Could not create the list") . " {$namelist}");
        return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
    }
    if (!$pEmaillist->mailmanCreateVirtualAliases($namelist, $domainName)) {
        $pDB->rollBack();
        $smarty->assign("mb_title", _tr("Error"));
        $smarty->assign("mb_message", _tr("Could not create the virtual alias"));
        return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
    }
    $pDB->commit();
    $smarty->assign("mb_title", _tr("Message"));
    $smarty->assign("mb_message", _tr("The List was successfully created"));
    return reportEmailList($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
}