mirror of
https://github.com/bitwarden/server.git
synced 2026-01-31 06:03:12 +08:00
[PM-26405] Fix cipher favorite info being saved incorrectly on import (#6776)
This commit is contained in:
@@ -74,7 +74,7 @@ public class ImportCiphersCommand : IImportCiphersCommand
|
|||||||
|
|
||||||
if (cipher.UserId.HasValue && cipher.Favorite)
|
if (cipher.UserId.HasValue && cipher.Favorite)
|
||||||
{
|
{
|
||||||
cipher.Favorites = $"{{\"{cipher.UserId.ToString().ToUpperInvariant()}\":\"true\"}}";
|
cipher.Favorites = $"{{\"{cipher.UserId.ToString().ToUpperInvariant()}\":true}}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -135,6 +135,43 @@ public class ImportCiphersAsyncCommandTests
|
|||||||
Assert.Equal("You cannot import items into your personal vault because you are a member of an organization which forbids it.", exception.Message);
|
Assert.Equal("You cannot import items into your personal vault because you are a member of an organization which forbids it.", exception.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Theory, BitAutoData]
|
||||||
|
public async Task ImportIntoIndividualVaultAsync_FavoriteCiphers_PersistsFavoriteInfo(
|
||||||
|
Guid importingUserId,
|
||||||
|
List<CipherDetails> ciphers,
|
||||||
|
SutProvider<ImportCiphersCommand> sutProvider
|
||||||
|
)
|
||||||
|
{
|
||||||
|
sutProvider.GetDependency<IFeatureService>()
|
||||||
|
.IsEnabled(FeatureFlagKeys.PolicyRequirements)
|
||||||
|
.Returns(true);
|
||||||
|
|
||||||
|
sutProvider.GetDependency<IPolicyRequirementQuery>()
|
||||||
|
.GetAsync<OrganizationDataOwnershipPolicyRequirement>(importingUserId)
|
||||||
|
.Returns(new OrganizationDataOwnershipPolicyRequirement(
|
||||||
|
OrganizationDataOwnershipState.Disabled,
|
||||||
|
[]));
|
||||||
|
|
||||||
|
sutProvider.GetDependency<IFolderRepository>()
|
||||||
|
.GetManyByUserIdAsync(importingUserId)
|
||||||
|
.Returns(new List<Folder>());
|
||||||
|
|
||||||
|
var folders = new List<Folder>();
|
||||||
|
var folderRelationships = new List<KeyValuePair<int, int>>();
|
||||||
|
|
||||||
|
ciphers.ForEach(c =>
|
||||||
|
{
|
||||||
|
c.UserId = importingUserId;
|
||||||
|
c.Favorite = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
await sutProvider.Sut.ImportIntoIndividualVaultAsync(folders, ciphers, folderRelationships, importingUserId);
|
||||||
|
|
||||||
|
await sutProvider.GetDependency<ICipherRepository>()
|
||||||
|
.Received(1)
|
||||||
|
.CreateAsync(importingUserId, Arg.Is<IEnumerable<Cipher>>(ciphers => ciphers.All(c => c.Favorites == $"{{\"{importingUserId.ToString().ToUpperInvariant()}\":true}}")), Arg.Any<List<Folder>>());
|
||||||
|
}
|
||||||
|
|
||||||
[Theory, BitAutoData]
|
[Theory, BitAutoData]
|
||||||
public async Task ImportIntoOrganizationalVaultAsync_Success(
|
public async Task ImportIntoOrganizationalVaultAsync_Success(
|
||||||
Organization organization,
|
Organization organization,
|
||||||
|
|||||||
Reference in New Issue
Block a user