|
|
<%@ Language=VBScript %> <% Option Explicit %> <% '------------------------------------------------------------------------- ' POP3 Mail Add-in - Master Settings ' Copyright (C) Microsoft Corporation. All rights reserved. '------------------------------------------------------------------------- %> <!-- #include virtual="/admin/inc_framework.asp" --> <!-- #include virtual="/admin/ots_main.asp" --> <!-- #include file="p3cminc.asp" --> <%
'------------------------------------------------------------------------- ' Global Constants '------------------------------------------------------------------------- Dim SOURCE_FILE SOURCE_FILE = SA_GetScriptFileName() Const c_nMaxPort = 65535 Const FLD_AUTHENTICATION = "fldAuthentication" Const FLD_PORT = "fldPort" Const FLD_LOGGING = "fldLogging" Const FLD_MAILROOT = "fldMailRoot" Const FLD_REQUIRESPA = "fldRequireSPA" Const FLD_SERVICERESTART = "fldServiceRestart"
Const SERVICE_RESTART_NONE = 0 Const SERVICE_RESTART_POP3SVC = 1 Const SERVICE_RESTART_POP3SVC_SMTP = 2
Const SERVICE_CONTROL_STOP = 1 '------------------------------------------------------------------------- ' Global Variables '------------------------------------------------------------------------- Dim g_page Dim g_nAuthentication Dim g_nPort Dim g_nLoggingLevel Dim g_strMailRoot Dim g_bSPARequired
Dim g_nDomains Dim g_iServiceRestart '---------------------------------------------------------------------- ' Global Localized Strings '---------------------------------------------------------------------- Dim l_strPageTitle l_strPageTitle = GetLocString(RES_DLL_NAME, _ POP3_PAGETITLE_MASTERSETTINGS, _ "") Dim l_strCaptionAuthentication l_strCaptionAuthentication = GetLocString(RES_DLL_NAME, _ POP3_CAPTION_MASTERSETTINGS_AUTHENTICATION, _ "") Dim l_astrAuthentication(3) l_astrAuthentication(AUTH_AD) = GetLocString(RES_DLL_NAME, _ POP3_AUTHENTICATION_ACTIVEDIRECTORY, _ "") l_astrAuthentication(AUTH_SAM) = GetLocString(RES_DLL_NAME, _ POP3_AUTHENTICATION_WINDOWSACCOUNTS, _ "") l_astrAuthentication(AUTH_FILE) = GetLocString(RES_DLL_NAME, _ POP3_AUTHENTICATION_FILE, _ "") Dim l_strCaptionPort l_strCaptionPort = GetLocString(RES_DLL_NAME, _ POP3_CAPTION_MASTERSETTINGS_PORT, _ "") Dim l_strCaptionLoggingLevel l_strCaptionLoggingLevel = GetLocString(RES_DLL_NAME, _ POP3_CAPTION_MASTERSETTINGS_LOGGING, _ "") Dim l_astrLogging(3) l_astrLogging(LOGGING_NONE) = GetLocString(RES_DLL_NAME, _ POP3_LOGGING_NONE, _ "") l_astrLogging(LOGGING_MINIMUM) = GetLocString(RES_DLL_NAME, _ POP3_LOGGING_MINIMUM, _ "") l_astrLogging(LOGGING_MEDIUM) = GetLocString(RES_DLL_NAME, _ POP3_LOGGING_MEDIUM, _ "") l_astrLogging(LOGGING_MAXIMUM) = GetLocString(RES_DLL_NAME, _ POP3_LOGGING_MAXIMUM, _ "") Dim l_strCaptionMailRoot l_strCaptionMailRoot = GetLocString(RES_DLL_NAME, _ POP3_CAPTION_MASTERSETTINGS_MAILROOT, _ "") Dim l_strConfirmNewMailRoot l_strConfirmNewMailRoot = GetLocString(RES_DLL_NAME, _ POP3_PROMPT_MAILROOTCONFIRM, _ "") Dim l_strConfirmPOP3ServiceRestart l_strConfirmPOP3ServiceRestart = GetLocString(RES_DLL_NAME, _ POP3_PROMPT_SERVICERESTART_POP3SVC, _ "") Dim l_strConfirmPOP3SMTPServiceRestart l_strConfirmPOP3SMTPServiceRestart = GetLocString(RES_DLL_NAME, _ POP3_PROMPT_SERVICERESTART_POP3SVC_SMTP, _ "") Dim l_strCaptionRequireSPA l_strCaptionRequireSPA = GetLocString ( RES_DLL_NAME, _ POP3_CAPTION_MASTERSETTINGS_REQUIRESPA, _ "" ) Dim l_strErrInvalidPort l_strErrInvalidPort = GetLocString(RES_DLL_NAME, _ POP3_E_INVALIDPORT, _ "")
'********************************************************************** '* 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 '********************************************************************** '--------------------------------------------------------------------- ' ServeCommonJavaScript '--------------------------------------------------------------------- Function ServeCommonJavaScript() %> <script language="JavaScript" src="../inc_global.js"> </script> <script language="JavaScript"> var g_strOriginalMailRoot; function Init() { g_strOriginalMailRoot = document.getElementsByName("<%=FLD_MAILROOT%>").item(0).value; g_nPort = document.getElementsByName("<%=FLD_PORT%>").item(0).value; g_nLoggingLevel = document.getElementsByName("<%=FLD_LOGGING%>").item(0).value; // Update the checkbox enabled state. OnAuthenticationChanged(); g_bSPARequired = document.getElementsByName("<%=FLD_REQUIRESPA%>").item(0).checked; } function ValidatePage() { var strPort = document.getElementsByName("<%=FLD_PORT%>").item(0).value; var strLoggingLevel = document.getElementsByName("<%=FLD_LOGGING%>").item(0).value; var strSPARequired = document.getElementsByName("<%=FLD_REQUIRESPA%>").item(0).checked; var strNewMailRoot = document.getElementsByName("<%=FLD_MAILROOT%>").item(0).value; try { var nPort = parseInt(strPort); if ( isNaN(nPort) || 1 > nPort || <%= c_nMaxPort %> < nPort || nPort != strPort ) { SA_DisplayErr("<%=SA_EncodeQuotes(Server.HTMLEncode(l_strErrInvalidPort))%>"); return false; } } catch(e) { SA_DisplayErr("<%=SA_EncodeQuotes(Server.HTMLEncode(l_strErrInvalidPort))%>"); return false; } var nDomains = document.getElementsByName("fldNumDomains").item(0).value; var bRC = true; if(strNewMailRoot != g_strOriginalMailRoot && nDomains > 0) { bRC = confirm("<%=SA_EncodeQuotes( l_strConfirmNewMailRoot )%>"); } if ( bRC ) { var nServiceRestart = "<%=SERVICE_RESTART_NONE%>"; if ( strPort != g_nPort || strSPARequired != g_bSPARequired ) { nServiceRestart = "<%=SERVICE_RESTART_POP3SVC%>"; } if ( strNewMailRoot != g_strOriginalMailRoot || strLoggingLevel != g_nLoggingLevel ) { nServiceRestart = "<%=SERVICE_RESTART_POP3SVC_SMTP%>"; } if ( "<%=SERVICE_RESTART_POP3SVC%>" == nServiceRestart ) { if ( confirm("<%=SA_EncodeQuotes( l_strConfirmPOP3ServiceRestart )%>")) { document.getElementsByName("<%=FLD_SERVICERESTART%>").item(0).value = nServiceRestart; } } if ( "<%=SERVICE_RESTART_POP3SVC_SMTP%>" == nServiceRestart ) { if ( confirm("<%=SA_EncodeQuotes( l_strConfirmPOP3SMTPServiceRestart )%>")) { document.getElementsByName("<%=FLD_SERVICERESTART%>").item(0).value = nServiceRestart; } } } return bRC; } function SetData(){} </script> <% End Function
'********************************************************************** '* E V E N T H A N D L E R S '********************************************************************** '--------------------------------------------------------------------- ' OnInitPage '--------------------------------------------------------------------- Public Function OnInitPage(ByRef PageIn, ByRef EventArg) On Error Resume Next OnInitPage = TRUE Dim oConfig Set oConfig = Server.CreateObject("P3Admin.P3Config") g_nLoggingLevel = oConfig.LoggingLevel g_strMailRoot = oConfig.MailRoot g_nPort = CLng(oConfig.Service.Port) g_nAuthentication = oConfig.Authentication.CurrentAuthMethod g_nDomains = oConfig.Domains.Count g_bSPARequired = oConfig.Service.SPARequired g_iServiceRestart = CInt(SERVICE_RESTART_NONE)
If (Err.number <> 0) Then Call SA_SetErrMsg( HandleUnexpectedError() ) End If End Function '--------------------------------------------------------------------- ' OnServePropertyPage '--------------------------------------------------------------------- Public Function OnServePropertyPage(ByRef PageIn, ByRef EventArg) On Error Resume Next ' ' Emit Javascript functions required by Web Framework Call ServeCommonJavaScript()
OnServePropertyPage = TRUE ' ' Disable the authentication dropdown unless no domains have been ' created for this server. ' Dim strAuthenticationDisabled If (g_nDomains > 0) Then strAuthenticationDisabled = "DISABLED" Else strAuthenticationDisabled = "" End If
Dim strSelected ' Used to select the current value in the dropdowns below. strSelected = "" Dim oConfig, iType, iCount Dim iAuthFileType iAuthFileType = -1 Set oConfig = Server.CreateObject("P3Admin.P3Config") iCount = oConfig.Authentication.Count For iType = 1 To iCount If ( AUTH_FILE = oConfig.Authentication.Item(CLng(iType)).ID ) Then iAuthFileType = iCount End If Next %> <SCRIPT LANGUAGE="javascript"> function OnAuthenticationChanged() { var oDropDown = document.getElementsByName("<%=FLD_AUTHENTICATION%>").item(0); var oRequireSPA = document.getElementsByName("<%=FLD_REQUIRESPA%>").item(0); var nAuthentication = oDropDown.options(oDropDown.selectedIndex).value; if ( nAuthentication == "<%=iAuthFileType%>" ) { oRequireSPA.disabled = true ; oRequireSPA.checked = false ; } else { oRequireSPA.disabled = false ; oRequireSPA.checked = <%= CStr(g_bSPARequired) %> ; } } </SCRIPT> <TABLE CLASS="TasksBody" CELLPADDING=0 CELLSPACING=0> <TR> <TD CLASS="TasksBody"> <%=Server.HTMLEncode(l_strCaptionAuthentication)%> </TD> <TD CLASS="TasksBody"> <SELECT CLASS="FormField" NAME="<%=FLD_AUTHENTICATION%>" ONCHANGE="OnAuthenticationChanged();" <%=strAuthenticationDisabled%>> <% 'Dim oConfig, iType, iCount 'Set oConfig = Server.CreateObject("P3Admin.P3Config") 'iCount = oConfig.Authentication.Count For iType = 1 To iCount If (iType = oConfig.Authentication.CurrentAuthMethod) Then strSelected = "SELECTED" Else strSelected = "" End If %> <OPTION <%=strSelected%> VALUE="<%=iType%>"><%=Server.HTMLEncode(oConfig.Authentication.Item(CLng(iType)).Name)%></OPTION> <% Next %> </SELECT> </TD> </TR> <TR> <TD CLASS="TasksBody"> <%=Server.HTMLEncode(l_strCaptionPort)%> </TD> <TD CLASS="TasksBody"> <INPUT TYPE="text" CLASS="FormField" NAME="<%=FLD_PORT%>" VALUE="<%=g_nPort%>" SIZE="5" MAXLENGTH="5"> </TD> </TR> <TR> <TD CLASS="TasksBody"> <%=Server.HTMLEncode(l_strCaptionLoggingLevel)%> </TD> <TD CLASS="TasksBody"> <SELECT CLASS="FormField" NAME="<%=FLD_LOGGING%>"> <% Dim iLevel For iLevel = 0 To 3 If (iLevel = g_nLoggingLevel) Then strSelected = "SELECTED" Else strSelected = "" End If %> <OPTION <%=strSelected%> VALUE="<%=iLevel%>"><%=Server.HTMLEncode(l_astrLogging(iLevel))%></OPTION> <% Next %> </SELECT> </TD> </TR> </TABLE> <BR> <TABLE> <TR> <TD CLASS="TasksBody" COLSPAN="2"> <%=Server.HTMLEncode(l_strCaptionMailRoot)%> </TD> </TR> <TR> <TD CLASS="TasksBody"> <INPUT TYPE="text" CLASS="FormField" NAME="<%=FLD_MAILROOT%>" VALUE="<%=Server.HTMLEncode(g_strMailRoot)%>" MAXLENGTH="1024" STYLE="width: 350px"> </TD> </TR> <TR> <TD CLASS="TasksBody" colspan="2"> <INPUT type="checkbox" CLASS="FormField" NAME="<%=FLD_REQUIRESPA%>" ID="<%=FLD_REQUIRESPA%>"> <%=Server.HTMLEncode(l_strCaptionRequireSPA)%> </TD> </TR> </TABLE> <BR> <INPUT TYPE="HIDDEN" NAME="fldNumDomains" VALUE="<%=g_nDomains%>"> <INPUT TYPE="HIDDEN" NAME="<%=FLD_SERVICERESTART%>" VALUE="<%=g_iServiceRestart%>"> <% If (Err.number <> 0) Then Call SA_SetErrMsg( HandleUnexpectedError() ) End If End Function
'--------------------------------------------------------------------- ' OnPostBackPage '--------------------------------------------------------------------- Public Function OnPostBackPage(ByRef PageIn, ByRef EventArg) On Error resume next
OnPostBackPage = TRUE
Dim oConfig Set oConfig = Server.CreateObject("P3Admin.P3Config") ' ' Get the authentication method, if it wasn't disabled. Otherwise, ' just get the current value from the Config object. ' If (Request.Form(FLD_AUTHENTICATION).Count > 0) Then g_nAuthentication = CInt(Request.Form(FLD_AUTHENTICATION).Item(1)) Else g_nAuthentication = oConfig.Authentication.CurrentAuthMethod End If ' ' Get the rest of the form values. ' If ( StrComp(Request.Form(FLD_REQUIRESPA), "on", vbTextCompare) = 0 ) Then g_bSPARequired = True Else g_bSPARequired = False End If g_nPort = CLng(Request.Form(FLD_PORT).Item(1)) g_nLoggingLevel = CInt(Request.Form(FLD_LOGGING).Item(1)) g_strMailRoot = CStr(Request.Form(FLD_MAILROOT).Item(1)) g_iServiceRestart = CInt(Request.Form(FLD_SERVICERESTART).Item(1)) g_nDomains = oConfig.Domains.Count
If (Err.number <> 0) Then Call SA_SetErrMsg( HandleUnexpectedError() ) End If End Function
'--------------------------------------------------------------------- ' OnSubmitPage '--------------------------------------------------------------------- Public Function OnSubmitPage(ByRef PageIn, ByRef EventArg) On Error Resume Next
Dim oConfig, oAuthMethods Set oConfig = Server.CreateObject("P3Admin.P3Config") Set oAuthMethods = oConfig.Authentication ' set Authmethod. oAuthMethods.CurrentAuthMethod = CLng(g_nAuthentication) oAuthMethods.Save () ' set main settings oConfig.LoggingLevel = g_nLoggingLevel oConfig.MailRoot = g_strMailRoot oConfig.Service.Port = CLng(g_nPort) If ( g_bSPARequired = True ) Then oConfig.Service.SPARequired = 1 Else oConfig.Service.SPARequired = 0 End If
' cycle the services If (Err.number = 0) Then If ( SERVICE_RESTART_POP3SVC = g_iServiceRestart Or SERVICE_RESTART_POP3SVC_SMTP = g_iServiceRestart ) Then If ( SERVICE_CONTROL_STOP <> oConfig.Service.POP3ServiceStatus ) Then oConfig.Service.StopPOP3Service() oConfig.Service.StartPOP3Service() End If End If End If If (Err.number = 0) Then If ( SERVICE_RESTART_POP3SVC_SMTP = g_iServiceRestart ) Then If ( SERVICE_CONTROL_STOP <> oConfig.Service.SMTPServiceStatus ) Then oConfig.Service.StopSMTPService() oConfig.Service.StartSMTPService() End If End If End If If (Err.number <> 0) Then Call SA_SetErrMsg( HandleUnexpectedError() ) OnSubmitPage = FALSE Else OnSubmitPage = TRUE End If End Function '--------------------------------------------------------------------- ' OnClosePage '--------------------------------------------------------------------- Public Function OnClosePage(ByRef PageIn, ByRef EventArg) OnClosePage = TRUE End Function %>
|