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
|
||||
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;
|
||||
}
|
||||
else
|
||||
{
|
||||
editmode = (page.PageId == ((user.Settings.ContainsKey("CP-editmode")) ? int.Parse(user.Settings["CP-editmode"], CultureInfo.InvariantCulture) : -1));
|
||||
if (!editmode)
|
||||
if (editpageid != -1)
|
||||
{
|
||||
// reset edit page
|
||||
var userSettings = new Dictionary<string, string> { { "CP-editmode", "-1" } };
|
||||
await SettingService.UpdateUserSettingsAsync(userSettings, user.UserId);
|
||||
}
|
||||
|
|
|
@ -109,7 +109,7 @@ namespace Oqtane.Controllers
|
|||
if (ModelState.IsValid && IsAuthorized(setting.EntityName, setting.EntityId, PermissionNames.Edit))
|
||||
{
|
||||
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);
|
||||
}
|
||||
else
|
||||
|
@ -131,7 +131,7 @@ namespace Oqtane.Controllers
|
|||
if (ModelState.IsValid && setting.SettingId == id && IsAuthorized(setting.EntityName, setting.EntityId, PermissionNames.Edit))
|
||||
{
|
||||
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);
|
||||
}
|
||||
else
|
||||
|
@ -154,7 +154,7 @@ namespace Oqtane.Controllers
|
|||
if (IsAuthorized(setting.EntityName, setting.EntityId, PermissionNames.Edit))
|
||||
{
|
||||
_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);
|
||||
}
|
||||
else
|
||||
|
@ -300,7 +300,7 @@ namespace Oqtane.Controllers
|
|||
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);
|
||||
|
||||
|
@ -311,6 +311,9 @@ namespace Oqtane.Controllers
|
|||
case EntityNames.Site:
|
||||
_syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh);
|
||||
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 ISiteRepository _sites;
|
||||
private readonly IUserPermissions _userPermissions;
|
||||
private readonly ISettingRepository _settings;
|
||||
private readonly IJwtManager _jwtManager;
|
||||
private readonly IFileRepository _files;
|
||||
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;
|
||||
_tenantManager = tenantManager;
|
||||
_userManager = userManager;
|
||||
_sites = sites;
|
||||
_userPermissions = userPermissions;
|
||||
_settings = settings;
|
||||
_jwtManager = jwtManager;
|
||||
_files = files;
|
||||
_logger = logger;
|
||||
|
@ -56,12 +54,6 @@ namespace Oqtane.Controllers
|
|||
{
|
||||
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);
|
||||
}
|
||||
else
|
||||
|
@ -83,12 +75,6 @@ namespace Oqtane.Controllers
|
|||
{
|
||||
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);
|
||||
}
|
||||
else
|
||||
|
@ -112,12 +98,6 @@ namespace Oqtane.Controllers
|
|||
{
|
||||
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);
|
||||
}
|
||||
else
|
||||
|
|
|
@ -29,6 +29,12 @@ namespace Oqtane.Infrastructure.EventSubscribers
|
|||
_cache.Remove($"assemblieslist:{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.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;
|
||||
});
|
||||
|
@ -74,8 +77,7 @@ namespace Oqtane.Managers
|
|||
User user = _users.GetUser(username);
|
||||
if (user != null)
|
||||
{
|
||||
user.SiteId = siteid;
|
||||
user.Roles = GetUserRoles(user.UserId, user.SiteId);
|
||||
user = GetUser(user.UserId, siteid);
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
@ -85,8 +87,7 @@ namespace Oqtane.Managers
|
|||
User user = _users.GetUser(username, email);
|
||||
if (user != null)
|
||||
{
|
||||
user.SiteId = siteid;
|
||||
user.Roles = GetUserRoles(user.UserId, user.SiteId);
|
||||
user = GetUser(user.UserId, siteid);
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user