refactor: Entfernen der right_group-Eigenschaft aus der Representation-Entität

- Die Spalte `right_group` aus der `Representation`-Entität entfernt, um die Zuordnung von Benutzern oder Gruppen zu spezifischen Gruppen zu entfernen.
- Stattdessen wurde die `group`-Eigenschaft hinzugefügt, um flexible Zuordnungen zu ermöglichen.
- Ermöglicht nun `user-user`, `user-group`, `group-user` und `group-group` Repräsentationen.
This commit is contained in:
Developer 02
2024-09-09 17:25:12 +02:00
parent 75e708d02d
commit 25a4b0752b
15 changed files with 86 additions and 85 deletions

View File

@@ -5,6 +5,6 @@ namespace DigitalData.UserManager.Infrastructure.Contracts
{
public interface IUserRepRepository : ICRUDRepository<UserRep, int>
{
Task<IEnumerable<UserRep>> ReadAllAsync(bool withUser = false, bool withRepGroup = false, bool withRightGroup = false, bool withRepUser = false, int? userId = null);
Task<IEnumerable<UserRep>> ReadAllAsync(bool withUser = false, bool withRepGroup = false, bool withGroup = false, bool withRepUser = false, int? userId = null, int? groupId = null);
}
}

View File

@@ -12,9 +12,9 @@ namespace DigitalData.UserManager.Infrastructure.Repositories
{
}
public async Task<IEnumerable<UserRep>> ReadAllAsync(bool withUser = false, bool withRepGroup = false, bool withRightGroup = false, bool withRepUser = false, int? userId = null)
public async Task<IEnumerable<UserRep>> ReadAllAsync(bool withUser = false, bool withRepGroup = false, bool withGroup = false, bool withRepUser = false, int? userId = null, int? groupId = null)
{
var query = _dbSet.AsQueryable();
var query = _dbSet.AsNoTracking();
if (withUser)
query = query.Include(ur => ur.User);
@@ -22,8 +22,8 @@ namespace DigitalData.UserManager.Infrastructure.Repositories
if (withRepGroup)
query = query.Include(ur => ur.RepGroup);
if (withRightGroup)
query = query.Include(ur => ur.RightGroup);
if (withGroup)
query = query.Include(ur => ur.Group);
if (withRepUser)
query = query.Include(ur => ur.RepUser);
@@ -33,6 +33,11 @@ namespace DigitalData.UserManager.Infrastructure.Repositories
query = query.Where(ur => ur.UserId == userId);
}
if (groupId is not null)
{
query = query.Where(ur => ur.GroupId == groupId);
}
return await query.ToListAsync();
}
}