%@ Language=VBScript %>
<% Option Explicit %>
<%
'-------------------------------------------------------------------------
' POP3 Mail Add-in - Mailboxes - Delete
' Copyright (C) Microsoft Corporation. All rights reserved.
'-------------------------------------------------------------------------
%>
<%
'-------------------------------------------------------------------------
' Global Constants
'-------------------------------------------------------------------------
Dim SOURCE_FILE
SOURCE_FILE = SA_GetScriptFileName()
Const FLD_NAME = "fldName"
Const FLD_DELETEUSER = "fldDeleteUser"
'-------------------------------------------------------------------------
' Global Variables
'-------------------------------------------------------------------------
Dim g_page
Dim g_rgFailures
Dim g_nFailures
Dim g_strDomainName
g_strDomainName = GetDomainName()
'----------------------------------------------------------------------
' Global Localized Strings
'----------------------------------------------------------------------
Dim l_strPageTitle
If (Request.Form(FLD_NAME).Count > 0) Then
' Set the title to the error title, even though we don't know
' whether an error occurred. By the time we know an error occured,
' it will be too late to update the title, and if no error occurs,
' the user will be redirected back to the OTS.
l_strPageTitle = GetLocString(RES_DLL_NAME, _
POP3_PAGETITLE_MAILBOXES_DELETEERROR, _
"")
Else
l_strPageTitle = GetLocString(RES_DLL_NAME, _
POP3_PAGETITLE_MAILBOXES_DELETE, _
"")
End If
Dim l_strConfirmPrompt
l_strConfirmPrompt = GetLocString(RES_DLL_NAME, _
POP3_PROMPT_MAILBOXES_DELETE, _
"")
Dim l_strErrorPrompt
l_strErrorPrompt = GetLocString(RES_DLL_NAME, _
POP3_PROMPT_MAILBOXES_DELETEERROR, _
"")
Dim l_strRetryPrompt
l_strRetryPrompt = GetLocString(RES_DLL_NAME, _
POP3_PROMPT_MAILBOXES_DELETERETRY, _
"")
' POP3_CAPTION_MAILBOXES_DEL_DELETE, _
Dim l_strCaptionDeleteUser
l_strCaptionDeleteUser = GetLocString(RES_DLL_NAME, _
POP3_CAPTION_MAILBOXES_DELETEUSER, _
"")
'**********************************************************************
'* E N T R Y P O I N T
'**********************************************************************
Call SA_CreatePage(l_strPageTitle, "", PT_PROPERTY, g_page)
Call SA_ShowPage (g_page)
'**********************************************************************
'* H E L P E R S U B R O U T I N E S
'**********************************************************************
'---------------------------------------------------------------------
' OutputNameList
'---------------------------------------------------------------------
Sub OutputNameList(rgMailboxesTable, nRows)
'
' Sort the names.
'
Call SAQuickSort(rgMailboxesTable, 1, nRows, 1, 0)
'
' Output the names in a bulleted list.
'
Response.Write("
" & vbCrLf)
Dim strAddress
Dim iRow
For iRow = 1 to nRows
strAddress = rgMailboxesTable(iRow, 0) & "@" & g_strDomainName
%>
<%=Server.HTMLEncode(strAddress)%>
<%
Next
%>
<%
End Sub
'---------------------------------------------------------------------
' ServeCommonJavaScript
'---------------------------------------------------------------------
Function ServeCommonJavaScript()
%>
<%
End Function
'**********************************************************************
'* E V E N T H A N D L E R S
'**********************************************************************
'---------------------------------------------------------------------
' OnInitPage
'---------------------------------------------------------------------
Public Function OnInitPage(ByRef PageIn, ByRef EventArg)
OnInitPage = true
g_nFailures = 0
Session("bDeleteUser") = ""
End Function
'---------------------------------------------------------------------
' OnServePropertyPage
'---------------------------------------------------------------------
Public Function OnServePropertyPage(ByRef PageIn, ByRef EventArg)
On Error Resume Next
Session(SESSION_POP3DOMAINNAME) = g_strDomainName
'
' Emit Javascript functions required by Web Framework
Call ServeCommonJavaScript()
If (g_nFailures > 0) Then
'
' Output the error prompt and sorted list of failed templates.
'
Response.Write(l_strErrorPrompt & " " & vbCrLf)
Call OutputNameList(g_rgFailures, g_nFailures)
Response.Write(" " & l_strRetryPrompt & vbCrLf)
OnServePropertyPage = true
If (Err.number <> 0) Then
Call SA_SetErrMsg( HandleUnexpectedError() )
End If
Exit Function
End If
Dim nRows
nRows = OTS_GetTableSelectionCount("")
'
' Get the list of selected devices.
'
Dim rgMailboxesTable
ReDim rgMailboxesTable(nRows, 0)
Dim strUserName
Dim iRow
For iRow = 1 to nRows
If (OTS_GetTableSelection("", iRow, strUserName)) Then
rgMailboxesTable(iRow, 0) = strUserName
Else
Call SA_SetErrMsg( HandleUnexpectedError() )
Call SA_TraceErrorOut(SOURCE_FILE, _
"Failed to get OTS selection.")
End If
Next
'
' Output the confirmation prompt and sorted list of names.
'
Response.Write(l_strConfirmPrompt & " " & vbCrLf)
Call OutputNameList(rgMailboxesTable, nRows)
'
' If we are not using the MD5 Hash, then lets allow them to delete the user too.
Dim oConfig
Set oConfig = Server.CreateObject("P3Admin.P3Config")
If ( oConfig.Authentication.CurrentAuthMethod <> AUTH_FILE ) Then
%>
<%
End If
If (Err.number <> 0) Then
Call SA_SetErrMsg( HandleUnexpectedError() )
End If
OnServePropertyPage = true
End Function
'---------------------------------------------------------------------
' OnPostBackPage
'---------------------------------------------------------------------
Public Function OnPostBackPage(ByRef PageIn, ByRef EventArg)
OnPostBackPage = true
End Function
'---------------------------------------------------------------------
' OnSubmitPage
'---------------------------------------------------------------------
Public Function OnSubmitPage(ByRef PageIn, ByRef EventArg)
On Error Resume Next
OnSubmitPage = false
Dim oConfig
Set oConfig = Server.CreateObject("P3Admin.P3Config")
Dim nRows
nRows = Request.Form(FLD_NAME).Count
' Create an array to hold the names of any templates that could
' not be deleted.
ReDim g_rgFailures(nRows, 0)
g_nFailures = 0
' Keep state for the Delete associated user checkbox.
If ( Session("bDeleteUser") = "" ) Then
If ( StrComp(Request.Form(FLD_DELETEUSER), "on", vbTextCompare) = 0 ) Then
Session("bDeleteUser") = true
Else
Session("bDeleteUser") = false
End If
End If
'
' Iterate over the selected templates and delete them.
'
Dim strUserName
Dim iRow
For iRow = 1 to nRows
strUserName = Request.Form(FLD_NAME).Item(iRow)
' Here we actually do the delete.
If ( CBool(Session("bDeleteUser")) ) Then
oConfig.Domains.Item(g_strDomainName).Users.RemoveEx(strUserName)
Else
oConfig.Domains.Item(g_strDomainName).Users.Remove(strUserName)
End If
If (Err.number <> 0) Then
g_nFailures = g_nFailures + 1
g_rgFailures(g_nFailures, 0) = strUserName
If (Err.number <> 0) Then
Call SA_SetErrMsg( HandleUnexpectedError() )
Err.Clear()
' Don't return -- keep trying to delete the rest of the objects.
End If
End If
Next
If (g_nFailures > 0) Then
OnSubmitPage = false
Exit Function
End If
OnSubmitPage = true
End Function
'---------------------------------------------------------------------
' OnClosePage
'---------------------------------------------------------------------
Public Function OnClosePage(ByRef PageIn, ByRef EventArg)
OnClosePage = true
End Function
%>