Skip to content

Commit 0b70c42

Browse files
committed
Pass explicit userId into CreateAsync
1 parent fbfba2b commit 0b70c42

File tree

5 files changed

+12
-14
lines changed

5 files changed

+12
-14
lines changed

src/Core/Tools/ImportFeatures/ImportCiphersCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public async Task ImportIntoIndividualVaultAsync(
115115
}
116116

117117
// Create it all
118-
await _cipherRepository.CreateAsync(ciphers, newFolders);
118+
await _cipherRepository.CreateAsync(importingUserId, ciphers, newFolders);
119119

120120
// push
121121
await _pushService.PushSyncVaultAsync(importingUserId);

src/Core/Vault/Repositories/ICipherRepository.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ public interface ICipherRepository : IRepository<Cipher, Guid>
3232
Task DeleteByUserIdAsync(Guid userId);
3333
Task DeleteByOrganizationIdAsync(Guid organizationId);
3434
Task UpdateCiphersAsync(Guid userId, IEnumerable<Cipher> ciphers);
35-
Task CreateAsync(IEnumerable<Cipher> ciphers, IEnumerable<Folder> folders);
35+
/// <summary>
36+
/// Create ciphers and folders for the specified UserId. Must not be used to create organization owned items.
37+
/// </summary>
38+
Task CreateAsync(Guid userId, IEnumerable<Cipher> ciphers, IEnumerable<Folder> folders);
3639
Task CreateAsync(IEnumerable<Cipher> ciphers, IEnumerable<Collection> collections,
3740
IEnumerable<CollectionCipher> collectionCiphers, IEnumerable<CollectionUser> collectionUsers);
3841
Task SoftDeleteAsync(IEnumerable<Guid> ids, Guid userId);

src/Infrastructure.Dapper/Vault/Repositories/CipherRepository.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ await connection.ExecuteAsync(
484484
}
485485
}
486486

487-
public async Task CreateAsync(IEnumerable<Cipher> ciphers, IEnumerable<Folder> folders)
487+
public async Task CreateAsync(Guid userId, IEnumerable<Cipher> ciphers, IEnumerable<Folder> folders)
488488
{
489489
if (!ciphers.Any())
490490
{
@@ -518,7 +518,7 @@ public async Task CreateAsync(IEnumerable<Cipher> ciphers, IEnumerable<Folder> f
518518

519519
await connection.ExecuteAsync(
520520
$"[{Schema}].[User_BumpAccountRevisionDate]",
521-
new { Id = ciphers.First().UserId },
521+
new { Id = userId },
522522
commandType: CommandType.StoredProcedure, transaction: transaction);
523523

524524
transaction.Commit();

src/Infrastructure.EntityFramework/Vault/Repositories/CipherRepository.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ await UpdateCollectionsAsync(dbContext, cipher.Id,
142142
}
143143
}
144144

145-
public async Task CreateAsync(IEnumerable<Core.Vault.Entities.Cipher> ciphers, IEnumerable<Core.Vault.Entities.Folder> folders)
145+
public async Task CreateAsync(Guid userId, IEnumerable<Core.Vault.Entities.Cipher> ciphers,
146+
IEnumerable<Core.Vault.Entities.Folder> folders)
146147
{
147148
ciphers = ciphers.ToList();
148149
if (!ciphers.Any())
@@ -157,13 +158,7 @@ public async Task CreateAsync(IEnumerable<Core.Vault.Entities.Cipher> ciphers, I
157158
await dbContext.BulkCopyAsync(base.DefaultBulkCopyOptions, folderEntities);
158159
var cipherEntities = Mapper.Map<List<Cipher>>(ciphers);
159160
await dbContext.BulkCopyAsync(base.DefaultBulkCopyOptions, cipherEntities);
160-
161-
// Assumption: all ciphers belong to the same user
162-
var userId = ciphers.FirstOrDefault(c => c.UserId.HasValue)?.UserId;
163-
if (userId != null)
164-
{
165-
await dbContext.UserBumpAccountRevisionDateAsync(userId.Value);
166-
}
161+
await dbContext.UserBumpAccountRevisionDateAsync(userId);
167162

168163
await dbContext.SaveChangesAsync();
169164
}

test/Core.Test/Tools/ImportFeatures/ImportCiphersAsyncCommandTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public async Task ImportIntoIndividualVaultAsync_Success(
4949
await sutProvider.Sut.ImportIntoIndividualVaultAsync(folders, ciphers, folderRelationships, importingUserId);
5050

5151
// Assert
52-
await sutProvider.GetDependency<ICipherRepository>().Received(1).CreateAsync(ciphers, Arg.Any<List<Folder>>());
52+
await sutProvider.GetDependency<ICipherRepository>().Received(1).CreateAsync(importingUserId, ciphers, Arg.Any<List<Folder>>());
5353
await sutProvider.GetDependency<IPushNotificationService>().Received(1).PushSyncVaultAsync(importingUserId);
5454
}
5555

@@ -77,7 +77,7 @@ public async Task ImportIntoIndividualVaultAsync_WithPolicyRequirementsEnabled_W
7777

7878
await sutProvider.Sut.ImportIntoIndividualVaultAsync(folders, ciphers, folderRelationships, importingUserId);
7979

80-
await sutProvider.GetDependency<ICipherRepository>().Received(1).CreateAsync(ciphers, Arg.Any<List<Folder>>());
80+
await sutProvider.GetDependency<ICipherRepository>().Received(1).CreateAsync(importingUserId, ciphers, Arg.Any<List<Folder>>());
8181
await sutProvider.GetDependency<IPushNotificationService>().Received(1).PushSyncVaultAsync(importingUserId);
8282
}
8383

0 commit comments

Comments
 (0)