Example #1
0
function GetDomainUsersList()
{
    global $SAMSConf;
    global $USERConf;
    if ($USERConf->ToWebInterfaceAccess("UC") != 1) {
        exit;
    }
    $DB = new SAMSDB();
    if ($SAMSConf->AUTH == "ntlm") {
        $value = ExecuteShellScript("getwbinfousers", "{$SAMSConf->WBINFOPATH}/");
        $a = explode(" ", $value);
        sort($a);
        $acount = count($a);
    } else {
        require_once "adldap.php";
        //create the LDAP connection
        $pdc = array("{$SAMSConf->LDAPSERVER}");
        $options = array(account_suffix => "@{$SAMSConf->LDAPDOMAIN}", base_dn => "{$SAMSConf->LDAPBASEDN}", domain_controllers => $pdc, ad_username => "{$SAMSConf->LDAPUSER}", ad_password => "{$SAMSConf->LDAPUSERPASSWD}", "", "", "");
        $ldap = new adLDAP($options);
        $a = $ldap->all_users($include_desc = false, $search = "*", $sorted = true);
        sort($a);
        $acount = count($a);
    }
    print "<SELECT NAME=\"usernick\" ID=\"usernick\" SIZE=1 >\n";
    for ($i = 0; $i < $acount; $i++) {
        if ($SAMSConf->NTLMDOMAIN == "Y") {
            if (strstr($a[$i], "+") != NULL) {
                $domain = trim(strtok($a[$i], "+"));
                $user = trim(strtok("+"));
                $domainlen = strlen($domain);
                $userlen = strlen($user);
            } else {
                $domain = trim(strtok($a[$i], "\\"));
                $user = trim(strtok("\\"));
                $domainlen = strlen($domain);
                $userlen = strlen($user);
            }
            if (strlen($domain) == 0 || strlen($user) == 0) {
                $user = $domain;
                $domain = $SAMSConf->DEFAULTDOMAIN;
            }
        } else {
            $domain = "{$SAMSConf->DEFAULTDOMAIN}";
            $user = trim($a[$i]);
            //$user=strtolower($user);
        }
        $result = $DB->samsdb_query("SELECT * FROM squidusers WHERE domain=\"{$domain}\"&&nick=\"{$user}\" ");
        $row = $DB->samsdb_fetch_array($result);
        if (strcmp($row['name'], $user) != 0 && strcmp($row['domain'], $domain) != 0) {
            if ($SAMSConf->NTLMDOMAIN == "Y") {
                print "<OPTION VALUE=\"{$domain}+{$user}\"> {$user}/{$domain} ";
            } else {
                print "<OPTION VALUE=\"{$user}\"> {$user} ";
            }
        }
    }
    print "</SELECT>\n";
}
Example #2
0
function ADLDtest()
{
    global $SAMSConf;
    global $USERConf;
    if ($USERConf->ToWebInterfaceAccess("C") != 1) {
        exit;
    }
    $info = array();
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    print "<H1>Test AD connection</H1>";
    require_once "src/adldap.php";
    //create the LDAP connection
    $adldserver = GetAuthParameter("adld", "adldserver");
    $basedn = GetAuthParameter("adld", "basedn");
    $adadmin = GetAuthParameter("adld", "adadmin");
    $adadminpasswd = GetAuthParameter("adld", "adadminpasswd");
    $usergroup = GetAuthParameter("adld", "usergroup");
    $LDAPBASEDN2 = strtok($basedn, ".");
    $LDAPBASEDN = "DC={$LDAPBASEDN2}";
    while (strlen($LDAPBASEDN2) > 0) {
        $LDAPBASEDN2 = strtok(".");
        if (strlen($LDAPBASEDN2) > 0) {
            $LDAPBASEDN = "{$LDAPBASEDN},DC={$LDAPBASEDN2}";
        }
    }
    $pdc = array("{$adldserver}");
    $options = array(account_suffix => "@{$basedn}", base_dn => "{$LDAPBASEDN}", domain_controllers => $pdc, ad_username => "{$adadmin}", ad_password => "{$adadminpasswd}", "", "", "");
    $ldap = new adLDAP($options);
    $charset = explode(",", $_SERVER['HTTP_ACCEPT_CHARSET']);
    $groups = $ldap->all_groups($include_desc = false, $search = "*", $sorted = true);
    $gcount = count($groups);
    print "<TABLE CLASS=samstable>";
    print "<TH width=5%>No";
    print "<TH >{$adldtest_1_authldaptray} {$basedn}";
    for ($i = 0, $j = 1; $i < $gcount; $i++, $j++) {
        $groupname = UTF8ToSAMSLang($groups[$i]);
        echo "<TR><TD>{$j}:<TD>{$groupname} <BR>";
    }
    echo "</TABLE><P>";
    $users = $ldap->all_users($include_desc = false, $search = "*", $sorted = true);
    $count = count($users);
    print "<TABLE CLASS=samstable>";
    print "<TH width=5%>No";
    print "<TH >{$adldtest_2_authldaptray} {$basedn}";
    print "<TH > ";
    $i = 0;
    foreach ($users as $user) {
        $i++;
        $samaccountname = UTF8ToSAMSLang($user["samaccountname"]);
        $displayname = UTF8ToSAMSLang($user["displayname"]);
        echo "<TR><TD>{$i}: <TD> {$samaccountname} <TD> {$displayname}";
    }
    echo "</TABLE>";
}
Example #3
0
function TestPDC()
{
    global $SAMSConf;
    $info = array();
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    if (isset($_GET["auth"])) {
        $auth = $_GET["auth"];
    }
    print "<H1>TEST PDC</H1>";
    $value = ExecuteShellScript("getwbinfousers", "{$SAMSConf->WBINFOPATH}");
    $a = explode(" ", $value);
    sort($a);
    $acount = count($a);
    if ($auth == "ntlm") {
        for ($i = 0; $i < $acount; $i++) {
            print "{$a[$i]}<BR>\n";
        }
    }
    if ($auth == "adld") {
        require_once "adldap.php";
        //create the LDAP connection
        $pdc = array("{$SAMSConf->LDAPSERVER}");
        $options = array(account_suffix => "@{$SAMSConf->LDAPDOMAIN}", base_dn => "{$SAMSConf->LDAPBASEDN}", domain_controllers => $pdc, ad_username => "{$SAMSConf->LDAPUSER}", ad_password => "{$SAMSConf->LDAPUSERPASSWD}", "", "", "");
        $ldap = new adLDAP($options);
        $groups = $ldap->all_groups($include_desc = false, $search = "*", $sorted = true);
        $gcount = count($groups);
        print "<TABLE CLASS=samstable>";
        print "<TH width=5%>No";
        print "<TH >{$SAMSConf->LDAPDOMAIN} groups";
        for ($i = 0; $i < $gcount; $i++) {
            echo "<TR><TD>{$i}:<TD>{$groups[$i]}<BR>";
        }
        echo "</TABLE><P>";
        $users = $ldap->all_users($include_desc = false, $search = "*", $sorted = true);
        $count = count($users);
        print "<TABLE CLASS=samstable>";
        print "<TH width=5%>No";
        print "<TH >{$SAMSConf->LDAPDOMAIN} users";
        for ($i = 0; $i < $count; $i++) {
            $userinfo = $ldap->user_info($users[$i], $fields = NULL);
            //$mcount=count($userinfo);
            echo "<TR><TD>{$i}:<TD> {$users[$i]} ";
            $aaa = $userinfo[0]["displayname"][0];
            //$aaa2 = $userinfo[0]["givenname"][0];
            //$aaa3 = $userinfo[0]["sn"][0];
            echo "<TD>{$aaa} ";
        }
        echo "</TABLE>";
    }
}
function ImportFromAD()
{
    require_once "adldap.php";
    global $SAMSConf;
    global $USERConf;
    $DB = new SAMSDB();
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    if ($USERConf->ToWebInterfaceAccess("UC") != 1) {
        exit(0);
    }
    echo "<H3>ImportFromAD</H3>";
    if (isset($_GET["addtemplates"])) {
        $addtemplates = $_GET["addtemplates"];
    }
    if (isset($_GET["addgroups"])) {
        $addgroups = $_GET["addgroups"];
    }
    if (isset($_GET["addgroupname"])) {
        $addgroupname = $_GET["addgroupname"];
    }
    if (isset($_GET["groupname"])) {
        $idsamsgroup = $_GET["groupname"];
    }
    if (isset($_GET["newgroupname"])) {
        $newgroupname = $_GET["newgroupname"];
    }
    if (isset($_GET["defaulttraf"])) {
        $defaulttraf = $_GET["defaulttraf"];
    }
    if (isset($_GET["period"])) {
        $period = $_GET["period"];
    }
    if (isset($_GET["newperiod"])) {
        $newperiod = $_GET["newperiod"];
    }
    if (isset($_GET["clryear"])) {
        $clryear = $_GET["clryear"];
    }
    if (isset($_GET["clrmonth"])) {
        $clrmonth = $_GET["clrmonth"];
    }
    if (isset($_GET["clrday"])) {
        $clrday = $_GET["clrday"];
    }
    if (isset($_GET["trange"])) {
        $trange = $_GET["trange"];
    }
    if (isset($_GET["enabled"])) {
        $enabled = $_GET["enabled"];
    }
    $addgroups = "on";
    $addtemplates = "on";
    if ($enabled == "on") {
        $enabled = 1;
    } else {
        $enabled = 0;
    }
    if ($period == "A") {
        $period = $newperiod;
        $clrdate = "{$clryear}-{$clrmonth}-{$clrday}";
    }
    $adldserver = GetAuthParameter("adld", "adldserver");
    $basedn = GetAuthParameter("adld", "basedn");
    $adadmin = GetAuthParameter("adld", "adadmin");
    $adadminpasswd = GetAuthParameter("adld", "adadminpasswd");
    $usergroup = GetAuthParameter("adld", "usergroup");
    $LDAPBASEDN2 = strtok($basedn, ".");
    $LDAPBASEDN = "DC={$LDAPBASEDN2}";
    while (strlen($LDAPBASEDN2) > 0) {
        $LDAPBASEDN2 = strtok(".");
        if (strlen($LDAPBASEDN2) > 0) {
            $LDAPBASEDN = "{$LDAPBASEDN},DC={$LDAPBASEDN2}";
        }
    }
    $pdc = array("{$adldserver}");
    $options = array(account_suffix => "@{$basedn}", base_dn => "{$LDAPBASEDN}", domain_controllers => $pdc, ad_username => "{$adadmin}", ad_password => "{$adadminpasswd}", "", "", "");
    $ldap = new adLDAP($options);
    /* Если выбрана одна из групп SAMS */
    if ($idsamsgroup >= 0) {
        $i = 0;
        while (strlen($addgroupname[$i]) > 0) {
            $result = $DB->samsdb_query_value("SELECT s_name FROM shablon where s_name = '{$addgroupname[$i]}'");
            if ($result == 0) {
                if ($clrdate == "") {
                    $clrdate = "1980-01-01";
                }
                $DB->samsdb_query("INSERT INTO shablon ( s_name, s_quote, s_auth, s_period, s_clrdate, s_alldenied, \ts_shablon_id2 ) VALUES ( '{$addgroupname[$i]}', '{$defaulttraf}', 'adld', '{$period}', '{$clrdate}', '0', '-1' ) ");
                $DB->samsdb_query_value("SELECT s_shablon_id FROM shablon WHERE s_name='{$addgroupname[$i]}' ");
                $row = $DB->samsdb_fetch_array();
                $sid = $row['s_shablon_id'];
                $DB->free_samsdb_query();
                $DB->samsdb_query("INSERT INTO sconfig_time ( s_shablon_id, s_trange_id ) VALUES ( '{$sid}', '{$trange}' ) ");
                echo "create template {$addgroupname[$i]} <BR>";
                $result = $DB->samsdb_query("INSERT INTO auth_param (s_auth, s_param, s_value) VALUES('adld', 'adldgroup', '{$addgroupname[$i]}') ");
            }
            $result = $DB->samsdb_query_value("SELECT s_name, s_shablon_id FROM shablon where s_name = '{$addgroupname[$i]}'");
            $row = $DB->samsdb_fetch_array();
            $shablonid = $row['s_shablon_id'];
            $a = $ldap->all_users($include_desc = false, $search = "*", $sorted = true);
            $acount = count($a);
            foreach ($a as $user) {
                $samaccountname = UTF8ToSAMSLang($user["samaccountname"]);
                $displayname = UTF8ToSAMSLang($user["displayname"]);
                $givenname = UTF8ToSAMSLang($user["givenname"]);
                $sn = UTF8ToSAMSLang($user["sn"]);
                $memberof = UTF8ToSAMSLang($user["memberof"]);
                $adldgroups = explode("|", $memberof);
                $cadldgroups = count($adldgroups);
                $memberofgroup = "Users";
                for ($j = 0; $j < $cadldgroups; $j++) {
                    $adldgroupname = explode("=", $adldgroups[$j]);
                    if (strlen($adldgroupname[1]) > 3) {
                        $memberofgroup = $memberofgroup . "|" . substr($adldgroupname[1], 0, strlen($adldgroupname[1]) - 3);
                    }
                }
                if (strstr($memberofgroup, "|" . $addgroupname[$i])) {
                    echo " add user: {$samaccountname} ( {$givenname} {$sn} )<BR>";
                    if ($enabled == "") {
                        $enabled = 1;
                    }
                    $QUERY = "INSERT INTO squiduser ( s_nick, s_domain, s_name, s_family, s_shablon_id, s_quote,  s_size, s_enabled, s_group_id, s_soname, s_ip, s_passwd, s_hit, s_autherrorc, s_autherrort ) VALUES ( '{$samaccountname}', '{$basedn}', '{$givenname}', '{$sn}', '{$shablonid}', '{$defaulttraf}',  '0', '{$enabled}', '{$idsamsgroup}', '{$usersoname}', '{$userip}', '{$pass}', '0', '0', '0') ";
                    $DB->samsdb_query($QUERY);
                }
            }
            print " <BR>";
            $i++;
        }
    }
    /* Если выбрано создание новой группы */
    echo "<B>idsamsgroup: {$idsamsgroup}</B><BR>";
    if ($idsamsgroup == -1) {
        echo " add group: {$addgroupname[$i]}<BR>";
        $result = $DB->samsdb_query_value("SELECT s_name FROM sgroup where s_name = '{$newgroupname}'");
        if ($result == 0) {
            $result = $DB->samsdb_query("INSERT INTO sgroup (s_name) VALUES('{$newgroupname}') ");
            echo "create group {$addgroupname[$i]} ";
        }
        $result = $DB->samsdb_query_value("SELECT s_name, s_group_id FROM sgroup where s_name = '{$newgroupname}'");
        $row = $DB->samsdb_fetch_array();
        $groupid = $row['s_group_id'];
        $i = 0;
        while (strlen($addgroupname[$i]) > 0) {
            $result = $DB->samsdb_query_value("SELECT s_name FROM shablon where s_name = '{$addgroupname[$i]}'");
            if ($result == 0) {
                if ($clrdate == "") {
                    $clrdate = "1980-01-01";
                }
                $DB->samsdb_query("INSERT INTO shablon ( s_name, s_quote, s_auth, s_period, s_clrdate, s_alldenied, \ts_shablon_id2 ) VALUES ( '{$addgroupname[$i]}', '{$defaulttraf}', 'adld', '{$period}', '{$clrdate}', '0', '-1' ) ");
                $DB->samsdb_query_value("SELECT s_shablon_id FROM shablon WHERE s_name='{$addgroupname[$i]}' ");
                $row = $DB->samsdb_fetch_array();
                $sid = $row['s_shablon_id'];
                $DB->free_samsdb_query();
                $DB->samsdb_query("INSERT INTO sconfig_time ( s_shablon_id, s_trange_id ) VALUES ( '{$sid}', '{$trange}' ) ");
                echo "create template {$addgroupname[$i]} <BR>";
                $result = $DB->samsdb_query("INSERT INTO auth_param (s_auth, s_param, s_value) VALUES('adld', 'adldgroup', '{$addgroupname[$i]}') ");
            }
            $result = $DB->samsdb_query_value("SELECT s_name, s_shablon_id FROM shablon where s_name = '{$addgroupname[$i]}'");
            $row = $DB->samsdb_fetch_array();
            $shablonid = $row['s_shablon_id'];
            $a = $ldap->all_users($include_desc = false, $search = "*", $sorted = true);
            $acount = count($a);
            foreach ($a as $user) {
                $samaccountname = UTF8ToSAMSLang($user["samaccountname"]);
                $displayname = UTF8ToSAMSLang($user["displayname"]);
                $givenname = UTF8ToSAMSLang($user["givenname"]);
                $sn = UTF8ToSAMSLang($user["sn"]);
                $memberof = UTF8ToSAMSLang($user["memberof"]);
                $adldgroups = explode("|", $memberof);
                $cadldgroups = count($adldgroups);
                $memberofgroup = "Users";
                for ($j = 0; $j < $cadldgroups; $j++) {
                    $adldgroupname = explode("=", $adldgroups[$j]);
                    if (strlen($adldgroupname[1]) > 3) {
                        $memberofgroup = $memberofgroup . "|" . substr($adldgroupname[1], 0, strlen($adldgroupname[1]) - 3);
                    }
                }
                if (strstr($memberofgroup, "|" . $addgroupname[$i])) {
                    echo " add user: {$samaccountname} ( {$givenname} {$sn} )<BR>";
                    if ($enabled == "") {
                        $enabled = 1;
                    }
                    $QUERY = "INSERT INTO squiduser ( s_nick, s_domain, s_name, s_family, s_shablon_id, s_quote,  s_size, s_enabled, s_group_id, s_soname, s_ip, s_passwd, s_hit, s_autherrorc, s_autherrort ) VALUES ( '{$samaccountname}', '{$basedn}', '{$givenname}', '{$sn}', '{$shablonid}', '{$defaulttraf}',  '0', '{$enabled}', '{$groupid}', '{$usersoname}', '{$userip}', '{$pass}', '0', '0', '0') ";
                    $DB->samsdb_query($QUERY);
                }
            }
            print " <BR>";
            $i++;
        }
    }
    if ($idsamsgroup == -2) {
        $i = 0;
        while (strlen($addgroupname[$i]) > 0) {
            echo "{$i}: {$addgroupname[$i]}<BR>";
            if ($addtemplates == "on") {
                echo " add template: {$addgroupname[$i]}<BR>";
                $result = $DB->samsdb_query_value("SELECT s_name FROM shablon where s_name = '{$addgroupname[$i]}'");
                if ($result == 0) {
                    if ($clrdate == "") {
                        $clrdate = "1980-01-01";
                    }
                    $DB->samsdb_query("INSERT INTO shablon ( s_name, s_quote, s_auth, s_period, s_clrdate, s_alldenied, \ts_shablon_id2 ) VALUES ( '{$addgroupname[$i]}', '{$defaulttraf}', 'adld', '{$period}', '{$clrdate}', '0', '-1' ) ");
                    $DB->samsdb_query_value("SELECT s_shablon_id FROM shablon WHERE s_name='{$addgroupname[$i]}' ");
                    $row = $DB->samsdb_fetch_array();
                    $sid = $row['s_shablon_id'];
                    $DB->free_samsdb_query();
                    $DB->samsdb_query("INSERT INTO sconfig_time ( s_shablon_id, s_trange_id ) VALUES ( '{$sid}', '{$trange}' ) ");
                    echo "create template {$addgroupname[$i]} ";
                    $result = $DB->samsdb_query("INSERT INTO auth_param (s_auth, s_param, s_value) VALUES('adld', 'adldgroup', '{$addgroupname[$i]}') ");
                }
            }
            if ($addgroups == "on") {
                echo " add group: {$addgroupname[$i]}<BR>";
                $result = $DB->samsdb_query_value("SELECT s_name FROM sgroup where s_name = '{$addgroupname[$i]}'");
                if ($result == 0) {
                    $result = $DB->samsdb_query("INSERT INTO sgroup (s_name) VALUES('{$addgroupname[$i]}') ");
                    echo "create group {$addgroupname[$i]} ";
                }
                $result = $DB->samsdb_query_value("SELECT s_name, s_group_id FROM sgroup where s_name = '{$addgroupname[$i]}'");
                $row = $DB->samsdb_fetch_array();
                $groupid = $row['s_group_id'];
                $result = $DB->samsdb_query_value("SELECT s_name, s_shablon_id FROM shablon where s_name = '{$addgroupname[$i]}'");
                $row = $DB->samsdb_fetch_array();
                $shablonid = $row['s_shablon_id'];
                $a = $ldap->all_users($include_desc = false, $search = "*", $sorted = true);
                $acount = count($a);
                foreach ($a as $user) {
                    $samaccountname = UTF8ToSAMSLang($user["samaccountname"]);
                    $displayname = UTF8ToSAMSLang($user["displayname"]);
                    $givenname = UTF8ToSAMSLang($user["givenname"]);
                    $sn = UTF8ToSAMSLang($user["sn"]);
                    $memberof = UTF8ToSAMSLang($user["memberof"]);
                    $adldgroups = explode("|", $memberof);
                    $cadldgroups = count($adldgroups);
                    $memberofgroup = "Users";
                    for ($j = 0; $j < $cadldgroups; $j++) {
                        $adldgroupname = explode("=", $adldgroups[$j]);
                        if (strlen($adldgroupname[1]) > 3) {
                            $memberofgroup = $memberofgroup . "|" . substr($adldgroupname[1], 0, strlen($adldgroupname[1]) - 3);
                        }
                    }
                    if (strstr($memberofgroup, "|" . $addgroupname[$i])) {
                        echo " add user: {$samaccountname} ( {$givenname} {$sn} )<BR>";
                        if ($enabled == "") {
                            $enabled = 1;
                        }
                        $QUERY = "INSERT INTO squiduser ( s_nick, s_domain, s_name, s_family, s_shablon_id, s_quote,  s_size, s_enabled, s_group_id, s_soname, s_ip, s_passwd, s_hit, s_autherrorc, s_autherrort ) VALUES ( '{$samaccountname}', '{$basedn}', '{$givenname}', '{$sn}', '{$shablonid}', '{$defaulttraf}',  '0', '{$enabled}', '{$groupid}', '{$usersoname}', '{$userip}', '{$pass}', '0', '0', '0') ";
                        $DB->samsdb_query($QUERY);
                    }
                }
            }
            print " <BR>";
            $i++;
        }
    }
    /**/
    print "<SCRIPT>\n";
    print "  parent.lframe.location.href=\"lframe.php\"; \n";
    print "  parent.tray.location.href=\"tray.php?show=usergrouptray&groupname={$groupname}&groupnick={$groupnick}\";\n";
    print "</SCRIPT> \n";
}
Example #5
0
 *===================================================*/
