1
0
mirror of https://github.com/bitwarden/server.git synced 2025-06-30 15:42:48 -05:00

[PS-2390] Updating and adding items into folder and collection on import (#2717)

* PS-2390 Adding Id to the Collection/Folder RequestModel
replacing folder/collection when they already exist instead of creating a new one
Adding items to existing collections if the id matches

* PS-2390 Improved Folder/Collection RequestModel code design

* PS-2390 Removed whitespaces from FolderRequestModel

* PS-2390 Verifying if folder/collection belongs to user/organization when updating or creating a new one

* PS-2390 - Removed unnecessary null validation for Id on Folder/CollectionRequestModel

* PS-2390 - Added bulk methods to get and update folders at import

* PS-2390 - Added bulk methods to get and update collections at import org

* PS-2390 - Corrected sqlproj path to Folder_ReadByIdsAndUserId

* PS-2390 - Improved code readibility

* PS-2390 - Added newlines to EOF

* PS-2390 Remove logic to update folders/collections at import

* PS-2390 - removed unnecessary methods and imports

* PS-2390 - Removed unnecessary formatting change

* PS-2390 - Removed unused variable
This commit is contained in:
aj-rosado
2023-04-05 19:18:14 +01:00
committed by GitHub
parent 6551d9176b
commit 49f15d8cc1
7 changed files with 58 additions and 23 deletions

View File

@ -4,7 +4,7 @@ namespace Bit.Api.Models.Request.Accounts;
public class ImportCiphersRequestModel
{
public FolderRequestModel[] Folders { get; set; }
public FolderWithIdRequestModel[] Folders { get; set; }
public CipherRequestModel[] Ciphers { get; set; }
public KeyValuePair<int, int>[] FolderRelationships { get; set; }
}

View File

@ -23,7 +23,7 @@ public class CollectionRequestModel
});
}
public Collection ToCollection(Collection existingCollection)
public virtual Collection ToCollection(Collection existingCollection)
{
existingCollection.Name = Name;
existingCollection.ExternalId = ExternalId;
@ -37,3 +37,14 @@ public class CollectionBulkDeleteRequestModel
public IEnumerable<string> Ids { get; set; }
public string OrganizationId { get; set; }
}
public class CollectionWithIdRequestModel : CollectionRequestModel
{
public Guid? Id { get; set; }
public override Collection ToCollection(Collection existingCollection)
{
existingCollection.Id = Id ?? Guid.Empty;
return base.ToCollection(existingCollection);
}
}

View File

@ -4,7 +4,7 @@ namespace Bit.Api.Models.Request.Organizations;
public class ImportOrganizationCiphersRequestModel
{
public CollectionRequestModel[] Collections { get; set; }
public CollectionWithIdRequestModel[] Collections { get; set; }
public CipherRequestModel[] Ciphers { get; set; }
public KeyValuePair<int, int>[] CollectionRelationships { get; set; }
}

View File

@ -19,7 +19,7 @@ public class FolderRequestModel
});
}
public Folder ToFolder(Folder existingFolder)
public virtual Folder ToFolder(Folder existingFolder)
{
existingFolder.Name = Name;
return existingFolder;
@ -28,5 +28,11 @@ public class FolderRequestModel
public class FolderWithIdRequestModel : FolderRequestModel
{
public Guid Id { get; set; }
public Guid? Id { get; set; }
public override Folder ToFolder(Folder existingFolder)
{
existingFolder.Id = Id ?? Guid.Empty;
return base.ToFolder(existingFolder);
}
}