function WhiteListSender()
{
    $sql = "SELECT mail_from,mail_to from messages WHERE zMD5=\"{$_GET["id"]}\"";
    $result = QUERY_SQL($sql);
    $ligne = @sqlite3_fetch_array(QUERY_SQL($sql));
    $mail_from = $ligne["mail_from"];
    if ($mail_from == null) {
        SinglePage(ParseLogs("ERROR\n"));
        exit;
    }
    $ldap = new clladp();
    $upd["KasperkyASDatasAllow"] = $mail_from;
    $uid = $ldap->uid_from_email($ligne["mail_to"]);
    if ($uid == null) {
        SinglePage(ParseLogs("ERROR\n"));
        exit;
    }
    $hash = $ldap->UserDatas($uid);
    $dn = $hash["dn"];
    if (!$ldap->Ldap_add_mod($dn, $upd)) {
        $error = $ldap->ldap_last_error . "\n";
    }
    $sock = new sockets();
    $error = $error . $sock->getfile('releaseallmailfrommd5:' . $_GET["id"]);
    SinglePage(ParseLogs($error));
}
Exemple #2
0
function AddPointerDc()
{
    $dn = $_GET["AddAssociatedDomain"];
    $ldap = new clladp();
    $upd["associateddomain"] = $_GET["entry"];
    if (!$ldap->Ldap_add_mod($dn, $upd)) {
        echo $ldap->ldap_last_error;
    }
}
function AddDenyCountry()
{
    $ldap = new clladp();
    $country = $_GET["AddDenyCountry"];
    $ou = $_GET["ou"];
    $dn = "ou={$ou},dc=organizations,{$ldap->suffix}";
    $upd["CountryDeny"] = "{$country}:{$_GET["action"]}";
    if (!$ldap->Ldap_add_mod($dn, $upd)) {
        echo $ldap->ldap_last_error;
    } else {
        $tpl = new templates();
        echo $tpl->_ENGINE_parse_body('{success}');
    }
}
function Add_surbl_server()
{
    $ldap = new clladp();
    $rbl = $_GET["surbl_server"];
    $ou = $_GET["ou"];
    $dn = "ou={$ou},dc=organizations,{$ldap->suffix}";
    $upd["SURBLServers"] = "{$rbl}:0";
    if (!$ldap->Ldap_add_mod($dn, $upd)) {
        echo $ldap->ldap_last_error;
    } else {
        $tpl = new templates();
        echo $tpl->_ENGINE_parse_body('{success}');
    }
}
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 zarafaEnabled()
{
    $ldap = new clladp();
    $dn = "ou={$_GET["ou"]},dc=organizations,{$ldap->suffix}";
    $upd["objectClass"] = "zarafa-company";
    if ($_GET["zarafaEnabled"] == 1) {
        if (!$ldap->Ldap_add_mod("{$dn}", $upd)) {
            echo $ldap->ldap_last_error;
            return;
        }
    } else {
        if (!$ldap->Ldap_del_mod("{$dn}", $upd)) {
            echo $ldap->ldap_last_error;
            return;
        }
    }
    $sock = new sockets();
    $sock->getFrameWork("cmd.php?zarafa-admin=yes");
}
function PostfixSaveRestrictionClass()
{
    $tpl = new templates();
    $ldap = new clladp();
    $restrictions = new smtpd_restrictions();
    $class_name = $_GET["PostfixSaveRestrictionClass"];
    $dn = "cn={$class_name},cn=restrictions_classes,cn=artica,{$ldap->suffix}";
    if (!$ldap->ExistsDN($dn)) {
        if ($restrictions->standard_classes_array[$class_name] = $class_name) {
            $obecjtClass = "PostFixRestrictionStandardClasses";
        } else {
            $obecjtClass = "PostFixRestrictionClasses";
        }
        $upd["cn"][0] = $class_name;
        $upd['objectClass'][0] = $obecjtClass;
        $upd['objectClass'][1] = 'top';
        $ldap->ldap_add($dn, $upd);
    }
    $value = "{$_GET["SelectRestrictionList"]}=\"{$_GET["datas"]}\"";
    $update_array["PostFixRestrictionClassList"][] = $value;
    $class_datas = $ldap->RestrictionClassData($_GET["PostfixSaveRestrictionClass"]);
    if ($class_datas["rules_source"][$value] == $value) {
        return null;
    }
    if (!$ldap->Ldap_add_mod($dn, $update_array)) {
        echo $ldap->ldap_last_error;
    } else {
        echo $tpl->_ENGINE_parse_body('{success}');
    }
}
Exemple #8
0
function popup_ns_save()
{
    $dn = $_GET["dn"];
    $ldap = new clladp();
    $upd = array();
    $upd["nsrecord"] = "{$_GET["host"]}";
    if (!$ldap->Ldap_add_mod($dn, $upd)) {
        echo $ldap->ldap_last_error;
        return;
    }
    restart_dnsmasq();
}
Exemple #9
0
function users_add_aliases()
{
    $ldap = new clladp();
    $update_array["mailAlias"] = $_GET["aliases"];
    $res = $ldap->Ldap_add_mod($_GET["users_add_aliases"], $update_array);
    echo users_aliases($_GET["users_add_aliases"]);
}
Exemple #10
0
function Save_Fetchmail(){
	$add=true;
	$mny=new usersMenus();
	if($mny->AllowFetchMails==false){return null;}
	if(isset($_GET["array_num"])){
		$array_num=$_GET["array_num"];
		unset($_GET["array_num"]);
		$add=false;
	}
		
	if($_GET["pool"]==null){return null;}
	while (list ($num, $ligne) = each ($_GET) ){	
		$line=$line."[$num]=\"$ligne\"\n";
	}
	$ldap=new clladp();
	$hash=$ldap->UserDatas($_SESSION["uid"]);
	
	
	if($add==true){
		$update_array["FetchMailsRules"][]=$line;
		$ldap->Ldap_add_mod($hash["dn"],$update_array);
	}else{
		$update_array["FetchMailsRules"]=$hash["FetchMailsRulesSources"];
		$update_array["FetchMailsRules"][$array_num]=$line;
		$ldap->Ldap_modify($hash["dn"],$update_array);
	}
	if($ldap->ldap_last_error<>null){echo $ldap->ldap_last_error;}else{echo "ok";}
	
}
Exemple #11
0
function GroupUserAdd()
{
    $gid = $_GET["GroupUserAdd"];
    $ldap = new clladp();
    $hash = $ldap->GroupDatas($gid);
    $updtate_array["memberUid"] = $_GET["userid"];
    $ldap->Ldap_add_mod($hash["dn"], $updtate_array);
    if ($ldap->ldap_last_error == null) {
        $ldap->ldap_last_error = "{success}";
    }
    $tpl = new templates();
    echo "success";
    exit;
}
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 create_user($filename)
{
    $tpl = new templates();
    $unix = new unix();
    $nohup = null;
    $path = "/usr/share/artica-postfix/ressources/logs/web/create-users/{$filename}";
    echo "Path:{$path}\n";
    build_progress("Open {$filename}", 10);
    if (!is_file($path)) {
        echo "{$path} no such file...\n";
        return false;
    }
    $MAIN = unserialize(base64_decode(@file_get_contents($path)));
    build_progress("Create new member {$MAIN["login"]}", 15);
    $users = new user($MAIN["login"]);
    if ($users->password != null) {
        echo "User already exists {$MAIN["login"]}\n";
        build_progress("{account_already_exists}", 110);
        @unlink($path);
        return;
    }
    $ou = $MAIN["ou"];
    $password = url_decode_special_tool($MAIN["password"]);
    $MAIN["firstname"] = url_decode_special_tool($MAIN["firstname"]);
    $MAIN["lastname"] = url_decode_special_tool($MAIN["lastname"]);
    build_progress("{$MAIN["firstname"]} {$MAIN["lastname"]}", 20);
    if (trim($MAIN["internet_domain"]) == null) {
        $MAIN["internet_domain"] = "localhost.localdomain";
    }
    echo "Add new user {$MAIN["login"]} {$MAIN["ou"]} {$MAIN["gpid"]}\n";
    $users->ou = $MAIN["ou"];
    $users->password = url_decode_special_tool($MAIN["password"]);
    $users->mail = "{$MAIN["email"]}@{$MAIN["internet_domain"]}";
    $users->DisplayName = "{$MAIN["firstname"]} {$MAIN["lastname"]}";
    $users->givenName = $MAIN["firstname"];
    $users->sn = $MAIN["lastname"];
    $users->group_id = $MAIN["gpid"];
    $users->homeDirectory = "/home/{$MAIN["login"]}";
    if (is_numeric($MAIN["gpid"])) {
        $gp = new groups($MAIN["gpid"]);
        echo "privileges: {$MAIN["gpid"]} -> AsComplexPassword = \"{$gp->Privileges_array["AsComplexPassword"]}\"\n";
        if ($gp->Privileges_array["AsComplexPassword"] == "yes") {
            $ldap = new clladp();
            $hash = $ldap->OUDatas($ou);
            $privs = $ldap->_ParsePrivieleges($hash["ArticaGroupPrivileges"], array(), true);
            $policiespwd = unserialize(base64_decode($privs["PasswdPolicy"]));
            if (is_array($policiespwd)) {
                $priv = new privileges();
                if (!$priv->PolicyPassword($password, $policiespwd)) {
                    build_progress("Need complex password", 110);
                    echo "Need complex password";
                    @unlink($path);
                    return;
                }
            }
        }
    }
    build_progress("{$MAIN["firstname"]} {$MAIN["lastname"]} {save}", 25);
    if (!$users->add_user()) {
        echo $users->error . "\n" . $users->ldap_error;
        build_progress("{failed}", 110);
        @unlink($path);
        return;
    }
    @mkdir("{$users->homeDirectory}");
    @chown("{$users->homeDirectory}", $users->uid);
    if ($MAIN["ByZarafa"] == "yes") {
        $terminated = " >/dev/null";
        $zarafa_admin = $unix->find_program("zarafa-admin");
        if (!$GLOBALS["WAIT"]) {
            $nohup = $unix->find_program("nohup");
            $terminated = null;
        }
        if (isset($MAIN["ZARAFA_LANG"])) {
            $users->SaveZarafaMbxLang($MAIN["ZARAFA_LANG"]);
            $langcmd = " --lang {$MAIN["ZARAFA_LANG"]} ";
        }
        $ldap = new clladp();
        $dn = "ou={$MAIN["ou"]},dc=organizations,{$ldap->suffix}";
        $upd["objectClass"] = "zarafa-company";
        $upd["cn"] = $MAIN["ou"];
        if (!$ldap->Ldap_add_mod("{$dn}", $upd)) {
            echo $ldap->ldap_last_error;
            build_progress("{failed} OpenLDAP Error", 110);
            @unlink($path);
            return;
        }
        build_progress("{create_store} {language}: {$MAIN["ZARAFA_LANG"]}", 30);
        $cmd = "{$nohup} {$zarafa_admin} {$langcmd}--create-store {$MAIN["login"]} >/dev/null 2>&1 &";
        system(trim($cmd));
        if (!$GLOBALS["WAIT"]) {
            $sock = new sockets();
            $sock->getFrameWork("cmd.php?zarafa-hash=yes&rebuild=yes");
            return;
        }
        @unlink("/usr/share/artica-postfix/ressources/databases/ZARAFA_DB_STATUS.db");
        @unlink("/etc/artica-postfix/zarafa-export.db");
        $cmd = LOCATE_PHP5_BIN2() . " /usr/share/artica-postfix/exec.zarafa.build.stores.php --export-hash";
        build_progress("{export_stores_data}", 35);
        echo "{$cmd}\n";
        system($cmd);
    }
    echo "Remove {$path}\n";
    @unlink($path);
    return true;
}
Exemple #14
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}");
}
Exemple #15
0
function FilterByName_delete()
{
    $ldap = new clladp();
    if (preg_match('#kav:([0-9]+)#', $_GET["TreeKasSelect"], $reg)) {
        $gidNumber = $reg[1];
    }
    $HashGroup = $ldap->GroupDatas($gidNumber);
    $kav4mailservers = new kav4mailservers(1, $HashGroup["KasperkyAVScanningDatas"]);
    $hashKAV = $kav4mailservers->loadAvSettingsDomain($gidNumber);
    $tbl = explode(',', $hashKAV["FilterByName"]);
    $tbl[] = $ext;
    unset($tbl[$_GET["FilterByName_delete"]]);
    $hashKAV["FilterByName"] = implode(',', $tbl);
    while (list($num, $ligne) = each($hashKAV)) {
        $ini = $ini . "{$num}={$ligne}\n";
    }
    $ini = "[smtpscan.group:{$gidNumber}]\n{$ini}";
    $updatearray["KasperkyAVScanningDatas"][] = $ini;
    if (!is_array_key("KasperkyAVScanningDatas", $HashGroup)) {
        $ldap->Ldap_add_mod($HashGroup["dn"], $updatearray);
        if ($ldap->ldap_last_error != null) {
            echo $ldap->ldap_last_error;
            exit;
        }
    } else {
        $ldap->Ldap_modify($HashGroup["dn"], $updatearray);
        if ($ldap->ldap_last_error != null) {
            echo $ldap->ldap_last_error;
            exit;
        }
    }
    $tpl = new templates();
    echo $tpl->_ENGINE_parse_body('{deleted}');
}
Exemple #16
0
function MoveBranch()
{
    $dragged = $_POST["drag_id"];
    $dropped = $_POST["drop_id"];
    if (preg_match('#^user:(.+)#', $dragged, $reg)) {
        if (preg_match('#^group:([0-9]+)#', $dropped, $reg2)) {
            $ldap = new clladp();
            $hasgroup = $ldap->GroupDatas($reg2[1]);
            $update_array["memberUid"][] = $reg[1];
            $ldap->Ldap_add_mod($hasgroup["dn"], $update_array);
            if ($ldap->ldap_last_error != null) {
                echo $ldap->ldap_last_error;
                exit;
            }
            echo "ok";
            exit;
        }
    }
    echo "No allowed";
}
function AddWhiteAndRelease()
{
    $email_from = $_GET["AddWhiteAndRelease"];
    $ldap = new clladp();
    $hash = $ldap->UserDatas($_SESSION["uid"]);
    $hashObj = $ldap->getobjectDNClass($hash["dn"], 1);
    if (!isset($hashObj["ArticaSettings"])) {
        $add_array["objectClass"][] = "ArticaSettings";
        $ldap->Ldap_add_mod($hash["dn"], $add_array);
    }
    $update_array["KasperkyASDatasAllow"][] = $email_from;
    $ldap->Ldap_add_mod($hash["dn"], $update_array);
    if ($ldap->ldap_last_error != null) {
        echo nl2br($ldap->ldap_last_error);
    }
}
function SaveRule()
{
    include_once dirname(__FILE__) . '/ressources/class.ini.inc';
    $return_rule = false;
    $ruleid = $_GET["ruleid"];
    if ($ruleid == null) {
        $ruleid = "add";
    }
    $HASH["inadyn"] = GetRuleidArray($ruleid);
    $aliases = explode(',', $HASH["inadyn"]["alias"]);
    if ($_GET["alias"] != null) {
        $aliases[] = $_GET["alias"];
        unset($_GET["alias"]);
    }
    if ($_GET["delete_alias"]) {
        unset($aliases[$_GET["delete_alias"]]);
        unset($_GET["delete_alias"]);
        $return_rule = true;
    }
    $ldap = new clladp();
    $dn = "cn=inadyn,cn=artica,{$ldap->suffix}";
    if (!$ldap->ExistsDN($dn)) {
        $upd["objectClass"][] = 'top';
        $upd["objectClass"][] = 'ArticaInadyn';
        $upd["cn"] = "inadyn";
        $upd["ArticaInadynPoolRule"][] = "10";
        if (!$ldap->ldap_add($dn, $upd)) {
            echo $ldap->ldap_last_error;
            exit;
        }
        unset($upd);
    }
    if (isset($_GET)) {
        while (list($num, $ligne) = each($_GET)) {
            $HASH["inadyn"][$num] = $ligne;
        }
    }
    if (isset($aliases)) {
        while (list($num, $ligne) = each($aliases)) {
            if ($ligne != null) {
                $NEWAL[$ligne] = $ligne;
            }
        }
    }
    $HASH["inadyn"]["alias"] = implode(',', $NEWAL);
    $ini = new Bs_IniHandler();
    $ini->_params = $HASH;
    $rule = $ini->toString();
    writelogs("Save rule {$rule}", __FUNCTION__, __FILE__);
    if ($ruleid == "add") {
        $upd["ArticaInadynRule"] = $rule;
        if (!$ldap->Ldap_add_mod($dn, $upd)) {
            echo $ldap->ldap_last_error;
        }
    } else {
        $upd["ArticaInadynRule"][$ruleid] = $rule;
        if (!$ldap->Ldap_modify($dn, $upd)) {
            echo $ldap->ldap_last_error;
        }
    }
    if ($return_rule) {
        echo add_dynamic_rule_form();
        exit;
    }
    $tpl = new templates();
    echo $tpl->_ENGINE_parse_body('{success}');
}
Exemple #19
0
function emergency_user($uid)
{
    if ($uid == null) {
        return;
    }
    if ($GLOBALS["VERBOSE"]) {
        echo "Checking uid:{$uid}\n";
    }
    $user = new user($uid);
    $ou = $user->ou;
    if ($GLOBALS["VERBOSE"]) {
        echo "Checking OU:{$ou}\n";
    }
    if ($ou == null) {
        echo "Checking {$uid} no such organization\n";
        return;
    }
    $ldap = new clladp();
    $info = $ldap->OUDatas($ou);
    $zarafaEnabled = 1;
    if (!$info["objectClass"]["zarafa-company"]) {
        $dn = "ou={$ou},dc=organizations,{$ldap->suffix}";
        $upd["objectClass"] = "zarafa-company";
        if (!$ldap->Ldap_add_mod("{$dn}", $upd)) {
            echo $ldap->ldap_last_error;
            return;
        }
    }
    sync_users();
    orphans();
}
 function addrule($from, $to, $maxsize, $ext, $ruleid)
 {
     if (is_numeric($ruleid)) {
         if ($ruleid > -1) {
             $this->ruleslist[$ruleid] = "{$from};{$to};{$maxsize};{$ext}";
             reset($this->ruleslist);
             while (list($num, $ligne) = each($this->ruleslist)) {
                 $upd["BigMailHtmlRules"][] = $ligne;
             }
             $ldap = new clladp();
             return $ldap->Ldap_modify($this->dn, $upd);
         }
     }
     $upd["BigMailHtmlRules"] = "{$from};{$to};{$maxsize};{$ext}";
     $ldap = new clladp();
     return $ldap->Ldap_add_mod($this->dn, $upd);
 }
