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.
 
 
 
 
 
 

378 lines
13 KiB

<%@ Language=VBScript %>
<% Option Explicit %>
<%
'-------------------------------------------------------------------------
' user_delete.asp : Deletes the specified user
'
' Copyright (c) Microsoft Corporation. All rights reserved.
'
' Date Description
' 15-jan-01 Creation date
'-------------------------------------------------------------------------
%>
<!-- #include virtual="/admin/inc_framework.asp" -->
<%
'-------------------------------------------------------------------------
' Global Variables
'-------------------------------------------------------------------------
Dim rc 'framework variables
Dim page 'framework variables
Dim G_strUserName 'To save logged-in client user
'-------------------------------------------------------------------------
' Global Form Variables
'-------------------------------------------------------------------------
'Dim F_strUsername 'To save the user name got from the prevoius selected form
'-------------------------------------------------------------------------
'Start of localization content
'-------------------------------------------------------------------------
Dim L_PAGETITLE
'Dim L_DELETETHEUSERMESSAGE
Dim L_NOTE
Dim L_NOTEBODY
Dim L_COULDNOTDELETEUSER_ERRORMESSAGE
Dim L_COULDNOTDELETEBUILTINACCOUNTS_ERRORMESSAGE
Dim L_USERNOTFOUND_ERRORMESSAGE
Dim L_CANNOTDELETETHEUSERMESSAGE
Dim L_UNABLETOGETSERVERVARIABLES
Dim L_COMPUTERNAME_ERRORMESSAGE
Const N_COULDNOTDELETEBUILTINACCOUNTS_ERRNO =&H8007055B
L_PAGETITLE = objLocMgr.GetString("usermsg.dll","&H4030003B", varReplacementStrings)
'L_DELETETHEUSERMESSAGE = objLocMgr.GetString("usermsg.dll","&H4030003C", varReplacementStrings)
L_NOTE = objLocMgr.GetString("usermsg.dll","&H4030003D", varReplacementStrings)
L_NOTEBODY = objLocMgr.GetString("usermsg.dll","&H4030003E", varReplacementStrings)
L_COULDNOTDELETEUSER_ERRORMESSAGE = objLocMgr.GetString("usermsg.dll","&HC030003F", varReplacementStrings)
L_COULDNOTDELETEBUILTINACCOUNTS_ERRORMESSAGE = objLocMgr.GetString("usermsg.dll","&HC0300040", varReplacementStrings)
L_USERNOTFOUND_ERRORMESSAGE = objLocMgr.GetString("usermsg.dll","&HC0300041", varReplacementStrings)
L_CANNOTDELETETHEUSERMESSAGE = objLocMgr.GetString("usermsg.dll","&HC0300042", varReplacementStrings)
L_UNABLETOGETSERVERVARIABLES = objLocMgr.GetString("usermsg.dll","&H40300043", varReplacementStrings)
L_COMPUTERNAME_ERRORMESSAGE = objLocMgr.GetString("usermsg.dll","&HC0300044", varReplacementStrings)
'-----------------------------------------------------------------------------------
'END of localization content
'-----------------------------------------------------------------------------------
' Create a Property Page
rc = SA_CreatePage( L_PAGETITLE, "", PT_PROPERTY, page )
' Serve the page
rc = SA_ShowPage( page )
'-------------------------------------------------------------------------
'Function: OnInitPage()
'Description: Called to signal first time processing for this page.
' Use this method to do first time initialization tasks
'Input Variables: PageIn,EventArg
'Output Variables: PageIn,EventArg
'Returns: True/False
'Global Variables: IN:G_strUserName
'-------------------------------------------------------------------------
Public Function OnInitPage(ByRef PageIn, ByRef EventArg)
SA_TraceOut "TEMPLATE_PROPERTY", "OnInitPage"
'Fucntion call to Get the logged in username
G_strUserName=GetUsername()
OnInitPage = TRUE
End Function
'-------------------------------------------------------------------------
'Function: OnServePropertyPage()
'Description: Called when the page needs to be served.Use this
' method to serve content
'Input Variables: PageIn,EventArg
'Output Variables: PageIn,EventArg
'Returns: True/False
'Global Variables: L_(*)
' G_strUserName
' F_strUsername
'-------------------------------------------------------------------------
Public Function OnServePropertyPage(ByRef PageIn, ByRef EventArg)
SA_TraceOut "TEMPLATE_PROPERTY", "OnServePropertyPage"
' Emit Functions required by Web Framework
Call ServeCommonJavaScript()
Response.Write "<TABLE VALIGN=middle ALIGN=left BORDER=0 CELLSPACING=0 CELLPADDING=2 class='TasksBody'>"
Dim itemCount
Dim itemKey
Dim bHave
Dim x
Dim sessionItem
Dim arrStrings(1)
Dim strParam
Dim strDeleteMsg
bHave = false
itemCount = OTS_GetTableSelectionCount("")
For x = 1 to itemCount
If ( OTS_GetTableSelection("", x, itemKey) ) Then
Response.Write "<TR>"
If VerifyUserAccount(itemKey) Then
bHave = true
arrStrings(0) = itemKey
strParam = arrStrings
strDeleteMsg = SA_GetLocString("usermsg.dll","&H4030003C", strParam)
Response.Write "<TD>" & strDeleteMsg & "</TD>"
Else
Response.Write "<TD>" & L_CANNOTDELETETHEUSERMESSAGE & "</TD>"
End If
Response.Write "</TR>"
End If
sessionItem = "Item" + CStr(x)
Session(sessionItem) = itemKey
Next
If bHave=true Then
%>
<TR>
<TD colspan=2>
&nbsp
</TD>
</TD>
<TR>
<TD>
<B><%=L_NOTE%></B>
</TD>
</TR>
<TR>
<TD width="590" height="20">
<%=L_NOTEBODY%>
</TD>
</TR>
<%End If%>
</TABLE>
<input type=hidden name="hdnLoggedInUserName" value="<%=Server.HTMLEncode(G_strUserName)%>">
<%
OnServePropertyPage = TRUE
End Function
'-------------------------------------------------------------------------
'Function: OnPostBackPage()
'Description: Called to signal that the page has been posted-back.
'Input Variables: PageIn,EventArg
'Output Variables: PageIn,EventArg
'Returns: True/False
'Global Variables: None
'-------------------------------------------------------------------------
Public Function OnPostBackPage(ByRef PageIn, ByRef EventArg)
OnPostBackPage = TRUE
End Function
'-------------------------------------------------------------------------
'Function: OnSubmitPage()
'Description: Called when the page has been submitted for processing.
' Use this method to process the submit request.
'Input Variables: PageIn,EventArg
'Output Variables: PageIn,EventArg
'Returns: True/False
'Global Variables: None
'-------------------------------------------------------------------------
Public Function OnSubmitPage(ByRef PageIn, ByRef EventArg)
SA_TraceOut "TEMPLATE_PROPERTY", "OnSubmitPage"
OnSubmitPage= DeleteUser()
End Function
'-------------------------------------------------------------------------
'Function: OnClosePagee()
'Description: Called when the page has been submitted for processing.
' Use this method to process the submit request.
'Input Variables: PageIn,EventArg
'Output Variables: PageIn,EventArg
'Returns: True/False
'Global Variables: None
'-------------------------------------------------------------------------
Public Function OnClosePage(ByRef PageIn, ByRef EventArg)
SA_TraceOut "TEMPLATE_PROPERTY", "OnClosePage"
OnClosePage = TRUE
End Function
'-------------------------------------------------------------------------
'Function name: DeleteUser()
'Description: Serves in Updating users list
'Input Variables: None
'Output Variables: True or false
'Returns: ( True / Flase )
' True: If suceeds in updating the list
' False:If fails in updating the list
'Global Variables: In:L_USERNOTFOUND_ERRORMESSAGE
' In:L_COULDNOTDELETEUSER_ERRORMESSAGE
' In:L_COULDNOTDELETEBUILTINACCOUNTS_ERRORMESSAGE
'
'This function updates Serves in Updating users lists by deleting selected user
'
'If an error occurs, in getting the users list calls ServeFailurePage with
'the error string L_USERNOTFOUND_ERRORMESSAGE
'
'If an error occurs, in deleting the built-in account calls SetErrMsg with
'the error string L_COULDNOTDELETEBUILTINACCOUNTS_ERRORMESSAGE
'
'If an error occurs, in deleting the user, calls SetErrMsg with
'the error string L_COULDNOTDELETEUSER_ERRORMESSAGE
'-------------------------------------------------------------------------
Function DeleteUser
Err.Clear
On Error Resume Next
Dim nretval
Dim strComputerName
Dim objUser
Dim objComputer
DeleteUser = FALSE
'Gets the ComputerName from the system
strComputerName = GetComputerName()
'Gets the UserNameObject from the system
Set objComputer = GetObject("WinNT://" & strComputerName & ",computer")
If Err.number <> 0 Then
ServeFailurePage L_COMPUTERNAME_ERRORMESSAGE,1
Exit Function
End If
Dim x
Dim itemCount
Dim itemKey
Dim sessionItem
itemCount = OTS_GetTableSelectionCount("")
For x = 1 to itemCount
If ( OTS_GetTableSelection("", x, itemKey) ) Then
'Checking for the existence of the user
Set objUser = objComputer.GetObject("User",itemKey)
If Err.number <> 0 Then
SetErrMsg L_USERNOTFOUND_ERRORMESSAGE
Exit Function
End If
'deletes the Username from the System
nretval = objComputer.Delete("User" , itemKey)
If Err.Number <> 0 Then
If Err.Number = N_COULDNOTDELETEBUILTINACCOUNTS_ERRNO Then
SetErrMsg L_COULDNOTDELETEBUILTINACCOUNTS_ERRORMESSAGE & "(" & itemKey & ")"
Else
SetErrMsg L_COULDNOTDELETEUSER_ERRORMESSAGE & "(" & itemKey & ")"
End IF
Exit Function
End If
End If
sessionItem = "Item" + CStr(x)
Session(sessionItem) = itemKey
Next
Set objUser= Nothing
Set objComputer =Nothing
DeleteUser = TRUE
End function
'-------------------------------------------------------------------------
'Function name: GetUsername()
'Description: Serves in getting the logged-in client user
'Input Variables: None
'Output Variables: None
'Returns: string -Either Logged in username or null
'Global Variables: In:L_UNABLETOGETSERVERVARIABLES
'If an error occurs, in getting ServerVariables calls SetErrMsg with
'the error string L_UNABLETOGETSERVERVARIABLES
'-------------------------------------------------------------------------
Function GetUsername()
Err.Clear
On Error Resume Next
Dim strDomainUserName
Dim strUserName
strDomainUserName = Request.ServerVariables("REMOTE_USER")
If Err.Number <> 0 Then
SetErrMsg L_UNABLETOGETSERVERVARIABLES
GetUsername = ""
End if
If InStr(strDomainUserName, "\") Then
strUserName = Split(strDomainUserName,"\")
GetUsername = strUserName(1)
Else
GetUsername = strDomainUserName
End If
End Function
'-------------------------------------------------------------------------
'Function name: VerifyUserAccount()
'Description: Serves in verifying the logged-in client user
'Input Variables: None
'Output Variables: True or false
'Returns: ( True / Flase )
' True: If selected user is logged-in client user
' False:If selected user is not logged-in client user
'Global Variables: In:F_strUsername - selected user for deletion
' In:G_strUserName - logged-in client user
'This function Serves in verifying the logged-in client user
'by comparing it with the selected user for deletion
'
'-------------------------------------------------------------------------
Function VerifyUserAccount(strUserName)
'verifying the logged-in client user
If strUserName=G_strUserName then
VerifyUserAccount=false
else
VerifyUserAccount=true
end if
End function
'-------------------------------------------------------------------------
'Function: ServeCommonJavaScript
'Description: Serves in initialiging the values,setting the form
' data and validating the form values
'Input Variables: None
'Output Variables: None
'Returns: None
'Global Variables: None
'-------------------------------------------------------------------------
Function ServeCommonJavaScript()
%>
<script language="JavaScript" src="<%=m_VirtualRoot%>inc_global.js">
</script>
<script language="JavaScript">
// Init Function
function Init()
{
SetPageChanged(false);
}
// ValidatePage Function
// Returns: True if the page is OK, false if error(s) exist.
function ValidatePage()
{
return true;
}
// SetData Function
// This function must be included or a javascript runtime error will occur.
function SetData()
{
}
</script>
<%
End Function
%>