function SaveCyrusPassword()
{
    $ldap = new clladp();
    $_POST["SaveCyrusPassword"] = url_decode_special_tool(trim($_POST["SaveCyrusPassword"]));
    if ($_POST["SaveCyrusPassword"] == null) {
        echo "Error: No password defined\n";
        return;
    }
    if (strpos($_POST["SaveCyrusPassword"], '@') > 0) {
        echo "@,: denied character\n";
        return;
    }
    if (strpos($_POST["SaveCyrusPassword"], ':') > 0) {
        echo "@,: denied character\n";
        return;
    }
    $attrs["userPassword"][0] = $_POST["SaveCyrusPassword"];
    $dn = "cn=cyrus,dc=organizations,{$ldap->suffix}";
    if ($ldap->ExistsDN($dn)) {
        if (!$ldap->Ldap_modify($dn, $attrs)) {
            echo $ldap->ldap_last_error;
            return;
        }
    }
    $dn = "cn=cyrus,{$ldap->suffix}";
    if ($ldap->ExistsDN($dn)) {
        if (!$ldap->Ldap_modify($dn, $attrs)) {
            echo $ldap->ldap_last_error;
            return;
        }
    }
    $sock = new sockets();
    $sock->getFrameWork("cmd.php?cyrus-change-password="******"SaveCyrusPassword"]));
}
Exemple #2
0
function changecomputername()
{
    if (substr($_POST["userid"], strlen($_POST["userid"]) - 1, 1) != "\$") {
        $_POST["userid"] = $_POST["userid"] . "\$";
    }
    $comp = new computers($_POST["userid"]);
    $MAC = $comp->ComputerMacAddress;
    $_POST["NewHostname"] = trim(strtolower($_POST["NewHostname"]));
    $_POST["NewHostname"] = str_replace('$', '', $_POST["NewHostname"]);
    $actualdn = $comp->dn;
    $newrdn = "cn={$_POST["NewHostname"]}\$";
    $ldap = new clladp();
    if (!preg_match("#^cn=(.+?),[a-zA-Z\\s]+#", $actualdn, $re)) {
        echo "Unable to preg_match {$actualdn}\n";
        return;
    }
    $newDN = str_replace($re[1], $_POST["NewHostname"] . '$', $actualdn);
    if ($newDN == null) {
        echo "Unable to preg_match {$actualdn} -> {$re[1]}\n";
        return;
    }
    if (!$ldap->Ldap_rename_dn($newrdn, $actualdn, null)) {
        echo "Rename failed {$ldap->ldap_last_error}\nFunction:" . __FUNCTION__ . "\nFile:" . __FILE__ . "\nLine" . __LINE__ . "\nExpected DN:{$newDN}";
        return;
    }
    $upd["uid"][0] = $_POST["NewHostname"] . '$';
    if (!$ldap->Ldap_modify($newDN, $upd)) {
        echo "Update UID {$upd["uid"][0]} failed:\n{$ldap->ldap_last_error}\nFunction:" . __FUNCTION__ . "\nFile:" . __FILE__ . "\nLine" . __LINE__ . "\nExpected DN:{$newDN}\nExpected value:{$_POST["NewHostname"]}";
        return;
    }
    $ocs = new ocs($MAC);
    $ocs->ComputerName = $_POST["NewHostname"];
    $ocs->ComputerIP = $comp->ComputerIP;
    $ocs->EditComputer();
}
function SaveSettings()
{
    $ou = $_GET["ou"];
    $upd["ArticaFakedMailFrom"][0] = $_GET["ArticaFakedMailFrom"];
    $upd["ArticaDenyNoMXRecords"][0] = $_GET["ArticaDenyNoMXRecords"];
    $upd["OuTrustMyUSers"][0] = $_GET["OuTrustMyUSers"];
    $ldap = new clladp();
    $dn = "ou={$ou},dc=organizations,{$ldap->suffix}";
    $ldap->Ldap_modify($dn, $upd);
}
function changecomputername()
{
    if (substr($_POST["userid"], strlen($_POST["userid"]) - 1, 1) != "\$") {
        $_POST["userid"] = $_POST["userid"] . "\$";
    }
    $comp = new computers($_POST["userid"]);
    $MAC = $comp->ComputerMacAddress;
    $_POST["NewHostname"] = trim(strtolower($_POST["NewHostname"]));
    $_POST["NewHostname"] = str_replace('$', '', $_POST["NewHostname"]);
    $actualdn = $comp->dn;
    $newrdn = "cn={$_POST["NewHostname"]}\$";
    $ldap = new clladp();
    if (!preg_match("#^cn=(.+?),[a-zA-Z\\s]+#", $actualdn, $re)) {
        echo "Unable to preg_match {$actualdn}\n";
        return;
    }
    $newDN = str_replace($re[1], $_POST["NewHostname"] . '$', $actualdn);
    if ($newDN == null) {
        echo "Unable to preg_match {$actualdn} -> {$re[1]}\n";
        return;
    }
    if ($ldap->ExistsDN("{$newrdn},ou=Computer,dc=samba,dc=organizations,{$ldap->suffix}")) {
        $ldap->ldap_delete("{$newrdn},ou=Computer,dc=samba,dc=organizations,{$ldap->suffix}");
    }
    $newParent = "ou=Computer,dc=samba,dc=organizations,{$ldap->suffix}";
    if (!$ldap->Ldap_rename_dn($newrdn, $actualdn, $newParent)) {
        echo "Rename failed {$ldap->ldap_last_error}\nFunction:" . __FUNCTION__ . "\nFile:" . __FILE__ . "\nLine" . __LINE__ . "\n\nActual DN:{$actualdn}\nExpected DN:{$newrdn}";
        return;
    }
    $upd["uid"][0] = $_POST["NewHostname"] . '$';
    if (!$ldap->Ldap_modify($newDN, $upd)) {
        echo "Update UID {$upd["uid"][0]} failed:\n{$ldap->ldap_last_error}\nFunction:" . __FUNCTION__ . "\nFile:" . __FILE__ . "\nLine" . __LINE__ . "\nExpected DN:{$newDN}\nExpected value:{$_POST["NewHostname"]}";
        return;
    }
    $ocs = new ocs($MAC);
    $ocs->ComputerName = $_POST["NewHostname"];
    $ocs->ComputerIP = $comp->ComputerIP;
    $ocs->EditComputer();
    if (IsPhysicalAddress($comp->ComputerMacAddress)) {
        include_once dirname(__FILE__) . "/ressources/class.mysql.inc";
        $uid = $comp->ComputerIDFromMAC($comp->ComputerMacAddress);
        $comp = new computers($uid);
        $sql = "UPDATE dhcpd_fixed SET `hostname`='{$comp->ComputerRealName}' WHERE `mac`='{$comp->ComputerMacAddress}'";
        $q = new mysql();
        $q->QUERY_SQL($sql, "artica_backup");
    }
}
function Loadtemplate()
{
    $ou = $_GET["ou"];
    $template_name = $_GET["template"];
    writequeries();
    $ldap = new clladp();
    $dn = "cn=artica_quarantine_settings,ou={$ou},dc=organizations,{$ldap->suffix}";
    if (isset($_GET["ArticaMaxDayTemplate"])) {
        $template_data = "<SUBJECT>{$_GET["subject"]}</SUBJECT>\n\t\t<FROM>{$_GET["from"]}</FROM>\n\t\t<TEMPLATE>{$_GET["ArticaMaxDayTemplate"]}</TEMPLATE>";
        $upd[$template_name][0] = $template_data;
        if (!$ldap->Ldap_modify($dn, $upd)) {
            echo "<H2>{$ldap->ldap_last_error}</H2>";
            exit;
        }
    }
    if (!$ldap->ExistsDN($dn)) {
        $upd["cn"][] = "artica_quarantine_settings";
        $upd["objectClass"][] = 'top';
        $upd["objectClass"][] = 'ArticaQuarantineTemplates';
        $upd["{$template_name}"][] = "DEFAULT";
        $ldap->ldap_add($dn, $upd);
        $template_data = "DEFAULT";
    } else {
        $hash = $ldap->Ldap_read($dn, '(ObjectClass=ArticaQuarantineTemplates)', array(strtolower($template_name)));
        if (!is_array($hash[0][strtolower($template_name)])) {
            unset($upd);
            $upd[$template_name] = "DEFAULT";
            $ldap->Ldap_add_mod($dn, $upd);
            $hash = $ldap->Ldap_read($dn, '(ObjectClass=ArticaQuarantineTemplates)', array(strtolower($template_name)));
        }
        $template_data = $hash[0][strtolower($template_name)][0];
    }
    if ($template_data == "DEFAULT") {
        $template_data = file_get_contents("ressources/databases/{$template_name}.cf");
    }
    if (preg_match('#<SUBJECT>(.+?)</SUBJECT>\\s+<FROM>(.+?)</FROM>\\s+<TEMPLATE>(.+?)</TEMPLATE>#is', $template_data, $reg)) {
        $subject = $reg[1];
        $from = $reg[2];
        $template_d = $reg[3];
    }
    $tiny = TinyMce('ArticaMaxDayTemplate', $template_d);
    $html = "\n\t<html>\n\t<head>\n\t<link href='css/styles_main.css' rel=\"styleSheet\" type='text/css' />\n\t<link href='css/styles_header.css' rel=\"styleSheet\" type='text/css' />\n\t<link href='css/styles_middle.css' rel=\"styleSheet\" type='text/css' />\n\t<link href='css/styles_forms.css' rel=\"styleSheet\" type='text/css' />\n\t<link href='css/styles_tables.css' rel=\"styleSheet\" type='text/css' />\n\t<script type='text/javascript' language='JavaScript' src='mouse.js'></script>\n\t<script type='text/javascript' language='javascript' src='XHRConnection.js'></script>\n\t<script type='text/javascript' language='javascript' src='default.js'></script>\n\t<script type='text/javascript' language='javascript' src='js/quarantine.ou.js'></script>\t\n\t</head>\n\t<body width=100% style='background-color:white'> \n\t\t<H5>{" . "{$template_name}}</H5>\n\t<form name='FFM1'>\n\t<table style='width:100%;margin:10px'>\n\t<tr>\n\t<td align='right'><strong>{from}:</strong></td>\n\t<td><input type='text' name='from' value='{$from}'></td>\n\t</tr>\n\t<tr>\n\t<td align='right'><strong>{subject}:</strong></td>\n\t<td><input type='text' name='subject' value='{$subject}'></td>\n\t</tr>\t\n\t</table>\n\t<div style='width:450px'>{$tiny}</div>\n\t<p class=caption>{template_token}</p>\n\t<input type='hidden' name='ou' value='{$ou}'>\n\t<input type='hidden' name='template' value='{$template_name}'>\n\t</form>\n\t</body>\n\t</html>";
    $tpl = new templates();
    echo $tpl->_ENGINE_parse_body($html);
}
function main_rules_group_move()
{
    $kav = new kav4proxy();
    $number = $_GET["Kav4ProxyMoveGroup"];
    $move = $_GET["move"];
    $ldap = new clladp();
    $res = @ldap_read($ldap->ldap_connection, $kav->dn, "(objectClass=*)", array());
    if ($res) {
        $hash = ldap_get_entries($ldap->ldap_connection, $res);
        for ($i = 0; $i < $hash[0][strtolower('kav4proxygroupsconf')]["count"]; $i++) {
            $array[$i] = $hash[0][strtolower('kav4proxygroupsconf')][$i];
        }
    }
    $new = array_move_element($array, $array[$number], $move);
    while (list($num, $ligne) = each($new)) {
        $upd["Kav4ProxyGroupsConf"][] = $ligne;
    }
    $ldap->Ldap_modify($kav->dn, $upd);
    $kav = new kav4proxy();
    $kav->SaveToLdap();
}
Exemple #7
0
function SaveActionsRules()
{
    $gidNumber = $_GET["gidnumber"];
    unset($_GET["gidnumber"]);
    $ldap = new clladp();
    $tpl = new templates();
    $HashGroup = $ldap->GroupDatas($gidNumber);
    $DN = $HashGroup["dn"];
    $HashGroup["KasperskyASGroupNumber"] = $gidNumber;
    $tpl = new templates();
    $kas = new kas_groups();
    $SettingsDatas = $kas->SaveArrayRules();
    $FileToSave = $kas->BuildRulesFile($HashGroup, $SettingsDatas);
    if (!is_array_key('KasperkyASDatasRules', $HashGroup)) {
        $hash_add_array2["KasperkyASDatasRules"] = $FileToSave;
        $ldap->Ldap_add_mod($DN, $hash_add_array2);
        if ($ldap->ldap_last_error != null) {
            echo '{SaveActionsRules} -> add Mod:' . $ldap->ldap_last_error;
        }
    }
    $error = $ldap->ldap_last_error;
    $hash_update_array["KasperkyASDatasRules"] = $FileToSave;
    $ldap->Ldap_modify($DN, $hash_update_array);
    $error = $error . " " . $ldap->ldap_last_error;
    $kas = new kas_groups($FileToSave);
    $kas->PrepareFiles($gidNumber);
    if (strlen($error) < 5) {
        $error = "{success} {group rules}";
    }
    echo $tpl->_ENGINE_parse_body($error);
}
function TreePostfixDeleteHeaderCheckRule()
{
    include_once "ressources/class.main_cf_filtering.inc";
    $id = $_GET["TreePostfixDeleteHeaderCheckRule"];
    $filters = new main_header_check();
    $datas = $filters->array_ldap_source[$id];
    unset($filters->array_ldap_source[$id]);
    if (count($filters->array_ldap_source) == 0) {
        $update_array["PostfixHeadersRegex"] = $datas;
        $ldap = new clladp();
        $ldap->Ldap_del_mod("cn=artica,{$ldap->suffix}", $update_array);
    } else {
        while (list($num, $ligne) = each($filters->array_ldap_source)) {
            $update_array["PostfixHeadersRegex"][] = $filters->array_ldap_source[$num];
        }
        $ldap = new clladp();
        $ldap->Ldap_modify("cn=artica,{$ldap->suffix}", $update_array);
        if ($ldap->ldap_last_error != null) {
            echo nl2br("ID=[{$_GET["TreePostfixDeleteHeaderCheckRule"]}]\n{$ldap->ldap_last_error}");
        }
    }
    $pages = new HtmlPages();
    if ($pages->AutomaticConfig == true) {
        $filters->SaveToDaemon();
    }
    echo $pages->PagePostfixRules();
}
function bogospam_action()
{
    $ldap = new clladp();
    $tpl = new templates();
    $upd["BogoFilterAction"] = "{$_GET["exceed"]};{$_GET["bogospam_action"]};{$_GET["prepend"]}";
    $dn = "ou={$_GET["ou"]},{$ldap->suffix}";
    if (!$ldap->Ldap_modify($dn, $upd)) {
        echo $tpl->_ENGINE_parse_body($ldap->ldap_last_error);
    } else {
        echo $tpl->_ENGINE_parse_body('{success}');
    }
}
function ZARAFA_DISABLE_FEATURES_SAVE()
{
    $zarafaEnabledFeatures = null;
    $zarafaDisabledFeatures = null;
    $array = array();
    if ($_POST["user_zarafa_enable_imap"] == 1) {
        $zarafaEnabledFeatures = "imap";
    }
    if ($_POST["user_zarafa_enable_pop3"] == 1) {
        $zarafaEnabledFeatures = $zarafaEnabledFeatures . " pop3";
    }
    if ($_POST["user_zarafa_enable_imap"] == 0) {
        $zarafaDisabledFeatures = "imap";
    }
    if ($_POST["user_zarafa_enable_pop3"] == 0) {
        $zarafaDisabledFeatures = $zarafaDisabledFeatures . " pop3";
    }
    $u = new user($_POST["uid"]);
    $ldap = new clladp();
    if ($zarafaEnabledFeatures == null) {
        if (!$ldap->Ldap_del_mod($u->dn, $array["zarafaEnabledFeatures"])) {
            echo "zarafaEnabledFeatures = '{$zarafaEnabledFeatures}'\nzarafaDisabledFeatures = '{$zarafaDisabledFeatures}'\nLDAP ERROR :\nFunction: " . __FUNCTION__ . "\nPage: " . basename(__FILE__) . "\nLine:" . __LINE__ . "\nError:\n" . $ldap->ldap_last_error;
        }
    }
    if ($zarafaDisabledFeatures == null) {
        if (!$ldap->Ldap_del_mod($u->dn, $array["zarafaDisabledFeatures"])) {
            echo "zarafaEnabledFeatures = '{$zarafaEnabledFeatures}'\nzarafaDisabledFeatures = '{$zarafaDisabledFeatures}'\nLDAP ERROR :\nFunction: " . __FUNCTION__ . "\nPage: " . basename(__FILE__) . "\nLine:" . __LINE__ . "\nError:\n" . $ldap->ldap_last_error;
        }
    }
    if ($zarafaEnabledFeatures != null) {
        $upd["zarafaEnabledFeatures"][0] = $zarafaEnabledFeatures;
    }
    if ($zarafaDisabledFeatures != null) {
        $upd["zarafaDisabledFeatures"][0] = $zarafaDisabledFeatures;
    }
    if (!$ldap->Ldap_modify($u->dn, $upd)) {
        echo "zarafaEnabledFeatures = '{$zarafaEnabledFeatures}'\nzarafaDisabledFeatures = '{$zarafaDisabledFeatures}'\nLDAP ERROR :\nFunction: " . __FUNCTION__ . "\nPage: " . basename(__FILE__) . "\nLine:" . __LINE__ . "\nError:\n" . $ldap->ldap_last_error;
        return;
    }
}
 function Save()
 {
     $tpl = new templates();
     writelogs("enabled={$this->BigMailHTMLEnabled}", __FUNCTION__, __FILE__);
     $upd["BigMailHTMLEnabled"][0] = $this->BigMailHTMLEnabled;
     $ini = new Bs_IniHandler();
     $ini->_params = $this->params;
     $upd["BigMailHtmlConfig"][0] = $ini->toString();
     $upd["BigMailHtmlBody"][0] = $this->BigMailHtmlBody;
     $ldap = new clladp();
     if ($ldap->Ldap_modify($this->dn, $upd)) {
         echo $tpl->_ENGINE_parse_body('{success}');
     } else {
         echo $ldap->ldap_last_error;
     }
 }
