function add_isp_server_name() { $ldap = new clladp(); if (!$ldap->ExistsDN("cn=smtp_sasl_password_maps,cn=artica,{$ldap->suffix}")) { $upd["cn"][] = "smtp_sasl_password_maps"; $upd["objectClass"][] = "top"; $upd["objectClass"][] = "PostFixStructuralClass"; $ldap->ldap_add("cn=smtp_sasl_password_maps,cn=artica,{$ldap->suffix}", $upd); unset($upd); } $cn = "cn={$_GET["isp_server_name"]},cn=smtp_sasl_password_maps,cn=artica,{$ldap->suffix}"; if ($ldap->ExistsDN($cn)) { return null; } $upd["cn"] = $_GET["isp_server_name"]; $upd["objectClass"][] = "top"; $upd["objectClass"][] = "PostfixSmtpSaslPaswordMaps"; $upd["SmtpSaslPasswordString"] = "{$_GET["username"]}:{$_GET["password"]}"; $ldap->ldap_add($cn, $upd); }
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 NewGroup() { $date = date('ymdhI'); $ldap = new clladp(); $ou = $_GET["NewGroup"]; $dn = "cn=New Group {$date},ou={$ou},dc=organizations,{$ldap->suffix}"; $update_array["cn"][0] = "New Group {$date}"; $update_array["gidNumber"][0] = $ldap->_GenerateGUID(); $update_array["description"][0] = "New posix group"; $update_array["objectClass"][] = 'posixGroup'; $update_array["objectClass"][] = 'ArticaSettings'; $update_array["objectClass"][] = 'top'; if ($ldap->ldap_add($dn, $update_array) == false) { echo "Error: Adding {$update_array["gidNumber"][0]} gid \n\t\t\tcn=New Group\n" . $ldap->ldap_last_error; exit; } echo "OK"; }
function bogo_add_spam_user() { $ou = $_GET["ou"]; $bogospam_user = $_GET["bogospam_user"]; $bogospam_domain = $_GET["bogospam_domain"]; $bogospam_type = $_GET["bogospam_type"]; $userid = $bogospam_user; $password = "******"; $group_id = 0; $email = "{$bogospam_user}@{$bogospam_domain}"; $tpl = new templates(); $userid = str_replace(" ", ".", $userid); $ldap = new clladp(); $dn = "cn={$userid},ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd["cn"][0] = $userid; $upd["ObjectClass"][0] = 'top'; $upd["ObjectClass"][1] = 'userAccount'; $upd["ObjectClass"][2] = 'organizationalPerson'; $upd["ObjectClass"][3] = 'ArticaBogoFilterAdmin'; $upd["uid"][0] = $userid; $upd["accountActive"][0] = "TRUE"; $upd["mail"][0] = "{$email}"; $upd["accountGroup"][0] = $group_id; $upd["domainName"][0] = $bogospam_domain; $upd["homeDirectory"][0] = "/home/{$userid}"; $upd["mailDir"][0] = "/home/{$userid}/mail"; $upd["sn"][0] = $userid; $upd["displayName"][0] = $userid . " bogofilter robot"; $upd["userPassword"][0] = $password; $upd["BogoFilterMailType"][0] = "{$bogospam_type}"; if (!$ldap->ldap_add($dn, $upd)) { echo "ERROR: {$ldap->ldap_last_error}"; exit; } } }
function EditRelayDomain() { $relayIP = $_GET["EditRelayDomainIP"]; $relayPort = $_GET["EditRelayDomainPort"]; $domain_name = $_GET["EditRelayDomainName"]; $MX = $_GET["MX"]; $ldap = new clladp(); $ou = $_GET["ou"]; $autoaliases = $_GET["autoaliases"]; $trusted_smtp_domain = $_GET["trusted_smtp_domain"]; $auto = new AutoAliases($ou); if ($autoaliases == "yes") { $auto->DomainsArray[$domain_name] = $domain_name; } else { unset($auto->DomainsArray[$domain_name]); } $auto->Save(); writelogs("saving relay:{$relayIP}:{$relayPort} trusted_smtp_domain={$trusted_smtp_domain}", __FUNCTION__, __FILE__, __LINE__); $dn = "cn=transport_map,ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd = array(); $upd['cn'][0] = "transport_map"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; $ldap->ldap_add($dn, $upd); unset($upd); } if ($MX == "no") { $relayIP = "[{$relayIP}]"; } $dn = "cn={$domain_name},cn=transport_map,ou={$ou},dc=organizations,{$ldap->suffix}"; if ($ldap->ExistsDN($dn)) { $ldap->ldap_delete($dn); } writelogs("Create {$dn}", __FUNCTION__, __FILE__); $upd = array(); $upd['cn'][0] = "{$domain_name}"; $upd['objectClass'][0] = 'transportTable'; $upd['objectClass'][1] = 'top'; $upd["transport"][] = "relay:{$relayIP}:{$relayPort}"; if (!$ldap->ldap_add($dn, $upd)) { echo "Error\n" . "Line: " . __LINE__ . "\n{$ldap->ldap_last_error}"; return; } unset($upd); $dn = "cn=relay_recipient_maps,ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd = array(); $upd['cn'][0] = "relay_recipient_maps"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo "Error\n" . "Line: " . __LINE__ . "\n{$ldap->ldap_last_error}"; return; } unset($upd); } $dn = "cn=@{$domain_name},cn=relay_recipient_maps,ou={$ou},dc=organizations,{$ldap->suffix}"; if ($ldap->ExistsDN($dn)) { $ldap->ldap_delete($dn); } if ($trusted_smtp_domain == 1) { $upd = array(); $upd['cn'][0] = "@{$domain_name}"; $upd['objectClass'][0] = 'PostfixRelayRecipientMaps'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo "Error\n" . "Line: " . __LINE__ . "\n{$ldap->ldap_last_error}"; return; } } $sock = new sockets(); $usr = new usersMenus(); $sock->getFrameWork("cmd.php?postfix-transport-maps=yes"); }
if ($GLOBALS["VERBOSE"]) { echo "file:{$file} ou:{$ou}\n"; } if (!is_file($file)) { events("{$file}, no such file", 100); die; } $tbl = @explode("\n", @file_get_contents($file)); $ldap = new clladp(); $hashdoms = $ldap->hash_get_all_domains(); $dn = "cn=relay_domains,ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "relay_domains"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { events("{$dn}: {$ldap->ldap_last_error}", 100); die; } unset($upd); } $dn = "cn=relay_recipient_maps,ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "relay_recipient_maps"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { events("{$dn}: {$ldap->ldap_last_error}", 100); die; } unset($upd);
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 TESTS(){ $ldap=new clladp(); $upd['cn'][0]='Sender_Dependent_Relay_host_Maps'; $dn="cn=Sender_Dependent_Relay_host_Maps,cn=artica,$ldap->suffix"; $upd['objectClass'][0]='senderDependentRelayhostMaps'; $upd['objectClass'][1]='top'; $ldap->ldap_add($dn,$upd); }
function SaveSettings() { $ldap = new clladp(); $ArticaInadynPoolRule = $_GET["ArticaInadynPoolRule"]; $dn = "cn=inadyn,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'ArticaInadyn'; $upd["cn"] = "inadyn"; $upd["ArticaInadynPoolRule"][] = "{$ArticaInadynPoolRule}"; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; exit; } unset($upd); } $upd["ArticaInadynPoolRule"][0] = $ArticaInadynPoolRule; if (!$ldap->Ldap_modify($dn, $upd)) { echo $ldap->ldap_last_error; exit; } $tpl = new templates(); echo $tpl->_ENGINE_parse_body('{success}'); }
function BuildRobots() { $ldap = new clladp(); $dn = "cn=PostfixRobots,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "PostfixRobots"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; } unset($upd); } $dn = "cn=artica,cn=PostfixRobots,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "artica"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; } unset($upd); } $dn = "cn=xspam@localhost.localdomain,cn=artica,cn=PostfixRobots,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "*****@*****.**"; $upd['objectClass'][0] = 'transportTable'; $upd['objectClass'][1] = 'top'; $upd["transport"][0] = "artica-spam:xspam@localhost.localdomain"; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; } unset($upd); } $dn = "cn=relay_domains,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "relay_domains"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; } unset($upd); } $dn = "cn=relay_recipient_maps,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "relay_recipient_maps"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; } unset($upd); } $dn = "cn=localhost.localdomain,cn=relay_domains,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "localhost.localdomain"; $upd['objectClass'][0] = 'PostFixRelayDomains'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; } unset($upd); } $dn = "cn=@localhost.localdomain,cn=relay_recipient_maps,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "@localhost.localdomain"; $upd['objectClass'][0] = 'PostfixRelayRecipientMaps'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; } unset($upd); } $dn = "cn=transport_map,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "transport_map"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; $ldap->ldap_add($dn, $upd); unset($upd); } $dn = "cn=localhost.localdomain,cn=transport_map,cn=artica,{$ldap->suffix}"; $upd['cn'][0] = "localhost.localdomain"; $upd['objectClass'][0] = 'transportTable'; $upd['objectClass'][1] = 'top'; $upd["transport"][] = "artica-spam:xspam@localhost.localdomain"; $ldap->ldap_add($dn, $upd); unset($upd); }
function Tree_ou_Add_user() { $user = $_GET["Tree_ou_Add_user"]; $user = replace_accents($user); $ldap = new clladp(); $ou = $_GET["ou"]; $uid = str_replace(' ', '.', $user); if (stripos($user, '@') > 0) { $mail = $user; $tbl = explode('@', $user); $domainName = $tbl[1]; $user = $tbl[0]; $uid = str_replace(' ', '.', $user); if (preg_match('#([a-z0-9]+)([\\.\\-_])([a-z0-9_\\-\\.]+)#', $user, $reg)) { $firstname = $reg[1]; $lastname = $reg[3]; } elseif (preg_match('#(.+)\\s+(.+)#', $user, $reg)) { $firstname = $reg[1]; $lastname = $reg[2]; } elseif (preg_match('#(.+)#', $user, $reg)) { $lastname = $reg[1]; $firstname = $lastname; } } else { if (preg_match('#([a-z0-9_\\-]+)\\s+([a-z0-9_\\-]+)#', $user, $reg)) { $lastname = $reg[2]; $firstname = $reg[1]; $domainName = 'none'; } else { $lastname = $user; $firstname = $user; $domainName = 'none'; } } $dn = "cn={$user},ou=users,ou={$ou},dc=organizations,{$ldap->suffix}"; $update_array["cn"][] = $user; $update_array["uid"][] = $uid; $update_array["sn"][] = $lastname; $update_array["domainName"][] = $domainName; $update_array["homeDirectory"][] = "/home/{$firstname}.{$lastname}"; $update_array["accountGroup"][] = "0"; $update_array["accountActive"][] = 'TRUE'; $update_array["mailDir"] = 'cyrus'; $update_array["objectClass"][] = "userAccount"; $update_array["objectClass"][] = "top"; $ldap->ldap_add($dn, $update_array); if ($ldap->ldap_last_error != null) { echo nl2br($ldap->ldap_last_error); exit; } $update_array = null; $update_array["givenName"][] = $firstname; $update_array["mail"][] = $mail; $update_array["DisplayName"][] = "{$firstname} " . $lastname; $update_array["MailBoxActive"][] = "FALSE"; $update_array["objectclass"][] = "ArticaSettings"; $ldap->Ldap_add_mod($dn, $update_array); $pages = new HtmlPages(); echo $pages->PageOu("ou={$ou},dc=organizations,{$ldap->suffix}"); }
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 trusted_smtp_domain_save() { $ldap = new clladp(); $domain_name = $_GET["domain"]; $ou = $_GET["ou"]; $upd = array(); $trusted_smtp_domain = $_GET["trusted_smtp_domain"]; $dn = "cn=relay_recipient_maps,ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "relay_recipient_maps"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; return; } unset($upd); } $dn = "cn=@{$domain_name},cn=relay_recipient_maps,ou={$ou},dc=organizations,{$ldap->suffix}"; $ldap->ldap_delete($dn); if ($trusted_smtp_domain == 1) { $upd['cn'][0] = "@{$domain_name}"; $upd['objectClass'][0] = 'PostfixRelayRecipientMaps'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; return; } } $sock = new sockets(); $sock->getFrameWork("cmd.php?postfix-transport-maps=yes"); }
function remotedomain_edit() { $relayIP = $_POST["destination"]; $relayPort = $_POST["port"]; $domain_name = $_POST["remotedomain"]; $MX = $_POST["MX"]; $ldap = new clladp(); $ou = $_POST["ou"]; $trusted_smtp_domain = $_POST["trusted_smtp_domain"]; if ($MX == 0) { $MX = "no"; } else { $MX = "yes"; } writelogs("saving relay:{$relayIP}:{$relayPort} trusted_smtp_domain={$trusted_smtp_domain}", __FUNCTION__, __FILE__, __LINE__); $dn = "cn=transport_map,ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd = array(); $upd['cn'][0] = "transport_map"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; $ldap->ldap_add($dn, $upd); unset($upd); } if ($MX == "no") { $relayIP = "[{$relayIP}]"; } $dn = "cn={$domain_name},cn=transport_map,ou={$ou},dc=organizations,{$ldap->suffix}"; if ($ldap->ExistsDN($dn)) { $ldap->ldap_delete($dn); } writelogs("Create {$dn}", __FUNCTION__, __FILE__); $upd = array(); $upd['cn'][0] = "{$domain_name}"; $upd['objectClass'][0] = 'transportTable'; $upd['objectClass'][1] = 'top'; $upd["transport"][] = "relay:{$relayIP}:{$relayPort}"; if (!$ldap->ldap_add($dn, $upd)) { echo "Error\n" . "Line: " . __LINE__ . "\n{$ldap->ldap_last_error}"; return; } unset($upd); $dn = "cn=relay_recipient_maps,ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd = array(); $upd['cn'][0] = "relay_recipient_maps"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo "Error\n" . "Line: " . __LINE__ . "\n{$ldap->ldap_last_error}"; return; } unset($upd); } $dn = "cn=@{$domain_name},cn=relay_recipient_maps,ou={$ou},dc=organizations,{$ldap->suffix}"; if ($ldap->ExistsDN($dn)) { $ldap->ldap_delete($dn); } if ($trusted_smtp_domain == 1) { $upd = array(); $upd['cn'][0] = "@{$domain_name}"; $upd['objectClass'][0] = 'PostfixRelayRecipientMaps'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo "Error\n" . "Line: " . __LINE__ . "\n{$ldap->ldap_last_error}"; return; } } ChockServices(); }
function CronAddArticaTasksSave() { $task_name = $_GET["CronAddArticaTasksSave"]; $ldap = new clladp(); $tpl = new templates(); $dn = "cn={$task_name},cn=system_cron_task,cn=artica,{$ldap->suffix}"; if ($ldap->ExistsDN($dn)) { echo $tpl->_ENGINE_parse_body('{error_task_already_exists}'); exit; } $cron = new cron(); $upd['cn'][0] = "{$task_name}"; $upd['objectClass'][0] = 'ArticaCronDatas'; $upd['objectClass'][1] = 'top'; $upd['CronFileCommand'][0] = $cron->array_artica_task[$task_name]["CronFileCommand"]; $upd['CronFileDescriptions'][0] = $cron->array_artica_task[$task_name]["CronFileDescriptions"]; $upd['CronFileMailto'][0] = $cron->array_artica_task[$task_name]["CronFileMailto"]; $upd["CronFileToDelete"][0] = "no"; $ldap->ldap_add($dn, $upd); echo $tpl->_ENGINE_parse_body('{success}'); }
function Buildn($ou) { $ldap = new clladp(); $dn = "cn=PostfixRobots,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "PostfixRobots"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; } unset($upd); } $dn = "cn={$ou},cn=PostfixRobots,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "{$ou}"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; } unset($upd); } $dn = "cn=whitelists,cn={$ou},cn=PostfixRobots,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "whitelists"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; } unset($upd); } return true; }
function catchall_save() { $ou = $_GET["ou"]; $domain = $_GET["domain"]; $ldap = new clladp(); if (trim($_GET["catch-all-addr"]) == null) { $dn = "cn=@{$domain},cn={$ou},cn=catch-all,cn=artica,{$ldap->suffix}"; if ($ldap->ExistsDN($dn)) { $ldap->ldap_delete($dn); return null; } } $email = $_GET["catch-all-addr"] . "@{$domain}"; $tpl = new templates(); $uid = $ldap->uid_from_email($email); if ($uid == null) { echo $tpl->_ENGINE_parse_body('{error_no_user_exists}'); return null; } $ct = new user($uid); if ($ct->ou != $ou) { echo $tpl->_ENGINE_parse_body('{error_no_user_exists}'); return null; } $dn = "cn=catch-all,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "catch-all"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; return null; } unset($upd); } } $dn = "cn={$ou},cn=catch-all,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "{$ou}"; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; return null; } unset($upd); } } $dn = "cn=@{$domain},cn={$ou},cn=catch-all,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { if (!$ldap->ExistsDN($dn)) { $upd['cn'][0] = "@{$domain}"; $upd['objectClass'][0] = 'AdditionalPostfixMaps'; $upd['objectClass'][1] = 'top'; $upd['CatchAllPostfixAddr'][0] = "{$email}"; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; return null; } unset($upd); } } $sock = new sockets(); $sock->getFrameWork("cmd.php?postfix-hash-aliases=yes"); }
function mailman_add_new_distribution_list() { $id = $_GET["id"]; $ldap = new clladp(); $cn = "cn={$id},cn=mailman,cn=artica,{$ldap->suffix}"; $upd["objectclass"][] = 'top'; $upd["objectclass"][] = 'ArticaMailManClass'; $upd["cn"][] = $id; $upd["MailmanListOperation"][] = "ADD"; $upd["MailManListAdministrator"][] = $_GET["MailManListAdministrator"]; $upd["MailManListAdminPassword"][] = $_GET["MailManListAdminPassword"]; if ($_GET["ou"] != null) { $upd["MailManOuOwner"][] = $_GET["ou"]; } else { $upd["MailManOuOwner"][] = "undefined"; } $ldap->ldap_add($cn, $upd); }
function PROTO_FTP_ADD() { $auto = new autofs(); $ldap = new clladp(); $sock = new sockets(); $_GET["FTP_LOCAL_DIR"] = strtolower($ldap->StripSpecialsChars($_GET["FTP_LOCAL_DIR"])); $upd = array(); $dn = "cn={$_GET["FTP_LOCAL_DIR"]},ou=auto.automounts,ou=mounts,{$ldap->suffix}"; if ($_GET["FTP_USER"] != null) { $auth = "{$_GET["FTP_USER"]}\\:{$_GET["FTP_PASSWORD"]}\\@"; } $pattern = "-fstype=curl,allow_other :ftp\\://{$auth}{$_GET["FTP_SERVER"]}/"; if (!$ldap->ExistsDN($dn)) { $upd["ObjectClass"][] = 'top'; $upd["ObjectClass"][] = 'automount'; $upd["cn"][] = "{$_GET["FTP_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 PostFixRestrictionLoadLdapSave() { $tpl = new templates(); $class_name = $_GET["PostFixRestrictionLoadLdapSave"]; $table_name = $_GET["table_name"]; $email = $_GET["email"]; $value = $_GET["value"]; $action = $_GET["action"]; if ($value == null) { $value = $action; } else { $value = "{$action}\t{$value}"; } if ($email == null) { echo $tpl->_ENGINE_parse_body('{error_give_email_or_domain}'); exit; } $ldap = new clladp(); $dn1 = "cn={$table_name},cn={$class_name},cn=restrictions_classes,cn=artica,{$ldap->suffix}"; $dn2 = "cn={$email},{$dn1}"; if (!$ldap->ExistsDN($dn1)) { $upd["cn"][0] = $table_name; $upd['objectClass'][0] = 'PostFixStructuralClass'; $upd['objectClass'][1] = 'top'; if (!$ldap->ldap_add($dn1, $upd)) { echo $tpl->_ENGINE_parse_body($ldap->ldap_last_error); exit; } } if (!$ldap->ExistsDN($dn2)) { unset($upd); $upd["cn"][0] = $email; $upd['objectClass'][0] = 'PostFixRestrictionCheckAccess'; $upd['objectClass'][1] = 'top'; $upd['PostFixRestrictionTableAction'][] = "{$value} "; if (!$ldap->ldap_add($dn2, $upd)) { echo $tpl->_ENGINE_parse_body($ldap->ldap_last_error); exit; } } else { unset($upd); $array = $ldap->hash_get_class_RestrictionTableAction($dn2); $array[] = $value; $upd['PostFixRestrictionTableAction'][0] = implode(",", $array); if (!$ldap->Ldap_modify($dn2, $upd)) { echo $tpl->_ENGINE_parse_body($ldap->ldap_last_error); exit; } } }
function check_client_access_add() { $ip = $_GET["check_client_access_add"]; $tpl = new templates(); $ldap = new clladp(); if (!$ldap->ExistsDN("cn=restrictions_classes,cn=artica,{$ldap->suffix}")) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'PostFixStructuralClass'; $upd["cn"] = "restrictions_classes"; $ldap->ldap_add("cn=restrictions_classes,cn=artica,{$ldap->suffix}", $upd); unset($upd); } if (!$ldap->ExistsDN("cn=smtpd_client_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}")) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'PostFixRestrictionStandardClasses'; $upd["PostFixRestrictionClassDescription"][] = "bann ip addresses"; $upd["PostFixRestrictionClassList"][] = 'check_client_access="ldap"'; $upd["cn"] = "smtpd_client_restrictions"; $ldap->ldap_add("cn=smtpd_client_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}", $upd); unset($upd); } $dn = "cn=check_client_access,cn=smtpd_client_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'PostFixStructuralClass'; $upd["cn"] = "check_client_access"; $ldap->ldap_add($dn, $upd); unset($upd); } $dn = "cn={$ip},cn=check_client_access,cn=smtpd_client_restrictions,cn=restrictions_classes,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'PostFixRestrictionCheckAccess'; $upd["PostFixRestrictionTableAction"][] = 'REJECT'; $upd["cn"] = "{$ip}"; if (!$ldap->ldap_add($dn, $upd)) { echo "{$ip}\n{$ldap->ldap_last_error}\n"; } else { echo $tpl->_ENGINE_parse_body("{$ip}:{success}"); } unset($upd); } }
function FORBIDDEN_ATTACHMENTS_ADDRULE() { $ldap = new clladp(); $hash = $ldap->GroupDatas($_GET["group_add_attach_rule"]); $ou = $_GET["ou"]; $rule = $hash["cn"] . "_attach"; $dn = "cn=forbidden_attachments,ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'PostFixStructuralClass'; $upd["cn"] = "forbidden_attachments"; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; exit; } unset($upd); } for ($i = 1; $i < 100; $i++) { $dn = "cn={$rule}-{$i},cn=forbidden_attachments,ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'FilterExtensionsGroup'; $upd["cn"] = "{$rule}-{$i}"; $rule = "{$rule}-{$i}"; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; exit; } unset($upd); break; } } if (!$ldap->ExistsDN($dn)) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'FilterExtensionsGroup'; $upd["cn"] = $rule; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; exit; } unset($upd); } $upd["FiltersExtensionsGroupName"] = $rule; if ($ldap->Ldap_add_mod($hash["dn"], $upd)) { echo $ldap->ldap_last_error; } }
function CheckBranch() { $ldap = new clladp(); if (!$ldap->ExistsDN("dc=organizations,{$ldap->suffix}")) { writelogs("CheckBranch():: creating the new branch dc=organizations,{$ldap->suffix}", __FUNCTION__, __FILE__, __LINE__); $upd["objectClass"][] = "top"; $upd["objectClass"][] = "organization"; $upd["objectClass"][] = "dcObject"; $upd["o"][] = "organizations"; $upd["dc"][] = "organizations"; if (!$ldap->ldap_add("dc=organizations,{$ldap->suffix}", $upd)) { writelogs("Unable to create new entry dc=organizations,{$ldap->suffix}", __FUNCTION__, __FILE__, __LINE__); writelogs($ldap->ldap_last_error, __FUNCTION__, __FILE__, __LINE__); return false; } return true; } else { writelogs("CheckBranch():: The new branch dc=organizations,{$ldap->suffix} exists", __FUNCTION__, __FILE__, __LINE__); return true; } }
function BuildRobots($list, $domain) { $array[] = "admin"; $array[] = "bounces"; $array[] = "confirm"; $array[] = "join"; $array[] = "leave"; $array[] = "owner"; $array[] = "request"; $array[] = "subscribe"; $array[] = "unsubscribe"; $tpl = new templates(); $ldap = new clladp(); $dn = "cn={$list}@{$domain},cn=robots,cn=mailman,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'ArticaMailManRobots'; $upd["MailManAliasPath"][] = "\"|/var/lib/mailman/mail/mailman post {$list}\""; $upd["TransportMailmanMaps"][] = 'mailman:'; $upd["cn"][] = "{$list}@{$domain}"; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; exit; } echo $tpl->_ENGINE_parse_body("{success}:{$list}\n"); } else { unset($upd); echo $tpl->_ENGINE_parse_body("{success}:{$list}\n"); } while (list($num, $ligne) = each($array)) { $dn = "cn={$list}-{$ligne}@{$domain},cn=robots,cn=mailman,cn=artica,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'ArticaMailManRobots'; $upd["MailManAliasPath"][] = "\"|/var/lib/mailman/mail/mailman {$ligne} {$list}\""; $upd["cn"][] = "{$list}-{$ligne}@{$domain}"; $upd["TransportMailmanMaps"][] = 'mailman:'; if (!$ldap->ldap_add($dn, $upd)) { echo $ldap->ldap_last_error; exit; } echo $tpl->_ENGINE_parse_body("{success}:{$list}-{$ligne}\n"); unset($upd); } else { echo $tpl->_ENGINE_parse_body("{success}:{$list}-{$ligne}\n"); unset($upd); } } $main = new main_cf(); $main->save_conf(); $main->save_conf_to_server(); }
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 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 Parse() { $ldap = new clladp(); if (!$ldap->ExistsDN($this->dn)) { $upd["objectClass"][] = 'top'; $upd["objectClass"][] = 'ArticaOuBigMailHTML'; $upd["cn"][] = "html_blocker"; $upd["BigMailHTMLEnabled"][] = 'no'; $upd["BigMailHtmlConfig"][] = 'NONE'; $upd["BigMailHtmlBody"][] = "original Attached files of this message are stored \nOn our server.You can download them by clicking on link at the bottom of this email"; $ldap->ldap_add($this->dn, $upd); } $res = @ldap_read($ldap->ldap_connection, $this->dn, "(objectClass=ArticaOuBigMailHTML)", array()); if ($res) { $hash = ldap_get_entries($ldap->ldap_connection, $res); $this->BigMailHTMLEnabled = $hash[0][strtolower('BigMailHTMLEnabled')][0]; $this->BigMailHtmlConfig = $hash[0][strtolower('BigMailHtmlConfig')][0]; if (!isset($hash[0][strtolower('BigMailHtmlBody')])) { $upd["BigMailHtmlBody"][] = "<b style='color:red'>original Attached files of this message are stored \n\t\t\t\t\t\t\t\t\t\t\ton our server<br>You can download them by clicking on link at the bottom of this email</b>"; $ldap->Ldap_add_mod($this->dn, $upd); unset($upd); } $this->BigMailHtmlBody = $hash[0][strtolower('BigMailHtmlBody')][0]; $ini = new Bs_IniHandler(); $ini->loadString($this->BigMailHtmlConfig); $this->params = $ini->_params; for ($i = 0; $i < $hash[0][strtolower('BigMailHtmlRules')]["count"]; $i++) { $this->ruleslist[] = $hash[0][strtolower('BigMailHtmlRules')][$i]; } } }
function CreateNAB(){ $ldap=new clladp(); $dn="dc=NAB,$ldap->suffix"; if(!$ldap->ExistsDN($dn)){ $upd["objectClass"][]="top"; $upd["objectClass"][]="organization"; $upd["objectClass"][]="dcObject"; $upd["o"][]="NAB"; $upd["dc"][]="NAB"; if(!$ldap->ldap_add($dn,$upd)){ write_syslog("failed creating $dn",__FILE__); } } }
function add_domain() { $domain = $_GET["add_domain"]; $ou = $_GET["ou"]; $tpl = new templates(); $ldap = new clladp(); $dn = "cn={$domain},cn=blackListedDomains,ou={$ou},dc=organizations,{$ldap->suffix}"; if (!$ldap->ExistsDN($dn)) { $update_array["cn"][] = $domain; $update_array["objectClass"][] = 'DomainsBlackListOu'; $update_array["objectClass"][] = 'top'; if (!$ldap->ldap_add($dn, $update_array)) { echo $tpl->_ENGINE_parse_body("{$domain} -> {failed}\n{$ldap->ldap_last_error}"); } else { echo $tpl->_ENGINE_parse_body('{success}'); } } else { echo $tpl->_ENGINE_parse_body('{success}'); } }
function AddnewMember() { $user = $_GET["AddnewMember"]; $user = replace_accents($user); $ldap = new clladp(); $ou = $_GET["ou"]; $uid = str_replace(' ', '.', $user); if (stripos($user, '@') > 0) { $mail = $user; $tbl = explode('@', $user); $domainName = $tbl[1]; $user = $tbl[0]; $uid = str_replace(' ', '.', $user); if (preg_match('#([a-z0-9]+)([\\.\\-_])([a-z0-9_\\-\\.]+)#', $user, $reg)) { $firstname = $reg[1]; $lastname = $reg[3]; } elseif (preg_match('#(.+)\\s+(.+)#', $user, $reg)) { $firstname = $reg[1]; $lastname = $reg[2]; } elseif (preg_match('#(.+)#', $user, $reg)) { $lastname = $reg[1]; $firstname = $lastname; } } else { if (preg_match('#([a-z0-9_\\-]+)\\s+([a-z0-9_\\-]+)#', $user, $reg)) { $lastname = $reg[2]; $firstname = $reg[1]; $domainName = 'none'; } else { $lastname = $user; $firstname = $user; $domainName = 'none'; } } $dn = "cn={$user},ou=users,ou={$ou},dc=organizations,{$ldap->suffix}"; if ($lastname == null) { $lastname = "unknown"; } if ($firstname == null) { $firstname = "unknown"; } if ($domainName == null) { $domainName = "unknown"; } if ($mail == null) { $mail = "{$lastname}.{$firstname}@{$domainName}"; } $update_array["cn"][] = $user; $update_array["uid"][] = $uid; $update_array["sn"][] = $lastname; $update_array["domainName"][] = $domainName; $update_array["homeDirectory"][] = "/home/{$firstname}.{$lastname}"; $update_array["accountGroup"][] = "0"; $update_array["accountActive"][] = 'TRUE'; $update_array["mailDir"] = 'cyrus'; $update_array["objectClass"][] = "userAccount"; $update_array["objectClass"][] = "top"; $update_array["objectClass"][] = "organizationalPerson"; $ldap->ldap_add($dn, $update_array); if ($ldap->ldap_last_error != null) { if ($ldap->ldap_last_error != null) { echo "Error: Add new member attributes line " . __LINE__ . "\n******\n{$ldap->ldap_last_error}\n******\n"; } exit; } $ldap->ldap_last_error = null; $update_array = null; $update_array["givenName"][] = $firstname; $update_array["mail"][] = $mail; $update_array["DisplayName"][] = "{$firstname} " . $lastname; $update_array["MailBoxActive"][] = "FALSE"; $update_array["objectclass"][] = "ArticaSettings"; $ldap->Ldap_add_mod($dn, $update_array); if ($ldap->ldap_last_error != null) { echo "Error line" . __LINE__ . "\nModify attributes\n{$ldap->ldap_last_error}\n"; } $ldap->ldap_last_error = null; if (isset($_GET["group_member_id"])) { $ldap->AddUserToGroup($_GET["group_member_id"], $user); } if ($ldap->ldap_last_error == null) { echo $uid; } }