From eec6e2fb8d93f67cf25c841adb79521df66fc3c0 Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Tue, 12 Nov 2013 10:37:09 +0300 Subject: [PATCH] bug fixes --- .../EnterpriseStorageCreateFolder.ascx.cs | 10 ++++++++ ...rpriseStorageFolderGeneralSettings.ascx.cs | 23 +++++++++++++++---- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs index 00b8f830..ecf80a9b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageCreateFolder.ascx.cs @@ -54,6 +54,16 @@ namespace WebsitePanel.Portal.ExchangeServer return; try { + foreach (var invalidChar in System.IO.Path.GetInvalidFileNameChars()) + { + if (txtFolderName.Text.Contains(invalidChar.ToString())) + { + messageBox.ShowErrorMessage("FILES_CREATE_FILE"); + + return; + } + } + if (!ES.Services.EnterpriseStorage.CheckEnterpriseStorageInitialization(PanelSecurity.PackageId, PanelRequest.ItemID)) { ES.Services.EnterpriseStorage.CreateEnterpriseStorage(PanelSecurity.PackageId, PanelRequest.ItemID); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs index ff7a739f..a56fba80 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/EnterpriseStorageFolderGeneralSettings.ascx.cs @@ -98,6 +98,9 @@ namespace WebsitePanel.Portal.ExchangeServer { bool redirectNeeded = false; + string fileName = PanelRequest.FolderID; + string fileUrl = lblFolderUrl.Text; + litFolderName.Text = txtFolderName.Text; SystemFile folder = null; @@ -107,20 +110,32 @@ namespace WebsitePanel.Portal.ExchangeServer ES.Services.EnterpriseStorage.CreateEnterpriseStorage(PanelSecurity.PackageId, PanelRequest.ItemID); } + //File is renaming if (PanelRequest.FolderID != txtFolderName.Text) { - if (txtFolderName.Text.Contains("\\")) + //check if filename is correct + foreach (var invalidChar in System.IO.Path.GetInvalidFileNameChars()) { - throw new Exception("Wrong file name"); + if (txtFolderName.Text.Contains(invalidChar.ToString())) + { + messageBox.ShowErrorMessage("FILES_RENAME_FILE"); + + return; + } } folder = ES.Services.EnterpriseStorage.RenameEnterpriseFolder(PanelRequest.ItemID, PanelRequest.FolderID, txtFolderName.Text); + + // file is renamed - new name and url + fileName = folder.Name; + fileUrl = folder.Url; + redirectNeeded = true; } - ES.Services.EnterpriseStorage.SetEnterpriseFolderPermissions(PanelRequest.ItemID, redirectNeeded ? folder.Name : PanelRequest.FolderID, permissions.GetPemissions()); + ES.Services.EnterpriseStorage.SetEnterpriseFolderPermissions(PanelRequest.ItemID, fileName, permissions.GetPemissions()); - ES.Services.WebServers.SetDirectoryBrowseEnabled(PanelRequest.ItemID, redirectNeeded ? folder.Url : lblFolderUrl.Text, chkDirectoryBrowsing.Checked); + ES.Services.WebServers.SetDirectoryBrowseEnabled(PanelRequest.ItemID, fileUrl, chkDirectoryBrowsing.Checked); if (redirectNeeded) {