fix #4353 - add defensive logic when sending notifications and improve performance

This commit is contained in:
sbwalker
2024-06-26 09:09:06 -04:00
parent 73abc511a8
commit 03f081f3f4
4 changed files with 26 additions and 14 deletions

View File

@ -7,6 +7,7 @@ namespace Oqtane.Repository
{
IEnumerable<UserRole> GetUserRoles(int siteId);
IEnumerable<UserRole> GetUserRoles(int userId, int siteId);
IEnumerable<UserRole> GetUserRoles(string roleName, int siteId);
UserRole AddUserRole(UserRole userRole);
UserRole UpdateUserRole(UserRole userRole);
UserRole GetUserRole(int userRoleId);

View File

@ -23,16 +23,25 @@ namespace Oqtane.Repository
return db.UserRole
.Include(item => item.Role) // eager load roles
.Include(item => item.User) // eager load users
.Where(item => item.Role.SiteId == siteId || item.Role.SiteId == null).ToList();
.Where(item => item.Role.SiteId == siteId || item.Role.SiteId == null || siteId == -1).ToList();
}
public IEnumerable<UserRole> GetUserRoles(int userId, int siteId)
{
using var db = _dbContextFactory.CreateDbContext();
return db.UserRole.Where(item => item.UserId == userId)
return db.UserRole
.Include(item => item.Role) // eager load roles
.Include(item => item.User) // eager load users
.Where(item => item.Role.SiteId == siteId || item.Role.SiteId == null || siteId == -1).ToList();
.Where(item => (item.Role.SiteId == siteId || item.Role.SiteId == null || siteId == -1) && item.UserId == userId).ToList();
}
public IEnumerable<UserRole> GetUserRoles(string roleName, int siteId)
{
using var db = _dbContextFactory.CreateDbContext();
return db.UserRole
.Include(item => item.Role) // eager load roles
.Include(item => item.User) // eager load users
.Where(item => (item.Role.SiteId == siteId || item.Role.SiteId == null || siteId == -1) && item.Role.Name == roleName).ToList();
}
public UserRole AddUserRole(UserRole userRole)