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"; }
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 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>"; }
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"; }
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); }
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; }
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"; }