Exemple #21
0
function SaveActionsRules()
{
    $gidNumber = $_GET["gidnumber"];
    unset($_GET["gidnumber"]);
    $ldap = new clladp();
    $tpl = new templates();
    $HashGroup = $ldap->GroupDatas($gidNumber);
    $DN = $HashGroup["dn"];
    $HashGroup["KasperskyASGroupNumber"] = $gidNumber;
    $tpl = new templates();
    $kas = new kas_groups();
    $SettingsDatas = $kas->SaveArrayRules();
    $FileToSave = $kas->BuildRulesFile($HashGroup, $SettingsDatas);
    if (!is_array_key('KasperkyASDatasRules', $HashGroup)) {
        $hash_add_array2["KasperkyASDatasRules"] = $FileToSave;
        $ldap->Ldap_add_mod($DN, $hash_add_array2);
        if ($ldap->ldap_last_error != null) {
            echo '{SaveActionsRules} -> add Mod:' . $ldap->ldap_last_error;
        }
    }
    $error = $ldap->ldap_last_error;
    $hash_update_array["KasperkyASDatasRules"] = $FileToSave;
    $ldap->Ldap_modify($DN, $hash_update_array);
    $error = $error . " " . $ldap->ldap_last_error;
    $kas = new kas_groups($FileToSave);
    $kas->PrepareFiles($gidNumber);
    if (strlen($error) < 5) {
        $error = "{success} {group rules}";
    }
    echo $tpl->_ENGINE_parse_body($error);
}
function TreePostfixHeaderSave()
{
    include_once "ressources/class.main_cf_filtering.inc";
    $pages = new HtmlPages();
    $ldap = new clladp();
    $add = true;
    $filters = new main_header_check();
    if (!isset($_GET["id"])) {
        $_GET["id"] = -1;
    }
    if (!is_numeric($_GET["id"])) {
        $_GET["id"] = -1;
    }
    $id = $_GET["id"];
    unset($_GET["id"]);
    if ($id > -1) {
        $add = false;
    }
    while (list($num, $ligne) = each($_GET)) {
        $datas = $datas . "[{$num}]=\"{$ligne}\"\n";
    }
    $filters->array_ldap_source[$id] = $datas;
    if ($add == false) {
        while (list($num, $ligne) = each($filters->array_ldap_source)) {
            $update_array["PostfixHeadersRegex"][] = $filters->array_ldap_source[$num];
        }
        $ldap->Ldap_modify("cn=artica,{$ldap->suffix}", $update_array);
        if ($ldap->ldap_last_error != null) {
            echo $ldap->ldap_last_error;
            exit;
        }
        if ($pages->AutomaticConfig == true) {
            $filters->SaveToDaemon();
        }
        echo "ok";
        exit;
    }
    $update_array["PostfixHeadersRegex"][] = $datas;
    $ldap->Ldap_add_mod("cn=artica,{$ldap->suffix}", $update_array);
    if ($ldap->ldap_last_error != null) {
        echo "ID=[{$id}]\n{$ldap->ldap_last_error}";
        exit;
    }
    if ($pages->AutomaticConfig == true) {
        $filters->SaveToDaemon();
    }
    echo "ok";
}
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;
    }
}
function ImportArticaDomainsTable()
{
    $ou = $_GET["ImportArticaDomainsTable"];
    $tpl = new templates();
    if (!file_exists('ressources/databases/blackdomainsList.db')) {
        echo $tpl->_ENGINE_parse_body('{failed}');
        return null;
    }
    $datas = file_get_contents('ressources/databases/blackdomainsList.db');
    $datas = explode("\n", $datas);
    $ldap = new clladp();
    $dn = "cn=blackListedDomains,ou={$ou},dc=organizations,{$ldap->suffix}";
    if (!$ldap->ExistsDN($dn)) {
        $update_array["cn"][] = 'blackListedDomains';
        $update_array["objectClass"][] = 'PostFixStructuralClass';
        $update_array["objectClass"][] = 'top';
        $this->ldap_add($dn, $update_array);
    }
    if (!is_array($datas)) {
        echo $tpl->_ENGINE_parse_body('{failed}');
        return null;
    }
    while (list($num, $ligne) = each($datas)) {
        if ($ligne != null) {
            if ($already[strtolower($ligne)] == null) {
                $ARR[strtolower($ligne)] = strtolower($ligne);
            }
        }
    }
    unset($datas);
    $datas = null;
    $hash = null;
    if (!is_array($ARR)) {
        echo $tpl->_ENGINE_parse_body('{success}');
        return null;
    }
    while (list($num, $ligne) = each($ARR)) {
        AddAdomain($ou, $ligne);
    }
    //print_r($upd);
    if (!$ldap->Ldap_add_mod($dn, $upd)) {
        echo $tpl->_ENGINE_parse_body("{failed} " . count($ARR) . " {rows}\n{$ldap->ldap_last_error}");
        return null;
    }
    echo $tpl->_ENGINE_parse_body('{success}');
}
function zarafaEnabled()
{
    $ldap = new clladp();
    $sock = new sockets();
    $dn = "ou={$_GET["ou"]},dc=organizations,{$ldap->suffix}";
    $upd["objectClass"] = "zarafa-company";
    $upd["cn"] = $_GET["ou"];
    if ($_GET["zarafaEnabled"] == 1) {
        if (!$ldap->Ldap_add_mod("{$dn}", $upd)) {
            echo $ldap->ldap_last_error;
            return;
        }
        $oumd5 = md5(strtolower(trim($_GET["ou"])));
        $sock->SET_INFO("zarafaMBXLang{$oumd5}", $_GET["zarafaMbxLang"]);
        $sock->SET_INFO("OuZarafaDeleteADM{$oumd5}", $_GET["OuZarafaDeleteADM"]);
    } else {
        if (!$ldap->Ldap_del_mod("{$dn}", $upd)) {
            echo $ldap->ldap_last_error;
        }
        return;
    }
    $sock = new sockets();
    $EnableZarafaMulti = $sock->GET_INFO("EnableZarafaMulti");
    if (!is_numeric($EnableZarafaMulti)) {
        $EnableZarafaMulti = 0;
    }
    if ($EnableZarafaMulti == 0) {
        $sock->getFrameWork("cmd.php?zarafa-admin=yes");
        return;
    }
    $q = new mysql();
    $sql = "SELECT servername,ID FROM zarafamulti WHERE ou='{$_GET["ou"]}' AND enabled=1";
    $results = $q->QUERY_SQL($sql, "artica_backup");
    if (mysql_num_rows($results) > 0) {
        while ($ligne = mysql_fetch_array($results, MYSQL_ASSOC)) {
            $sock->getFrameWork("cmd.php?zarafa-admin=yes&instance-id={$ligne["ID"]}");
        }
    }
}