Merge pull request #5339 from sbwalker/dev
fix #5329 - clear Options after updating User Settings
This commit is contained in:
commit
5543a4aeed
@ -24,26 +24,50 @@ namespace Oqtane.Controllers
|
|||||||
private readonly IPageModuleRepository _pageModules;
|
private readonly IPageModuleRepository _pageModules;
|
||||||
private readonly IUserPermissions _userPermissions;
|
private readonly IUserPermissions _userPermissions;
|
||||||
private readonly ISyncManager _syncManager;
|
private readonly ISyncManager _syncManager;
|
||||||
private readonly IAliasAccessor _aliasAccessor;
|
|
||||||
private readonly IOptionsMonitorCache<CookieAuthenticationOptions> _cookieCache;
|
private readonly IOptions<CookieAuthenticationOptions> _cookieOptions;
|
||||||
private readonly IOptionsMonitorCache<OpenIdConnectOptions> _oidcCache;
|
private readonly IOptionsSnapshot<CookieAuthenticationOptions> _cookieOptionsSnapshot;
|
||||||
private readonly IOptionsMonitorCache<OAuthOptions> _oauthCache;
|
private readonly IOptionsMonitorCache<CookieAuthenticationOptions> _cookieOptionsMonitorCache;
|
||||||
private readonly IOptionsMonitorCache<IdentityOptions> _identityCache;
|
|
||||||
|
private readonly IOptions<OpenIdConnectOptions> _oidcOptions;
|
||||||
|
private readonly IOptionsSnapshot<OpenIdConnectOptions> _oidcOptionsSnapshot;
|
||||||
|
private readonly IOptionsMonitorCache<OpenIdConnectOptions> _oidcOptionsMonitorCache;
|
||||||
|
|
||||||
|
private readonly IOptions<OAuthOptions> _oauthOptions;
|
||||||
|
private readonly IOptionsSnapshot<OAuthOptions> _oauthOptionsSnapshot;
|
||||||
|
private readonly IOptionsMonitorCache<OAuthOptions> _oauthOptionsMonitorCache;
|
||||||
|
|
||||||
|
private readonly IOptions<IdentityOptions> _identityOptions;
|
||||||
|
private readonly IOptionsSnapshot<IdentityOptions> _identityOptionsSnapshot;
|
||||||
|
private readonly IOptionsMonitorCache<IdentityOptions> _identityOptionsMonitorCache;
|
||||||
|
|
||||||
private readonly ILogManager _logger;
|
private readonly ILogManager _logger;
|
||||||
private readonly Alias _alias;
|
private readonly Alias _alias;
|
||||||
private readonly string _visitorCookie;
|
private readonly string _visitorCookie;
|
||||||
|
|
||||||
public SettingController(ISettingRepository settings, IPageModuleRepository pageModules, IUserPermissions userPermissions, ITenantManager tenantManager, ISyncManager syncManager, IAliasAccessor aliasAccessor, IOptionsMonitorCache<CookieAuthenticationOptions> cookieCache, IOptionsMonitorCache<OpenIdConnectOptions> oidcCache, IOptionsMonitorCache<OAuthOptions> oauthCache, IOptionsMonitorCache<IdentityOptions> identityCache, ILogManager logger)
|
public SettingController(ISettingRepository settings, IPageModuleRepository pageModules, IUserPermissions userPermissions, ITenantManager tenantManager, ISyncManager syncManager,
|
||||||
|
IOptions<CookieAuthenticationOptions> cookieOptions, IOptionsSnapshot<CookieAuthenticationOptions> cookieOptionsSnapshot, IOptionsMonitorCache<CookieAuthenticationOptions> cookieOptionsMonitorCache,
|
||||||
|
IOptions<OpenIdConnectOptions> oidcOptions, IOptionsSnapshot<OpenIdConnectOptions> oidcOptionsSnapshot, IOptionsMonitorCache<OpenIdConnectOptions> oidcOptionsMonitorCache,
|
||||||
|
IOptions<OAuthOptions> oauthOptions, IOptionsSnapshot<OAuthOptions> oauthOptionsSnapshot, IOptionsMonitorCache<OAuthOptions> oauthOptionsMonitorCache,
|
||||||
|
IOptions<IdentityOptions> identityOptions, IOptionsSnapshot<IdentityOptions> identityOptionsSnapshot, IOptionsMonitorCache<IdentityOptions> identityOptionsMonitorCache,
|
||||||
|
ILogManager logger)
|
||||||
{
|
{
|
||||||
_settings = settings;
|
_settings = settings;
|
||||||
_pageModules = pageModules;
|
_pageModules = pageModules;
|
||||||
_userPermissions = userPermissions;
|
_userPermissions = userPermissions;
|
||||||
_syncManager = syncManager;
|
_syncManager = syncManager;
|
||||||
_aliasAccessor = aliasAccessor;
|
_cookieOptions = cookieOptions;
|
||||||
_cookieCache = cookieCache;
|
_cookieOptionsSnapshot = cookieOptionsSnapshot;
|
||||||
_oidcCache = oidcCache;
|
_cookieOptionsMonitorCache = cookieOptionsMonitorCache;
|
||||||
_oauthCache = oauthCache;
|
_oidcOptions = oidcOptions;
|
||||||
_identityCache = identityCache;
|
_oidcOptionsSnapshot = oidcOptionsSnapshot;
|
||||||
|
_oidcOptionsMonitorCache = oidcOptionsMonitorCache;
|
||||||
|
_oauthOptions = oauthOptions;
|
||||||
|
_oauthOptionsSnapshot = oauthOptionsSnapshot;
|
||||||
|
_oauthOptionsMonitorCache = oauthOptionsMonitorCache;
|
||||||
|
_identityOptions = identityOptions;
|
||||||
|
_identityOptionsSnapshot = identityOptionsSnapshot;
|
||||||
|
_identityOptionsMonitorCache = identityOptionsMonitorCache;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_alias = tenantManager.GetAlias();
|
_alias = tenantManager.GetAlias();
|
||||||
_visitorCookie = Constants.VisitorCookiePrefix + _alias.SiteId.ToString();
|
_visitorCookie = Constants.VisitorCookiePrefix + _alias.SiteId.ToString();
|
||||||
@ -210,21 +234,21 @@ namespace Oqtane.Controllers
|
|||||||
[Authorize(Roles = RoleNames.Admin)]
|
[Authorize(Roles = RoleNames.Admin)]
|
||||||
public void Clear()
|
public void Clear()
|
||||||
{
|
{
|
||||||
// clear SiteOptionsCache for each option type
|
(_cookieOptions as SiteOptionsManager<CookieAuthenticationOptions>).Reset();
|
||||||
var cookieCache = new SiteOptionsCache<CookieAuthenticationOptions>(_aliasAccessor);
|
(_cookieOptionsSnapshot as SiteOptionsManager<CookieAuthenticationOptions>).Reset();
|
||||||
cookieCache.Clear();
|
_cookieOptionsMonitorCache.Clear();
|
||||||
var oidcCache = new SiteOptionsCache<OpenIdConnectOptions>(_aliasAccessor);
|
|
||||||
oidcCache.Clear();
|
|
||||||
var oauthCache = new SiteOptionsCache<OAuthOptions>(_aliasAccessor);
|
|
||||||
oauthCache.Clear();
|
|
||||||
var identityCache = new SiteOptionsCache<IdentityOptions>(_aliasAccessor);
|
|
||||||
identityCache.Clear();
|
|
||||||
|
|
||||||
// clear IOptionsMonitorCache for each option type
|
(_oidcOptions as SiteOptionsManager<OpenIdConnectOptions>).Reset();
|
||||||
_cookieCache.Clear();
|
(_oidcOptionsSnapshot as SiteOptionsManager<OpenIdConnectOptions>).Reset();
|
||||||
_oidcCache.Clear();
|
_oidcOptionsMonitorCache.Clear();
|
||||||
_oauthCache.Clear();
|
|
||||||
_identityCache.Clear();
|
(_oauthOptions as SiteOptionsManager<OAuthOptions>).Reset();
|
||||||
|
(_oauthOptionsSnapshot as SiteOptionsManager<OAuthOptions>).Reset();
|
||||||
|
_oauthOptionsMonitorCache.Clear();
|
||||||
|
|
||||||
|
(_identityOptions as SiteOptionsManager<IdentityOptions>).Reset();
|
||||||
|
(_identityOptionsSnapshot as SiteOptionsManager<IdentityOptions>).Reset();
|
||||||
|
_identityOptionsMonitorCache.Clear();
|
||||||
|
|
||||||
_logger.Log(LogLevel.Information, this, LogFunction.Other, "Site Options Cache Cleared");
|
_logger.Log(LogLevel.Information, this, LogFunction.Other, "Site Options Cache Cleared");
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Oqtane.Models;
|
|
||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ namespace Oqtane.Infrastructure
|
|||||||
{
|
{
|
||||||
var cache = map.GetOrAdd(GetKey(), new OptionsCache<TOptions>());
|
var cache = map.GetOrAdd(GetKey(), new OptionsCache<TOptions>());
|
||||||
cache.Clear();
|
cache.Clear();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public TOptions GetOrAdd(string name, Func<TOptions> createOptions)
|
public TOptions GetOrAdd(string name, Func<TOptions> createOptions)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user