mirror of
https://github.com/bitwarden/server.git
synced 2024-11-25 12:45:18 +01:00
pub/priv keys and share updates
This commit is contained in:
parent
47da65be5f
commit
9ca2baba74
@ -123,7 +123,7 @@ namespace Bit.Api.IdentityServer
|
||||
claims: claims.Count > 0 ? claims : null,
|
||||
customResponse: new Dictionary<string, object>
|
||||
{
|
||||
{ "PrivateKey", user.PrivateKey }
|
||||
{ "EncryptedPrivateKey", user.PrivateKey }
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ namespace Bit.Api.Models
|
||||
{
|
||||
public string PublicKey { get; set; }
|
||||
[Required]
|
||||
public string PrivateKey { get; set; }
|
||||
public string EncryptedPrivateKey { get; set; }
|
||||
|
||||
public User ToUser(User existingUser)
|
||||
{
|
||||
@ -16,7 +16,7 @@ namespace Bit.Api.Models
|
||||
existingUser.PublicKey = PublicKey;
|
||||
}
|
||||
|
||||
existingUser.PrivateKey = PrivateKey;
|
||||
existingUser.PrivateKey = EncryptedPrivateKey;
|
||||
return existingUser;
|
||||
}
|
||||
}
|
||||
|
@ -12,19 +12,27 @@ namespace Bit.Api.Models
|
||||
[StringLength(50)]
|
||||
public string Email { get; set; }
|
||||
[Required]
|
||||
[StringLength(300)]
|
||||
[StringLength(1000)]
|
||||
public string MasterPasswordHash { get; set; }
|
||||
[StringLength(50)]
|
||||
public string MasterPasswordHint { get; set; }
|
||||
public KeysRequestModel Keys { get; set; }
|
||||
|
||||
public User ToUser()
|
||||
{
|
||||
return new User
|
||||
var user = new User
|
||||
{
|
||||
Name = Name,
|
||||
Email = Email,
|
||||
MasterPasswordHint = MasterPasswordHint
|
||||
};
|
||||
|
||||
if(Keys != null)
|
||||
{
|
||||
Keys.ToUser(user);
|
||||
}
|
||||
|
||||
return user;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -33,16 +33,6 @@ namespace Bit.Api.Models
|
||||
default:
|
||||
throw new ArgumentException("Unsupported " + nameof(Type) + ".");
|
||||
}
|
||||
|
||||
if(!string.IsNullOrWhiteSpace(cipher.Shares))
|
||||
{
|
||||
var shares = JsonConvert.DeserializeObject<IEnumerable<Cipher.Share>>(cipher.Shares);
|
||||
var userShare = shares.FirstOrDefault(s => s.UserId == userId);
|
||||
if(userShare != null)
|
||||
{
|
||||
Key = userShare.Key;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string Id { get; set; }
|
||||
|
@ -26,16 +26,6 @@ namespace Bit.Api.Models
|
||||
Id = cipher.Id.ToString();
|
||||
Name = data.Name;
|
||||
RevisionDate = cipher.RevisionDate;
|
||||
|
||||
if(!string.IsNullOrWhiteSpace(cipher.Shares))
|
||||
{
|
||||
var shares = JsonConvert.DeserializeObject<IEnumerable<Cipher.Share>>(cipher.Shares);
|
||||
var userShare = shares.FirstOrDefault(s => s.UserId == userId);
|
||||
if(userShare != null)
|
||||
{
|
||||
Key = userShare.Key;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string Id { get; set; }
|
||||
|
@ -32,16 +32,6 @@ namespace Bit.Api.Models
|
||||
Password = data.Password;
|
||||
Notes = data.Notes;
|
||||
RevisionDate = cipher.RevisionDate;
|
||||
|
||||
if(!string.IsNullOrWhiteSpace(cipher.Shares))
|
||||
{
|
||||
var shares = JsonConvert.DeserializeObject<IEnumerable<Cipher.Share>>(cipher.Shares);
|
||||
var userShare = shares.FirstOrDefault(s => s.UserId == userId);
|
||||
if(userShare != null)
|
||||
{
|
||||
Key = userShare.Key;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string Id { get; set; }
|
||||
|
@ -11,7 +11,6 @@ namespace Bit.Core.Domains
|
||||
public Enums.CipherType Type { get; set; }
|
||||
public bool Favorite { get; set; }
|
||||
public string Data { get; set; }
|
||||
public string Shares { get; set; }
|
||||
public DateTime CreationDate { get; internal set; } = DateTime.UtcNow;
|
||||
public DateTime RevisionDate { get; internal set; } = DateTime.UtcNow;
|
||||
|
||||
@ -19,12 +18,5 @@ namespace Bit.Core.Domains
|
||||
{
|
||||
Id = CoreHelpers.GenerateComb();
|
||||
}
|
||||
|
||||
public class Share
|
||||
{
|
||||
public Guid UserId { get; set; }
|
||||
public string Key { get; set; }
|
||||
// TODO: permission flags?
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,6 @@
|
||||
@Type TINYINT,
|
||||
@Favorite BIT,
|
||||
@Data NVARCHAR(MAX),
|
||||
@Shares NVARCHAR(MAX),
|
||||
@CreationDate DATETIME2(7),
|
||||
@RevisionDate DATETIME2(7)
|
||||
AS
|
||||
@ -20,7 +19,6 @@ BEGIN
|
||||
[Type],
|
||||
[Favorite],
|
||||
[Data],
|
||||
[Shares],
|
||||
[CreationDate],
|
||||
[RevisionDate]
|
||||
)
|
||||
@ -32,7 +30,6 @@ BEGIN
|
||||
@Type,
|
||||
@Favorite,
|
||||
@Data,
|
||||
@Shares,
|
||||
@CreationDate,
|
||||
@RevisionDate
|
||||
)
|
||||
|
@ -5,7 +5,6 @@
|
||||
@Type TINYINT,
|
||||
@Favorite BIT,
|
||||
@Data NVARCHAR(MAX),
|
||||
@Shares NVARCHAR(MAX),
|
||||
@CreationDate DATETIME2(7),
|
||||
@RevisionDate DATETIME2(7)
|
||||
AS
|
||||
@ -20,7 +19,6 @@ BEGIN
|
||||
[Type] = @Type,
|
||||
[Favorite] = @Favorite,
|
||||
[Data] = @Data,
|
||||
[Shares] = @Shares,
|
||||
[CreationDate] = @CreationDate,
|
||||
[RevisionDate] = @RevisionDate
|
||||
WHERE
|
||||
|
@ -5,7 +5,6 @@
|
||||
[Type] TINYINT NOT NULL,
|
||||
[Favorite] BIT NOT NULL,
|
||||
[Data] NVARCHAR (MAX) NOT NULL,
|
||||
[Shares] NVARCHAR (MAX) NULL,
|
||||
[CreationDate] DATETIME2 (7) NOT NULL,
|
||||
[RevisionDate] DATETIME2 (7) NOT NULL,
|
||||
CONSTRAINT [PK_Cipher] PRIMARY KEY CLUSTERED ([Id] ASC),
|
||||
|
Loading…
Reference in New Issue
Block a user