mirror of
https://github.com/bitwarden/server
synced 2026-02-14 15:33:35 +00:00
[PM-30247] Previously archived items are not archived after import (#6824)
* support importing archived ciphers * preserve archived ciphers across org imports
This commit is contained in:
@@ -74,11 +74,6 @@ public class ImportCiphersController : Controller
|
||||
throw new BadRequestException("You cannot import this much data at once.");
|
||||
}
|
||||
|
||||
if (model.Ciphers.Any(c => c.ArchivedDate.HasValue))
|
||||
{
|
||||
throw new BadRequestException("You cannot import archived items into an organization.");
|
||||
}
|
||||
|
||||
var orgId = new Guid(organizationId);
|
||||
var collections = model.Collections.Select(c => c.ToCollection(orgId)).ToList();
|
||||
|
||||
|
||||
@@ -76,6 +76,12 @@ public class ImportCiphersCommand : IImportCiphersCommand
|
||||
{
|
||||
cipher.Favorites = $"{{\"{cipher.UserId.ToString().ToUpperInvariant()}\":true}}";
|
||||
}
|
||||
|
||||
if (cipher.UserId.HasValue && cipher.ArchivedDate.HasValue)
|
||||
{
|
||||
cipher.Archives = $"{{\"{cipher.UserId.Value.ToString().ToUpperInvariant()}\":\"" +
|
||||
$"{cipher.ArchivedDate.Value:yyyy-MM-ddTHH:mm:ss.fffffffZ}\"}}";
|
||||
}
|
||||
}
|
||||
|
||||
var userfoldersIds = (await _folderRepository.GetManyByUserIdAsync(importingUserId)).Select(f => f.Id).ToList();
|
||||
@@ -135,10 +141,16 @@ public class ImportCiphersCommand : IImportCiphersCommand
|
||||
}
|
||||
}
|
||||
|
||||
// Init. ids for ciphers
|
||||
foreach (var cipher in ciphers)
|
||||
{
|
||||
// Init. ids for ciphers
|
||||
cipher.SetNewId();
|
||||
|
||||
if (cipher.ArchivedDate.HasValue)
|
||||
{
|
||||
cipher.Archives = $"{{\"{importingUserId.ToString().ToUpperInvariant()}\":\"" +
|
||||
$"{cipher.ArchivedDate.Value:yyyy-MM-ddTHH:mm:ss.fffffffZ}\"}}";
|
||||
}
|
||||
}
|
||||
|
||||
var organizationCollectionsIds = (await _collectionRepository.GetManyByOrganizationIdAsync(org.Id)).Select(c => c.Id).ToList();
|
||||
|
||||
Reference in New Issue
Block a user