mirror of
https://github.com/bitwarden/server.git
synced 2025-07-03 17:12:49 -05:00
cipher share data and key response
This commit is contained in:
@ -33,29 +33,32 @@ namespace Bit.Api.Controllers
|
||||
[HttpGet("{id}")]
|
||||
public async Task<CipherResponseModel> Get(string id)
|
||||
{
|
||||
var cipher = await _cipherRepository.GetByIdAsync(new Guid(id), _userService.GetProperUserId(User).Value);
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
var cipher = await _cipherRepository.GetByIdAsync(new Guid(id), userId);
|
||||
if(cipher == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
return new CipherResponseModel(cipher);
|
||||
return new CipherResponseModel(cipher, userId);
|
||||
}
|
||||
|
||||
[HttpGet("")]
|
||||
public async Task<ListResponseModel<CipherResponseModel>> Get()
|
||||
{
|
||||
var ciphers = await _cipherRepository.GetManyByUserIdAsync(_userService.GetProperUserId(User).Value);
|
||||
var responses = ciphers.Select(c => new CipherResponseModel(c));
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
var ciphers = await _cipherRepository.GetManyByUserIdAsync(userId);
|
||||
var responses = ciphers.Select(c => new CipherResponseModel(c, userId));
|
||||
return new ListResponseModel<CipherResponseModel>(responses);
|
||||
}
|
||||
|
||||
[HttpGet("history")]
|
||||
public async Task<CipherHistoryResponseModel> Get(DateTime since)
|
||||
{
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
var history = await _cipherRepository.GetManySinceRevisionDateAndUserIdWithDeleteHistoryAsync(
|
||||
since, _userService.GetProperUserId(User).Value);
|
||||
return new CipherHistoryResponseModel(history.Item1, history.Item2);
|
||||
since, userId);
|
||||
return new CipherHistoryResponseModel(history.Item1, history.Item2, userId);
|
||||
}
|
||||
|
||||
[HttpPost("import")]
|
||||
|
@ -34,44 +34,48 @@ namespace Bit.Api.Controllers
|
||||
[HttpGet("{id}")]
|
||||
public async Task<FolderResponseModel> Get(string id)
|
||||
{
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
var folder = await _cipherRepository.GetByIdAsync(new Guid(id), _userService.GetProperUserId(User).Value);
|
||||
if(folder == null || folder.Type != Core.Enums.CipherType.Folder)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
return new FolderResponseModel(folder);
|
||||
return new FolderResponseModel(folder, userId);
|
||||
}
|
||||
|
||||
[HttpGet("")]
|
||||
public async Task<ListResponseModel<FolderResponseModel>> Get()
|
||||
{
|
||||
ICollection<Cipher> folders = await _cipherRepository.GetManyByTypeAndUserIdAsync(Core.Enums.CipherType.Folder,
|
||||
_userService.GetProperUserId(User).Value);
|
||||
var responses = folders.Select(f => new FolderResponseModel(f));
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
ICollection<Cipher> folders = await _cipherRepository.GetManyByTypeAndUserIdAsync(Core.Enums.CipherType.Folder,
|
||||
userId);
|
||||
var responses = folders.Select(f => new FolderResponseModel(f, userId));
|
||||
return new ListResponseModel<FolderResponseModel>(responses);
|
||||
}
|
||||
|
||||
[HttpPost("")]
|
||||
public async Task<FolderResponseModel> Post([FromBody]FolderRequestModel model)
|
||||
{
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
var folder = model.ToCipher(_userService.GetProperUserId(User).Value);
|
||||
await _cipherService.SaveAsync(folder);
|
||||
return new FolderResponseModel(folder);
|
||||
return new FolderResponseModel(folder, userId);
|
||||
}
|
||||
|
||||
[HttpPut("{id}")]
|
||||
[HttpPost("{id}")]
|
||||
public async Task<FolderResponseModel> Put(string id, [FromBody]FolderRequestModel model)
|
||||
{
|
||||
var folder = await _cipherRepository.GetByIdAsync(new Guid(id), _userService.GetProperUserId(User).Value);
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
var folder = await _cipherRepository.GetByIdAsync(new Guid(id), userId);
|
||||
if(folder == null || folder.Type != Core.Enums.CipherType.Folder)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
|
||||
await _cipherService.SaveAsync(model.ToCipher(folder));
|
||||
return new FolderResponseModel(folder);
|
||||
return new FolderResponseModel(folder, userId);
|
||||
}
|
||||
|
||||
[HttpDelete("{id}")]
|
||||
|
@ -36,35 +36,38 @@ namespace Bit.Api.Controllers
|
||||
[HttpGet("{id}")]
|
||||
public async Task<LoginResponseModel> Get(string id, string[] expand = null)
|
||||
{
|
||||
var login = await _cipherRepository.GetByIdAsync(new Guid(id), _userService.GetProperUserId(User).Value);
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
var login = await _cipherRepository.GetByIdAsync(new Guid(id), userId);
|
||||
if(login == null || login.Type != Core.Enums.CipherType.Login)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
var response = new LoginResponseModel(login);
|
||||
await ExpandAsync(login, response, expand, null);
|
||||
var response = new LoginResponseModel(login, userId);
|
||||
await ExpandAsync(login, response, expand, null, userId);
|
||||
return response;
|
||||
}
|
||||
|
||||
[HttpGet("")]
|
||||
public async Task<ListResponseModel<LoginResponseModel>> Get(string[] expand = null)
|
||||
{
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
ICollection<Cipher> logins = await _cipherRepository.GetManyByTypeAndUserIdAsync(Core.Enums.CipherType.Login,
|
||||
_userService.GetProperUserId(User).Value);
|
||||
var responses = logins.Select(s => new LoginResponseModel(s)).ToList();
|
||||
await ExpandManyAsync(logins, responses, expand, null);
|
||||
userId);
|
||||
var responses = logins.Select(s => new LoginResponseModel(s, userId)).ToList();
|
||||
await ExpandManyAsync(logins, responses, expand, null, userId);
|
||||
return new ListResponseModel<LoginResponseModel>(responses);
|
||||
}
|
||||
|
||||
[HttpPost("")]
|
||||
public async Task<LoginResponseModel> Post([FromBody]LoginRequestModel model, string[] expand = null)
|
||||
{
|
||||
var login = model.ToCipher(_userService.GetProperUserId(User).Value);
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
var login = model.ToCipher(userId);
|
||||
await _cipherService.SaveAsync(login);
|
||||
|
||||
var response = new LoginResponseModel(login);
|
||||
await ExpandAsync(login, response, expand, null);
|
||||
var response = new LoginResponseModel(login, userId);
|
||||
await ExpandAsync(login, response, expand, null, userId);
|
||||
return response;
|
||||
}
|
||||
|
||||
@ -72,6 +75,7 @@ namespace Bit.Api.Controllers
|
||||
[HttpPost("{id}")]
|
||||
public async Task<LoginResponseModel> Put(string id, [FromBody]LoginRequestModel model, string[] expand = null)
|
||||
{
|
||||
var userId = _userService.GetProperUserId(User).Value;
|
||||
var login = await _cipherRepository.GetByIdAsync(new Guid(id), _userService.GetProperUserId(User).Value);
|
||||
if(login == null || login.Type != Core.Enums.CipherType.Login)
|
||||
{
|
||||
@ -80,8 +84,8 @@ namespace Bit.Api.Controllers
|
||||
|
||||
await _cipherService.SaveAsync(model.ToCipher(login));
|
||||
|
||||
var response = new LoginResponseModel(login);
|
||||
await ExpandAsync(login, response, expand, null);
|
||||
var response = new LoginResponseModel(login, userId);
|
||||
await ExpandAsync(login, response, expand, null, userId);
|
||||
return response;
|
||||
}
|
||||
|
||||
@ -98,7 +102,7 @@ namespace Bit.Api.Controllers
|
||||
await _cipherService.DeleteAsync(login);
|
||||
}
|
||||
|
||||
private async Task ExpandAsync(Cipher login, LoginResponseModel response, string[] expand, Cipher folder)
|
||||
private async Task ExpandAsync(Cipher login, LoginResponseModel response, string[] expand, Cipher folder, Guid userId)
|
||||
{
|
||||
if(expand == null || expand.Count() == 0)
|
||||
{
|
||||
@ -112,12 +116,12 @@ namespace Bit.Api.Controllers
|
||||
folder = await _cipherRepository.GetByIdAsync(login.FolderId.Value);
|
||||
}
|
||||
|
||||
response.Folder = new FolderResponseModel(folder);
|
||||
response.Folder = new FolderResponseModel(folder, userId);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ExpandManyAsync(IEnumerable<Cipher> logins, ICollection<LoginResponseModel> responses,
|
||||
string[] expand, IEnumerable<Cipher> folders)
|
||||
string[] expand, IEnumerable<Cipher> folders, Guid userId)
|
||||
{
|
||||
if(expand == null || expand.Count() == 0)
|
||||
{
|
||||
@ -148,7 +152,7 @@ namespace Bit.Api.Controllers
|
||||
continue;
|
||||
}
|
||||
|
||||
response.Folder = new FolderResponseModel(folder);
|
||||
response.Folder = new FolderResponseModel(folder, userId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user