1
0
mirror of https://github.com/bitwarden/server.git synced 2025-03-16 14:13:10 +01:00

Update APIs to collect other set password info (#870)

This commit is contained in:
Kyle Spearrin 2020-08-17 10:40:35 -04:00 committed by GitHub
parent af85e17486
commit d190c4bd0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 6 deletions

View File

@ -197,7 +197,7 @@ namespace Bit.Api.Controllers
}
[HttpPost("set-password")]
public async Task SetPasswordAsync([FromBody]SetPasswordRequestModel model)
public async Task PostSetPasswordAsync([FromBody]SetPasswordRequestModel model)
{
var user = await _userService.GetUserByPrincipalAsync(User);
if (user == null)
@ -205,7 +205,7 @@ namespace Bit.Api.Controllers
throw new UnauthorizedAccessException();
}
var result = await _userService.SetPasswordAsync(user, model.NewMasterPasswordHash, model.Key);
var result = await _userService.SetPasswordAsync(model.ToUser(user), model.MasterPasswordHash, model.Key);
if (result.Succeeded)
{
return;

View File

@ -1,4 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using Bit.Core.Enums;
using Bit.Core.Models.Table;
namespace Bit.Core.Models.Api.Request.Accounts
{
@ -6,8 +8,26 @@ namespace Bit.Core.Models.Api.Request.Accounts
{
[Required]
[StringLength(300)]
public string NewMasterPasswordHash { get; set; }
public string MasterPasswordHash { get; set; }
[Required]
public string Key { get; set; }
[StringLength(50)]
public string MasterPasswordHint { get; set; }
[Required]
public KeysRequestModel Keys { get; set; }
[Required]
public KdfType Kdf { get; set; }
[Required]
public int KdfIterations { get; set; }
public User ToUser(User existingUser)
{
existingUser.MasterPasswordHint = MasterPasswordHint;
existingUser.Kdf = Kdf;
existingUser.KdfIterations = KdfIterations;
existingUser.Key = Key;
Keys.ToUser(existingUser);
return existingUser;
}
}
}

View File

@ -579,7 +579,7 @@ namespace Bit.Core.Services
return IdentityResult.Failed(_identityErrorDescriber.PasswordMismatch());
}
public async Task<IdentityResult> SetPasswordAsync(User user, string newMasterPassword, string key)
public async Task<IdentityResult> SetPasswordAsync(User user, string masterPassword, string key)
{
if (user == null)
{
@ -592,7 +592,7 @@ namespace Bit.Core.Services
return IdentityResult.Failed(_identityErrorDescriber.UserAlreadyHasPassword());
}
var result = await UpdatePasswordHash(user, newMasterPassword);
var result = await UpdatePasswordHash(user, masterPassword);
if (!result.Succeeded)
{
return result;