From 8364cf3c70a9734b877c186e3089b3fee175a2e9 Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Mon, 12 Feb 2024 16:12:59 +0100 Subject: [PATCH 01/12] migration to BEXIS v3 #69 --- BExIS.Modules.Fmt.UI.csproj | 105 ++++++++------ .../BaseAdminFileManagementController.cs | 8 +- Controllers/BaseFileManagementController.cs | 5 +- Fmt.Settings.json | 23 +++ Helper/Settings.cs | 134 ----------------- Models/FileModel.cs | 4 +- web.config | 135 ++++++++++-------- 7 files changed, 166 insertions(+), 248 deletions(-) create mode 100644 Fmt.Settings.json delete mode 100644 Helper/Settings.cs diff --git a/BExIS.Modules.Fmt.UI.csproj b/BExIS.Modules.Fmt.UI.csproj index 97955c3..7f8739e 100644 --- a/BExIS.Modules.Fmt.UI.csproj +++ b/BExIS.Modules.Fmt.UI.csproj @@ -18,7 +18,7 @@ Properties BExIS.Modules.Fmt.UI BExIS.Modules.Fmt.UI - v4.5.2 + v4.8 false true @@ -29,6 +29,7 @@ + true @@ -65,12 +66,16 @@ True - + ..\..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll True + + + + ..\..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll True @@ -83,7 +88,6 @@ ..\..\..\..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll True - @@ -116,51 +120,10 @@ True ..\..\..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll + ..\..\..\..\packages\TelerikMvcExtensions.2013.2.611\lib\net40\Telerik.Web.Mvc.dll - - ..\..\..\..\Libraries\Vaiona\Vaiona.Core.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.Entities.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.Entities.Orm.NH.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.IoC.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.Logging.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.Model.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.MultiTenancy.Api.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.MultiTenancy.Services.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.Persistence.Api.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.PersistenceProviders.NH.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.Utils.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.Web.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.Web.Mvc.dll - - - ..\..\..\..\Libraries\Vaiona\Vaiona.Web.Mvc.Modularity.dll - ..\..\..\..\packages\WebActivator.1.2.0.0\lib\NETFramework40\WebActivator.dll True @@ -200,7 +163,6 @@ - @@ -221,6 +183,7 @@ + @@ -271,6 +234,54 @@ {e4795f06-20c2-4c4c-a720-9a79896384df} BExIS.IO + + {c4d4bc9e-8832-4966-be58-cb684e9a74e8} + Vaiona.Entities.Orm.NH + + + {0815d220-3625-4e23-bbbc-8152345637fe} + Vaiona.Entities + + + {29a7be0f-a17c-4ae8-8ca1-15fe4dd74129} + Vaiona.IoC + + + {e8b37581-1cac-463d-903b-b4bee8b2b0e3} + Vaiona.Logging + + + {a60ac05f-8c9a-4efd-9826-452e6049da4d} + Vaiona.Model + + + {bccd3d7b-8a50-4fa2-b9d3-2cb31bea60b3} + Vaiona.MultiTenancy.Api + + + {640bf81d-354a-4bf0-85fc-f0ad587cf8a2} + Vaiona.Persistence.Api + + + {8c5c0209-69a3-4579-9f9b-4d5f084a3b85} + Vaiona.Persistence.NH + + + {63fcacaa-9534-4fdd-a082-78dcc06baf28} + Vaiona.Utils + + + {705f8751-e58a-453e-a7fd-0c310fd3cae8} + Vaiona.Web.Mvc.Modularity + + + {5f5d22e8-8c05-49cd-854e-8fe8eff1aa6c} + Vaiona.Web.Mvc + + + {5b48b5a8-eae8-4ef8-8f2c-7fedb1b095d3} + Vaiona.Web + {252f7872-a69c-43a6-84b4-4d2abdbdd9ab} BExIS.Xml.Helpers @@ -338,7 +349,7 @@ mkdir "$(SolutionDir)Console\Workspace\Modules\FMT" -C:\Windows\System32\xcopy "$(ProjectDir)Fmt.Settings.xml" "$(SolutionDir)Console\Workspace\Modules\FMT" /C /Y /I +C:\Windows\System32\xcopy "$(ProjectDir)Fmt.Settings.json" "$(SolutionDir)Console\Workspace\Modules\FMT" /C /Y /I - - + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - + + \ No newline at end of file From 0e7d31729efc99c5f1606351dadd82459bbce127 Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Tue, 24 Sep 2024 16:11:21 +0200 Subject: [PATCH 02/12] pub profile for v3 --- BExIS.Modules.Fmt.UI.csproj | 1 + .../BexisServer_2030-testsite.pubxml | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 Properties/PublishProfiles/BexisServer_2030-testsite.pubxml diff --git a/BExIS.Modules.Fmt.UI.csproj b/BExIS.Modules.Fmt.UI.csproj index 7f8739e..537f31c 100644 --- a/BExIS.Modules.Fmt.UI.csproj +++ b/BExIS.Modules.Fmt.UI.csproj @@ -184,6 +184,7 @@ + diff --git a/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml b/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml new file mode 100644 index 0000000..5d7c947 --- /dev/null +++ b/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml @@ -0,0 +1,18 @@ + + + + + FileSystem + FileSystem + Release + Any CPU + + True + False + Y:\FMT + False + + \ No newline at end of file From 2878bfe01e1432ad0a1c3424dd242bdd66990edd Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Wed, 25 Sep 2024 13:45:17 +0200 Subject: [PATCH 03/12] pub profile --- Properties/PublishProfiles/BexisServer_2030-testsite.pubxml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml b/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml index 5d7c947..879c983 100644 --- a/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml +++ b/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml @@ -12,7 +12,7 @@ indem Sie diese MSBuild-Datei bearbeiten. Weitere Informationen hierzu finden Si True False - Y:\FMT + Y:\Site\Areas\FMT False \ No newline at end of file From 30c0db708ffee8fabb72e86503ffcce741cb254e Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Fri, 27 Sep 2024 14:22:47 +0200 Subject: [PATCH 04/12] pub --- Properties/PublishProfiles/BexisServer_2030-testsite.pubxml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml b/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml index 879c983..a738352 100644 --- a/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml +++ b/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml @@ -12,7 +12,7 @@ indem Sie diese MSBuild-Datei bearbeiten. Weitere Informationen hierzu finden Si True False - Y:\Site\Areas\FMT + C:\inetpub\wwwroot\2030-TestSite\Site\Areas\FMT False \ No newline at end of file From fc20fe11277f10b3ed16229170abb13849c067b4 Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Mon, 14 Oct 2024 10:59:55 +0200 Subject: [PATCH 05/12] EntityPermissionManager async in version 3.4.0 --- Controllers/BaseFileManagementController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Controllers/BaseFileManagementController.cs b/Controllers/BaseFileManagementController.cs index 7de661f..0f3e50d 100644 --- a/Controllers/BaseFileManagementController.cs +++ b/Controllers/BaseFileManagementController.cs @@ -30,7 +30,7 @@ public ActionResult Show(string viewName, string rootMenu, string viewTitle ) { var user = userManager.FindByNameAsync(HttpContext.User.Identity.Name).Result; var feature = featureManager.FindByName(viewName + "Admin"); - hasAdminRights = featurePermissionManager.HasAccess(user.Id, feature.Id); + hasAdminRights = featurePermissionManager.HasAccessAsync(user.Id, feature.Id).Result; } if (String.IsNullOrEmpty(rootMenu)) @@ -80,7 +80,7 @@ public ActionResult GetFileLists(string menuItemPath, string contollerName) Feature feature = features.FirstOrDefault(f => f.Name.Equals(contollerName + "Admin")); if (feature != null) { - if (featurePermissionManager.HasAccess(user.Id, feature.Id)) + if (featurePermissionManager.HasAccessAsync(user.Id, feature.Id).Result) { hasDeleteRights = true; } From 594e97584bdc49610c8bb3d69fe3fde70847b3cb Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Wed, 20 Nov 2024 14:35:07 +0100 Subject: [PATCH 06/12] V3: Add changes from 2.18 #74 --- BExIS.Modules.Fmt.UI.csproj | 16 +- Controllers/BaseFileManagementController.cs | 87 ++++----- Controllers/DmpFilesAdminController.cs | 14 ++ Controllers/DmpFilesController.cs | 18 ++ .../SocialEcologicalFilesAdminController.cs | 7 - .../SocialEcologicalFilesController.cs | 16 -- .../TechniciansFilesAdminController.cs | 7 + Controllers/TechniciansFilesController.cs | 16 ++ .../ThematicGroupsFilesAdminController.cs | 7 + Controllers/ThematicGroupsFilesController.cs | 16 ++ FMT.Manifest.xml | 108 ++++++----- Fmt.Settings.json | 2 +- Helper/MenuHelper.cs | 82 +++++---- .../DmpFiles.cshtml} | 8 +- .../readme.txt | 0 .../TechniciansFiles/TechniciansFiles.cshtml | 168 ++++++++++++++++++ Views/TechniciansFilesAdmin/readme.txt | 1 + .../ThematicGroupsFiles.cshtml | 167 +++++++++++++++++ Views/ThematicGroupsFilesAdmin/readme.txt | 1 + 19 files changed, 587 insertions(+), 154 deletions(-) create mode 100644 Controllers/DmpFilesAdminController.cs create mode 100644 Controllers/DmpFilesController.cs delete mode 100644 Controllers/SocialEcologicalFilesAdminController.cs delete mode 100644 Controllers/SocialEcologicalFilesController.cs create mode 100644 Controllers/TechniciansFilesAdminController.cs create mode 100644 Controllers/TechniciansFilesController.cs create mode 100644 Controllers/ThematicGroupsFilesAdminController.cs create mode 100644 Controllers/ThematicGroupsFilesController.cs rename Views/{SocialEcologicalFiles/SocialEcologicalFiles.cshtml => DmpFiles/DmpFiles.cshtml} (93%) rename Views/{SocialEcologicalFilesAdmin => DmpFilesAdmin}/readme.txt (100%) create mode 100644 Views/TechniciansFiles/TechniciansFiles.cshtml create mode 100644 Views/TechniciansFilesAdmin/readme.txt create mode 100644 Views/ThematicGroupsFiles/ThematicGroupsFiles.cshtml create mode 100644 Views/ThematicGroupsFilesAdmin/readme.txt diff --git a/BExIS.Modules.Fmt.UI.csproj b/BExIS.Modules.Fmt.UI.csproj index 537f31c..0dac71a 100644 --- a/BExIS.Modules.Fmt.UI.csproj +++ b/BExIS.Modules.Fmt.UI.csproj @@ -144,6 +144,8 @@ + + @@ -154,12 +156,14 @@ - - + + + + @@ -175,6 +179,9 @@ + + + @@ -191,8 +198,10 @@ - + + + web.config @@ -212,7 +221,6 @@ - diff --git a/Controllers/BaseFileManagementController.cs b/Controllers/BaseFileManagementController.cs index 0f3e50d..ffbf014 100644 --- a/Controllers/BaseFileManagementController.cs +++ b/Controllers/BaseFileManagementController.cs @@ -20,17 +20,22 @@ namespace BExIS.Modules.Fmt.UI.Controllers public class BaseFileManagementController : Controller { - public ActionResult Show(string viewName, string rootMenu, string viewTitle ) + public ActionResult Show(string viewName, string rootMenu, string viewTitle) { ViewBag.Title = PresentationModel.GetViewTitleForTenant(viewTitle, this.Session.GetTenant()); bool hasAdminRights = false; - using (UserManager userManager = new UserManager()) - using (FeaturePermissionManager featurePermissionManager = new FeaturePermissionManager()) - using (FeatureManager featureManager = new FeatureManager()) + string userName = HttpContext.User.Identity.Name; + + if (!String.IsNullOrEmpty(userName)) { - var user = userManager.FindByNameAsync(HttpContext.User.Identity.Name).Result; - var feature = featureManager.FindByName(viewName + "Admin"); - hasAdminRights = featurePermissionManager.HasAccessAsync(user.Id, feature.Id).Result; + using (UserManager userManager = new UserManager()) + using (FeaturePermissionManager featurePermissionManager = new FeaturePermissionManager()) + using (FeatureManager featureManager = new FeatureManager()) + { + var user = userManager.FindByNameAsync(userName).Result; + var feature = featureManager.FindByName(viewName + "Admin"); + hasAdminRights = featurePermissionManager.HasAccessAsync(user.Id, feature.Id).Result; + } } if (String.IsNullOrEmpty(rootMenu)) @@ -38,25 +43,25 @@ public ActionResult Show(string viewName, string rootMenu, string viewTitle ) if (String.IsNullOrEmpty(viewName)) ModelState.AddModelError("Error", "Please enter a view name to the url!"); - - MenuHelper menuHelper = new MenuHelper(); - string userName = HttpContext.User.Identity.Name; - List menus = null; - bool hasUserRights = false; - if (userName != "" && rootMenu != "") - hasUserRights = menuHelper.HasUserAccessRights(rootMenu, userName); + MenuHelper menuHelper = new MenuHelper(); - if (!hasUserRights) - ModelState.AddModelError("Error", "No access rights for this menu and this page!"); - else - menus = menuHelper.GetMenu(rootMenu, userName); + List menus = null; + + bool hasUserRights = false; + if (rootMenu != "") + hasUserRights = menuHelper.HasUserAccessRights(rootMenu, userName); + + if (!hasUserRights) + ModelState.AddModelError("Error", "No access rights for this menu and this page!"); + else + menus = menuHelper.GetMenu(rootMenu, userName); //if (string.IsNullOrEmpty(rootMenu)) ViewBag.UseLayout = true; ViewData["AdminRights"] = hasAdminRights; - + return View(viewName, menus); } @@ -66,33 +71,36 @@ public ActionResult GetFileLists(string menuItemPath, string contollerName) { //string menuItem = new DirectoryInfo(menuItemPath).Name; + string userName = GetUsernameOrDefault(); bool hasDeleteRights = false; - //check user permissions for delete - using (var featurePermissionManager = new FeaturePermissionManager()) - using (var featureManager = new FeatureManager()) - using (UserManager userManager = new UserManager()) + if (!String.IsNullOrEmpty(userName)) { - - var userTask = userManager.FindByNameAsync(GetUsernameOrDefault()); - userTask.Wait(); - var user = userTask.Result; - List features = featureManager.FeatureRepository.Get().ToList(); - Feature feature = features.FirstOrDefault(f => f.Name.Equals(contollerName + "Admin")); - if (feature != null) + //check user permissions for delete + using (var featurePermissionManager = new FeaturePermissionManager()) + using (var featureManager = new FeatureManager()) + using (UserManager userManager = new UserManager()) { - if (featurePermissionManager.HasAccessAsync(user.Id, feature.Id).Result) + + var userTask = userManager.FindByNameAsync(userName); + userTask.Wait(); + var user = userTask.Result; + List features = featureManager.FeatureRepository.Get().ToList(); + Feature feature = features.FirstOrDefault(f => f.Name.Equals(contollerName + "Admin")); + if (feature != null) { - hasDeleteRights = true; + if (featurePermissionManager.HasAccessAsync(user.Id, feature.Id).Result) + { + hasDeleteRights = true; + } } } + } - var fileModelList = FileModel.GetFileModelList(menuItemPath, hasDeleteRights); - fileModelList.ForEach(a => a.controllerName = contollerName); + var fileModelList = FileModel.GetFileModelList(menuItemPath, hasDeleteRights); + fileModelList.ForEach(a => a.controllerName = contollerName); - return PartialView("~/Areas/FMT/Views/Shared/_fileList.cshtml", fileModelList); - } - + return PartialView("~/Areas/FMT/Views/Shared/_fileList.cshtml", fileModelList); } public ActionResult DownloadFile(string path, string mimeType) @@ -119,7 +127,6 @@ public ActionResult DownloadFile(string path, string mimeType) string folderpath = ""; var settings = ModuleManager.GetModuleSettings("fmt"); folderpath = settings.GetValueByKey("SourcePathToFiles").ToString(); - if (String.IsNullOrEmpty(path)) folderpath = AppConfiguration.DataPath; @@ -128,14 +135,14 @@ public ActionResult DownloadFile(string path, string mimeType) public string GetUsernameOrDefault() { - var username = string.Empty; + string username = null; try { username = HttpContext.User.Identity.Name; } catch { } - return !string.IsNullOrWhiteSpace(username) ? username : "DEFAULT"; + return username; } } } \ No newline at end of file diff --git a/Controllers/DmpFilesAdminController.cs b/Controllers/DmpFilesAdminController.cs new file mode 100644 index 0000000..2589a84 --- /dev/null +++ b/Controllers/DmpFilesAdminController.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; + +namespace BExIS.Modules.Fmt.UI.Controllers +{ + public class DmpFilesAdminController : BaseAdminFileManagementController + { + + + } +} \ No newline at end of file diff --git a/Controllers/DmpFilesController.cs b/Controllers/DmpFilesController.cs new file mode 100644 index 0000000..cbdcfe9 --- /dev/null +++ b/Controllers/DmpFilesController.cs @@ -0,0 +1,18 @@ + +using System; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; + +namespace BExIS.Modules.Fmt.UI.Controllers +{ + public class DmpFilesController : BaseFileManagementController + { + public ActionResult Index(string node_id = "") + { + return RedirectToAction("Show", "DmpFiles", new { area = "FMT", viewName = "DmpFiles", viewTitle = "Dmp Documents", rootMenu = "DMPs", node_id = node_id.Replace("\\", "_") }); + } + } +} \ No newline at end of file diff --git a/Controllers/SocialEcologicalFilesAdminController.cs b/Controllers/SocialEcologicalFilesAdminController.cs deleted file mode 100644 index d958e3c..0000000 --- a/Controllers/SocialEcologicalFilesAdminController.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace BExIS.Modules.Fmt.UI.Controllers -{ - public class SocialEcologicalFilesAdminController : BaseAdminFileManagementController - { - - } -} \ No newline at end of file diff --git a/Controllers/SocialEcologicalFilesController.cs b/Controllers/SocialEcologicalFilesController.cs deleted file mode 100644 index 02ff450..0000000 --- a/Controllers/SocialEcologicalFilesController.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.Mvc; - -namespace BExIS.Modules.Fmt.UI.Controllers -{ - public class SocialEcologicalFilesController : BaseFileManagementController - { - public ActionResult Index(string node_id = "") - { - return RedirectToAction("Show", "SocialEcologicalFiles", new { area = "FMT", viewName = "SocialEcologicalFiles", viewTitle = "SocialEcological Documents", rootMenu = "SocialEcological", node_id = node_id.Replace("\\", "_") }); - } - } -} \ No newline at end of file diff --git a/Controllers/TechniciansFilesAdminController.cs b/Controllers/TechniciansFilesAdminController.cs new file mode 100644 index 0000000..aaca3f5 --- /dev/null +++ b/Controllers/TechniciansFilesAdminController.cs @@ -0,0 +1,7 @@ +namespace BExIS.Modules.Fmt.UI.Controllers +{ + public class TechniciansFilesAdminController : BaseAdminFileManagementController + { + + } +} \ No newline at end of file diff --git a/Controllers/TechniciansFilesController.cs b/Controllers/TechniciansFilesController.cs new file mode 100644 index 0000000..33fb54e --- /dev/null +++ b/Controllers/TechniciansFilesController.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; + +namespace BExIS.Modules.Fmt.UI.Controllers +{ + public class TechniciansFilesController : BaseFileManagementController + { + public ActionResult Index(string node_id = "") + { + return RedirectToAction("Show", "TechniciansFiles", new { area = "FMT", viewName = "TechniciansFiles", viewTitle = "Technicians Documents", rootMenu = "Technicians", node_id = node_id.Replace("\\", "_") }); + } + } +} \ No newline at end of file diff --git a/Controllers/ThematicGroupsFilesAdminController.cs b/Controllers/ThematicGroupsFilesAdminController.cs new file mode 100644 index 0000000..2ea8a86 --- /dev/null +++ b/Controllers/ThematicGroupsFilesAdminController.cs @@ -0,0 +1,7 @@ +namespace BExIS.Modules.Fmt.UI.Controllers +{ + public class ThematicGroupsFilesAdminController : BaseAdminFileManagementController + { + + } +} \ No newline at end of file diff --git a/Controllers/ThematicGroupsFilesController.cs b/Controllers/ThematicGroupsFilesController.cs new file mode 100644 index 0000000..11a465f --- /dev/null +++ b/Controllers/ThematicGroupsFilesController.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; + +namespace BExIS.Modules.Fmt.UI.Controllers +{ + public class ThematicGroupsFilesController : BaseFileManagementController + { + public ActionResult Index(string node_id = "") + { + return RedirectToAction("Show", "ThematicGroupsFiles", new { area = "FMT", viewName = "ThematicGroupsFiles", viewTitle = "ThematicGroups Documents", rootMenu = "ThematicGroups", node_id = node_id.Replace("\\", "_") }); + } + } +} \ No newline at end of file diff --git a/FMT.Manifest.xml b/FMT.Manifest.xml index 8e8439d..2472d8f 100644 --- a/FMT.Manifest.xml +++ b/FMT.Manifest.xml @@ -9,55 +9,65 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - + + diff --git a/Fmt.Settings.json b/Fmt.Settings.json index 1c920cf..72a6dfc 100644 --- a/Fmt.Settings.json +++ b/Fmt.Settings.json @@ -13,7 +13,7 @@ { "key": "SourcePathToFiles", "title": "Source path to files", - "value": "C:\\Data\\Temp\\FMT_Temp", + "value": "C:\\inetpub\\wwwroot\\2030-TestSite\\Data_2030", "description": "", "type": "String", "options": [] diff --git a/Helper/MenuHelper.cs b/Helper/MenuHelper.cs index 0ec0fc7..d6d2982 100644 --- a/Helper/MenuHelper.cs +++ b/Helper/MenuHelper.cs @@ -42,21 +42,21 @@ private XmlDocument GetMenuXmlDoc() xDoc = XDocument.Load(menuConfigPath); xmlDoc.Load(xDoc.CreateReader()); foreach (XmlNode node in xmlDoc.SelectNodes("/Item")) - CreateDirectoriesByXmlConfig(node, FMTPath); + CreateDirectoriesByXmlConfig(node, FMTPath); } return xmlDoc; } - internal bool HasUserAccessRights(string root, string userName, string node = "") + internal bool HasUserAccessRights(string root, string userName = null, string node = "") { XmlDocument xmlDoc = GetMenuXmlDoc(); string[] rootGroups; bool hasRights = false; - + string temp = ""; try { - string temp = xmlDoc.SelectSingleNode(string.Format("//Items[@Name='{0}']", root)).Attributes.GetNamedItem("Group").Value; + temp = xmlDoc.SelectSingleNode(string.Format("//Items[@Name='{0}']", root)).Attributes.GetNamedItem("Group").Value; rootGroups = temp.Split(','); } catch (Exception ex) @@ -66,24 +66,31 @@ internal bool HasUserAccessRights(string root, string userName, string node = "" //if node is empty then check only root node access if (node == "") { - if (rootGroups.Length > 0) + if (!String.IsNullOrEmpty(temp)) { - using (UserManager userManager = new UserManager()) + if (!String.IsNullOrEmpty(userName)) { - foreach (string roleName in rootGroups) + using (UserManager userManager = new UserManager()) { - var userTask = userManager.FindByNameAsync(userName); - userTask.Wait(); - var user = userTask.Result; - - if (user.Groups.Select(a => a.Name).Contains(roleName)) + foreach (string roleName in rootGroups) { - hasRights = true; - break; + var userTask = userManager.FindByNameAsync(userName); + userTask.Wait(); + var user = userTask.Result; + + if (user.Groups.Select(a => a.Name).Contains(roleName)) + { + hasRights = true; + break; + } } } } } + else + { + hasRights = true; + } } //if node not empty check access rights to the singel node dependence on root. else @@ -91,24 +98,29 @@ internal bool HasUserAccessRights(string root, string userName, string node = "" //if node has an entry in Group check rights for user. If group empty skip access rights check try { - string temp = xmlDoc.SelectSingleNode(string.Format("//Items[@Name='{0}']", node)).Attributes.GetNamedItem("Group").Value; - if(String.IsNullOrEmpty(temp)) + temp = xmlDoc.SelectSingleNode(string.Format("//Items[@Name='{0}']", node)).Attributes.GetNamedItem("Group").Value; + if (String.IsNullOrEmpty(temp)) + { hasRights = true; + } else { - var nodeGroups = temp.Split(','); - using (UserManager userManager = new UserManager()) + if (!String.IsNullOrEmpty(userName)) { - foreach (string roleName in nodeGroups) + var nodeGroups = temp.Split(','); + using (UserManager userManager = new UserManager()) { - var userTask = userManager.FindByNameAsync(userName); - userTask.Wait(); - var user = userTask.Result; - - if (user.Groups.Select(a => a.Name).Contains(roleName)) + foreach (string roleName in nodeGroups) { - hasRights = true; - break; + var userTask = userManager.FindByNameAsync(userName); + userTask.Wait(); + var user = userTask.Result; + + if (user.Groups.Select(a => a.Name).Contains(roleName)) + { + hasRights = true; + break; + } } } } @@ -123,7 +135,7 @@ internal bool HasUserAccessRights(string root, string userName, string node = "" return hasRights; } - internal List GetMenu(string root, string userName) + internal List GetMenu(string root, string userName = null) { List menuItems = null; @@ -140,8 +152,11 @@ internal List GetMenu(string root, string userName) string path = FMTPath + @"\\" + root; foreach (var xmlMenuItem in GetMenuItems(xmlNodeList[0], path, root, userName).MenuItems) { + bool hasRights = false; + //check if user has rights to see menu entry (rights via groups) - bool hasRights = HasUserAccessRights(root, userName, xmlMenuItem.Name); + hasRights = HasUserAccessRights(root, userName, xmlMenuItem.Name); + if (hasRights) menuItems.Add(xmlMenuItem); } @@ -157,12 +172,12 @@ internal void AppendToRootMenu(XElement newXElement) var newItemName = newXElement.Attribute("Name").Value; var lastXElement = xElement.Elements().FirstOrDefault(item => item.Attribute("Name").Value == newItemName); if (lastXElement != null) - lastXElement.Remove(); + lastXElement.Remove(); xElement.Add(newXElement); xElement.Save(menuConfigPath); } - FMTMenuItem GetMenuItems(XmlNode xmlNode, string directory, string root, string userName) + FMTMenuItem GetMenuItems(XmlNode xmlNode, string directory, string root, string userName = null) { if (xmlNode.Name != "Item" && xmlNode.Name != "Items") return null; @@ -175,6 +190,7 @@ FMTMenuItem GetMenuItems(XmlNode xmlNode, string directory, string root, string { //check if user has rights to see menu entry (rights via groups) bool hasRights = HasUserAccessRights(root, userName, childXmlNode.Attributes["Name"].Value); + if (hasRights) item.MenuItems.Add(GetMenuItems(childXmlNode, directory + @"\\" + childXmlNode.Attributes["Name"].Value, root, userName)); } @@ -216,7 +232,7 @@ FMTMenuItem CreateDirectoriesByXmlConfig(XmlNode xmlNode, string directory) string filenameOnly = System.IO.Path.GetFileName(directory); - if (filenameOnly.Length==0) + if (filenameOnly.Length == 0) Directory.CreateDirectory(directory); item.MenuItems = new List(); @@ -232,7 +248,7 @@ public XmlElement XElementToXmlElement(XElement el) doc.Load(el.CreateReader()); return doc.DocumentElement; } - + } - + } diff --git a/Views/SocialEcologicalFiles/SocialEcologicalFiles.cshtml b/Views/DmpFiles/DmpFiles.cshtml similarity index 93% rename from Views/SocialEcologicalFiles/SocialEcologicalFiles.cshtml rename to Views/DmpFiles/DmpFiles.cshtml index cecf4e3..97bb5cb 100644 --- a/Views/SocialEcologicalFiles/SocialEcologicalFiles.cshtml +++ b/Views/DmpFiles/DmpFiles.cshtml @@ -84,15 +84,15 @@ function loadFilesAndUploader() { val = SelectedValue; - contr = "SocialEcologicalFiles"; - adminContr = "SocialEcologicalFilesAdmin"; - $.get('@Url.Action("GetFileLists", "SocialEcologicalFiles", new { area="FMT"})', { menuItemPath: val, contollerName: contr }, function (data) { + contr = "DmpFiles"; + adminContr = "DmpFilesAdmin"; + $.get('@Url.Action("GetFileLists", "DmpFiles", new { area="FMT"})', { menuItemPath: val, contollerName: contr }, function (data) { $('#FMTFilesDIV').html(data); }); var adminrights = @Html.Raw(Json.Encode(ViewData["AdminRights"])); if (adminrights) { - $.get('@Url.Action("GetFileUploader", "SocialEcologicalFilesAdmin", new { area = "FMT" })', { menuItemPath: val, contollerName: adminContr }, function (data) { + $.get('@Url.Action("GetFileUploader", "DmpFilesAdmin", new { area = "FMT" })', { menuItemPath: val, contollerName: adminContr }, function (data) { $('#FMTFileUpload').html(data); }); } diff --git a/Views/SocialEcologicalFilesAdmin/readme.txt b/Views/DmpFilesAdmin/readme.txt similarity index 100% rename from Views/SocialEcologicalFilesAdmin/readme.txt rename to Views/DmpFilesAdmin/readme.txt diff --git a/Views/TechniciansFiles/TechniciansFiles.cshtml b/Views/TechniciansFiles/TechniciansFiles.cshtml new file mode 100644 index 0000000..4459e7e --- /dev/null +++ b/Views/TechniciansFiles/TechniciansFiles.cshtml @@ -0,0 +1,168 @@ +@using Telerik.Web.Mvc.UI +@using System.Collections.Generic +@using BExIS.Modules.FMT.UI.Models + +@model List + +@{ + + if (ViewBag.UseLayout == null) + { + Layout = null; + } +} +
+ +
+ + @Html.ValidationMessage("Error")
+ @if (Model == null) + { + + } + else + { + @Html.Telerik().TreeView().Name("TreeView").ShowCheckBox(false).ExpandAll(false).ClientEvents(events => events + .OnSelect("onSelect").OnLoad("click_node") + + ).BindTo(Model, mappings => + { + mappings.For + (binding => binding.ItemDataBound((item, menuItem) => + { + item.Text = menuItem.Title; + item.Value = menuItem.Path; + item.LinkHtmlAttributes["id"] = menuItem.Path.Replace("\\", "_"); + item.ImageUrl = menuItem.MenuItems.Any() ? "~/Areas/FMT/Images/FMT_Images/Folders.png" : "~/Areas/FMT/Images/FMT_Images/Folder.png"; + }) + .Children(category => category.MenuItems)); + mappings.For + (binding => binding + .ItemDataBound((item, subMenuItem) => + { + item.Text = subMenuItem.Title; + item.Value = subMenuItem.Path; + item.LinkHtmlAttributes["id"] = subMenuItem.Path.Replace("\\", "_"); + item.ImageUrl = subMenuItem.MenuItems.Any() ? "~/Areas/FMT/Images/FMT_Images/Folders.png" : "~/Areas/FMT/Images/FMT_Images/Folder.png"; + })); + }); + + + } + +
+ +
+
+
+
+
+
+ +
+
+
+ +
+
+
+ + + + \ No newline at end of file diff --git a/Views/TechniciansFilesAdmin/readme.txt b/Views/TechniciansFilesAdmin/readme.txt new file mode 100644 index 0000000..678ffc4 --- /dev/null +++ b/Views/TechniciansFilesAdmin/readme.txt @@ -0,0 +1 @@ +emty folder needed! \ No newline at end of file diff --git a/Views/ThematicGroupsFiles/ThematicGroupsFiles.cshtml b/Views/ThematicGroupsFiles/ThematicGroupsFiles.cshtml new file mode 100644 index 0000000..9db69af --- /dev/null +++ b/Views/ThematicGroupsFiles/ThematicGroupsFiles.cshtml @@ -0,0 +1,167 @@ +@using Telerik.Web.Mvc.UI +@using System.Collections.Generic +@using BExIS.Modules.FMT.UI.Models + +@model List + +@{ + + if (ViewBag.UseLayout == null) + { + Layout = null; + } +} +
+ +
+ + @Html.ValidationMessage("Error")
+ @if (Model == null) + { + + } + else + { + @Html.Telerik().TreeView().Name("TreeView").ShowCheckBox(false).ExpandAll(false).ClientEvents(events => events + .OnSelect("onSelect").OnLoad("click_node") + + ).BindTo(Model, mappings => + { + mappings.For + (binding => binding.ItemDataBound((item, menuItem) => + { + item.Text = menuItem.Title; + item.Value = menuItem.Path; + item.LinkHtmlAttributes["id"] = menuItem.Path.Replace("\\", "_"); + item.ImageUrl = menuItem.MenuItems.Any() ? "~/Areas/FMT/Images/FMT_Images/Folders.png" : "~/Areas/FMT/Images/FMT_Images/Folder.png"; + }) + .Children(category => category.MenuItems)); + mappings.For + (binding => binding + .ItemDataBound((item, subMenuItem) => + { + item.Text = subMenuItem.Title; + item.Value = subMenuItem.Path; + item.LinkHtmlAttributes["id"] = subMenuItem.Path.Replace("\\", "_"); + item.ImageUrl = subMenuItem.MenuItems.Any() ? "~/Areas/FMT/Images/FMT_Images/Folders.png" : "~/Areas/FMT/Images/FMT_Images/Folder.png"; + })); + }); + + + } + +
+ +
+ +
+
+
+ +
+
+
+ +
+
+
+ + + + \ No newline at end of file diff --git a/Views/ThematicGroupsFilesAdmin/readme.txt b/Views/ThematicGroupsFilesAdmin/readme.txt new file mode 100644 index 0000000..678ffc4 --- /dev/null +++ b/Views/ThematicGroupsFilesAdmin/readme.txt @@ -0,0 +1 @@ +emty folder needed! \ No newline at end of file From 379cc828a3f30f52613fc73b2990bf6b2f96fb5d Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Wed, 21 Jan 2026 09:47:34 +0100 Subject: [PATCH 07/12] add publish profile for v4 prod test https://github.com/bexis/BExIS-intern/issues/804 --- .../BexisServer_v4-ProdTestsite.pubxml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Properties/PublishProfiles/BexisServer_v4-ProdTestsite.pubxml diff --git a/Properties/PublishProfiles/BexisServer_v4-ProdTestsite.pubxml b/Properties/PublishProfiles/BexisServer_v4-ProdTestsite.pubxml new file mode 100644 index 0000000..d8303cb --- /dev/null +++ b/Properties/PublishProfiles/BexisServer_v4-ProdTestsite.pubxml @@ -0,0 +1,18 @@ + + + + + FileSystem + FileSystem + Release + Any CPU + + True + False + C:\inetpub\wwwroot\v4-ProdTestsite\Site\Areas\FMT + False + + \ No newline at end of file From bd9a6447235857ca3828c5552d7a5e4f1af3b76e Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Mon, 2 Feb 2026 16:20:03 +0100 Subject: [PATCH 08/12] add PublishProfile --- BExIS.Modules.Fmt.UI.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/BExIS.Modules.Fmt.UI.csproj b/BExIS.Modules.Fmt.UI.csproj index 0dac71a..1b8d9af 100644 --- a/BExIS.Modules.Fmt.UI.csproj +++ b/BExIS.Modules.Fmt.UI.csproj @@ -192,6 +192,7 @@ + From 003519157473e02fcd2071d57937567792f9fe73 Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Mon, 13 Apr 2026 10:48:10 +0200 Subject: [PATCH 09/12] Sorting date in table #77 --- Views/Shared/_fileList.cshtml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Views/Shared/_fileList.cshtml b/Views/Shared/_fileList.cshtml index d914b02..67389bd 100644 --- a/Views/Shared/_fileList.cshtml +++ b/Views/Shared/_fileList.cshtml @@ -44,7 +44,9 @@ @Html.ActionLink(linkText: file.Filename, actionName: "DownloadFile", controllerName: file.controllerName, routeValues: new { path = file.Filepath, mimeType = file.MimeType }, htmlAttributes: null) @filesize - @file.Date.ToString("dd-MM-yyyy") + + @file.Date.ToString("dd-MM-yyyy") + @if (file.HasRights) { From 09ae521156e35837b4740a1bfc46a7eadf3117e4 Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Wed, 29 Apr 2026 11:30:15 +0200 Subject: [PATCH 10/12] Change security manager calls for B2 v4.3.0 #79 --- Controllers/BaseFileManagementController.cs | 17 +++++++++++----- Helper/MenuHelper.cs | 22 +++++++++++++-------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/Controllers/BaseFileManagementController.cs b/Controllers/BaseFileManagementController.cs index ffbf014..5711cbf 100644 --- a/Controllers/BaseFileManagementController.cs +++ b/Controllers/BaseFileManagementController.cs @@ -19,6 +19,16 @@ namespace BExIS.Modules.Fmt.UI.Controllers { public class BaseFileManagementController : Controller { + private readonly UserManager _userManager; + + public BaseFileManagementController(UserManager userManager) + { + _userManager = userManager; + } + public BaseFileManagementController() + { + + } public ActionResult Show(string viewName, string rootMenu, string viewTitle) { @@ -28,11 +38,10 @@ public ActionResult Show(string viewName, string rootMenu, string viewTitle) if (!String.IsNullOrEmpty(userName)) { - using (UserManager userManager = new UserManager()) using (FeaturePermissionManager featurePermissionManager = new FeaturePermissionManager()) using (FeatureManager featureManager = new FeatureManager()) { - var user = userManager.FindByNameAsync(userName).Result; + var user = _userManager.FindByNameAsync(userName).Result; var feature = featureManager.FindByName(viewName + "Admin"); hasAdminRights = featurePermissionManager.HasAccessAsync(user.Id, feature.Id).Result; } @@ -78,10 +87,8 @@ public ActionResult GetFileLists(string menuItemPath, string contollerName) //check user permissions for delete using (var featurePermissionManager = new FeaturePermissionManager()) using (var featureManager = new FeatureManager()) - using (UserManager userManager = new UserManager()) { - - var userTask = userManager.FindByNameAsync(userName); + var userTask = _userManager.FindByNameAsync(userName); userTask.Wait(); var user = userTask.Result; List features = featureManager.FeatureRepository.Get().ToList(); diff --git a/Helper/MenuHelper.cs b/Helper/MenuHelper.cs index d6d2982..391c8e3 100644 --- a/Helper/MenuHelper.cs +++ b/Helper/MenuHelper.cs @@ -18,6 +18,17 @@ namespace BExIS.Modules.FMT.UI.Helper { public class MenuHelper { + private readonly UserManager _userManager; + + public MenuHelper(UserManager userManager) + { + _userManager = userManager; + } + + public MenuHelper() + { + + } private XmlDocument GetMenuXmlDoc() { string FMTPath = Path.Combine(AppConfiguration.DataPath, "FMT"); @@ -70,11 +81,9 @@ internal bool HasUserAccessRights(string root, string userName = null, string no { if (!String.IsNullOrEmpty(userName)) { - using (UserManager userManager = new UserManager()) - { foreach (string roleName in rootGroups) { - var userTask = userManager.FindByNameAsync(userName); + var userTask = _userManager.FindByNameAsync(userName); userTask.Wait(); var user = userTask.Result; @@ -84,7 +93,6 @@ internal bool HasUserAccessRights(string root, string userName = null, string no break; } } - } } } else @@ -108,11 +116,10 @@ internal bool HasUserAccessRights(string root, string userName = null, string no if (!String.IsNullOrEmpty(userName)) { var nodeGroups = temp.Split(','); - using (UserManager userManager = new UserManager()) - { + foreach (string roleName in nodeGroups) { - var userTask = userManager.FindByNameAsync(userName); + var userTask = _userManager.FindByNameAsync(userName); userTask.Wait(); var user = userTask.Result; @@ -122,7 +129,6 @@ internal bool HasUserAccessRights(string root, string userName = null, string no break; } } - } } } } From e4b0521072ab577455c94a7ece47364355894a64 Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Mon, 4 May 2026 15:15:41 +0200 Subject: [PATCH 11/12] fix security manager calls #79 --- Controllers/BaseFileManagementController.cs | 25 ++++++++++++--------- Helper/MenuHelper.cs | 3 ++- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/Controllers/BaseFileManagementController.cs b/Controllers/BaseFileManagementController.cs index 5711cbf..182d12a 100644 --- a/Controllers/BaseFileManagementController.cs +++ b/Controllers/BaseFileManagementController.cs @@ -1,18 +1,19 @@ -using System; +using BExIS.Modules.FMT.UI.Helper; +using BExIS.Modules.FMT.UI.Models; +using BExIS.Security.Entities.Objects; +using BExIS.Security.Services.Authorization; +using BExIS.Security.Services.Objects; +using BExIS.Security.Services.Subjects; +using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Web; using System.Web.Mvc; -using BExIS.Modules.FMT.UI.Models; -using BExIS.Modules.FMT.UI.Helper; -using BExIS.Security.Services.Authorization; -using BExIS.Security.Services.Subjects; -using BExIS.Security.Entities.Objects; -using BExIS.Security.Services.Objects; +using Vaiona.IoC; using Vaiona.Utils.Cfg; -using System.IO; -using Vaiona.Web.Mvc.Models; using Vaiona.Web.Extensions; +using Vaiona.Web.Mvc.Models; using Vaiona.Web.Mvc.Modularity; namespace BExIS.Modules.Fmt.UI.Controllers @@ -27,7 +28,7 @@ public BaseFileManagementController(UserManager userManager) } public BaseFileManagementController() { - + _userManager = IoCFactory.Container.Resolve(); } public ActionResult Show(string viewName, string rootMenu, string viewTitle) @@ -41,7 +42,9 @@ public ActionResult Show(string viewName, string rootMenu, string viewTitle) using (FeaturePermissionManager featurePermissionManager = new FeaturePermissionManager()) using (FeatureManager featureManager = new FeatureManager()) { - var user = _userManager.FindByNameAsync(userName).Result; + var userTask = _userManager.FindByNameAsync(userName); + userTask.Wait(); + var user = userTask.Result; var feature = featureManager.FindByName(viewName + "Admin"); hasAdminRights = featurePermissionManager.HasAccessAsync(user.Id, feature.Id).Result; } diff --git a/Helper/MenuHelper.cs b/Helper/MenuHelper.cs index 391c8e3..581e207 100644 --- a/Helper/MenuHelper.cs +++ b/Helper/MenuHelper.cs @@ -12,6 +12,7 @@ using System.Web; using System.Xml; using System.Xml.Linq; +using Vaiona.IoC; using Vaiona.Utils.Cfg; namespace BExIS.Modules.FMT.UI.Helper @@ -27,7 +28,7 @@ public MenuHelper(UserManager userManager) public MenuHelper() { - + _userManager = IoCFactory.Container.Resolve(); } private XmlDocument GetMenuXmlDoc() { From 1e3e8a7c7208d9697a8b184de9dc72afc89f8dbf Mon Sep 17 00:00:00 2001 From: Eleonora Petzold Date: Wed, 10 Jun 2026 11:23:20 +0200 Subject: [PATCH 12/12] puplish profile dev instance https://github.com/bexis/BExIS-intern/issues/804 --- BExIS.Modules.Fmt.UI.csproj | 3 +-- ...te.pubxml => BexisServer_BE_DevSite.pubxml} | 2 +- .../BexisServer_v4-ProdTestsite.pubxml | 18 ------------------ 3 files changed, 2 insertions(+), 21 deletions(-) rename Properties/PublishProfiles/{BexisServer_2030-testsite.pubxml => BexisServer_BE_DevSite.pubxml} (91%) delete mode 100644 Properties/PublishProfiles/BexisServer_v4-ProdTestsite.pubxml diff --git a/BExIS.Modules.Fmt.UI.csproj b/BExIS.Modules.Fmt.UI.csproj index 1b8d9af..6540c78 100644 --- a/BExIS.Modules.Fmt.UI.csproj +++ b/BExIS.Modules.Fmt.UI.csproj @@ -191,8 +191,7 @@ - - + diff --git a/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml b/Properties/PublishProfiles/BexisServer_BE_DevSite.pubxml similarity index 91% rename from Properties/PublishProfiles/BexisServer_2030-testsite.pubxml rename to Properties/PublishProfiles/BexisServer_BE_DevSite.pubxml index a738352..59bcbc5 100644 --- a/Properties/PublishProfiles/BexisServer_2030-testsite.pubxml +++ b/Properties/PublishProfiles/BexisServer_BE_DevSite.pubxml @@ -12,7 +12,7 @@ indem Sie diese MSBuild-Datei bearbeiten. Weitere Informationen hierzu finden Si True False - C:\inetpub\wwwroot\2030-TestSite\Site\Areas\FMT + C:\inetpub\wwwroot\BE_DevSite\Site\Areas\FMT False \ No newline at end of file diff --git a/Properties/PublishProfiles/BexisServer_v4-ProdTestsite.pubxml b/Properties/PublishProfiles/BexisServer_v4-ProdTestsite.pubxml deleted file mode 100644 index d8303cb..0000000 --- a/Properties/PublishProfiles/BexisServer_v4-ProdTestsite.pubxml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - FileSystem - FileSystem - Release - Any CPU - - True - False - C:\inetpub\wwwroot\v4-ProdTestsite\Site\Areas\FMT - False - - \ No newline at end of file