Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

339 lines
10 KiB

<%@ Language=VBScript%>
<% Option Explicit %>
<%
'-------------------------------------------------------------------------
' nfsclientgroups.asp: nfsclientgroups page - lists all the nfs
' client groups,and provides links for creating new
' nfs client group,editing and deleting client group
' Copyright (c) Microsoft Corporation. All rights reserved.
'
' Date Description
' 20-Sept-2000 Creation date
'-------------------------------------------------------------------------
%>
<!-- #include virtual="/admin/inc_framework.asp"-->
<!-- #include virtual="/admin/ots_main.asp" -->
<!-- #include file="loc_NFSSvc.asp" -->
<!-- #include file="inc_NFSSvc.asp" -->
<%
Const ENABLE_TRACING = FALSE
'Define the global vars
Dim g_iSortCol
Dim g_sSortSequence
g_iSortCol = 1
g_sSortSequence = "A"
'-------------------------------------------------------------------------
' Create the page and Event handler
'-------------------------------------------------------------------------
Dim page
Dim rc
rc = SA_CreatePage(L_PAGE_TITLE_TEXT, "", PT_AREA, page)
If rc = 0 Then
SA_ShowPage( page )
End If
Public Function OnInitPage( ByRef PageIn, ByRef EventArg)
OnInitPage = True
End Function
Public Function OnServeAreaPage( ByRef PageIn, ByRef EventArg)
if not isServiceInstalled(getWMIConnection( _
CONST_WMI_WIN32_NAMESPACE _
),"nfssvc") then
SA_ServeFailurePage L_NFSNOTINSTALLED_ERRORMESSAGE
end if
Response.Write("<blockquote>")
ClientGroupsObjectPicker()
Response.Write("</blockquote>")
OnServeAreaPage = True
End Function
Function ServeCommonJavaScript()
%>
<script language = "JavaScript" src = "<%=m_VirtualRoot%>inc_global.js">
</script>
<script language = "JavaScript">
function Init()
{
var strClientGroupName
var nIndex
var objForm
//Selects a ClientGroup Name depending on the Task type.
strClientGroupName = '<%=request.QueryString("PKey")%>'
if(document.TVData!=null)
{
objForm = eval("document.TVData.TVItem_Table1")
if ( typeof( objForm ) == "undefined" )
{
return;
}
if(strClientGroupName == "")
{
return
}
objForm[0].checked = false
document.TVData.tSelectedItem.value = "";
document.TVData.tSelectedItemNumber.value = "";
for(nIndex =0 ; nIndex < objForm.length ; nIndex++)
{
if (unescape(objForm[nIndex].value) == strClientGroupName)
{
objForm[nIndex].checked = true
objForm[nIndex].focus()
document.TVData.tSelectedItem.value = strClientGroupName ;
document.TVData.tSelectedItemNumber.value = nIndex;
return
}
}
}
}
function ValidatePage()
{
return true;
}
function SetData()
{
}
</script>
<%
End Function
'---------------------------------------------------------------------
' Function: OnSortNotify()
' Function name: GetServices
' Description: Sorting notification event handler.
' Input Variables: PageIn,EventArg,sortCol,sortSeq
' Output Variables: PageIn,EventArg
' Return Values: Always returns TRUE
' Global Variables: G_*
'---------------------------------------------------------------------
Public Function OnSortNotify(ByRef PageIn, _
ByRef EventArg, _
ByVal sortCol, _
ByVal sortSeq )
OnSortNotify = TRUE
'
' User pressed column sort
'
If SA_IsChangeEvent(EventArg) Then
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "OnSortNotify() Change Event Fired")
End If
g_iSortCol = sortCol
g_sSortSequence = sortSeq
'
' User presed the search GO button OR clicked either the page next or page prev button
ElseIf SA_IsPostBackEvent(EventArg) Then
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "OnSortNotify() Postback Event Fired")
End If
g_iSortCol = sortCol
g_sSortSequence = sortSeq
'
' Unknown event source
Else
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "Unrecognized Event in OnSearchNotify()")
End If
End IF
If ( ENABLE_TRACING ) Then
Call SA_TraceOut(SOURCE_FILE, "Sort col: " + CStr(sortCol) + " sequence: " + sortSeq)
End If
End Function
'-------------------------------------------------------------------------
' Function name: ClientGroupsObjectPicker
' Description: Gets NFS Client Groups from local machine.
' Input Variables: None.
' Output Variables: None.
' Return Values: None.
' Global Variables: in: L_* -
' Gets NFS Client Groups from localmachine and outputs to the Client Groups
' Objectpicker control.
' On error of creating or displaying of rows,columns and table an
' appropriate error message is displayed by calling SA_ServeFailurePage.
'-------------------------------------------------------------------------
Function ClientGroupsObjectPicker()
Err.Clear
On Error Resume Next
Dim objTableClientGroups
Dim nReturnValue
Dim strUrlBase
Dim rc
Dim objClientGroups
Dim intGroup
Dim intGroupsCount
Dim strAllGroups
Dim arrGroups
strUrlBase = m_VirtualRoot
'Create Appliance Nfs ClientGroups table
objTableClientGroups = OTS_CreateTable(L_PAGE_TITLE_TEXT, _
L_CLIENTGROUPS_DESCTIPITON_TEXT)
'Create and add the columns
nReturnValue = OTS_AddTableColumn( objTableClientGroups, _
OTS_CreateColumn( _
L_KEYCOLUMN_CLIENTGROUPNAME_TEXT, _
"left", _
(OTS_COL_FLAG_HIDDEN OR _
OTS_COL_FLAG_KEY)))
If nReturnValue <> gc_ERR_SUCCESS Then
SA_ServeFailurePage L_FAILEDTOADDCOLOUMN_ERRORMESSAGE
End IF
nReturnValue = OTS_AddTableColumn(objTableClientGroups, _
OTS_CreateColumn(_
L_COLUMN_CLIENTGROUPNAME_TEXT , _
"left", _
OTS_COL_FLAG_KEY OR OTS_COL_FLAG_SORT))
If nReturnValue <> gc_ERR_SUCCESS Then
SA_ServeFailurePage L_FAILEDTOADDCOLOUMN_ERRORMESSAGE
End IF
If Err.number<>0 then
SA_ServeFailurePage L_FAILEDTOCREATEOBJECT_ERRORMESSAGE
End IF
strAllGroups = NFS_EnumGroups()
arrGroups = split( strAllGroups, chr(1) )
intGroupsCount = ubound(arrGroups)
For intGroup = 0 to Cint(intGroupsCount)-1
nReturnValue =OTS_AddTableRow(objTableClientGroups, _
Array(arrGroups( intGroup ),arrGroups( intGroup )))
If nReturnValue <> gc_ERR_SUCCESS Then
SA_ServeFailurePage L_FAILEDTOADDROW_ERRORMESSAGE
End IF
next
'Add Tasks
rc = OTS_SetTableTasksTitle(objTableClientGroups,L_TASKS_TEXT)
nReturnValue = OTS_AddTableTask( objTableClientGroups, _
OTS_CreateTask( _
L_SERVEAREABUTTON_NEW_TEXT, _
L_NEW_ROLLOVERTEXT_TEXT , _
strUrlBase + _
"nfs/nfsclientgroups_new.asp", _
OTS_PAGE_TYPE_SIMPLE_PROPERTY))
If nReturnValue <> gc_ERR_SUCCESS Then
SA_ServeFailurePage L_FAILEDTOADDTASK_ERRORMESSAGE
End IF
If intGroupsCount > 0 then
nReturnValue = OTS_AddTableTask( objTableClientGroups, _
OTS_CreateTask( _
L_SERVEAREABUTTON_DELETE_TEXT, _
L_DELETE_ROLLOVERTEXT_TEXT, _
strUrlBase + _
"nfs/nfsclientgroups_delete_prop.asp", _
OTS_PAGE_TYPE_SIMPLE_PROPERTY))
If nReturnValue <> gc_ERR_SUCCESS Then
SA_ServeFailurePage L_FAILEDTOADDTASK_ERRORMESSAGE
End IF
nReturnValue = OTS_AddTableTask( objTableClientGroups, _
OTS_CreateTask( _
L_SERVEAREABUTTON_EDIT_TEXT, _
L_EDIT_ROLLOVERTEXT_TEXT, _
strUrlBase + _
"nfs/nfsclientgroups_edit_prop.asp", _
OTS_PAGE_TYPE_SIMPLE_PROPERTY))
If nReturnValue <> gc_ERR_SUCCESS Then
SA_ServeFailurePage L_FAILEDTOADDTASK_ERRORMESSAGE
End IF
End IF
'Sort the table
nReturnValue = OTS_EnableTableSort(objTableClientGroups, true)
If nReturnValue <> gc_ERR_SUCCESS Then
SA_ServeFailurePage L_FAILEDTOSORT_ERRORMESSAGE
End IF
Call OTS_SortTable(objTableClientGroups, g_iSortCol, g_sSortSequence, SA_RESERVED)
'Render the table
nReturnValue = OTS_ServeTaskViewTable(objTableClientGroups)
If nReturnValue <> gc_ERR_SUCCESS OR Err.number <> 0 Then
SA_ServeFailurePage L_FAILEDTOSHOW_ERRORMESSAGE
End IF
'Destroying dynamically created objects.
Set objClientGroups=Nothing
End Function
'-------------------------------------------------------------------------
'Function name: isServiceInstalled
'Description:helper Function to chek whether the function is there or not
'Input Variables: objService - object to WMI
' strServiceName - Service name
'Output Variables: None
'Returns: (True/Flase)
'GlobalVariables: None
'-------------------------------------------------------------------------
Function isServiceInstalled(ObjWMI,strServiceName)
Err.clear
on error resume next
Dim strService
strService = "name=""" & strServiceName & """"
isServiceInstalled = IsValidWMIInstance(ObjWMI,"Win32_Service",strService)
end Function
'-------------------------------------------------------------------------
'Function name: IsValidWMIInstance
'Description: Checks the instance for valid ness.
'Input Variables: objService - object to WMI
' strClassName - WMI class name
' strPropertyName - Property name of the class
'
'Output Variables: None
'Returns: Returns true on Valid Instance ,
' False on invalid and also on Error
' Checks whether the given instance is valid in WMI.Returns true on valid
' false on invalid or Error.
'-------------------------------------------------------------------------
Function IsValidWMIInstance(objService,strClassName,strPropertyName)
Err.Clear
On Error Resume Next
Dim strInstancePath
Dim objInstance
strInstancePath = strClassName & "." & strPropertyName
Set objInstance = objservice.Get(strInstancePath)
if NOT isObject(objInstance) or Err.number <> 0 Then
IsValidWMIInstance = FALSE
Err.Clear
Else
IsValidWMIInstance = TRUE
End If
'clean objects
Set objInstance = nothing
End Function
%>