fix CharaDataGetShared

This commit is contained in:
Stanley Dimant
2025-01-22 02:31:38 +01:00
parent e00cc8e7eb
commit 2725f14f65

View File

@@ -129,7 +129,6 @@ public partial class MareHub
{ {
_logger.LogCallInfo(); _logger.LogCallInfo();
var allPairs = await GetAllPairInfo(UserUID).ConfigureAwait(false);
List<CharaData> sharedCharaData = []; List<CharaData> sharedCharaData = [];
var groups = await DbContext.GroupPairs var groups = await DbContext.GroupPairs
.Where(u => u.GroupUserUID == UserUID) .Where(u => u.GroupUserUID == UserUID)
@@ -138,7 +137,9 @@ public partial class MareHub
.ToListAsync() .ToListAsync()
.ConfigureAwait(false); .ConfigureAwait(false);
var validPairs = await GetAllPairedUnpausedUsers().ConfigureAwait(false); var pairs = (await GetAllPairInfo(UserUID).ConfigureAwait(false));
var individualPairs = pairs.Where(p => p.Value.IndividuallyPaired && (!p.Value.OwnPermissions?.IsPaused ?? false) && (!p.Value.OtherPermissions?.IsPaused ?? false)).Select(k => k.Key).ToList();
var allPairs = pairs.Where(p => (!p.Value.OwnPermissions?.IsPaused ?? false) && (!p.Value.OtherPermissions?.IsPaused ?? false)).Select(k => k.Key).ToList();
var allSharedDataByPair = await DbContext.CharaData var allSharedDataByPair = await DbContext.CharaData
.Include(u => u.Files) .Include(u => u.Files)
@@ -147,8 +148,10 @@ public partial class MareHub
.Include(u => u.Poses) .Include(u => u.Poses)
.Include(u => u.Uploader) .Include(u => u.Uploader)
.Where(p => p.UploaderUID != UserUID && p.ShareType == CharaDataShare.Shared) .Where(p => p.UploaderUID != UserUID && p.ShareType == CharaDataShare.Shared)
.Where(p => (validPairs.Contains(p.UploaderUID) .Where(p =>
|| (p.AllowedIndividiuals.Any(u => u.AllowedUserUID == UserUID || (u.AllowedGroupGID != null && groups.Contains(u.AllowedGroupGID)))))) (individualPairs.Contains(p.UploaderUID) && p.AccessType == CharaDataAccess.Individuals
|| (allPairs.Contains(p.UploaderUID) && p.AccessType == CharaDataAccess.AllPairs)
|| (p.AllowedIndividiuals.Any(u => u.AllowedUserUID == UserUID || (u.AllowedGroupGID != null && groups.Contains(u.AllowedGroupGID))))))
.AsSplitQuery() .AsSplitQuery()
.AsNoTracking() .AsNoTracking()
.ToListAsync() .ToListAsync()