예제 #1
0
function group_settings_save()
{
    $gpname = $_POST["gpname"];
    $sql = "SELECT groupname FROM Kav4Proxy_groups WHERE groupname='{$gpname}'";
    $q = new mysql();
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup"));
    $URLs[0] = $_POST["URL"];
    $URLs_sql = addslashes(base64_encode(serialize($URLs)));
    $hash["BasesErrorAction"] = $_POST["BasesErrorAction"];
    $hash["CorruptedAction"] = $_POST["CorruptedAction"];
    $hash["CuredAction"] = $_POST["CuredAction"];
    $hash["CuredAction"] = $_POST["CuredAction"];
    $hash["InfectedAction"] = $_POST["InfectedAction"];
    $hash["MaxScanTime"] = $_POST["MaxScanTime"];
    $hash["Cure"] = $_POST["Cure"];
    $hash["ScanArchives"] = $_POST["ScanArchives"];
    $hash["ScanPacked"] = $_POST["ScanPacked"];
    $hash["ScanMailBases"] = $_POST["ScanMailBases"];
    $hash["ScanMailPlain"] = $_POST["ScanMailPlain"];
    $hash["UseAVBasesSet"] = $_POST["UseAVBasesSet"];
    $hash["MaxReqLength"] = $_POST["MaxReqLength"];
    $EngineAction = addslashes(base64_encode(serialize($hash)));
    $sql = "UPDATE Kav4Proxy_groups SET URL='{$URLs_sql}',\n\tEngineAction='{$EngineAction}',\n\tpriority='{$_POST["priority"]}' WHERE groupname='{$gpname}'";
    if ($ligne["groupname"] == null) {
        $ldap = new clladp();
        $gpname = $ldap->StripSpecialsChars($gpname);
        $sql = "INSERT INTO Kav4Proxy_groups (groupname,URL,EngineAction,priority) VALUES ('{$gpname}','{$URLs_sql}','{$EngineAction}','{$_POST["priority"]}')";
    }
    $q = new mysql();
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
        return;
    }
    $sock = new sockets();
    $sock->getFrameWork("services.php?kav4Proxy-reload=yes");
}
예제 #2
0
function post_form()
{
    $_POST["email"] = strtolower(trim($_POST["email"]));
    $_POST["password"] = trim($_POST["password"]);
    $tpl = new templates();
    $sock = new sockets();
    $ldap = new clladp();
    $EnableVirtualDomainsInMailBoxes = $sock->GET_INFO("EnableVirtualDomainsInMailBoxes");
    if (!ValidateMail($_POST["email"])) {
        echo "<H2>" . $tpl->_ENGINE_parse_body("{ERROR_INVALID_EMAIL_ADDR}: ({original_mail}:{$_POST["email"]})") . "</H2>";
        exit;
    }
    $domain = trim(strtolower($_POST["domain"]));
    $company = $_POST["company"];
    $password = $_POST["password"];
    $uid = trim(strtolower($_POST["username"]));
    $ou = $_POST["organization"];
    if ($ou == null) {
        $ou = $_POST["company"];
    }
    if ($company == null) {
        echo $tpl->_ENGINE_parse_body("<H2>{company}:{ERROR_VALUE_MISSING_PLEASE_FILL_THE_FORM}</H2>");
        exit;
    }
    if ($password == null) {
        echo $tpl->_ENGINE_parse_body("<H2>{password}:{ERROR_VALUE_MISSING_PLEASE_FILL_THE_FORM}</H2>");
        exit;
    }
    if ($_POST["domain"] == null) {
        echo $tpl->_ENGINE_parse_body("<H2>{domain}:{ERROR_VALUE_MISSING_PLEASE_FILL_THE_FORM}</H2>");
        exit;
    }
    if ($uid == null) {
        echo $tpl->_ENGINE_parse_body("<H2>{username}:{ERROR_VALUE_MISSING_PLEASE_FILL_THE_FORM}</H2>");
        exit;
    }
    if (isset($_POST["subdomain"])) {
        $_POST["subdomain"] = trim(strtolower($_POST["subdomain"]));
        if ($_POST["subdomain"] == null) {
            echo $tpl->_ENGINE_parse_body("<H2>{subdomain}:{ERROR_VALUE_MISSING_PLEASE_FILL_THE_FORM}</H2>");
            exit;
        }
        $domain = $_POST["subdomain"] . ".{$domain}";
    }
    $hashdoms = $ldap->hash_get_all_domains();
    if ($hashdoms[$domain] != null) {
        echo $tpl->_ENGINE_parse_body("<H2>{error_domain_exists} &raquo;<strong>{$domain}</strong></H2");
        exit;
    }
    $ou = $ldap->StripSpecialsChars($ou);
    $uid = $ldap->StripSpecialsChars($uid);
    if ($ou == "users") {
        echo "<H2>Error: Adding\n{$ou} words not permitted\n</H2>";
        exit;
    }
    if ($ou == "groups") {
        echo "<H2>Error: Adding\n{$ou} words not permitted\n</H2>";
        exit;
    }
    if ($ou == "computers") {
        echo "<H2>Error: Adding\n{$ou} words not permitted\n</H2>";
        exit;
    }
    if ($ou == "pureftpd") {
        echo "<H2>Error: Adding\n{$ou} words not permitted\n</H2>";
        exit;
    }
    $ldap = new clladp();
    $dn = "ou={$ou},dc=organizations,{$ldap->suffix}";
    if ($ldap->ExistsDN($dn)) {
        echo $tpl->_ENGINE_parse_body("<H2>{organization}:{ERROR_OBJECT_ALREADY_EXISTS}</H2>");
        exit;
    }
    if ($EnableVirtualDomainsInMailBoxes == 1) {
        $uidtests = "{$uid}@{$domain}";
        $u = new user($uidtests);
        if (!$u->DoesNotExists) {
            echo $tpl->_ENGINE_parse_body("<H2>{member}: &laquo;{$uid}&raquo; {ERROR_OBJECT_ALREADY_EXISTS}</H2>");
            exit;
        }
    }
    $u = new user($uid);
    if (!$u->DoesNotExists) {
        echo $tpl->_ENGINE_parse_body("<H2>{member}: &laquo;{$uid}&raquo; {ERROR_OBJECT_ALREADY_EXISTS}</H2>");
        exit;
    }
    $zmd5 = md5("{$_POST["email"]}{$ou}{$company}{$domain}{$uid}");
    $password = addslashes($password);
    $company = addslashes($company);
    $uid = addslashes($uid);
    $sql = "INSERT IGNORE INTO register_orgs(`email`,`ou`,`company`,`domain`,`username`,`password`,`zmd5`)\n\tVALUES('{$_POST["email"]}','{$ou}','{$company}','{$domain}','{$uid}','{$password}','{$zmd5}')\n\t";
    $q = new mysql();
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo "<H2>{$q->mysql_error}</H2>";
        return;
    }
    $prefix = "http://";
    if ($_SERVER["HTTPS"] == "on") {
        $prefix = "https://";
    }
    $link = $prefix . $_SERVER["HTTP_HOST"] . '/' . CurrentPageName() . "?confirm={$zmd5}";
    $subject = $tpl->javascript_parse_text("{organization}: {$ou} {register_form}");
    $message = "{sendmail_request_form}\n----------------------\n{$link}\n----------------------\n";
    $RobotInternetUsers = $sock->GET_INFO("RobotInternetUsers");
    if ($RobotInternetUsers == null) {
        $RobotInternetUsers = "postmaster@{$user->fqdn}";
    }
    $email = $_POST["email"];
    mail($email, "{$subject}", $message, "From:" . $RobotInternetUsers);
    echo "<H2>" . $tpl->_ENGINE_parse_body("{thanks_registration_mail} <strong>{$email}</strong>");
}
예제 #3
0
function add_category_save()
{
    include_once dirname(__FILE__) . "/ressources/class.ldap.inc";
    $ldap = new clladp();
    $dans = new dansguardian_rules();
    $_POST["personal_database"] = strtolower($ldap->StripSpecialsChars($_POST["personal_database"]));
    if ($_POST["personal_database"] == "security") {
        $_POST["personal_database"] = "security2";
    }
    if (isset($dans->array_blacksites[$_POST["personal_database"]])) {
        $tpl = new templates();
        echo $tpl->javascript_parse_text("{category_already_exists}");
        return;
    }
    $_POST["category_text"] = addslashes($_POST["category_text"]);
    $q = new mysql_squid_builder();
    $sql = "SELECT category FROM personal_categories WHERE category='{$_POST["personal_database"]}'";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    if ($ligne["category"] != null) {
        $sql = "UPDATE personal_categories SET category_description='{$_POST["category_text"]}'";
    } else {
        $sql = "INSERT IGNORE INTO personal_categories (category,category_description) VALUES ('{$_POST["personal_database"]}','{$_POST["category_text"]}');";
    }
    $q->QUERY_SQL($sql);
    if (!$q->ok) {
        echo $q->mysql_error;
        return;
    }
    $q->CreateCategoryTable($_POST["personal_database"]);
    $sock = new sockets();
    $sock->getFrameWork("squid.php?export-web-categories=yes");
}
function autofs_connect()
{
    $auto = new autofs();
    $ldap = new clladp();
    $sock = new sockets();
    $_GET["LOCAL_DIR"] = strtolower($ldap->StripSpecialsChars($_GET["LOCAL_DIR"]));
    $upd = array();
    $dn = "cn={$_GET["LOCAL_DIR"]},ou=auto.automounts,ou=mounts,{$ldap->suffix}";
    if ($_GET["fs"] == null) {
        $prefix_pattern = "-fstype=auto,check=none,noatime";
    }
    if ($_GET["fs"] == "ext2") {
        $prefix_pattern = "-fstype=ext2,check=none,noatime";
    }
    if ($_GET["fs"] == "ext3") {
        $prefix_pattern = "-fstype=ext3,check=none,noatime,nodiratime,data=journal,user";
    }
    if ($_GET["fs"] == "ext4") {
        $prefix_pattern = "-fstype=ext4,check=none,noatime,commit=60,nodiratime,data=journal,user";
    }
    if ($_GET["fs"] == "vfat") {
        $prefix_pattern = "-fstype=vfat,uid=1000,gid=1010";
    }
    if ($_GET["fs"] == "ntfs") {
        $prefix_pattern = "-fstype=ntfs-3g,uid=1000,gid=1010";
    }
    if ($prefix_pattern == null) {
        $prefix_pattern = "-fstype=auto,check=none,noatime";
    }
    $pattern = "{$prefix_pattern} :{$_GET["dev"]}";
    if (!$ldap->ExistsDN($dn)) {
        $upd["ObjectClass"][] = 'top';
        $upd["ObjectClass"][] = 'automount';
        $upd["cn"][] = "{$_GET["LOCAL_DIR"]}";
        $upd["automountInformation"][] = $pattern;
        if (!$ldap->ldap_add($dn, $upd)) {
            echo "function: " . __FUNCTION__ . "\n" . "file: " . __FILE__ . "\nline: " . __LINE__ . "\n" . $ldap->ldap_last_error;
            return;
        }
        $sock->getFrameWork("cmd.php?autofs-reload=yes");
        return;
    }
    $upd["automountInformation"][] = $pattern;
    if (!$ldap->Ldap_modify($dn, $upd)) {
        echo "function: " . __FUNCTION__ . "\n" . "file: " . __FILE__ . "\nline: " . __LINE__ . "\n" . $ldap->ldap_last_error;
        return false;
    }
    $sock->getFrameWork("cmd.php?autofs-reload=yes");
}
예제 #5
0
function cgroup_save()
{
    $ID = $_POST["ID"];
    unset($_POST["ID"]);
    $_POST["cpu_shares"] = $_POST["cpu_shares"] / 100;
    $_POST["cpu_shares"] = round(1024 * $_POST["cpu_shares"]);
    $ldap = new clladp();
    $_POST["groupname"] = $ldap->StripSpecialsChars($_POST["groupname"]);
    while (list($num, $ligne) = each($_POST)) {
        if (preg_match("#cpuset_cpus_([0-9]+)#", $num, $re)) {
            if ($ligne == 1) {
                $cpuset_cpus_tb[] = $re[1];
            }
            unset($_POST[$num]);
        }
    }
    if (!is_array($cpuset_cpus_tb)) {
        $cpuset_cpus_tb = array(0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8);
    }
    $_POST["cpuset_cpus"] = @implode(",", $cpuset_cpus_tb);
    reset($_POST);
    while (list($num, $ligne) = each($_POST)) {
        $fields[] = "`{$num}`";
        $values[] = "'" . addslashes($ligne) . "'";
        $upd[] = "`{$num}`='" . addslashes($ligne) . "'";
    }
    $sql_edit = "UPDATE cgroups_groups SET " . @implode(",", $upd) . " WHERE ID={$ID}";
    $sql = "INSERT INTO cgroups_groups (" . @implode(",", $fields) . ") VALUES (" . @implode(",", $values) . ")";
    if ($ID > 0) {
        $sql = $sql_edit;
    }
    writelogs($sql, __FUNCTION__, __FILE__, __LINE__);
    $q = new mysql();
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
        return;
    }
    $sock = new sockets();
    $sock->SET_INFO("cgroupsMustCompile", 1);
}
예제 #6
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 category_save()
{
    include_once dirname(__FILE__) . "/ressources/class.ldap.inc";
    $ldap = new clladp();
    $dans = new dansguardian_rules();
    $_POST["category-to-add"] = url_decode_special_tool($_POST["category-to-add"]);
    $_POST["category_text"] = url_decode_special_tool($_POST["category_text"]);
    if ($_POST["category-to-add"] == "security") {
        $_POST["category-to-add"] = "security2";
    }
    if ($_POST["CatzByGroupA"] != null) {
        $_POST["group"] = $_POST["CatzByGroupA"];
    }
    $_POST["CatzByGroupL"] = mysql_escape_string2($_POST["CatzByGroupL"]);
    $_POST["category_text"] = mysql_escape_string2($_POST["category_text"]);
    $q = new mysql_squid_builder();
    $sql = "SELECT category FROM personal_categories WHERE category='" . mysql_escape_string2($_POST["category-to-add"]) . "'";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    if ($ligne["category"] != null) {
        $sql = "UPDATE personal_categories\n\t\t\tSET category_description='{$_POST["category_text"]}',\n\t\t\tmaster_category='{$_POST["group"]}'\n\t\t\tWHERE category='{$_POST["category-to-add"]}'";
    } else {
        $_POST["category-to-add"] = strtolower($ldap->StripSpecialsChars($_POST["category-to-add"]));
        if (isset($dans->array_blacksites[$_POST["category-to-add"]])) {
            $tpl = new templates();
            echo $tpl->javascript_parse_text("{$_POST["category-to-add"]}:: {category_already_exists}");
            return;
        }
        $sql = "INSERT IGNORE INTO personal_categories (category,category_description,master_category)\n\t\tVALUES ('{$_POST["category-to-add"]}','{$_POST["category_text"]}','{$_POST["group"]}');";
    }
    $q->QUERY_SQL($sql);
    if (!$q->ok) {
        echo $q->mysql_error;
        return;
    }
    $q->CreateCategoryTable($_POST["category-to-add"]);
    $sql = "TRUNCATE TABLE webfilters_categories_caches";
    $dans->CategoriesTableCache();
    $dans->CleanCategoryCaches();
    $sock = new sockets();
    $sock->getFrameWork("squid.php?clean-catz-cache=yes");
    $sock->getFrameWork("squid.php?export-web-categories=yes");
}