Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
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";
}
Esempio n. 4
0
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;
        }
    }
}
Esempio n. 5
0
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");
}
Esempio n. 8
0
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}');
}
Esempio n. 10
0
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);
}
Esempio n. 11
0
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");
}
Esempio n. 13
0
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}');
}
Esempio n. 16
0
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;
}
Esempio n. 17
0
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");
}
Esempio n. 18
0
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);
}
Esempio n. 19
0
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;
        }
    }
}
Esempio n. 21
0
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);
    }
}
Esempio n. 22
0
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;
    }
}
Esempio n. 24
0
 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();
 }
Esempio n. 25
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;
    }
}
Esempio n. 26
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}');
}
Esempio n. 27
0
 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];
         }
     }
 }
Esempio n. 28
0
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__);
		}
		
	}

}
Esempio n. 29
0
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;
    }
}