diff --git a/backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/AppsIndex.cs b/backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/AppsIndex.cs index 156b04edb..688d2204f 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/AppsIndex.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/AppsIndex.cs @@ -95,7 +95,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.Indexes var apps = await Task.WhenAll(ids - .SelectMany(x => x) + .SelectMany(x => x).Distinct() .Select(GetAppAsync)); return apps.Where(x => x != null).ToList(); diff --git a/backend/src/Squidex.Domain.Apps.Entities/Backup/UserMapping.cs b/backend/src/Squidex.Domain.Apps.Entities/Backup/UserMapping.cs index 7fddf3a3e..9d273dbbc 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Backup/UserMapping.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Backup/UserMapping.cs @@ -33,7 +33,7 @@ namespace Squidex.Domain.Apps.Entities.Backup public void Backup(RefToken token) { - Guard.NotNull(userMap); + Guard.NotNull(token); if (!token.IsSubject) { diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Apps/Indexes/AppsIndexTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Apps/Indexes/AppsIndexTests.cs index 7767f082c..fa487905d 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Apps/Indexes/AppsIndexTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Apps/Indexes/AppsIndexTests.cs @@ -70,6 +70,23 @@ namespace Squidex.Domain.Apps.Entities.Apps.Indexes Assert.Same(expected, actual[0]); } + [Fact] + public async Task Should_resolve_combined_apps() + { + var expected = SetupApp(0, false); + + A.CallTo(() => indexByName.GetIdsAsync(A.That.IsSameSequenceAs(new[] { appId.Name }))) + .Returns(new List { appId.Id }); + + A.CallTo(() => indexByUser.GetIdsAsync()) + .Returns(new List { appId.Id }); + + var actual = await sut.GetAppsForUserAsync(userId, new PermissionSet($"squidex.apps.{appId.Name}")); + + Assert.Single(actual); + Assert.Same(expected, actual[0]); + } + [Fact] public async Task Should_resolve_all_apps() {