コード例 #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";
}
コード例 #2
0
ファイル: configbuttom_1_prop.php プロジェクト: ruNovel/sams2
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>";
    }
}
コード例 #3
0
ファイル: authntlmtray.php プロジェクト: ruNovel/sams2
function NTLMtest()
{
    global $SAMSConf;
    global $USERConf;
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    if ($USERConf->ToWebInterfaceAccess("C") != 1) {
        exit;
    }
    print "<H1>Test NTLM connection</H1>";
    $ntlmserver = GetAuthParameter("ntlm", "ntlmserver");
    $ntlmdomain = GetAuthParameter("ntlm", "ntlmdomain");
    $ntlmadmin = GetAuthParameter("ntlm", "ntlmadmin");
    $ntlmpasswd = GetAuthParameter("ntlm", "ntlmadminpasswd");
    $users = ExecuteShellScript("getntlmgroups", "{$LANG}");
    $a = explode("|", $users);
    $acount = count($a);
    print "<TABLE CLASS=samstable>";
    print "<TH width=5%>No";
    print "<TH width=95%>NTLM groups";
    for ($i = 0; $i < $acount; $i++) {
        if (strlen($a[$i]) > 0) {
            echo "<TR><TD>{$i}<TD>{$a[$i]}<BR>\n";
        }
    }
    echo "</TABLE><P>";
    $users = ExecuteShellScript("getntlmusers", "{$LANG}");
    $a = explode("|", $users);
    $acount = count($a);
    print "<TABLE CLASS=samstable>";
    print "<TH width=5%>No";
    print "<TH width=95%>NTLM users";
    for ($i = 0; $i < $acount; $i++) {
        if (strlen($a[$i]) > 0) {
            echo "<TR><TD>{$i}<TD>{$a[$i]}<BR>\n";
        }
    }
    echo "</TABLE>";
}
コード例 #4
0
function ImportFromNTLMForm()
{
    global $SAMSConf;
    global $USERConf;
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    if ($USERConf->ToWebInterfaceAccess("UC") != 1) {
        exit(0);
    }
    $DB = new SAMSDB();
    PageTop("importfromad-48.jpg", " {$authadldbuttom_3_importfromntlm_ImportFromNTLMForm_1} ");
    $ntlmserver = GetAuthParameter("ntlm", "ntlmserver");
    $ntlmadmin = GetAuthParameter("ntlm", "ntlmadmin");
    $ntlmadminpasswd = GetAuthParameter("ntlm", "ntlmadminpasswd");
    $ntlmusergroup = GetAuthParameter("ntlm", "ntlmusergroup");
    print "<FORM NAME=\"AddFromNTLM\" ACTION=\"main.php\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"show\" id=Show value=\"exe\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"function\" id=function value=\"importfromntlm\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"filename\" id=filename value=\"authntlmbuttom_3_importfromntlm.php\">\n";
    $users = ExecuteShellScript("getntlmgroups", "{$LANG}");
    $a = explode("|", $users);
    asort($a);
    $acount = count($a);
    $aflag = 0;
    echo "<TABLE WIDTH=90%>";
    print "<TR><TD WIDTH=30%><B>{$authadldbuttom_3_importfromntlm_ImportFromNTLMForm_2}:\n";
    print "<TD WIDTH=70%><SELECT NAME=\"addgroupname[]\" SIZE=15 TABINDEX=30 MULTIPLE>\n";
    foreach ($a as $group) {
        $QUERY = "SELECT * FROM auth_param WHERE s_auth='ntlm' AND s_param='ntlmgroup' AND s_value='{$group}'";
        $num_rows = $DB->samsdb_query_value($QUERY);
        if ($num_rows == 0 && strlen($group) > 0) {
            print "<OPTION VALUE=\"{$group}\"> {$group}\n";
        }
    }
    print "</SELECT>\n";
    print "<TR><TD><B>{$usersbuttom_1_domain_AddUsersFromDomainForm_6}";
    print "<TD><INPUT TYPE=\"CHECKBOX\" NAME=\"enabled\" CHECKED>";
    print "<TR>\n";
    print "<TD>\n";
    print "{$shablonnew_NewShablonForm_3}:\n";
    print "<TD>\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"defaulttraf\" SIZE=6 VALUE=\"100\"> <B> 0 - unlimited traffic\n";
    print "<TR>\n";
    print "<TD>\n";
    print "{$shablonnew_NewShablonForm_10}\n";
    print "<TD>\n";
    print "<SELECT NAME=\"period\" onchange=EnterPeriod(AddDomainUsers)  {$CCLEAN}> \n";
    print "<OPTION value=\"M\" SELECTED>{$shablonnew_NewShablonForm_11}\n";
    print "<OPTION value=\"W\">{$shablonnew_NewShablonForm_12}\n";
    print "<OPTION value=\"A\">{$shablonnew_NewShablonForm_13}\n";
    print "</SELECT>\n";
    print "<SCRIPT LANGUAGE=JAVASCRIPT> \n";
    print "function EnterPeriod(formname) \n";
    print "{ \n";
    print "  var period=formname.period.value; \n";
    print "  var clryear=formname.clryear.value; \n";
    print "  var clrmonth=formname.clrmonth.value; \n";
    print "  var clrday=formname.clrday.value; \n";
    print "  if(period==\"A\") \n";
    print "    {\n";
    print "      formname.newperiod.disabled=false;  \n";
    print "      formname.clryear.disabled=false;  \n";
    print "      formname.clrmonth.disabled=false;  \n";
    print "      formname.clrday.disabled=false;  \n";
    print "    }\n";
    print "  else \n";
    print "    {\n";
    print "      formname.newperiod.disabled=true;  \n";
    print "      formname.clryear.disabled=true;  \n";
    print "      formname.clrmonth.disabled=true;  \n";
    print "      formname.clrday.disabled=true;  \n";
    print "    }\n";
    print "}\n";
    print "</SCRIPT> \n";
    $month = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
    $days = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    $YCLRVALUE = strftime("%Y");
    $MCLRVALUE = strftime("%m");
    $DCLRVALUE = strftime("%d");
    if ($DCLRVALUE + 1 > $days[$MCLRVALUE]) {
        $DCLRVALUE = 1;
        $MCLRVALUE += 1;
        if ($MCLRVALUE > 12) {
            $MCLRVALUE = 1;
            $YCLRVALUE += 1;
        }
    } else {
        $DCLRVALUE += 1;
    }
    print "<TR><TD>\n";
    print "<TD> {$shablonnew_NewShablonForm_14}: \n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"newperiod\" SIZE=5 DISABLED>{$shablonnew_NewShablonForm_15}\n";
    print "<TR><TD><TD> {$shablonnew_NewShablonForm_16}: \n";
    print "<BR><INPUT TYPE=\"TEXT\" NAME=\"clryear\" SIZE=4 DISABLED VALUE=\"{$YCLRVALUE}\">:\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"clrmonth\" SIZE=2 DISABLED VALUE=\"{$MCLRVALUE}\">:\n";
    print "<INPUT TYPE=\"TEXT\" NAME=\"clrday\" SIZE=2 DISABLED VALUE=\"{$DCLRVALUE}\">\n";
    print "<TR><TD>{$AddTRangeForm_trangetray_1}:<TD><SELECT NAME=\"trange\" ID=\"trange\" >\n";
    $num_rows = $DB->samsdb_query_value("SELECT * FROM timerange ");
    while ($row = $DB->samsdb_fetch_array()) {
        print "<OPTION VALUE={$row['s_trange_id']}> {$row['s_name']} ({$row['s_timestart']} - {$row['s_timeend']} )";
    }
    print "</SELECT>\n";
    echo "</TABLE>";
    print "<INPUT TYPE=\"SUBMIT\" value=\"Import\">\n";
    print "</FORM>\n";
}
コード例 #5
0
function AddUsersFromNTLMForm()
{
    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);
    }
    $DB = new SAMSDB();
    PageTop("user.jpg", " {$usersbuttom_1_domain_AddUsersFromDomainForm_1} NTLM ");
    $ntlmserver = GetAuthParameter("ntlm", "ntlmserver");
    $ntlmdomain = GetAuthParameter("ntlm", "ntlmdomain");
    $ntlmadmin = GetAuthParameter("ntlm", "ntlmadmin");
    $ntlmpasswd = GetAuthParameter("ntlm", "ntlmadminpasswd");
    print "<FORM NAME=\"AddDomainUsers\" ACTION=\"main.php\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"domain\" id=Show value=\"{$ntlmdomain}\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"show\" id=Show value=\"exe\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"function\" id=function value=\"addusersfromntlm\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"filename\" id=filename value=\"authntlmbuttom_2_usersadd.php\">\n";
    print "<TABLE>\n";
    print "<TR><TD><B>{$usersbuttom_1_domain_AddUsersFromDomainForm_2}</B><TD>\n";
    print "<SELECT NAME=\"username[]\" MULTIPLE>\n";
    $users = ExecuteShellScript("getntlmusers", "{$LANG}");
    $a = explode("|", $users);
    asort($a);
    $acount = count($a);
    foreach ($a as $user) {
        $num_rows = $DB->samsdb_query_value("SELECT * FROM squiduser WHERE s_nick='{$user}'");
        if ($num_rows == 0 && strlen($user) > 0) {
            print "<OPTION VALUE=\"{$user}\"> <B>{$user}</B>";
        }
        $DB->free_samsdb_query();
    }
    print "</SELECT>\n";
    print "<P>";
    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=\"{$ntlmdomain}\">\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 >\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']} ";
    }
    $DB->free_samsdb_query();
    print "</SELECT>\n";
    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);
}
コード例 #6
0
ファイル: tools.php プロジェクト: ruNovel/sams2
function NotUsersTreeUserAuth()
{
    global $SAMSConf;
    $DB = new SAMSDB();
    if (isset($_POST["userid"])) {
        $password = $_POST["userid"];
    }
    if (isset($_POST["user"])) {
        $userdomain = $_POST["user"];
    }
    $grauditor = 0;
    $SAMSConf->domainusername = "";
    $SAMSConf->USERPASSWD = 0;
    $num_rows = $DB->samsdb_query_value("SELECT squiduser.*,shablon.s_auth as s_auth FROM squiduser LEFT JOIN shablon ON squiduser.s_shablon_id=shablon.s_shablon_id WHERE s_nick='{$userdomain}'; ");
    $row = $DB->samsdb_fetch_array();
    if ($num_rows > 0) {
        $SAMSConf->USERID = $row['s_user_id'];
        $SAMSConf->USERWEBACCESS = $row['s_webaccess'];
        $SAMSConf->AUTHERRORRC = $row['s_autherrorc'];
        $SAMSConf->AUTHERRORRT = $row['s_autherrort'];
    }
    if ($row['s_auth'] == "ip") {
        $passwd = crypt($password, substr($password, 0, 2));
        if ($row['s_passwd'] == $passwd) {
            $SAMSConf->domainusername = $row['s_nick'];
            $SAMSConf->USERPASSWD = 1;
        }
    }
    if ($row['s_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);
        //		if ($ldap->authenticate($userdomain,$password))
        if ($ldap->authenticate($row['s_nick'], $password)) {
            $aflag = 1;
            $SAMSConf->domainusername = $row['s_nick'];
            $SAMSConf->USERPASSWD = 1;
        }
    }
    if ($row['s_auth'] == "ntlm") {
        $e = escapeshellcmd("{$row['s_nick']} {$password}");
        $aaa = ExecuteShellScript("testwbinfopasswd", $e);
        $aflag = 0;
        if (stristr($aaa, "authentication succeeded") != false || stristr($aaa, "NT_STATUS_OK") != false) {
            $aflag = 1;
            $SAMSConf->domainusername = $row['s_nick'];
            $SAMSConf->USERPASSWD = 1;
        }
    }
    $grauditor = 0;
    if ($row['s_gauditor'] > 0 && strlen($SAMSConf->domainusername) > 0) {
        $grauditor = $row['s_group'];
        print "<SCRIPT>\n";
        print " parent.lframe.location.href=\"lframe.php\"; \n";
        print "</SCRIPT> \n";
    }
    return $grauditor;
}
コード例 #7
0
ファイル: configtray.php プロジェクト: ruNovel/sams2
function SysInfo()
{
    global $SAMSConf;
    $DB = new SAMSDB();
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    PageTop("stat_48.jpg", "{$configtray_0_Head}");
    $hostname = GetSamsHostName();
    $ipaddr = GetIPAddr();
    $uptime = ExecuteShellScript("uptime", "");
    print "<TABLE WIDTH=90%>";
    print "<TR>";
    print "<TD WIDTH=\"25%\"><B>{$configtray_0_Hostname}</B>";
    print "<TD WIDTH=\"75%\">{$hostname}";
    print "<TR>";
    print "<TD WIDTH=\"25%\"><B>{$configtray_0_IP}</B>";
    print "<TD WIDTH=\"75%\">{$ipaddr}";
    print "<TR>";
    print "<TD WIDTH=\"25%\"><B>{$configtray_0_Uptime}</B>";
    print "<TD WIDTH=\"75%\">{$uptime}";
    print "</TABLE>";
    MemoryUsage();
    FileSystemUsage();
    $syea = strftime("%Y");
    $smon = strftime("%m");
    $eday = strftime("%d");
    $sdate = "{$syea}-{$smon}-1";
    $edate = "{$syea}-{$smon}-{$eday}";
    $stime = "0:00:00";
    $etime = "0:00:00";
    print "<P><TABLE CLASS=samstable>\n";
    print "<TH>\n";
    print "<TH width=\"33%\" >{$configtray_3_SumTraffic}\n";
    print "<TH width=\"33%\" >{$configtray_3_FromCache}\n";
    print "<TH width=\"33%\" >{$configtray_3_Traffic}\n";
    $num_rows = $DB->samsdb_query_value("SELECT sum(s_size),sum(s_hit) FROM cachesum WHERE s_date>='{$sdate}' AND s_date<='{$edate}' ");
    $row = $DB->samsdb_fetch_array();
    print "<TR>\n";
    print "<TD >{$configtray_3_M}\n";
    $aaa = FormattedString("{$row['0']}");
    RTableCell($aaa, 33);
    $aaa = FormattedString("{$row['1']}");
    RTableCell($aaa, 33);
    $aaa = $row[0] - $row[1];
    $aaa = FormattedString($row[0] - $row[1]);
    RTableCell($aaa, 33);
    $num_rows = $DB->samsdb_query_value("SELECT sum(s_size),sum(s_hit) FROM cachesum WHERE s_date='{$edate}' ");
    $row = $DB->samsdb_fetch_array();
    print "<TR>\n";
    print "<TD >{$configtray_3_D}\n";
    $aaa = FormattedString("{$row['0']}");
    RTableCell($aaa, 33);
    $aaa = FormattedString("{$row['1']}");
    RTableCell($aaa, 33);
    $aaa = $row[0] - $row[1];
    $aaa = FormattedString($row[0] - $row[1]);
    RTableCell($aaa, 33);
    print "</TABLE>\n";
}