Merge pull request #4501 from sbwalker/dev
eliminate database call for authenticated users
This commit is contained in:
commit
f0e2c9f1b6
|
@ -261,15 +261,16 @@
|
||||||
// edit mode
|
// edit mode
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
if (querystring.ContainsKey("editmode") && querystring["edit"] == "true")
|
var editpageid = user.Settings.ContainsKey("CP-editmode") ? int.Parse(user.Settings["CP-editmode"], CultureInfo.InvariantCulture) : -1;
|
||||||
|
if ((querystring.ContainsKey("edit") && querystring["edit"] == "true") || page.PageId == editpageid)
|
||||||
{
|
{
|
||||||
editmode = true;
|
editmode = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
editmode = (page.PageId == ((user.Settings.ContainsKey("CP-editmode")) ? int.Parse(user.Settings["CP-editmode"], CultureInfo.InvariantCulture) : -1));
|
if (editpageid != -1)
|
||||||
if (!editmode)
|
|
||||||
{
|
{
|
||||||
|
// reset edit page
|
||||||
var userSettings = new Dictionary<string, string> { { "CP-editmode", "-1" } };
|
var userSettings = new Dictionary<string, string> { { "CP-editmode", "-1" } };
|
||||||
await SettingService.UpdateUserSettingsAsync(userSettings, user.UserId);
|
await SettingService.UpdateUserSettingsAsync(userSettings, user.UserId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,7 +109,7 @@ namespace Oqtane.Controllers
|
||||||
if (ModelState.IsValid && IsAuthorized(setting.EntityName, setting.EntityId, PermissionNames.Edit))
|
if (ModelState.IsValid && IsAuthorized(setting.EntityName, setting.EntityId, PermissionNames.Edit))
|
||||||
{
|
{
|
||||||
setting = _settings.AddSetting(setting);
|
setting = _settings.AddSetting(setting);
|
||||||
AddSyncEvent(setting.EntityName, setting.SettingId, SyncEventActions.Create);
|
AddSyncEvent(setting.EntityName, setting.EntityId, setting.SettingId, SyncEventActions.Create);
|
||||||
_logger.Log(LogLevel.Information, this, LogFunction.Create, "Setting Added {Setting}", setting);
|
_logger.Log(LogLevel.Information, this, LogFunction.Create, "Setting Added {Setting}", setting);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -131,7 +131,7 @@ namespace Oqtane.Controllers
|
||||||
if (ModelState.IsValid && setting.SettingId == id && IsAuthorized(setting.EntityName, setting.EntityId, PermissionNames.Edit))
|
if (ModelState.IsValid && setting.SettingId == id && IsAuthorized(setting.EntityName, setting.EntityId, PermissionNames.Edit))
|
||||||
{
|
{
|
||||||
setting = _settings.UpdateSetting(setting);
|
setting = _settings.UpdateSetting(setting);
|
||||||
AddSyncEvent(setting.EntityName, setting.SettingId, SyncEventActions.Update);
|
AddSyncEvent(setting.EntityName, setting.EntityId, setting.SettingId, SyncEventActions.Update);
|
||||||
_logger.Log(LogLevel.Information, this, LogFunction.Update, "Setting Updated {Setting}", setting);
|
_logger.Log(LogLevel.Information, this, LogFunction.Update, "Setting Updated {Setting}", setting);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -154,7 +154,7 @@ namespace Oqtane.Controllers
|
||||||
if (IsAuthorized(setting.EntityName, setting.EntityId, PermissionNames.Edit))
|
if (IsAuthorized(setting.EntityName, setting.EntityId, PermissionNames.Edit))
|
||||||
{
|
{
|
||||||
_settings.DeleteSetting(setting.EntityName, id);
|
_settings.DeleteSetting(setting.EntityName, id);
|
||||||
AddSyncEvent(setting.EntityName, setting.SettingId, SyncEventActions.Delete);
|
AddSyncEvent(setting.EntityName, setting.EntityId, setting.SettingId, SyncEventActions.Delete);
|
||||||
_logger.Log(LogLevel.Information, this, LogFunction.Delete, "Setting Deleted {Setting}", setting);
|
_logger.Log(LogLevel.Information, this, LogFunction.Delete, "Setting Deleted {Setting}", setting);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -300,7 +300,7 @@ namespace Oqtane.Controllers
|
||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddSyncEvent(string EntityName, int SettingId, string Action)
|
private void AddSyncEvent(string EntityName, int EntityId, int SettingId, string Action)
|
||||||
{
|
{
|
||||||
_syncManager.AddSyncEvent(_alias, EntityName + "Setting", SettingId, Action);
|
_syncManager.AddSyncEvent(_alias, EntityName + "Setting", SettingId, Action);
|
||||||
|
|
||||||
|
@ -311,6 +311,9 @@ namespace Oqtane.Controllers
|
||||||
case EntityNames.Site:
|
case EntityNames.Site:
|
||||||
_syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh);
|
_syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh);
|
||||||
break;
|
break;
|
||||||
|
case EntityNames.User:
|
||||||
|
_syncManager.AddSyncEvent(_alias, EntityName, EntityId, SyncEventActions.Update);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,19 +26,17 @@ namespace Oqtane.Controllers
|
||||||
private readonly IUserManager _userManager;
|
private readonly IUserManager _userManager;
|
||||||
private readonly ISiteRepository _sites;
|
private readonly ISiteRepository _sites;
|
||||||
private readonly IUserPermissions _userPermissions;
|
private readonly IUserPermissions _userPermissions;
|
||||||
private readonly ISettingRepository _settings;
|
|
||||||
private readonly IJwtManager _jwtManager;
|
private readonly IJwtManager _jwtManager;
|
||||||
private readonly IFileRepository _files;
|
private readonly IFileRepository _files;
|
||||||
private readonly ILogManager _logger;
|
private readonly ILogManager _logger;
|
||||||
|
|
||||||
public UserController(IUserRepository users, ITenantManager tenantManager, IUserManager userManager, ISiteRepository sites, IUserPermissions userPermissions, ISettingRepository settings, IJwtManager jwtManager, IFileRepository files, ILogManager logger)
|
public UserController(IUserRepository users, ITenantManager tenantManager, IUserManager userManager, ISiteRepository sites, IUserPermissions userPermissions, IJwtManager jwtManager, IFileRepository files, ILogManager logger)
|
||||||
{
|
{
|
||||||
_users = users;
|
_users = users;
|
||||||
_tenantManager = tenantManager;
|
_tenantManager = tenantManager;
|
||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
_sites = sites;
|
_sites = sites;
|
||||||
_userPermissions = userPermissions;
|
_userPermissions = userPermissions;
|
||||||
_settings = settings;
|
|
||||||
_jwtManager = jwtManager;
|
_jwtManager = jwtManager;
|
||||||
_files = files;
|
_files = files;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
|
@ -56,12 +54,6 @@ namespace Oqtane.Controllers
|
||||||
{
|
{
|
||||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
|
HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
List<Setting> settings = _settings.GetSettings(EntityNames.User, user.UserId).ToList();
|
|
||||||
user.Settings = settings.Where(item => !item.IsPrivate || _userPermissions.GetUser(User).UserId == user.UserId)
|
|
||||||
.ToDictionary(setting => setting.SettingName, setting => setting.SettingValue);
|
|
||||||
}
|
|
||||||
return Filter(user);
|
return Filter(user);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -83,12 +75,6 @@ namespace Oqtane.Controllers
|
||||||
{
|
{
|
||||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
|
HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
List<Setting> settings = _settings.GetSettings(EntityNames.User, user.UserId).ToList();
|
|
||||||
user.Settings = settings.Where(item => !item.IsPrivate || _userPermissions.GetUser(User).UserId == user.UserId)
|
|
||||||
.ToDictionary(setting => setting.SettingName, setting => setting.SettingValue);
|
|
||||||
}
|
|
||||||
return Filter(user);
|
return Filter(user);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -112,12 +98,6 @@ namespace Oqtane.Controllers
|
||||||
{
|
{
|
||||||
HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
|
HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
List<Setting> settings = _settings.GetSettings(EntityNames.User, user.UserId).ToList();
|
|
||||||
user.Settings = settings.Where(item => !item.IsPrivate || _userPermissions.GetUser(User).UserId == user.UserId)
|
|
||||||
.ToDictionary(setting => setting.SettingName, setting => setting.SettingValue);
|
|
||||||
}
|
|
||||||
return Filter(user);
|
return Filter(user);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -29,6 +29,12 @@ namespace Oqtane.Infrastructure.EventSubscribers
|
||||||
_cache.Remove($"assemblieslist:{syncEvent.TenantId}:{syncEvent.EntityId}");
|
_cache.Remove($"assemblieslist:{syncEvent.TenantId}:{syncEvent.EntityId}");
|
||||||
_cache.Remove($"assemblies:{syncEvent.TenantId}:{syncEvent.EntityId}");
|
_cache.Remove($"assemblies:{syncEvent.TenantId}:{syncEvent.EntityId}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// when a users settings are changed, the user cache item needs to be refreshed
|
||||||
|
if (syncEvent.EntityName == EntityNames.User && syncEvent.Action == SyncEventActions.Update)
|
||||||
|
{
|
||||||
|
_cache.Remove($"user:{syncEvent.EntityId}:{syncEvent.TenantId}:{syncEvent.SiteId}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,6 +64,9 @@ namespace Oqtane.Managers
|
||||||
{
|
{
|
||||||
user.SiteId = siteid;
|
user.SiteId = siteid;
|
||||||
user.Roles = GetUserRoles(user.UserId, user.SiteId);
|
user.Roles = GetUserRoles(user.UserId, user.SiteId);
|
||||||
|
List<Setting> settings = _settings.GetSettings(EntityNames.User, user.UserId).ToList();
|
||||||
|
user.Settings = settings.Where(item => !item.IsPrivate || user.UserId == user.UserId)
|
||||||
|
.ToDictionary(setting => setting.SettingName, setting => setting.SettingValue);
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
});
|
});
|
||||||
|
@ -74,8 +77,7 @@ namespace Oqtane.Managers
|
||||||
User user = _users.GetUser(username);
|
User user = _users.GetUser(username);
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
user.SiteId = siteid;
|
user = GetUser(user.UserId, siteid);
|
||||||
user.Roles = GetUserRoles(user.UserId, user.SiteId);
|
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
@ -85,8 +87,7 @@ namespace Oqtane.Managers
|
||||||
User user = _users.GetUser(username, email);
|
User user = _users.GetUser(username, email);
|
||||||
if (user != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
user.SiteId = siteid;
|
user = GetUser(user.UserId, siteid);
|
||||||
user.Roles = GetUserRoles(user.UserId, user.SiteId);
|
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user