From 7421df2970a53fa7f485dfa0135b13e792ded139 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Mon, 6 Apr 2020 13:25:19 -0400 Subject: [PATCH] fixed issues when running on WebAssembly, made IModule implementations consistent --- .../{Module.cs => ModuleInfo.cs} | 2 +- .../[Module]/{[Module].cs => [Module]Info.cs} | 2 +- .../Counter/{Module.cs => ModuleInfo.cs} | 2 +- .../Weather/{Module.cs => ModuleInfo.cs} | 2 +- Oqtane.Client/Program.cs | 1 + .../Controllers/ModuleDefinitionController.cs | 19 +++++++++++----- Oqtane.Server/Controllers/ThemeController.cs | 22 ++++++++++++++----- Oqtane.Server/Startup.cs | 3 --- 8 files changed, 35 insertions(+), 18 deletions(-) rename Oqtane.Client/Modules/Admin/ModuleCreator/{Module.cs => ModuleInfo.cs} (91%) rename Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Oqtane.Client/Modules/[Module]/{[Module].cs => [Module]Info.cs} (89%) rename Oqtane.Client/Modules/Counter/{Module.cs => ModuleInfo.cs} (87%) rename Oqtane.Client/Modules/Weather/{Module.cs => ModuleInfo.cs} (88%) diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Module.cs b/Oqtane.Client/Modules/Admin/ModuleCreator/ModuleInfo.cs similarity index 91% rename from Oqtane.Client/Modules/Admin/ModuleCreator/Module.cs rename to Oqtane.Client/Modules/Admin/ModuleCreator/ModuleInfo.cs index c57bf1a9..81b82a6d 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Module.cs +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/ModuleInfo.cs @@ -2,7 +2,7 @@ namespace Oqtane.Modules.Admin.ModuleCreator { - public class Module : IModule + public class ModuleInfo : IModule { public ModuleDefinition ModuleDefinition => new ModuleDefinition { diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Oqtane.Client/Modules/[Module]/[Module].cs b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Oqtane.Client/Modules/[Module]/[Module]Info.cs similarity index 89% rename from Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Oqtane.Client/Modules/[Module]/[Module].cs rename to Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Oqtane.Client/Modules/[Module]/[Module]Info.cs index 630b488e..5252730e 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Oqtane.Client/Modules/[Module]/[Module].cs +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/Oqtane.Client/Modules/[Module]/[Module]Info.cs @@ -3,7 +3,7 @@ using Oqtane.Modules; namespace Oqtane.Modules.[Module]s { - public class Module : IModule + public class ModuleInfo : IModule { public ModuleDefinition ModuleDefinition => new ModuleDefinition { diff --git a/Oqtane.Client/Modules/Counter/Module.cs b/Oqtane.Client/Modules/Counter/ModuleInfo.cs similarity index 87% rename from Oqtane.Client/Modules/Counter/Module.cs rename to Oqtane.Client/Modules/Counter/ModuleInfo.cs index dd2e0e35..053017f9 100644 --- a/Oqtane.Client/Modules/Counter/Module.cs +++ b/Oqtane.Client/Modules/Counter/ModuleInfo.cs @@ -2,7 +2,7 @@ namespace Oqtane.Modules.Counter { - public class Module : IModule + public class ModuleInfo : IModule { public ModuleDefinition ModuleDefinition => new ModuleDefinition { diff --git a/Oqtane.Client/Modules/Weather/Module.cs b/Oqtane.Client/Modules/Weather/ModuleInfo.cs similarity index 88% rename from Oqtane.Client/Modules/Weather/Module.cs rename to Oqtane.Client/Modules/Weather/ModuleInfo.cs index 99922df4..0588c563 100644 --- a/Oqtane.Client/Modules/Weather/Module.cs +++ b/Oqtane.Client/Modules/Weather/ModuleInfo.cs @@ -2,7 +2,7 @@ namespace Oqtane.Modules.Weather { - public class Module : IModule + public class ModuleInfo : IModule { public ModuleDefinition ModuleDefinition => new ModuleDefinition { diff --git a/Oqtane.Client/Program.cs b/Oqtane.Client/Program.cs index 4172834b..9e4e1261 100644 --- a/Oqtane.Client/Program.cs +++ b/Oqtane.Client/Program.cs @@ -20,6 +20,7 @@ namespace Oqtane.Client builder.RootComponents.Add("app"); builder.Services.AddBaseAddressHttpClient(); + builder.Services.AddOptions(); // register auth services builder.Services.AddAuthorizationCore(); diff --git a/Oqtane.Server/Controllers/ModuleDefinitionController.cs b/Oqtane.Server/Controllers/ModuleDefinitionController.cs index 3f0f1e84..6ed8b830 100644 --- a/Oqtane.Server/Controllers/ModuleDefinitionController.cs +++ b/Oqtane.Server/Controllers/ModuleDefinitionController.cs @@ -122,13 +122,22 @@ namespace Oqtane.Controllers } } - // GET api//load/filename - [HttpGet("load/{filename}")] + // GET api//load/assembyname + [HttpGet("load/{assemblyname}")] public IActionResult Load(string assemblyname) { - string binfolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); - byte[] file = System.IO.File.ReadAllBytes(Path.Combine(binfolder, assemblyname)); - return File(file, "application/octet-stream", assemblyname); + if (Path.GetExtension(assemblyname).ToLower() == ".dll") + { + string binfolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); + byte[] file = System.IO.File.ReadAllBytes(Path.Combine(binfolder, assemblyname)); + return File(file, "application/octet-stream", assemblyname); + } + else + { + _logger.Log(LogLevel.Error, this, LogFunction.Read, "User Not Authorized To Download Assembly {Assembly}", assemblyname); + HttpContext.Response.StatusCode = 401; + return null; + } } // POST api/?moduleid=x diff --git a/Oqtane.Server/Controllers/ThemeController.cs b/Oqtane.Server/Controllers/ThemeController.cs index 120e5d96..af7af8e1 100644 --- a/Oqtane.Server/Controllers/ThemeController.cs +++ b/Oqtane.Server/Controllers/ThemeController.cs @@ -75,13 +75,23 @@ namespace Oqtane.Controllers } } - // GET api//load/filename - [HttpGet("load/{filename}")] - public IActionResult Load(string filename) + // GET api//load/assembyname + [HttpGet("load/{assemblyname}")] + public IActionResult Load(string assemblyname) { - string binfolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); - byte[] file = System.IO.File.ReadAllBytes(Path.Combine(binfolder, filename)); - return File(file, "application/octet-stream", filename); + if (Path.GetExtension(assemblyname).ToLower() == ".dll") + { + string binfolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); + byte[] file = System.IO.File.ReadAllBytes(Path.Combine(binfolder, assemblyname)); + return File(file, "application/octet-stream", assemblyname); + } + else + { + _logger.Log(LogLevel.Error, this, LogFunction.Read, "User Not Authorized To Download Assembly {Assembly}", assemblyname); + HttpContext.Response.StatusCode = 401; + return null; + } } + } } diff --git a/Oqtane.Server/Startup.cs b/Oqtane.Server/Startup.cs index 714834e1..fc5825d2 100644 --- a/Oqtane.Server/Startup.cs +++ b/Oqtane.Server/Startup.cs @@ -218,11 +218,8 @@ namespace Oqtane installationManager.InstallPackages("Modules,Themes", false); app.UseHttpsRedirection(); - app.UseStaticFiles(); - app.UseBlazorFrameworkFiles(); - app.UseRouting(); app.UseAuthentication(); app.UseAuthorization();