Fix first time setup administrator creation

Fixes #206
This commit is contained in:
Pat Hartl 2025-03-13 01:24:09 -05:00
parent 442e8a35ef
commit 246ecefb02
3 changed files with 13 additions and 5 deletions

View file

@ -14,14 +14,14 @@ using System.Threading.Tasks;
namespace LANCommander.Server.Services.Factories
{
public class CustomUserStore : UserStore<User, Role, DatabaseContext, Guid>
public class CustomUserStore : UserStore<User, Role, DatabaseContext, Guid, UserClaim, UserRole, UserLogin, UserToken, RoleClaim>
{
public CustomUserStore(DatabaseContext context) : base(context)
{
}
}
public class CustomRoleStore : RoleStore<Role, DatabaseContext, Guid>
public class CustomRoleStore : RoleStore<Role, DatabaseContext, Guid, UserRole, RoleClaim>
{
public CustomRoleStore(DatabaseContext context) : base(context)
{

View file

@ -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<IEnumerable<User>> 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<User>();
}
}
}

View file

@ -28,7 +28,6 @@ public static class Identity
.AddUserManager<UserManager<User>>()
.AddSignInManager<SignInManager<User>>()
.AddRoleManager<RoleManager<Role>>()
.AddSignInManager()
.AddDefaultTokenProviders();
builder.Services