Пример #1
0
function query()
{
    if ($_GET["OnlyUsers"] == "yes") {
        $_GET["OnlyUsers"] = 1;
    }
    $users = new user();
    $query = $_POST["query"];
    $OnlyUsers = $_GET["OnlyUsers"];
    $OnlyGroups = $_GET["OnlyGroups"];
    $OnlyGUID = $_GET["OnlyGUID"];
    $OnlyName = $_GET["OnlyName"];
    $OnlyCheckAD = $_GET["OnlyCheckAD"];
    $OnlyLDAP = $_GET["OnlyLDAP"];
    $Zarafa = $_GET["Zarafa"];
    $OnlyAD = $_GET["OnlyAD"];
    $sock = new sockets();
    $EnableSambaActiveDirectory = $sock->GET_INFO("EnableSambaActiveDirectory");
    if (!is_numeric($EnableSambaActiveDirectory)) {
        $EnableSambaActiveDirectory = 0;
    }
    writelogs("qtype={$_POST["qtype"]}; EnableSambaActiveDirectory={$EnableSambaActiveDirectory}, OnlyUsers={$OnlyUsers} OnlyGroups={$_GET["OnlyGroups"]}", __FUNCTION__, __FILE__, __LINE__);
    if ($GLOBALS["VERBOSE"]) {
        echo __FUNCTION__ . ":" . __LINE__ . " OnlyUsers={$OnlyUsers} OnlyGroups={$_GET["OnlyGroups"]}<br>\n";
    }
    if ($EnableSambaActiveDirectory == 1) {
        if ($_POST["qtype"] == "members") {
            query_members_ad();
            return;
        }
    }
    if ($_POST["qtype"] == "groups") {
        query_group();
        return;
    }
    if ($OnlyGroups == 1) {
        query_group();
        return;
    }
    $nogetent = false;
    if (!is_numeric($OnlyGUID)) {
        $OnlyGUID = 0;
    }
    if (!is_numeric($OnlyUsers)) {
        $OnlyUsers = 0;
    }
    if (!is_numeric($OnlyName)) {
        $OnlyName = 0;
    }
    if (!is_numeric($OnlyCheckAD)) {
        $OnlyCheckAD = 0;
    }
    if (!is_numeric($OnlyLDAP)) {
        $OnlyLDAP = 0;
    }
    if (!is_numeric($OnlyAD)) {
        $OnlyAD = 0;
    }
    if (!is_numeric($OnlyGroups)) {
        $OnlyGroups = 0;
    }
    if ($OnlyLDAP == 1) {
        $_GET["OnlyAD"] = 0;
    }
    $ObjectZarafa = false;
    if ($OnlyAD == 1) {
        $OnlyCheckAD = 1;
    }
    if ($Zarafa == 1) {
        $nogetent = true;
        $ObjectZarafa = true;
    }
    $hash = array();
    if (!isset($_GET["prepend"])) {
        $_GET["prepend"] = 0;
    } else {
        if ($_GET["prepend"] == 'yes') {
            $_GET["prepend"] = 1;
        }
        if ($_GET["prepend"] == 'no') {
            $_GET["prepend"] = 0;
        }
    }
    $WORKGROUP = null;
    $sock = new sockets();
    if ($GLOBALS["VERBOSE"]) {
        echo __FUNCTION__ . ":" . __LINE__ . " OnlyAD={$_GET["OnlyAD"]}<br>\n";
    }
    if ($_GET["OnlyAD"] == 1) {
        $EnableSambaActiveDirectory = $sock->GET_INFO("EnableSambaActiveDirectory");
        if (!is_numeric($EnableSambaActiveDirectory)) {
            $EnableSambaActiveDirectory = 0;
        }
        if ($EnableSambaActiveDirectory == 1) {
            $config_activedirectory = unserialize(base64_decode($sock->GET_INFO("SambaAdInfos")));
            $WORKGROUP = strtoupper($config_activedirectory["WORKGROUP"]) . "/";
        }
    }
    if ($query == '*') {
        if ($WORKGROUP != null) {
            $query = "{$WORKGROUP}/*";
        } else {
            $query = null;
        }
    } else {
        if ($WORKGROUP != null) {
            $query = "{$WORKGROUP}/{$query}";
        }
    }
    $usersMenus = new usersMenus();
    if (!$usersMenus->IsSuperAdmin()) {
        $_GET["organization"] = $_SESSION["ou"];
    }
    if ($query == null) {
        $query = "*";
    }
    if (!isset($_POST["rp"])) {
        $_POST["rp"] = 50;
    }
    if ($GLOBALS["VERBOSE"]) {
        echo __FUNCTION__ . ":" . __LINE__ . " ->";
    }
    if ($GLOBALS["VERBOSE"]) {
        echo __FUNCTION__ . ":" . __LINE__ . " ->find_ldap_items({$query},{$_GET["organization"]},{$nogetent},ObjectZarafa={$ObjectZarafa},{$_POST["rp"]},OnlyGUID={$OnlyGUID},OnlyUsers={$OnlyUsers},OnlyCheckAD={$OnlyCheckAD}...<br>\n";
    }
    $hash = $users->find_ldap_items($query, $_GET["organization"], $nogetent, $ObjectZarafa, $_POST["rp"], $OnlyGroups, $OnlyUsers, $OnlyCheckAD);
    $data = array();
    $data['page'] = 1;
    $data['total'] = count($hash);
    $data['rows'] = array();
    $c = 0;
    while (list($num, $ligne) = each($hash)) {
        if ($num == null) {
            continue;
        }
        $gid = 0;
        if (preg_match("#^@(.+?):([0-9]+)#", $ligne, $re)) {
            if ($OnlyUsers == 1) {
                continue;
            }
            $img = "wingroup.png";
            $Displayname = "{$re[1]}";
            $prepend = "group:";
            $gid = $re[2];
            if ($OnlyName == 1) {
                if (preg_match("#^@(.+)#", $num, $ri)) {
                    $num = $ri[1];
                }
            }
        } else {
            if ($OnlyGroups == 1) {
                continue;
            }
            $Displayname = $ligne;
            $img = "user-18.png";
            $prepend = "user:"******"NOComputers"] == 1) {
                continue;
            }
            $Displayname = str_replace('$', '', $Displayname);
            $img = "base.gif";
            $prepend = "computer:";
        }
        $js = "SambaBrowseSelect('{$num}','{$prepend}',{$gid})";
        if ($_GET["callback"] != null) {
            $js = "{$_GET["callback"]}('{$num}','{$prepend}',{$gid})";
        }
        $c++;
        if ($c > $_POST["rp"]) {
            break;
        }
        $data['rows'][] = array('id' => md5(serialize($ligne["displayname"])), 'cell' => array("<img src='img/{$img}'>", "<span style='font-size:14px;font-weight:bolder'>{$Displayname}</span> <span style='font-size:11px'>({$num})</span>", "<span style='font-size:14px'>" . imgsimple("arrow-right-24.png", "{add}", $js) . "</span>"));
    }
    $data['total'] = $c;
    echo json_encode($data);
}
Пример #2
0
function query()
{
    if ($_GET["OnlyUsers"] == "yes") {
        $_GET["OnlyUsers"] = 1;
    }
    $users = new user();
    $query = $_POST["query"];
    if ($_POST["qtype"] == "groups") {
        query_group();
        return;
    }
    $nogetent = false;
    $uid = $_GET["uid"];
    $OnlyUsers = $_GET["OnlyUsers"];
    $OnlyGroups = $_GET["OnlyGroups"];
    $OnlyGUID = $_GET["OnlyGUID"];
    $OnlyName = $_GET["OnlyName"];
    $OnlyCheckAD = $_GET["OnlyCheckAD"];
    $OnlyLDAP = $_GET["OnlyLDAP"];
    $Zarafa = $_GET["Zarafa"];
    if (!is_numeric($OnlyGUID)) {
        $OnlyGUID = 0;
    }
    if (!is_numeric($OnlyUsers)) {
        $OnlyUsers = 0;
    }
    if (!is_numeric($OnlyName)) {
        $OnlyName = 0;
    }
    if (!is_numeric($OnlyCheckAD)) {
        $OnlyCheckAD = 0;
    }
    if (!is_numeric($OnlyLDAP)) {
        $OnlyLDAP = 0;
    }
    if ($OnlyLDAP == 1) {
        $_GET["OnlyAD"] = 0;
    }
    $ObjectZarafa = false;
    if ($Zarafa == 1) {
        $nogetent = true;
        $ObjectZarafa = true;
    }
    $hash = array();
    if (!isset($_GET["prepend"])) {
        $_GET["prepend"] = 0;
    } else {
        if ($_GET["prepend"] == 'yes') {
            $_GET["prepend"] = 1;
        }
        if ($_GET["prepend"] == 'no') {
            $_GET["prepend"] = 0;
        }
    }
    $WORKGROUP = null;
    $mapi = new mapizarafa();
    if (!$mapi->list_folders($_GET["uid"], true)) {
        json_error_show($mapi->error, 1);
    }
    $hash = $mapi->Folders;
    $data = array();
    $data['page'] = 1;
    $data['total'] = count($hash);
    $data['rows'] = array();
    $c = 0;
    if ($GLOBALS["VERBOSE"]) {
        echo "query():: hash = " . count($hash) . " entries...<br\n";
    }
    while (list($folder, $array) = each($hash)) {
        $ID = $array["ID"];
        $type = $array["TYPE"];
        $img = "icon_mailfolder.gif";
        if ($type == "SYNC_FOLDER_TYPE_USER_APPOINTMENT") {
            $img = "icon_calendar.gif";
        }
        if ($type == "SYNC_FOLDER_TYPE_USER_CONTACT") {
            $img = "icon_contact.gif";
        }
        if ($_GET["callback"] != null) {
            $js = "{$_GET["callback"]}('{$folder}','{$ID}','{$uid}','{$type}')";
        }
        $c++;
        if ($c > $_POST["rp"]) {
            break;
        }
        $data['rows'][] = array('id' => md5($folder), 'cell' => array("<img src='img/{$img}'>", "<span style='font-size:14px;font-weight:bolder'>{$folder}</span>", "<span style='font-size:14px'>" . imgsimple("arrow-right-24.png", "{add}", $js) . "</span>"));
    }
    $data['total'] = $c;
    echo json_encode($data);
}