<%@ Language=VBScript %> <% Option Explicit %> <% '------------------------------------------------------------------------- ' nfsmaps_prop.asp: display and update NFS User and Group Map properties ' ' Copyright (c) Microsoft Corporation. All rights reserved. ' ' Date Description ' 26 Sep 2000 Creation Date '------------------------------------------------------------------------- %> <% Err.Clear On Error Resume Next '------------------------------------------------------------------ 'Constants '------------------------------------------------------------------ Const TABINDEX_GENTAB = 0 ' to identify the General page Const TABINDEX_SIMPLEMAPTAB = 1 ' to identify the SimpleMap page Const TABINDEX_USERMAPTAB = 2 ' to idetify the UserMap page Const TABINDEX_GROUPMAPTAB = 3 ' to identify the GroupMap page '------------------------------------------------------------------------- ' Create web UI for user mapings '-------------------------------------------------------------------------- Dim rc Dim page Dim idTab1 Dim idTab2 Dim idTab3 Dim idTab4 rc = SA_CreatePage(L_NFS_USERGROUPMAP_TASKTITLE_TEXT,"", PT_TABBED, page) If (rc = 0 ) Then rc = SA_AddTabPage(page, L_TAB_GENERAL_LABEL_TEXT, idTab1) rc = SA_AddTabPage(page, L_TAB_SIMPLEMAP_LABEL_TEXT, idTab2) rc = SA_AddTabPage(page, L_TAB_EXPUSERMAP_LABEL_TEXT, idTab3) rc = SA_AddTabPage(page, L_TAB_EXPGROUPMAP_LABEL_TEXT, idTab4) rc = SA_ShowPage(page) End If Public Function OnInitPage(ByRef PageIn, ByRef EventArg) SetVariablesFromSystem OnInitPage = True End Function Public Function OnPostBackPage(ByRef PageIn, ByRef EventArg) On Error Resume Next Err.Clear Dim strNISDomain Dim strNISserver Dim tmpMapping Dim i,cUserMappings,cGroupMappings Dim arrMapField Dim arrUserMaps Dim arrGroupMaps SetVariablesFromForm If(mstrMethod = "AddDomainUserMap") Then If IsValidDomainUser(F_strDomainUser) Then 'is a valid user, then we will add the mapping 'check whether the user have exists arrUserMaps = Split(F_strMapsToUser,"#") cUserMappings = ubound(arrUserMaps) For i=0 To cUserMappings arrMapField = Split(arrUserMaps(i),":") If (arrMapField(1) = F_strDomainUser) Then SetErrMsg L_WINDOWSUSERALREADYMAPPED_ERRORMESSAGE OnPostBackPage = False Exit Function End If Next 'add the user mapping If F_intGen_SelectedRadio = "0" Then strNISDomain = "PCNFS" strNISserver = "PCNFS" Else strNISDomain = F_strGen_NisDomain strNISserver = F_strGen_NisServer End If tmpMapping = "^"&":"&F_strDomainUser&":"&F_intGen_SelectedRadio&":"& _ strNISDomain&":"&strNISserver&":"& _ Request.Form("hdnNisUserName")&":"&Request.Form("selUNIXUsers") F_strMapsToUser = F_strMapsToUser &"#"&tmpMapping F_strDomainUser = "" Else OnPostBackPage = False Exit Function End If Elseif(mstrMethod = "AddDomainGroupMap") Then If IsValidDomainGroup(F_strDomainGroup) Then 'is a valid user, then we will add the mapping 'check whether the user have exists arrGroupMaps = Split(F_strMapsToGroup,"#") cGroupMappings = ubound(arrGroupMaps) For i=0 To cGroupMappings arrMapField = Split(arrGroupMaps(i),":") If (arrMapField(1) = F_strDomainGroup) Then SetErrMsg L_WINGROUPALREADYMAPPED_ERRORMESSAGE OnPostBackPage = False Exit Function End If Next 'add the group mapping If F_intGen_SelectedRadio = "0" Then strNISDomain = "PCNFS" strNISserver = "PCNFS" Else strNISDomain = F_strGen_NisDomain strNISserver = F_strGen_NisServer End If tmpMapping = "^"&":"&F_strDomainGroup&":"&F_intGen_SelectedRadio&":"& _ strNISDomain&":"&strNISserver&":"& _ Request.Form("selUNIXGroups") F_strMapsToGroup = F_strMapsToGroup& "#" &tmpMapping F_strDomainGroup = "" Else OnPostBackPage = False Exit Function End If Elseif (mstrMethod = "GetUNIXUsers") Then If CInt(F_intGen_SelectedRadio) <> CONST_RADIO_USE_NISSERVER Then F_strNisAccountToUser = NFS_ReadUsersFromFile(F_strGen_PasswdFile,F_strGen_GroupFile) else F_strNisAccountToUser = NFS_GetNISDomainUsers(F_strGen_NisDomain,F_strGen_NisServer) end if Elseif (mstrMethod = "GetUNIXGroups") Then If CInt(F_intGen_SelectedRadio) <> CONST_RADIO_USE_NISSERVER Then F_strNisAccountToGroup = NFS_ReadGroupsFromFile(F_strGen_GroupFile) else F_strNisAccountToGroup = NFS_GetNISDomainGroups(F_strGen_NisDomain,F_strGen_NisServer) end if End If OnPostBackPage = True End Function Public Function OnServeTabbedPropertyPage( _ ByRef PageIn, _ ByVal iTab, _ ByVal bIsVisible, _ ByRef EventArg) If ( iTab = idTab1 ) Then Call ServeCommonJavaScript() End If Select Case iTab Case idTab1 Call ServeGenPage(PageIn, bIsVisible) Case idTab2 Call ServeSMAPPage(PageIn, bIsVisible) Case idTab3 Call ServeEXPUSERMAPPage(PageIn, bIsVisible) Case idTab4 Call ServeEXPGROUPMAPPage(PageIn, bIsVisible) Case Else Call SA_TraceOut("TEMPLAGE_TABBED", _ "OnServeTabbedPropertyPage unrecognized tab id: " _ + CStr(iTab)) End Select OnServeTabbedPropertyPage = True End Function Public Function OnSubmitPage(ByRef PageIn, ByRef EventArg) OnSubmitPage = SetNFSGroupMapProperties() End Function Public Function OnClosePage(ByRef PageIn, ByRef EventArg) OnClosePage = True End Function Function ServeCommonJavaScript() %> <% End Function '------------------------------------------------------------------------- ' Subroutine name: SetVariablesFromForm ' Description: Serves in getting the values from client, ' Uses Request.Form ' Input Variables: None ' Output Variables: None ' Returns: None ' Global Variables: None ' Calls functions from the different tabs(pages) to get the values ' from the form '------------------------------------------------------------------------- Sub SetVariablesFromForm Err.Clear On Error Resume Next 'get variables from the General tab page GetGenVariablesFromForm 'get variables from the Simple Map page GetSMAPVariablesFromForm 'get variables from the Explicit User Map page GetEXPUSERMAPVariablesFromForm 'get variables from the Explicit Group Map page GetEXPGROUPMAPVariablesFromForm End sub '------------------------------------------------------------------------- ' Function name: SetVariablesFromSystem ' Description: Serves in Getting the data from system ' Input Variables: None ' Output Variables: None ' Global Variables: None ' Returns: None ' Calls functions from different(pages) to get the initial values ' from the system. Incase of error, the functions call SA_ServeFailurePage ' and never returns '------------------------------------------------------------------------- Function SetVariablesFromSystem() Err.clear On Error Resume Next ' get values for the General tab GetGenVariablesFromSystem ' get values for the Simple Map tab GetSMAPVariablesFromSystem ' get values for the Explicit User Map tab GetEXPUSERMAPVariablesFromSystem ' get values for the Explicit Group Map tab GetEXPGROUPMAPVariablesFromSystem End Function '------------------------------------------------------------------------- ' Function name: SetNFSGroupMapProperties ' Description: Sets the NFS Maps properties ' Input Variables: None ' Output Variables: None ' Returns: True on Success, else False ' Global Variables: None ' Sets the properties of all the tabs. In case of error, sets the ' error message. The tab page in which the error occurred is displayed ' by setting the "mintTabSelected" appropriately. '------------------------------------------------------------------------- Function SetNFSGroupMapProperties Err.clear On Error Resume Next ' the return value initialized to false, ' changed to True if Successful SetNFSGroupMapProperties = False ' set the General properties If NOT GenUserGroupMappingProperties Then mintTabSelected = TABINDEX_GENTAB Exit Function End If ' set the Simple Map properties If NOT SetSMAPProp Then mintTabSelected = TABINDEX_SIMPLEMAPTAB Exit Function End If ' set the Explicit User Map properties If NOT UpdateUserMaps Then mintTabSelected =TABINDEX_USERMAPTAB Exit Function End If ' set the Explicit Group Map properties If NOT UpdateGroupMaps Then mintTabSelected =TABINDEX_GROUPMAPTAB Exit Function End If ' all the properties set, return True SetNFSGroupMapProperties = True End Function Function IsValidDomainUser(strFullName) On Error Resume Next Err.Clear Dim objLocation IsValidDomainUser = False set objLocation = GetObject("WinNT://" & Replace(strFullName,"\","/")&",user") If Err.number <> 0 Then SetErrMsg L_NFS_ERR_INVALID_DOMAIN_USER Err.Clear Exit Function End if IsValidDomainUser = True Set objLocation = Nothing End Function Function IsValidDomainGroup(strFullName) On Error Resume Next Err.Clear Dim objLocation IsValidDomainGroup = False set objLocation = GetObject("WinNT://" & Replace(strFullName,"\","/")&",group") If Err.number <> 0 Then SetErrMsg L_NFS_ERR_INVALID_DOMAIN_GROUP Err.Clear Exit Function End if IsValidDomainGroup = True Set objLocation = Nothing End Function %>