// the attributes we pull from Active Directory
$ldapAttributes = array("givenname", "sn", "displayname", "physicaldeliveryofficename", "homephone", "telephonenumber", "mobile", "pager", "facsimiletelephonenumber", "mail", "title", "department", "streetaddress", "postofficebox", "l", "st", "postalcode");
// mapping of Active Directory attributes to OpenEMR Users table columns
$attributeMapping = array("givenname" => "fname", "sn" => "lname", "telephonenumber" => "phonew1", "mobile" => "phonecell", "facsimiletelephonenumber" => "fax", "mail" => "email", "title" => "specialty", "streetaddress" => "street", "postofficebox" => "streetb", "l" => "city", "st" => "state", "postalcode" => "zip");
// create new instance and connect to AD with user & pass
// defined in adLDAP_conf.inc
$adldap = new adLDAP($adldap_options);
// gather all our known usernames from OpenEMR
// they will be used to compare what is found in Active Directory
$oemrUsers = array();
$sqlH = sqlStatement("select id, username from users");
while ($onerow = sqlFetchArray($sqlH)) {
    array_push($oemrUsers, $onerow);
}
$adUsers = $adldap->all_users();
foreach ($adUsers as $adUser) {
    // loop over all the Active Directory users
    // skip the excluded usernames
    $skip = 0;
    foreach ($excludedUsers as $ex) {
        if ($ex == $adUser) {
            $skip = 1;
            break;
        }
    }
    if ($skip == 1) {
        continue;
    }
    // query LDAP for the full user info
    $userInfo = $adldap->user_info($adUser, $ldapAttributes);
function AddUsersFromADLDForm()
{
    global $SAMSConf;
    global $USERConf;
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    if (isset($_GET["ldapgroup"])) {
        $ldapgroup = $_GET["ldapgroup"];
    }
    if (isset($_GET["getgroup"])) {
        $getgroup = $_GET["getgroup"];
    }
    if ($USERConf->ToWebInterfaceAccess("UC") != 1) {
        exit(0);
    }
    PageTop("user.jpg", " {$usersbuttom_1_domain_AddUsersFromDomainForm_1} Active Directory ");
    require_once "src/adldap.php";
    print "<FORM NAME=\"AddDomainUsers\" ACTION=\"main.php\">\n";
    $DB = new SAMSDB();
    $adldserver = GetAuthParameter("adld", "adldserver");
    $basedn = GetAuthParameter("adld", "basedn");
    $adadmin = GetAuthParameter("adld", "adadmin");
    $adadminpasswd = GetAuthParameter("adld", "adadminpasswd");
    $usergroup = GetAuthParameter("adld", "usergroup");
    $LDAPBASEDN2 = strtok($basedn, ".");
    $LDAPBASEDN = "DC={$LDAPBASEDN2}";
    while (strlen($LDAPBASEDN2) > 0) {
        $LDAPBASEDN2 = strtok(".");
        if (strlen($LDAPBASEDN2) > 0) {
            $LDAPBASEDN = "{$LDAPBASEDN},DC={$LDAPBASEDN2}";
        }
    }
    $pdc = array("{$adldserver}");
    $options = array(account_suffix => "@{$basedn}", base_dn => "{$LDAPBASEDN}", domain_controllers => $pdc, ad_username => "{$adadmin}", ad_password => "{$adadminpasswd}", "", "", "");
    $ldap = new adLDAP($options);
    $usersgroupname = "Users";
    $a = $ldap->all_users($include_desc = false, $search = "*", $sorted = true);
    $acount = count($a);
    if (strlen($ldapgroup) > 0 && $ldapgroup != "_allgroups_" && $ldapgroup != "_gettxtinput_") {
        $usersgroupname = $ldapgroup;
    } else {
        if (strlen($ldapgroup) > 0 && $ldapgroup == "_gettxtinput_") {
            $usersgroupname = $getgroup;
        }
    }
    $groupinfo = $ldap->all_groups($include_desc = false, $search = "*", $sorted = true);
    $gcount = count($groupinfo);
    print "<FORM NAME=\"AddDomainUsers\" ACTION=\"main.php\">\n";
    /* */
    print "<SCRIPT language=JAVASCRIPT>\n";
    print "function SelectADGroup(formname)\n";
    print "{\n";
    print "  var group=formname.addgroupname.value; \n";
    print "  var getgroup=formname.getgroup.value; \n";
    print "  var str=\"main.php?show=exe&ldapgroup=\"+group+\"&getgroup=\"+getgroup+\"&function=addusersfromadldform&filename=authadldbuttom_2_usersadd.php\"; \n";
    print "  parent.basefrm.location.href=str;\n";
    print "}\n";
    print "function EnableTxtInput(formname)\n";
    print "{\n";
    print "  value=document.forms[\"AddDomainUsers\"].elements[\"addgroupname\"].value;\n";
    print "  if(value==\"_gettxtinput_\") \n";
    print "     {\n";
    print "       document.forms[\"AddDomainUsers\"].elements[\"getgroup\"].disabled=false\n";
    print "     }\n";
    print "  else \n";
    print "     {\n";
    print "       document.forms[\"AddDomainUsers\"].elements[\"getgroup\"].disabled=true\n";
    print "     }\n";
    print "}\n";
    print "</SCRIPT> \n";
    print "<TABLE WIDTH=90%>\n";
    print "<TR><TD WIDTH=40%>{$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_1}</TD>\n";
    print "<TD WIDTH=60%><SELECT NAME=\"addgroupname\" onChange=EnableTxtInput(AddDomainUsers)>\n";
    print "<OPTION VALUE=\"_allgroups_\" SELECT  onselect=EnableTxtInput(AddDomainUsers)> {$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_5}";
    print "<OPTION VALUE=\"_gettxtinput_\" onselect=EnableTxtInput(AddDomainUsers)> {$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_6}";
    foreach ($groupinfo as $group) {
        $groupname = UTF8ToSAMSLang($group);
        print "<OPTION VALUE=\"{$groupname}\"  onselect=EnableTxtInput(AddDomainUsers)> {$groupname}";
    }
    /*
        for($i=0;$i<$gcount;$i++)
          {
    	$groupname = UTF8ToSAMSLang($groupinfo[$i]);
            print("<OPTION VALUE=\"$groupname\"  onselect=EnableTxtInput(AddDomainUsers)> $groupname");
          }
    */
    print "</SELECT>\n";
    print "<TR><TD WIDTH=40%>{$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_7}\n";
    print "<TD WIDTH=60%><INPUT TYPE=\"TEST\" NAME=\"getgroup\" SIZE=\"20\" DISABLED>\n";
    print "</TABLE>\n";
    print "<INPUT TYPE=\"BUTTON\" value=\"{$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_2}\" onclick=SelectADGroup(AddDomainUsers)>\n";
    print "<P>\n";
    /* */
    if (strlen($ldapgroup) > 0 && $ldapgroup != "_allgroups_" && $ldapgroup != "_gettxtinput_") {
        printf("<B>{$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_4}: <FONT COLOR=BLUE>{$ldapgroup}</FONT></B><BR>");
    } else {
        if (strlen($ldapgroup) > 0 && $ldapgroup == "_gettxtinput_") {
            printf("<B>{$usersbuttom_1_adldap_AddUsersFromAdLDAPForm_4}: <FONT COLOR=BLUE>{$getgroup}</FONT></B><BR>");
        } else {
            print "<BR><B>{$usersbuttom_1_domain_AddUsersFromDomainForm_2}</B><BR>";
        }
    }
    print "<SELECT NAME=\"username[]\" MULTIPLE>\n";
    asort($a);
    foreach ($a as $user) {
        $samaccountname = UTF8ToSAMSLang($user["samaccountname"]);
        $num_rows = $DB->samsdb_query_value("SELECT * FROM squiduser WHERE s_nick='{$samaccountname}'");
        if ($num_rows == 0) {
            $displayname = UTF8ToSAMSLang($user["displayname"]);
            $memberof = UTF8ToSAMSLang($user["memberof"]);
            $adldgroups = explode("|", $memberof);
            $cadldgroups = count($adldgroups);
            $memberofgroup = "Users";
            for ($j = 0; $j < $cadldgroups; $j++) {
                $adldgroupname = explode("=", $adldgroups[$j]);
                if (strlen($adldgroupname[1]) > 3) {
                    $memberofgroup = $memberofgroup . "|" . substr($adldgroupname[1], 0, strlen($adldgroupname[1]) - 3);
                }
            }
            if (strstr($memberofgroup, $usersgroupname)) {
                print "<OPTION VALUE=\"{$samaccountname}\"> {$samaccountname} ({$displayname})\n";
            }
        }
        $DB->free_samsdb_query();
    }
    print "</SELECT>\n";
    print "<P>";
    print "<P>";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"domain\" id=Show value=\"{$domain}\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"show\" id=Show value=\"exe\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"function\" id=function value=\"addusersfromadldap\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"filename\" id=filename value=\"authadldbuttom_2_usersadd.php\">\n";
    print "<SCRIPT LANGUAGE=JAVASCRIPT> \n";
    print "function EnterNewGroupName(formname) \n";
    print "{ \n";
    print "  var groupname=formname.groupname.value; \n";
    print "  if(groupname==\"-1\") \n";
    print "    {\n";
    print "      formname.newgroupname.disabled=false;  \n";
    print "    }\n";
    print "  else \n";
    print "    {\n";
    print "      formname.newgroupname.disabled=true;  \n";
    print "    }\n";
    print "}\n";
    print "</SCRIPT> \n";
    print "<TABLE>\n";
    print "<TR><TD><P>\n";
    print "<TR><TD>\n";
    print "<B>{$usersbuttom_1_domain_AddUsersFromDomainForm_7}\n";
    print "<TD>\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"domainname\" id=Show VALUE=\"{$basedn}\">\n";
    print "<TR><TD>\n";
    print "<B>{$usersbuttom_1_domain_AddUsersFromDomainForm_3} \n";
    print "<TD>\n";
    print "<SELECT NAME=\"groupname\" ID=\"groupname\" SIZE=1 TABINDEX=30   onchange=EnterNewGroupName(AddDomainUsers)>\n";
    $num_rows = $DB->samsdb_query_value("SELECT * FROM sgroup");
    while ($row2 = $DB->samsdb_fetch_array()) {
        print "<OPTION VALUE=\"{$row2['s_group_id']}\"> {$row2['s_name']} ";
    }
    print "<OPTION VALUE=\"-1\"> {$usersbuttom_1_domain_AddUsersFromDomainForm_8} ";
    print "</SELECT>\n";
    print "<TR><TD ALIGN=RIGHT>\n";
    print "{$usersbuttom_1_domain_AddUsersFromDomainForm_9}: \n";
    print "<TD>\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"newgroupname\" id=Newgroupname\" DISABLED>\n";
    $DB->free_samsdb_query();
    print "<TR>\n";
    print "<TD>\n";
    print "<B>{$usersbuttom_1_domain_AddUsersFromDomainForm_4} \n";
    print "<TD>\n";
    print "<SELECT NAME=\"usershablon\" ID=\"usershablon\" SIZE=1 TABINDEX=30 >\n";
    $num_rows = $DB->samsdb_query_value("SELECT s_shablon_id, s_name FROM shablon");
    while ($row = $DB->samsdb_fetch_array()) {
        print "<OPTION VALUE={$row['s_shablon_id']}> {$row['s_name']}";
    }
    $DB->free_samsdb_query();
    print "</SELECT>";
    print "<TR><TD><B>{$usersbuttom_1_domain_AddUsersFromDomainForm_6}";
    print "<TD><INPUT TYPE=\"CHECKBOX\" NAME=\"enabled\" CHECKED>";
    print "</TABLE>\n";
    print "<INPUT TYPE=\"SUBMIT\" value=\"{$usersbuttom_1_domain_AddUsersFromDomainForm_5}\">\n";
    print "</FORM>\n";
    exit(0);
}