Took Database layout changes into account in frontend pages
This commit is contained in:
@@ -7,6 +7,8 @@ public interface IGroupRepository {
|
||||
|
||||
Task<IList<PermissionGroup>> GetDefaultGroups();
|
||||
|
||||
Task<IList<PermissionGroup>> GetUserGroups(User user);
|
||||
|
||||
Task<PermissionGroup> GetPermissionGroup(string name);
|
||||
|
||||
Task EditPermissionGroup(PermissionGroup group);
|
||||
|
||||
@@ -12,12 +12,7 @@ public interface IUserRepository {
|
||||
Task<User> GetUserByUsername(string username);
|
||||
|
||||
Task<User> AddUser(User user);
|
||||
|
||||
/// <summary>
|
||||
/// IMPORTANT:<br/>
|
||||
/// This function does not add or remove any permissions to the user.
|
||||
/// For that please use <see cref="IPermissionRepository"/>
|
||||
/// </summary>
|
||||
|
||||
Task UpdateUser(User user);
|
||||
|
||||
Task DeleteUser(User user);
|
||||
|
||||
@@ -17,6 +17,14 @@ internal sealed class GroupRepository<TDbContext>(TDbContext context) : IGroupRe
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public Task<IList<PermissionGroup>> GetUserGroups(User user) {
|
||||
return Task.FromResult((IList<PermissionGroup>) context.Groups
|
||||
.Include(g => g.Permissions)
|
||||
.AsEnumerable()
|
||||
.Where(g => user.Permissions.Any(p => p.PermissionName == g.Name))
|
||||
.ToList());
|
||||
}
|
||||
|
||||
public async Task<PermissionGroup> GetPermissionGroup(string name) {
|
||||
return await context.Groups
|
||||
.Include(g => g.Permissions)
|
||||
|
||||
@@ -11,7 +11,6 @@ internal sealed class UserRepository<TDbContext>(TDbContext context, IGroupRepos
|
||||
private IIncludableQueryable<User, IList<Token>> IncludeReferences() {
|
||||
return context.Users
|
||||
.Include(u => u.Permissions)
|
||||
.ThenInclude(p => p.Group)
|
||||
.Include(u => u.Tokens);
|
||||
}
|
||||
|
||||
@@ -47,7 +46,7 @@ internal sealed class UserRepository<TDbContext>(TDbContext context, IGroupRepos
|
||||
Email = user.Email,
|
||||
Username = user.Username,
|
||||
CreatedAt = DateTime.Now,
|
||||
Permissions = user.Permissions,
|
||||
Permissions = user.Permissions ?? new List<Permission>(),
|
||||
Tokens = user.Tokens
|
||||
};
|
||||
entry.Password = EncryptionManager.Hash(user.Password, Encoding.Default.GetBytes(entry.CreatedAt.ToString(CultureInfo.InvariantCulture)));
|
||||
@@ -56,13 +55,11 @@ internal sealed class UserRepository<TDbContext>(TDbContext context, IGroupRepos
|
||||
foreach (var group in defaultGroups) {
|
||||
entry.Permissions.Add(new Permission {
|
||||
PermissionName = group.Name,
|
||||
//TODO: Check if user needs to be set
|
||||
GrantedAt = DateTime.Now
|
||||
});
|
||||
}
|
||||
|
||||
await context.Users.AddAsync(entry);
|
||||
|
||||
|
||||
await context.SaveChangesAsync();
|
||||
return entry;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user