mirror of
https://github.com/bitwarden/server.git
synced 2025-05-29 15:24:51 -05:00
Update APIs to collect other set password info (#870)
This commit is contained in:
parent
af85e17486
commit
d190c4bd0f
@ -197,7 +197,7 @@ namespace Bit.Api.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("set-password")]
|
[HttpPost("set-password")]
|
||||||
public async Task SetPasswordAsync([FromBody]SetPasswordRequestModel model)
|
public async Task PostSetPasswordAsync([FromBody]SetPasswordRequestModel model)
|
||||||
{
|
{
|
||||||
var user = await _userService.GetUserByPrincipalAsync(User);
|
var user = await _userService.GetUserByPrincipalAsync(User);
|
||||||
if (user == null)
|
if (user == null)
|
||||||
@ -205,7 +205,7 @@ namespace Bit.Api.Controllers
|
|||||||
throw new UnauthorizedAccessException();
|
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)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
@ -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
|
namespace Bit.Core.Models.Api.Request.Accounts
|
||||||
{
|
{
|
||||||
@ -6,8 +8,26 @@ namespace Bit.Core.Models.Api.Request.Accounts
|
|||||||
{
|
{
|
||||||
[Required]
|
[Required]
|
||||||
[StringLength(300)]
|
[StringLength(300)]
|
||||||
public string NewMasterPasswordHash { get; set; }
|
public string MasterPasswordHash { get; set; }
|
||||||
[Required]
|
[Required]
|
||||||
public string Key { get; set; }
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -579,7 +579,7 @@ namespace Bit.Core.Services
|
|||||||
return IdentityResult.Failed(_identityErrorDescriber.PasswordMismatch());
|
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)
|
if (user == null)
|
||||||
{
|
{
|
||||||
@ -592,7 +592,7 @@ namespace Bit.Core.Services
|
|||||||
return IdentityResult.Failed(_identityErrorDescriber.UserAlreadyHasPassword());
|
return IdentityResult.Failed(_identityErrorDescriber.UserAlreadyHasPassword());
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = await UpdatePasswordHash(user, newMasterPassword);
|
var result = await UpdatePasswordHash(user, masterPassword);
|
||||||
if (!result.Succeeded)
|
if (!result.Succeeded)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user