diff --git a/LANCommander.Server.Services/Factories/IdentityContextFactory.cs b/LANCommander.Server.Services/Factories/IdentityContextFactory.cs index 48bf40f6..1d9d91fc 100644 --- a/LANCommander.Server.Services/Factories/IdentityContextFactory.cs +++ b/LANCommander.Server.Services/Factories/IdentityContextFactory.cs @@ -14,14 +14,14 @@ using System.Threading.Tasks; namespace LANCommander.Server.Services.Factories { - public class CustomUserStore : UserStore + public class CustomUserStore : UserStore { public CustomUserStore(DatabaseContext context) : base(context) { } } - public class CustomRoleStore : RoleStore + public class CustomRoleStore : RoleStore { public CustomRoleStore(DatabaseContext context) : base(context) { diff --git a/LANCommander.Server.Services/RoleService.cs b/LANCommander.Server.Services/RoleService.cs index 67ac1995..8f36f666 100644 --- a/LANCommander.Server.Services/RoleService.cs +++ b/LANCommander.Server.Services/RoleService.cs @@ -36,7 +36,7 @@ namespace LANCommander.Server.Services var result = await roleManager.CreateAsync(role); if (result.Succeeded) - return await roleManager.FindByNameAsync(role.Name); + return await GetAsync(role.Name); throw new AddRoleException(result, "Could not create role"); } @@ -88,7 +88,16 @@ namespace LANCommander.Server.Services public async Task> GetUsersAsync(string roleName) { - return await _identityContext.UserManager.GetUsersInRoleAsync(roleName); + var role = await Query(q => + { + return q + .Include(r => r.UserRoles) + .ThenInclude(ur => ur.User); + }).AsNoTracking().FirstOrDefaultAsync(r => r.Name.ToLower() == roleName.ToLower()); + + if (role != null && role.Users != null) + return role.Users; + return new List(); } } } diff --git a/LANCommander.Server/Startup/Identity.cs b/LANCommander.Server/Startup/Identity.cs index 5c15158d..7868a92d 100644 --- a/LANCommander.Server/Startup/Identity.cs +++ b/LANCommander.Server/Startup/Identity.cs @@ -28,7 +28,6 @@ public static class Identity .AddUserManager>() .AddSignInManager>() .AddRoleManager>() - .AddSignInManager() .AddDefaultTokenProviders(); builder.Services