Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions source/DasBlog.Services/Interfaces/IDasBlogSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ namespace DasBlog.Services
{
public interface IDasBlogSettings : IUrlResolver, ITimeZoneService, IContentProcessor, IMailProvider, IUserManager
{
ISiteConfig SiteConfiguration { get; set; }
IMetaTags MetaTags { get; set; }
ISiteConfig SiteConfiguration { get; }
IMetaTags MetaTags { get; }
ISiteSecurityConfig SecurityConfiguration { get; }

IOEmbedProviders OEmbedProviders { get; set; }
IOEmbedProviders OEmbedProviders { get; }

string WebRootDirectory { get; }
}
Expand Down
2 changes: 0 additions & 2 deletions source/DasBlog.Web/Controllers/AdminController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,6 @@ public IActionResult Settings(DasBlogSettingsViewModel settings)
settings.Posts = posts;
return View("Settings", settings);
}
dasBlogSettings.SiteConfiguration = site;

if (!fileSystemBinaryManager.SaveMetaConfig(meta))
{
Expand All @@ -98,7 +97,6 @@ public IActionResult Settings(DasBlogSettingsViewModel settings)
settings.Posts = posts;
return View("Settings", settings);
}
dasBlogSettings.MetaTags = meta;

logger.LogInformation(new EventDataItem(EventCodes.Site, null, "Site settings updated"));

Expand Down
6 changes: 3 additions & 3 deletions source/DasBlog.Web/DasBlogServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using DasBlog.Managers;
using DasBlog.Managers;
using DasBlog.Managers.Interfaces;
using DasBlog.Services;
using DasBlog.Services.ActivityLogs;
Expand Down Expand Up @@ -63,6 +63,7 @@ public static IServiceCollection AddDasBlogManagers(this IServiceCollection serv
public static IServiceCollection AddDasBlogServices(this IServiceCollection services, IWebHostEnvironment env)
{
services
.AddSingleton<IDasBlogSettings, DasBlogSettings>()
.AddSingleton(env.ContentRootFileProvider)
.AddSingleton<SiteHttpContext>()
.AddSingleton<IUserDataRepo, UserDataRepo>()
Expand All @@ -78,8 +79,7 @@ public static IServiceCollection AddDasBlogServices(this IServiceCollection serv
.AddSingleton<IConfigFileService<SiteSecurityConfigData>, SiteSecurityConfigFileService>()
.AddSingleton<IExternalEmbeddingHandler, ExternalEmbeddingHandler>();

services
.AddTransient<IDasBlogSettings, DasBlogSettings>()
services
.AddTransient<IUserStore<DasBlogUser>, DasBlogUserStore>()
.AddTransient<IRoleStore<DasBlogRole>, DasBlogUserRoleStore>()
.AddTransient<IPrincipal>(provider => provider.GetService<IHttpContextAccessor>().HttpContext.User)
Expand Down
46 changes: 20 additions & 26 deletions source/DasBlog.Web/Settings/DasBlogSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,54 +24,48 @@ public class DasBlogSettings : IDasBlogSettings
{
private readonly string siteSecurityConfigFilePath;
private readonly ConfigFilePathsDataOption filePathDataOptions;

private readonly IOptionsMonitor<SiteConfig> siteConfigMonitor;
private readonly IOptionsMonitor<MetaTags> metaTagsMonitor;
private readonly IOptionsMonitor<OEmbedProviders> embedProvidersMonitor;

public DasBlogSettings(IWebHostEnvironment env, IOptionsMonitor<SiteConfig> siteConfig, IOptionsMonitor<MetaTags> metaTagsConfig,
IOptionsMonitor<OEmbedProviders> embedProvidersConfig,
IOptionsMonitor<OEmbedProviders> embedProvidersConfig,
ISiteSecurityConfig siteSecurityConfig, IOptions<ConfigFilePathsDataOption> optionsAccessor)
{
WebRootDirectory = env.ContentRootPath;
SiteConfiguration = siteConfig.CurrentValue;
OEmbedProviders = embedProvidersConfig.CurrentValue;
siteConfigMonitor = siteConfig;
metaTagsMonitor = metaTagsConfig;
embedProvidersMonitor = embedProvidersConfig;
SecurityConfiguration = siteSecurityConfig;
MetaTags = metaTagsConfig.CurrentValue;
filePathDataOptions = optionsAccessor.Value;

RssUrl = RelativeToRoot("feed/rss");
PingBackUrl = RelativeToRoot("feed/pingback");
CategoryUrl = RelativeToRoot("category");
ArchiveUrl = RelativeToRoot("archive");
MicroSummaryUrl = RelativeToRoot("site/microsummary");
RsdUrl = RelativeToRoot("feed/rsd");
ShortCutIconUrl = RelativeToRoot(string.Format("theme/{0}/favicon.ico", SiteConfiguration.Theme));
ThemeCssUrl = RelativeToRoot(string.Format("theme/{0}/custom.css", SiteConfiguration.Theme));

siteSecurityConfigFilePath = filePathDataOptions.SecurityConfigFilePath;
}

public string WebRootDirectory { get; }

public string PingBackUrl { get; }
public string PingBackUrl => RelativeToRoot("feed/pingback");

public string RssUrl => RelativeToRoot("feed/rss");

public string RssUrl { get; }
public string CategoryUrl => RelativeToRoot("category");

public string CategoryUrl { get; }
public string ArchiveUrl => RelativeToRoot("archive");

public string ArchiveUrl { get; }
public string MicroSummaryUrl => RelativeToRoot("site/microsummary");

public string MicroSummaryUrl { get; }
public string RsdUrl => RelativeToRoot("feed/rsd");

public string RsdUrl { get; }
public string ShortCutIconUrl => RelativeToRoot(string.Format("theme/{0}/favicon.ico", SiteConfiguration.Theme));

public string ShortCutIconUrl { get; }
public string ThemeCssUrl => RelativeToRoot(string.Format("theme/{0}/custom.css", SiteConfiguration.Theme));

public string ThemeCssUrl { get; }

public IMetaTags MetaTags { get; set; }
public IMetaTags MetaTags => metaTagsMonitor.CurrentValue;

public ISiteConfig SiteConfiguration { get; set; }
public ISiteConfig SiteConfiguration => siteConfigMonitor.CurrentValue;

public ISiteSecurityConfig SecurityConfiguration { get; }
public IOEmbedProviders OEmbedProviders { get; set; }
public IOEmbedProviders OEmbedProviders => embedProvidersMonitor.CurrentValue;

private static Regex htmlFilterRegex = new Regex("<(?<end>/)?(?<name>\\w+)((\\s+(?<attNameValue>(?<attName>\\w+)(\\s*=\\s*(?:\"(?<attVal>[^\"]*)\"|'(?<attVal>[^']*)'|(?<attVal>[^'\">\\s]+)))?))+\\s*|\\s*)(?<self>/)?>",
RegexOptions.CultureInvariant | RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Compiled);
Expand Down