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"])); }
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(); }
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}')); }
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"); }
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"); } }
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); }
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"]); }
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; } }
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}'); } }
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 » {$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); }