From aed71fbf96f51fad9b961e1b8cb13c76b44bc8a1 Mon Sep 17 00:00:00 2001 From: Pavel Vesely Date: Thu, 4 Jun 2020 07:10:45 +0200 Subject: [PATCH 1/2] Add possibility to switch off swagger on production. --- Oqtane.Server/Startup.cs | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Oqtane.Server/Startup.cs b/Oqtane.Server/Startup.cs index 183547d2..b9f001bc 100644 --- a/Oqtane.Server/Startup.cs +++ b/Oqtane.Server/Startup.cs @@ -29,7 +29,8 @@ namespace Oqtane public IConfigurationRoot Configuration { get; } private string _webRoot; private Runtime _runtime; - + private bool _useSwagger; + public Startup(IWebHostEnvironment env) { var builder = new ConfigurationBuilder() @@ -37,9 +38,12 @@ namespace Oqtane .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); Configuration = builder.Build(); - _runtime = (Configuration.GetSection("Runtime").Value == "WebAssembly") ? Runtime.WebAssembly : Runtime.Server; + _runtime = (Configuration.GetSection("Runtime").Value == "WebAssembly") ? Runtime.WebAssembly : Runtime.Server; + + //add possibility to switch off swagger on production. + _useSwagger = Configuration.GetSection("UseSwagger").Value != "false"; - _webRoot = env.WebRootPath; + _webRoot = env.WebRootPath; AppDomain.CurrentDomain.SetData("DataDirectory", Path.Combine(env.ContentRootPath, "Data")); } @@ -47,7 +51,6 @@ namespace Oqtane // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { - services.AddServerSideBlazor(); // setup HttpClient for server side in a client side compatible fashion ( with auth cookie ) @@ -59,7 +62,7 @@ namespace Oqtane var navigationManager = s.GetRequiredService(); var httpContextAccessor = s.GetRequiredService(); var authToken = httpContextAccessor.HttpContext.Request.Cookies[".AspNetCore.Identity.Application"]; - var client = new HttpClient(new HttpClientHandler { UseCookies = false }); + var client = new HttpClient(new HttpClientHandler {UseCookies = false}); if (authToken != null) { client.DefaultRequestHeaders.Add("Cookie", ".AspNetCore.Identity.Application=" + authToken); @@ -121,7 +124,7 @@ namespace Oqtane .AddEntityFrameworkStores() .AddSignInManager() .AddDefaultTokenProviders(); - + services.Configure(options => { // Password settings @@ -199,14 +202,12 @@ namespace Oqtane services.AddMvc() .AddNewtonsoftJson() .AddOqtaneApplicationParts() // register any Controllers from custom modules - .ConfigureOqtaneMvc(); // any additional configuration from IStart classes. + .ConfigureOqtaneMvc(); // any additional configuration from IStart classes. - services.AddSwaggerGen(c => + if (_useSwagger) { - c.SwaggerDoc("v1", new OpenApiInfo { Title = "Oqtane", Version = "v1" }); - }); - - + services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo {Title = "Oqtane", Version = "v1"}); }); + } } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -230,11 +231,11 @@ namespace Oqtane app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); - app.UseSwagger(); - app.UseSwaggerUI(c => + if (_useSwagger) { - c.SwaggerEndpoint("/swagger/v1/swagger.json", "Oqtane V1"); - }); + app.UseSwagger(); + app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "Oqtane V1"); }); + } app.UseEndpoints(endpoints => { @@ -242,7 +243,6 @@ namespace Oqtane endpoints.MapControllers(); endpoints.MapFallbackToPage("/_Host"); }); - } } } From 8053cc0af61ce11b1ce271abd9ff053aea26a054 Mon Sep 17 00:00:00 2001 From: Pavel Vesely Date: Fri, 12 Jun 2020 17:44:02 +0200 Subject: [PATCH 2/2] small fixes --- .../Modules/Controls/ActionLink.razor | 3 ++- Oqtane.Client/UI/SiteRouter.razor | 20 ++++++++++++------- Oqtane.Server/Controllers/UserController.cs | 2 +- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Oqtane.Client/Modules/Controls/ActionLink.razor b/Oqtane.Client/Modules/Controls/ActionLink.razor index 55c80411..39782c08 100644 --- a/Oqtane.Client/Modules/Controls/ActionLink.razor +++ b/Oqtane.Client/Modules/Controls/ActionLink.razor @@ -90,7 +90,8 @@ if (!string.IsNullOrEmpty(IconName)) { - _iconSpan = $" "; + _iconSpan = $"{(IconOnly?"":" ")}"; + } _url = EditUrl(Action, _parameters); diff --git a/Oqtane.Client/UI/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor index 429ff29f..76874800 100644 --- a/Oqtane.Client/UI/SiteRouter.razor +++ b/Oqtane.Client/UI/SiteRouter.razor @@ -361,20 +361,26 @@ string panes = ""; Type themetype = Type.GetType(page.ThemeType); - var themeobject = Activator.CreateInstance(themetype) as IThemeControl; - if (themeobject != null) + if (themetype != null) { - panes = themeobject.Panes; - page.Resources = ManagePageResources(page.Resources, themeobject.Resources); + var themeobject = Activator.CreateInstance(themetype) as IThemeControl; + if (themeobject != null) + { + panes = themeobject.Panes; + page.Resources = ManagePageResources(page.Resources, themeobject.Resources); + } } if (!string.IsNullOrEmpty(page.LayoutType)) { Type layouttype = Type.GetType(page.LayoutType); - var layoutobject = Activator.CreateInstance(layouttype) as ILayoutControl; - if (layoutobject != null) + if (layouttype != null) { - panes = layoutobject.Panes; + var layoutobject = Activator.CreateInstance(layouttype) as ILayoutControl; + if (layoutobject != null) + { + panes = layoutobject.Panes; + } } } diff --git a/Oqtane.Server/Controllers/UserController.cs b/Oqtane.Server/Controllers/UserController.cs index b0dc919c..6fb3c93b 100644 --- a/Oqtane.Server/Controllers/UserController.cs +++ b/Oqtane.Server/Controllers/UserController.cs @@ -75,7 +75,7 @@ namespace Oqtane.Controllers private User Filter(User user) { - if (user != null && !User.IsInRole(Constants.AdminRole) && User.Identity.Name != user.Username) + if (user != null && !User.IsInRole(Constants.AdminRole) && User.Identity.Name?.ToLower() != user.Username.ToLower()) { user.DisplayName = ""; user.Email = "";