1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-19 03:58:13 -05:00

return proper subvault ids for cipher details

This commit is contained in:
Kyle Spearrin 2017-03-24 09:42:06 -04:00
parent 10c72fafda
commit 84c5873cfd
2 changed files with 14 additions and 3 deletions

View File

@ -58,8 +58,11 @@ namespace Bit.Api.Controllers
{ {
var userId = _userService.GetProperUserId(User).Value; var userId = _userService.GetProperUserId(User).Value;
var ciphers = await _cipherRepository.GetManyByUserIdHasSubvaultsAsync(userId); var ciphers = await _cipherRepository.GetManyByUserIdHasSubvaultsAsync(userId);
var subvaultCiphers = await _subvaultCipherRepository.GetManyByUserIdAsync(userId); var subvaultCiphers = await _subvaultCipherRepository.GetManyByUserIdAsync(userId);
var responses = ciphers.Select(c => new CipherDetailsResponseModel(c, subvaultCiphers)); var subvaultCiphersGroupDict = subvaultCiphers.GroupBy(s => s.CipherId).ToDictionary(s => s.Key);
var responses = ciphers.Select(c => new CipherDetailsResponseModel(c, subvaultCiphersGroupDict));
return new ListResponseModel<CipherDetailsResponseModel>(responses); return new ListResponseModel<CipherDetailsResponseModel>(responses);
} }

View File

@ -44,10 +44,18 @@ namespace Bit.Core.Models.Api
public class CipherDetailsResponseModel : CipherResponseModel public class CipherDetailsResponseModel : CipherResponseModel
{ {
public CipherDetailsResponseModel(CipherDetails cipher, IEnumerable<SubvaultCipher> subvaultCipher) public CipherDetailsResponseModel(CipherDetails cipher,
IDictionary<Guid, IGrouping<Guid, SubvaultCipher>> subvaultCiphers)
: base(cipher, "cipherDetails") : base(cipher, "cipherDetails")
{ {
SubvaultIds = subvaultCipher.Select(s => s.SubvaultId); if(subvaultCiphers.ContainsKey(cipher.Id))
{
SubvaultIds = subvaultCiphers[cipher.Id].Select(s => s.SubvaultId);
}
else
{
SubvaultIds = new Guid[] { };
}
} }
public IEnumerable<Guid> SubvaultIds { get; set; } public IEnumerable<Guid> SubvaultIds { get; set; }