function query_group()
{
    if ($_GET["OnlyUsers"] == "yes") {
        $_GET["OnlyUsers"] = 1;
    }
    $users = new user();
    $query = $_POST["query"];
    if (!is_numeric($_POST["rp"])) {
        $_POST["rp"] = 250;
    }
    $ldap = new external_ldap_search();
    if ($query == null) {
        $query = "*";
    }
    $hash = $ldap->find_ldap_items_groups($query, $_POST["rp"]);
    $query = $_POST["query"];
    if ($query == null) {
        $query = "*";
    }
    $data = array();
    $data['page'] = 1;
    $data['total'] = count($hash);
    $data['rows'] = array();
    $c = 0;
    if (count($hash) == 0) {
        json_error_show("no data");
    }
    while (list($dn, $Displayname) = each($hash)) {
        if ($GLOBALS["VERBOSE"]) {
            echo "<code>&raquo;{$num}&laquo; = {$ligne}</code><br>\n";
        }
        if ($dn == null) {
            continue;
        }
        $img = "wingroup.png";
        $prepend = "ExtLdap:";
        if ($_GET["callback"] != null) {
            $js = "{$_GET["callback"]}('{$dn}','{$prepend}','{$Displayname}')";
        }
        $c++;
        if ($c > $_POST["rp"]) {
            if ($GLOBALS["VERBOSE"]) {
                echo "<code style='color:#d32d2d'>\$c ({$c}) > {$_POST["rp"]} break</code><br>\n";
            }
            break;
        }
        $data['rows'][] = array('id' => md5(serialize($dn)), 'cell' => array("<img src='img/{$img}'>", "<span style='font-size:16px;font-weight:bolder'>{$Displayname}</span>", "<span style='font-size:16px'>" . imgsimple("arrow-right-24.png", "{add}", $js) . "</span>"));
    }
    $data['total'] = $c;
    echo json_encode($data);
}
Exemple #2
0
function groups_search()
{
    $tpl = new templates();
    $MyPage = CurrentPageName();
    $q = new mysql_squid_builder();
    $search = '%';
    $table = "webfilter_group";
    $page = 1;
    $FORCE_FILTER = null;
    $total = 0;
    if ($q->COUNT_ROWS($table) == 0) {
        json_error_show("no data");
        return;
    }
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $searchstring = string_to_flexquery();
    if ($searchstring != null) {
        $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE 1 {$FORCE_FILTER} {$searchstring}";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
        $total = $ligne["TCOUNT"];
    } else {
        $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE 1 {$FORCE_FILTER}";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
        $total = $ligne["TCOUNT"];
    }
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    $pageStart = ($page - 1) * $rp;
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $sql = "SELECT *  FROM `{$table}` WHERE 1 {$searchstring} {$FORCE_FILTER} {$ORDER} {$limitSql}";
    $results = $q->QUERY_SQL($sql);
    if (mysql_num_rows($results) == 0) {
        json_error_show("no data");
    }
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total + 1;
    $data['rows'] = array();
    if (!$q->ok) {
        json_error_show($q->mysql_error);
    }
    $localldap[0] = $tpl->_ENGINE_parse_body("{ldap_group}");
    $localldap[1] = $tpl->_ENGINE_parse_body("{virtual_group}");
    $localldap[2] = $tpl->_ENGINE_parse_body("{active_directory_group}");
    while ($ligne = mysql_fetch_assoc($results)) {
        $CountDeMembers = 0;
        $suffix = null;
        if ($GLOBALS["VERBOSE"]) {
            print_r($ligne);
        }
        $select = imgtootltip("32-parameters.png", "{apply}", "DansGuardianEditGroup('{$ligne["ID"]}','{$ligne["groupname"]}')");
        $delete = imgtootltip("delete-24.png", "{delete}", "DansGuardianDelGroup('{$ligne["ID"]}')");
        $color = "black";
        if ($ligne["enabled"] == 0) {
            $color = "#8a8a8a";
        }
        if ($ligne["localldap"] == 1) {
            $q2 = new mysql_squid_builder();
            $sql = "SELECT COUNT(ID) AS tcount FROM webfilter_members WHERE groupid={$ligne["ID"]}";
            $ligne2 = mysql_fetch_array($q2->QUERY_SQL($sql));
            $CountDeMembers = $ligne2["tcount"];
        }
        if ($ligne["localldap"] == 0) {
            if ($ligne["dn"] == null) {
                $gp = new groups($ligne["gpid"]);
                $groupadd_text = "(" . $gp->groupName . ")";
                $CountDeMembers = $CountDeMembers + count($gp->members);
            } else {
                if (preg_match("#ExtLdap:(.+)#", $ligne["dn"], $re)) {
                    $groupadd_text = "<span style='font-size:11px'>({$re[1]})</span>";
                    $ldapex = new external_ldap_search();
                    $CountDeMembers = $ldapex->CountDeMembers($re[1]);
                }
            }
        }
        if ($ligne["localldap"] == 2) {
            $CountDeMembers = "-";
        }
        $groupeTypeText = $localldap[$ligne["localldap"]];
        $js = "DansGuardianEditGroup('{$ligne["ID"]}','{$ligne["groupname"]}')";
        $ligne["description"] = stripslashes($ligne["description"]);
        $data['rows'][] = array('id' => $ligne['ID'], 'cell' => array("<a href=\"javascript:blur();\" OnClick=\"javascript:{$js}\" style='font-size:16px;color:{$color};text-decoration:underline;font-weight:bold'>{$suffix}{$ligne["groupname"]} {$groupadd_text}</a>\n\t\t\t<div style='font-size:10px'><i style='font-size:16px'>{$ligne["description"]}</i>", "<span style='font-size:20px;color:{$color};'>{$groupeTypeText}</span>", "<span style='font-size:20px;color:{$color};'>{$CountDeMembers}</span>", "<span style='font-size:20px;color:{$color};'>{$delete}</span>"));
    }
    echo json_encode($data);
}