function round_robin_save()
{
    $ou = $_GET["ou"];
    $tpl = new templates();
    $roundrobin_nameserver = $_GET["roundrobin_nameserver"];
    $roundrobin_ipaddress = $_GET["roundrobin_ipaddress"];
    $domain = $_GET["domain"];
    if (IsIPValid($roundrobin_nameserver)) {
        echo $tpl->_ENGINE_parse_body("{servername}:\n{$roundrobin_nameserver}\n {error_cannot_be_ip_address}");
        exit;
    }
    if (!IsIPValid($roundrobin_ipaddress)) {
        echo $tpl->_ENGINE_parse_body("{add_ip_address}:\n{$roundrobin_ipaddress}\n {error_must_be_ip_address}");
        exit;
    }
    $ini = new Bs_IniHandler();
    $sock = new sockets();
    $datas = $sock->GET_INFO('RoundRobinHosts');
    $ini->loadString($datas);
    $ips = explode(",", $ini->_params["{$domain}"]["IP"]);
    $ips[] = $roundrobin_ipaddress;
    $ini->_params["{$domain}"]["servername"] = $roundrobin_nameserver;
    $ini->_params["{$domain}"]["IP"] = implode(",", $ips);
    $sock->SaveConfigFile($ini->toString(), "RoundRobinHosts");
    $sock->getfile("RoundRobinHosts");
    $ldap = new clladp();
    $dn = "cn={$domain},cn=transport_map,ou={$ou},dc=organizations,{$ldap->suffix}";
    $upd["transport"][0] = "[{$roundrobin_nameserver}]";
    if (!$ldap->Ldap_modify($dn, $upd)) {
        echo $ldap->ldap_last_error;
        exit;
    }
    echo html_entity_decode($tpl->_ENGINE_parse_body('{success}'));
}
Exemple #13
0
function SaveArticaWebRootURI()
{
    $ArticaWebRootURI = $_GET["ArticaWebRootURI"];
    if (!is_numeric($_GET["ArticaMaxTempLogFilesDay"])) {
        $_GET["ArticaMaxTempLogFilesDay"] = 3;
    }
    $artica = new artica_general();
    $ini = new Bs_IniHandler();
    $ini->loadString($artica->ArticaPerformancesSettings);
    $ini->_params["PERFORMANCES"]["ArticaMaxLogsSize"] = $_GET["ArticaMaxLogsSize"];
    writelogs("Save PERFORMANCES/ArticaMaxLogsSize={$ini->_params["PERFORMANCES"]["ArticaMaxLogsSize"]}", __FUNCTION__, __FILE__);
    $artica->ArticaPerformancesSettings = $ini->toString();
    $artica->MaxTempLogFilesDay = $_GET["ArticaMaxTempLogFilesDay"];
    $artica->Save();
    $ldap = new clladp();
    $upd["ArticaWebRootURI"][0] = $ArticaWebRootURI;
    if (!$ldap->Ldap_modify("cn=artica,{$ldap->suffix}", $upd)) {
        echo $ldap->ldap_last_error;
    } else {
        $tpl = new templates();
        echo $tpl->_ENGINE_parse_body('Logs:{success}');
    }
}
function smtpd_client_restrictions_save()
{
    $ldap = new clladp();
    if (!$ldap->ExistsDN("cn=restrictions_classes,cn=artica,{$ldap->suffix}")) {
        $upd["objectClass"][] = "top";
        $upd["objectClass"][] = "top";
        $upd["objectClass"][] = "PostFixStructuralClass";
        $upd["cn"][0] = "restrictions_classes";
        if (!$ldap->ldap_add("cn=restrictions_classes,cn=artica,{$ldap->suffix}", $upd)) {
            echo "cn=restrictions_classes,cn=artica,{$ldap->suffix}\n{$ldap->ldap_last_error}";
            return null;
        }
    }
    if ($ldap->ExistsDN("cn=smtpd_client_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}")) {
        $ldap->ldap_delete("cn=smtpd_client_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}", false);
        $upd1["objectClass"][] = "top";
        $upd1["objectClass"][] = "PostFixRestrictionStandardClasses";
        $upd1["cn"][0] = "smtpd_client_restrictions";
        if (!$ldap->ldap_add("cn=smtpd_client_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}", $upd1)) {
            echo "Modify smtpd_client_restrictions branch\n{$ldap->ldap_last_error}";
            return null;
        }
    }
    unset($upd1);
    if ($ldap->ExistsDN("cn=smtpd_helo_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}")) {
        $ldap->ldap_delete("cn=smtpd_helo_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}", false);
    }
    if (!$ldap->ExistsDN("cn=smtpd_helo_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}")) {
        $upd1["objectClass"][] = "top";
        $upd1["objectClass"][] = "PostFixRestrictionStandardClasses";
        $upd1["cn"][0] = "smtpd_helo_restrictions";
        if (!$ldap->ldap_add("cn=smtpd_helo_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}", $upd1)) {
            echo "Modify smtpd_helo_restrictions branch\n{$ldap->ldap_last_error}";
            return null;
        }
    }
    $EnablePostfixAntispamPack = $_GET["EnablePostfixAntispamPack"];
    $upd_vals["PostFixRestrictionClassList"][] = "permit_mynetworks=\"\"";
    $upd_vals["PostFixRestrictionClassList"][] = "permit_sasl_authenticated=\"\"";
    $upd_vals["PostFixRestrictionClassList"][] = "check_client_access=\"hash:/etc/postfix/postfix_allowed_connections\"";
    if ($_GET["reject_unknown_client_hostname"] == 1) {
        $upd_vals["PostFixRestrictionClassList"][] = "reject_unknown_client_hostname=\"\"";
    }
    if ($_GET["reject_invalid_hostname"] == 1) {
        $upd_vals["PostFixRestrictionClassList"][] = "reject_invalid_hostname=\"\"";
    }
    if ($_GET["reject_unknown_reverse_client_hostname"] == 1) {
        $upd_vals["PostFixRestrictionClassList"][] = "reject_unknown_reverse_client_hostname=\"\"";
    }
    if ($_GET["reject_unknown_sender_domain"] == 1) {
        $upd_vals["PostFixRestrictionClassList"][] = "reject_unknown_sender_domain=\"\"";
    }
    if ($_GET["reject_non_fqdn_sender"] == 1) {
        $upd_vals["PostFixRestrictionClassList"][] = "reject_non_fqdn_sender=\"\"";
    }
    if ($EnablePostfixAntispamPack == 1) {
        $upd_vals["PostFixRestrictionClassList"][] = "reject_rbl_client=\"zen.spamhaus.org\"";
        $upd_vals["PostFixRestrictionClassList"][] = "reject_rbl_client=\"sbl.spamhaus.org\"";
        $upd_vals["PostFixRestrictionClassList"][] = "reject_rbl_client=\"cbl.abuseat.org\"";
    }
    $upd_vals["PostFixRestrictionClassList"][] = "permit=\"\"";
    $sock = new sockets();
    $sock->SET_INFO('EnablePostfixAntispamPack', $EnablePostfixAntispamPack);
    $sock->SET_INFO('reject_forged_mails', $_GET["reject_forged_mails"]);
    if (!$ldap->Ldap_modify("cn=smtpd_client_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}", $upd_vals)) {
        echo "Modify smtpd_client_restrictions branch\n{$ldap->ldap_last_error}";
        return null;
    }
    unset($upd_vals);
    if ($EnablePostfixAntispamPack == 1) {
        $upd_vals["PostFixRestrictionClassList"][] = "permit_mynetworks=\"\"";
        $upd_vals["PostFixRestrictionClassList"][] = "permit_sasl_authenticated=\"\"";
        $upd_vals["PostFixRestrictionClassList"][] = "check_client_access=\"hash:/etc/postfix/postfix_allowed_connections\"";
        $upd_vals["PostFixRestrictionClassList"][] = "reject_non_fqdn_hostname=\"\"";
        $upd_vals["PostFixRestrictionClassList"][] = "reject_invalid_hostname=\"\"";
        $upd_vals["PostFixRestrictionClassList"][] = "permit=\"\"";
        if (!$ldap->Ldap_modify("cn=smtpd_helo_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}", $upd_vals)) {
            echo "Modify datas in smtpd_helo_restrictions branch\n{$ldap->ldap_last_error}";
            return null;
        }
    }
    $main = new main_cf();
    $main->save_conf_to_server(1);
    $sock = new sockets();
    $tpl = new templates();
    $sock->getFrameWork("cmd.php?reconfigure-postfix=yes");
}
function autofs_connect()
{
    $auto = new autofs();
    $ldap = new clladp();
    $sock = new sockets();
    $_GET["LOCAL_DIR"] = strtolower($ldap->StripSpecialsChars($_GET["LOCAL_DIR"]));
    $upd = array();
    $dn = "cn={$_GET["LOCAL_DIR"]},ou=auto.automounts,ou=mounts,{$ldap->suffix}";
    if ($_GET["fs"] == null) {
        $prefix_pattern = "-fstype=auto,check=none,noatime";
    }
    if ($_GET["fs"] == "ext2") {
        $prefix_pattern = "-fstype=ext2,check=none,noatime";
    }
    if ($_GET["fs"] == "ext3") {
        $prefix_pattern = "-fstype=ext3,check=none,noatime,nodiratime,data=journal,user";
    }
    if ($_GET["fs"] == "ext4") {
        $prefix_pattern = "-fstype=ext4,check=none,noatime,commit=60,nodiratime,data=journal,user";
    }
    if ($_GET["fs"] == "vfat") {
        $prefix_pattern = "-fstype=vfat,uid=1000,gid=1010";
    }
    if ($_GET["fs"] == "ntfs") {
        $prefix_pattern = "-fstype=ntfs-3g,uid=1000,gid=1010";
    }
    if ($prefix_pattern == null) {
        $prefix_pattern = "-fstype=auto,check=none,noatime";
    }
    $pattern = "{$prefix_pattern} :{$_GET["dev"]}";
    if (!$ldap->ExistsDN($dn)) {
        $upd["ObjectClass"][] = 'top';
        $upd["ObjectClass"][] = 'automount';
        $upd["cn"][] = "{$_GET["LOCAL_DIR"]}";
        $upd["automountInformation"][] = $pattern;
        if (!$ldap->ldap_add($dn, $upd)) {
            echo "function: " . __FUNCTION__ . "\n" . "file: " . __FILE__ . "\nline: " . __LINE__ . "\n" . $ldap->ldap_last_error;
            return;
        }
        $sock->getFrameWork("cmd.php?autofs-reload=yes");
        return;
    }
    $upd["automountInformation"][] = $pattern;
    if (!$ldap->Ldap_modify($dn, $upd)) {
        echo "function: " . __FUNCTION__ . "\n" . "file: " . __FILE__ . "\nline: " . __LINE__ . "\n" . $ldap->ldap_last_error;
        return false;
    }
    $sock->getFrameWork("cmd.php?autofs-reload=yes");
}
Exemple #16
0
function add_auto_mount()
{
    $type = $_GET["type"];
    $mount_point = $_GET["mount-point"];
    $computer = $_GET["computer"];
    $src = $_GET["src"];
    if ($type == 'smbfs') {
        $cmp = new computers($computer);
        $ini = new Bs_IniHandler();
        $ini->loadString($cmp->ComputerCryptedInfos);
        $username = $ini->_params["ACCOUNT"]["USERNAME"];
        $password = $ini->_params["ACCOUNT"]["PASSWORD"];
        if ($username != null) {
            $options = ",username={$username},password={$password}";
        }
        $pattern = "-fstype=smbfs{$options} ://{$cmp->ComputerIP}/{$src}";
    }
    if (preg_match("#nfs[0-9]+#", $type)) {
        if ($type == 'nfs3') {
            $pattern = "-fstype={$type} {$cmp->ComputerIP}:{$src}";
        }
        if ($type == 'nfs4') {
            $pattern = "-fstype={$type} {$cmp->ComputerIP}:/";
        }
    }
    $ldap = new clladp();
    $autofs = new autofs();
    $dn = "cn={$mount_point},ou=auto.automounts,ou=mounts,{$ldap->suffix}";
    if (!$ldap->ExistsDN($dn)) {
        $upd["ObjectClass"][] = 'top';
        $upd["ObjectClass"][] = 'automount';
        $upd["cn"][] = $mount_point;
        $upd["automountInformation"][] = $pattern;
        if (!$ldap->ldap_add($dn, $upd)) {
            echo "function: " . __FUNCTION__ . "\n" . "file: " . __FILE__ . "\nline: " . __LINE__ . "\n" . $ldap->ldap_last_error;
            return false;
        }
    } else {
        $upd["automountInformation"][] = $pattern;
        if (!$ldap->Ldap_modify($dn, $upd)) {
            echo "function: " . __FUNCTION__ . "\n" . "file: " . __FILE__ . "\nline: " . __LINE__ . "\n" . $ldap->ldap_last_error;
            return false;
        }
    }
    $tpl = new templates();
    echo $tpl->_ENGINE_parse_body('{success}');
}
function SaveLdapUser()
{
    $ldap = new clladp();
    $dn = $_GET["dn"];
    unset($_GET["dn"]);
    unset($_GET["SaveLdapUser"]);
    $hash = $ldap->getobjectDNClass($dn, 1);
    if (!isset($hash["ArticaSettings"])) {
        $add_array["objectClass"][] = "ArticaSettings";
        $ldap->Ldap_add_mod($dn, $add_array);
    }
    if (trim($_GET["SenderCanonical"]) == null) {
        $hash = $ldap->UserDatas($_GET["uid"]);
        if ($hash['SenderCanonical'] != null) {
            writelogs("delete SenderCanonical:{$_GET["uid"]}=>{$hash['SenderCanonical']}", __FUNCTION__, __FILE__);
            $upd["SenderCanonical"][0] = $hash['SenderCanonical'];
            $ldap->Ldap_del_mod($dn, $upd);
        }
        unset($_GET["SenderCanonical"]);
    }
    while (list($num, $ligne) = each($_GET)) {
        if ($ligne == 'true') {
            $ligne = 'TRUE';
        }
        if ($ligne == 'false') {
            $ligne = 'FALSE';
        }
        if ($ligne != null) {
            $update_array[$num][] = $ligne;
        }
    }
    $ldap->Ldap_modify($dn, $update_array);
    if ($ldap->ldap_last_error != null) {
        echo $ldap->ldap_last_error;
    } else {
        $tpl = new templates();
        echo $tpl->_ENGINE_parse_body('{success}');
    }
}
function USER_CHANGE_UID_SAVE()
{
    $uid = $_GET["changeuidFrom"];
    $uidnext = $_GET["changeuidTo"];
    $user = new user($uid);
    $array["uid"][0] = $uidnext;
    $ldap = new clladp();
    if (!$ldap->Ldap_modify($user->dn, $array)) {
        echo $ldap->ldap_last_error;
        exit;
    }
    $groups = $user->GetGroups($uid);
    $hash = $user->Groups_list($uid);
    if (is_array($hash)) {
        while (list($num, $val) = each($hash)) {
            $group = new groups($num);
            writelogs("Delete user ({$uid}) from {$val}", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
            $group->DeleteUserFromThisGroup($uid);
            $group->AddUsertoThisGroup($uidnext);
        }
    }
    $users = new usersMenus();
    if ($users->POSTFIX_INSTALLED) {
        $sock = new sockets();
        $sock->getFrameWork("cmd.php?postfix-hash-aliases=yes");
    }
}
Exemple #19
0
function Tree_group_edit1()
{
    $gid = $_GET["Tree_group_edit1"];
    $_GET["group_name"] = replace_accents($_GET["group_name"]);
    $ldap = new clladp();
    $hash = $ldap->GroupDatas($gid);
    $dn = $hash["dn"];
    if ($hash["cn"] != $_GET["group_name"]) {
        $ldap->ldap_group_rename($dn, "cn={$_GET["group_name"]}");
        $hash = $ldap->GroupDatas($gid);
        $dn = $hash["dn"];
    }
    $update_array["description"][0] = $_GET["description"];
    $ldap->Ldap_modify($dn, $update_array);
    $pages = new HtmlPages();
    echo $pages->PageGroup($gid);
}
Exemple #20
0
function users_delete_aliases()
{
    $ldap = new clladp();
    $hash = $ldap->GetDNValues($_GET["users_delete_aliases"]);
    unset($hash[0]["mailalias"][$_GET["aliases_num"]]);
    while (list($num, $ligne) = each($hash[0]["mailalias"])) {
        if (!is_numeric($ligne)) {
            $val[] = $ligne;
        }
    }
    $array["mailalias"] = $val;
    $ldap->Ldap_modify($_GET["users_delete_aliases"], $array);
    echo users_aliases($_GET["users_delete_aliases"]);
}
Exemple #21
0
function save_transport()
{
    $mailbox = new MailBoxes();
    $domain = $_GET["save_transport"];
    $ou = $_GET["ou"];
    $line = $mailbox->transport_maps_implode($_GET["transport_maps"], $_GET["transport_maps_port"], $_GET["transport_maps_service"]);
    $ldap = new clladp();
    $transport = $ldap->GetTransportTable($domain);
    if ($transport != null) {
        $upd["transport"][0] = $line;
        $ldap->Ldap_modify("cn={$domain},ou={$ou},dc=organizations,{$ldap->suffix}", $upd);
        echo transport_map($domain, $ou);
        return null;
    } else {
        $upd['cn'][0] = $domain;
        $upd['transport'][0] = $line;
        $upd['objectClass'][0] = 'transportTable';
        $upd['objectClass'][1] = 'top';
        $ldap->ldap_add("cn={$domain},ou={$ou},dc=organizations,{$ldap->suffix}", $upd);
        echo transport_map($domain, $ou);
        return null;
    }
}
Exemple #22
0
function EnableProfiles(){
		$ldap=new clladp();
		$sock=new sockets();
		$smb=new samba();
		$upd=array();
		$SambaAdminServerDefined=$sock->GET_INFO("SambaAdminServerDefined");
		
		$SAMBA_HOSTNAME=$smb->main_array["global"]["netbios name"];
		$SAMBA_IP=gethostbyname($SAMBA_HOSTNAME);
		if(trim($SAMBA_IP)==null){$SAMBA_IP=$SAMBA_HOSTNAME;}
		if(trim($SAMBA_IP)=="127.0.0.1"){$SAMBA_IP=$SAMBA_HOSTNAME;}
		if(trim($SAMBA_IP)=="127.0.1.1"){$SAMBA_IP=$SAMBA_HOSTNAME;}
		if(trim($SAMBA_IP)=="127.0.0.2"){$SAMBA_IP=$SAMBA_HOSTNAME;}		
		if($SambaAdminServerDefined<>null){$SAMBA_IP=$SambaAdminServerDefined;}
		$profile_path=$sock->GET_INFO('SambaProfilePath');
		if(trim($profile_path)==null){$profile_path="/home/export/profile";}
		$profile_base=basename($profile_path);	
		
		$attr=array("dn","uid","SambaProfilePath");
		$pattern="(&(objectclass=sambaSamAccount)(uid=*))";	
		$sr =@ldap_search($ldap->ldap_connection,$ldap->suffix,$pattern,$attr);
		$hash=ldap_get_entries($ldap->ldap_connection,$sr);
		for($i=0;$i<$hash["count"];$i++){
			$uid=$hash[$i]["uid"][0];
			$SambaProfilePath=$hash[$i][strtolower("SambaProfilePath")][0];
			
			if(strpos($uid,'$')>0){continue;}
			$dn=$hash[$i]["dn"];
			
			if(preg_match("#127\.0\.#",$SambaProfilePath)){
				echo "$SambaProfilePath no match change it\n";
				$upd["SambaProfilePath"][0]='\\\\' .$SAMBA_IP. '\\'.$profile_base.'\\' . $uid;
				$ldap->Ldap_modify($dn,$upd);
			}
			if(!is_dir("$profile_path/$uid")){@mkdir("$profile_path/$uid");}
			@chmod("$profile_path/$uid",0755);
			shell_exec("/bin/chown $uid $profile_path/$uid");
			
		}	
		
}
function EditRblAction()
{
    $ldap = new clladp();
    $action = $_GET["rbl_action"];
    $ou = $_GET["ou"];
    $upd["SURBLServersAction"][0] = $action;
    $dn = "ou={$ou},dc=organizations,{$ldap->suffix}";
    if (!$ldap->Ldap_modify($dn, $upd)) {
        echo $ldap->ldap_last_error;
    } else {
        $tpl = new templates();
        echo $tpl->_ENGINE_parse_body('{success}');
    }
}
Exemple #24
0
function EditGroup(){
	$gid=$_GET["PrivilegesGroup"];
	$ldap=new clladp();
	$update_array=array();
	writelogs("Save privileges for $gid",__CLASS__,__FUNCTION__,__FILE__,__LINE__);
	switch ($gid) {
		case -1:
			$Hash=$ldap->OUDatas($_GET["ou"]);
			writelogs("Loading ou datas of \"{$_GET["ou"]}\" ArticaGroupPrivileges=". strlen($Hash["ArticaGroupPrivileges"]) ." bytes",__FUNCTION__,__FILE__,__LINE__);
			
			break;
		case -2:
			$user=new user($_GET["userid"]);
			$Hash=$user->ArticaGroupPrivileges;
			break;
		default:$Hash=$ldap->GroupDatas($gid);break;
	}
	
		
	if(!is_array($Hash["ArticaGroupPrivileges"])){
		$ArticaGroupPrivileges=$ldap->_ParsePrivieleges($Hash["ArticaGroupPrivileges"]);
	}else{
		$ArticaGroupPrivileges=$Hash["ArticaGroupPrivileges"];
	}
	
	
	if(is_array($ArticaGroupPrivileges)){while (list ($num, $val) = each ($ArticaGroupPrivileges) ){$GroupPrivilege[$num]=$val;}}
	while (list ($num, $val) = each ($_GET) ){$GroupPrivilege[$num]=$val;}		
	while (list ($num, $val) = each ($GroupPrivilege) ){if($val=="no"){continue;} $values=$values . "[$num]=\"$val\"\n";}

	
	if($gid==-2){
		$user->SavePrivileges($values);
		return;
	}

	$update_array["ArticaGroupPrivileges"][0]=$values;
	writelogs("Modify: {$Hash["dn"]}",__FUNCTION__,__FILE__,__LINE__);
	if(!$ldap->Ldap_modify($Hash["dn"],$update_array)){
		echo basename(__FILE__)."\nline: ".__LINE__."\n".$ldap->ldap_last_error;
	}
		
	
	
}
function EditGroup()
{
    $gid = $_GET["PrivilegesGroup"];
    $ldap = new clladp();
    $Hash = $ldap->GroupDatas($gid);
    $ArticaGroupPrivileges = $Hash["ArticaGroupPrivileges"];
    if (is_array($ArticaGroupPrivileges)) {
        while (list($num, $val) = each($ArticaGroupPrivileges)) {
            $GroupPrivilege[$num] = $val;
        }
    }
    while (list($num, $val) = each($_GET)) {
        $GroupPrivilege[$num] = $val;
    }
    while (list($num, $val) = each($GroupPrivilege)) {
        $values = $values . "[{$num}]=\"{$val}\"\n";
    }
    $update_array["ArticaGroupPrivileges"][0] = $values;
    $ldap->Ldap_modify($Hash["dn"], $update_array);
    if ($ldap->ldap_last_error != null) {
        echo $ldap->ldap_last_error;
    }
}
function UpdateMurderUser($password)
{
    $ldap = new clladp();
    if (strlen($password) == 0) {
        writelogs('UpdateMurderUser():: No password specified', __FUNCTION__, __FILE__, __LINE__);
        return false;
    }
    if ($ldap->ldapFailed) {
        writelogs('Unable to logon to ldap server...', __FUNCTION__, __FILE__, __LINE__);
        return false;
    }
    if (!$ldap->ExistsDN("cn=murder,dc=organizations,{$ldap->suffix}")) {
        if (!AddNewMurderUser($password)) {
            writelogs("Unable to add muder username ...", __FUNCTION__, __FILE__, __LINE__);
            return false;
        }
    }
    writelogs("Update murder password for cn=murder,dc=organizations,{$ldap->suffix} ...", __FUNCTION__, __FILE__, __LINE__);
    $arr["userPassword"][] = $password;
    if (!$ldap->Ldap_modify("cn=murder,dc=organizations,{$ldap->suffix}", $arr)) {
        writelogs("ChangeCyrusPassword():: {$ldap->ldap_last_error}", __FUNCTION__, __FILE__, __LINE__);
        return false;
    }
    return true;
}
function EditGroup()
{
    $gid = $_GET["PrivilegesGroup"];
    $ldap = new clladp();
    $update_array = array();
    writelogs("Save privileges for {$gid}", __CLASS__, __FUNCTION__, __FILE__, __LINE__);
    $loadGPID = true;
    if ($gid == -1) {
        $loadGPID = false;
        $Hash = $ldap->OUDatas($_GET["ou"]);
        writelogs("Loading ou datas of \"{$_GET["ou"]}\" ArticaGroupPrivileges=" . strlen($Hash["ArticaGroupPrivileges"]) . " bytes", __FUNCTION__, __FILE__, __LINE__);
        $dn = $Hash["dn"];
    }
    if ($gid == -2) {
        $loadGPID = false;
        $user = new user($_GET["userid"]);
        $Hash["ArticaGroupPrivileges"] = $user->ArticaGroupPrivileges;
        writelogs("Loading datas of \"{$_GET["userid"]}\" ArticaGroupPrivileges={$user->ArticaGroupPrivileges} bytes", __FUNCTION__, __FILE__, __LINE__);
    }
    if ($gid > 0) {
        writelogs("Loading datas of ldap->GroupDatas(\"{$_GET["{$gid}"]}\") ", __FUNCTION__, __FILE__, __LINE__);
        $Hash = $ldap->GroupDatas($gid);
    }
    if (!is_array($Hash["ArticaGroupPrivileges"])) {
        writelogs("ldap->_ParsePrivieleges(...)", __FUNCTION__, __FILE__, __LINE__);
        $ArticaGroupPrivileges = $ldap->_ParsePrivieleges($Hash["ArticaGroupPrivileges"]);
    } else {
        $ArticaGroupPrivileges = $Hash["ArticaGroupPrivileges"];
    }
    if (!is_array($ArticaGroupPrivileges)) {
        writelogs("ArticaGroupPrivileges[] is not an array !", __FUNCTION__, __FILE__, __LINE__);
    }
    if (is_array($ArticaGroupPrivileges)) {
        while (list($num, $val) = each($ArticaGroupPrivileges)) {
            $GroupPrivilege[$num] = $val;
        }
    }
    while (list($num, $val) = each($_GET)) {
        writelogs("ADD GroupPrivilege[{$num}]={$val}", __FUNCTION__, __FILE__, __LINE__);
        $GroupPrivilege[$num] = $val;
    }
    while (list($num, $val) = each($GroupPrivilege)) {
        if ($val == "no") {
            writelogs("[{$num}]=SKIP", __FUNCTION__, __FILE__, __LINE__);
            continue;
        }
        writelogs("[{$num}]=\"{$val}\"", __FUNCTION__, __FILE__, __LINE__);
        $GroupPrivilegeNew[] = "[{$num}]=\"{$val}\"";
    }
    $values = @implode($GroupPrivilegeNew, "\n");
    if ($gid == -2) {
        writelogs("ArticaGroupPrivileges -> {$gid} -> user->SavePrivileges() values={$values}", __FUNCTION__, __FILE__, __LINE__);
        $user->SavePrivileges($values);
        return;
    }
    if (strpos($gid, ",") > 0) {
        $gp = new external_ad_search();
        $gp->SaveGroupPrivileges($values, $gid);
        return;
    }
    $update_array["ArticaGroupPrivileges"][0] = $values;
    writelogs("ArticaGroupPrivileges ->  {$Hash["dn"]} -> group->SavePrivileges() values={$values}", __FUNCTION__, __FILE__, __LINE__);
    if (!$ldap->Ldap_modify($Hash["dn"], $update_array)) {
        echo basename(__FILE__) . "\nline: " . __LINE__ . "\n" . $ldap->ldap_last_error;
    }
}
function DeleteHeaderRule(){
$ldap=new clladp();
	$tpl=new templates();
	$hash=$ldap->UserDatas($_SESSION["uid"]);
	$num=$_GET["DeleteHeaderRule"];
	$pattern=$hash["RegexRules"][$num];
	writelogs("Delete pattern $pattern/$num",__FUNCTION__,__FILE__);
	$hash["RegexRules"][$num]=null;

if(is_array($hash["RegexRules"])){
		while (list ($num, $ligne) = each ($hash["RegexRules"]) ){
			if(preg_match('#<header>(.+?)</header><pattern>(.+?)</pattern><regex>(.+?)</regex><action>(.+?)</action>#',$ligne)){
				$upd["ArticaUserFilterRule"][]=$ligne;
			}
			}
	}else{
		writelogs("Delete pattern set to default",__FUNCTION__,__FILE__);
		$upd["ArticaUserFilterRule"][]='DEFAULT';}
	
if(count($upd["ArticaUserFilterRule"])==0){$upd["ArticaUserFilterRule"][]='DEFAULT';}

	if(!$ldap->Ldap_modify($hash["dn"],$upd)){echo $ldap->ldap_last_error;}else{INDEX();}
}
function create_group()
{
    $ldap = new clladp();
    $tpl = new templates();
    $sock = new sockets();
    $page = CurrentPageName();
    $q = new mysql();
    $sql = "SELECT * FROM register_orgs WHERE `zmd5`='{$_GET["key"]}'";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup"));
    $ou = $ligne["ou"];
    if ($ligne["ou"] == null) {
        echo $tpl->_ENGINE_parse_body("{please_register_first}");
        return;
    }
    $domain = $ligne["domain"];
    $user = $ligne["username"];
    $password = $ligne["password"];
    $gp = new groups();
    if (!$gp->add_new_group("administrators", $ou)) {
        $html = "\n\t\t<table style='width:100%'>\n\t\t<tr>\n\t\t\t<td width=1%><img src='img/42-red.png'></td>\n\t\t\t<td valign='top' style='font-size:16px'>{group}: administrators {failed} {$gp->ldap_error}</td>\n\t\t</tr>\n\t\t</table>";
        echo $tpl->_ENGINE_parse_body($html);
        return;
    }
    $update_array = array();
    $values[] = "[AllowEditOuSecurity]=\"yes\"";
    $values[] = "[AsOrgPostfixAdministrator]=\"yes\"";
    $values[] = "[AsQuarantineAdministrator]=\"yes\"";
    $values[] = "[AsOrgStorageAdministrator]=\"yes\"";
    $values[] = "[AsMessagingOrg]=\"yes\"";
    $values[] = "[AsOrgAdmin]=\"yes\"";
    $gppid = $gp->GroupIDFromName($ou, "administrators");
    $gp = new groups($gppid);
    $update_array["ArticaGroupPrivileges"][0] = @implode("\n", $values);
    $ldap->Ldap_modify($gp->dn, $update_array);
    if ($ldap->ldap_last_error != null) {
        $html = "\n\t\t<table style='width:100%'>\n\t\t<tr>\n\t\t\t<td width=1%><img src='img/42-red.png'></td>\n\t\t\t<td valign='top' style='font-size:16px'>{group}: administrators ({$gppid}) {permissions} {failed} {$ldap->ldap_last_error}</td>\n\t\t</tr>\n\t\t</table>";
        echo $tpl->_ENGINE_parse_body($html);
        return;
    }
    $EnableVirtualDomainsInMailBoxes = $sock->GET_INFO("EnableVirtualDomainsInMailBoxes");
    $uid = $user;
    if ($EnableVirtualDomainsInMailBoxes == 1) {
        $uid = "{$user}@{$domain}";
    }
    if (!$gp->AddUsertoThisGroup($uid)) {
        $html = "\n\t\t<table style='width:100%'>\n\t\t<tr>\n\t\t\t<td width=1%><img src='img/42-red.png'></td>\n\t\t\t<td valign='top' style='font-size:16px'>{group}: administrators ({$gppid}) {affect} {$uid} {$ldap->ldap_last_error}</td>\n\t\t</tr>\n\t\t</table>";
        echo $tpl->_ENGINE_parse_body($html);
        return;
    }
    $html = "\n\t\t<table style='width:100%'>\n\t\t<tr>\n\t\t\t<td width=1%><img src='img/42-green.png'></td>\n\t\t\t<td valign='top' style='font-size:16px'>{group}: administrators &raquo {$uid} {success}</td>\n\t\t</tr>\n\t\t</table>\n\t\t<div id='step-5'></div>\n\t\t<script>\n\t\t\tLoadAjax('step-5','{$page}?create-groupwares=yes&key={$_GET["key"]}');\n\t\t</script>\t\t\n\t\t";
    echo $tpl->_ENGINE_parse_body($html);
    return;
}
function NicNameSearchDelete()
{
    $index = $_GET["NicNameSearchDelete"];
    $nic = new networking();
    unset($nic->array_conf["articanameserverssearchdomains"][$index]);
    if (count($nic->array_conf["articanameserverssearchdomains"]) == 0) {
        $upd["articanameserverssearchdomains"][0] = 'none';
        $ldap = new clladp();
        $dn = "cn=system_dns,cn=artica,{$ldap->suffix}";
        $ldap->Ldap_modify($dn, $upd);
        return null;
    }
    while (list($index, $articanameservers) = each($nic->array_conf["articanameserverssearchdomains"])) {
        $upd["articanameserverssearchdomains"][] = $articanameservers;
    }
    $ldap = new clladp();
    $dn = "cn=system_dns,cn=artica,{$ldap->suffix}";
    $ldap->Ldap_modify($dn, $upd);
}