diff --git a/src/Core/Enums/TwoFactorProviderType.cs b/src/Core/Enums/TwoFactorProviderType.cs index 86ad53ac00..5a55e19455 100644 --- a/src/Core/Enums/TwoFactorProviderType.cs +++ b/src/Core/Enums/TwoFactorProviderType.cs @@ -2,6 +2,9 @@ { public enum TwoFactorProviderType : byte { - Authenticator = 0 + Authenticator = 0, + Email = 1, + Duo = 2, + YubiKey = 3 } } diff --git a/src/Core/Models/Table/User.cs b/src/Core/Models/Table/User.cs index eaad10905b..9e2d751102 100644 --- a/src/Core/Models/Table/User.cs +++ b/src/Core/Models/Table/User.cs @@ -17,6 +17,7 @@ namespace Bit.Core.Models.Table public bool TwoFactorEnabled { get; set; } public TwoFactorProviderType? TwoFactorProvider { get; set; } public string AuthenticatorKey { get; set; } + public string TwoFactorProviders { get; set; } public string TwoFactorRecoveryCode { get; set; } public string EquivalentDomains { get; set; } public string ExcludedGlobalEquivalentDomains { get; set; } diff --git a/src/Core/Models/TwoFactorProvider.cs b/src/Core/Models/TwoFactorProvider.cs new file mode 100644 index 0000000000..58cbc13c07 --- /dev/null +++ b/src/Core/Models/TwoFactorProvider.cs @@ -0,0 +1,12 @@ +using Bit.Core.Enums; +using System.Collections.Generic; + +namespace Bit.Core.Models +{ + public class TwoFactorProvider + { + public bool Enabled { get; set; } + public bool Remember { get; set; } + public Dictionary MetaData { get; set; } + } +} diff --git a/src/Sql/dbo/Stored Procedures/User_Create.sql b/src/Sql/dbo/Stored Procedures/User_Create.sql index e37deb662e..44aad86262 100644 --- a/src/Sql/dbo/Stored Procedures/User_Create.sql +++ b/src/Sql/dbo/Stored Procedures/User_Create.sql @@ -10,6 +10,7 @@ @TwoFactorEnabled BIT, @TwoFactorProvider TINYINT, @AuthenticatorKey NVARCHAR(50), + @TwoFactorProviders NVARCHAR(MAX), @TwoFactorRecoveryCode NVARCHAR(32), @EquivalentDomains NVARCHAR(MAX), @ExcludedGlobalEquivalentDomains NVARCHAR(MAX), @@ -36,6 +37,7 @@ BEGIN [TwoFactorEnabled], [TwoFactorProvider], [AuthenticatorKey], + [TwoFactorProviders], [TwoFactorRecoveryCode], [EquivalentDomains], [ExcludedGlobalEquivalentDomains], @@ -59,6 +61,7 @@ BEGIN @TwoFactorEnabled, @TwoFactorProvider, @AuthenticatorKey, + @TwoFactorProviders, @TwoFactorRecoveryCode, @EquivalentDomains, @ExcludedGlobalEquivalentDomains, diff --git a/src/Sql/dbo/Stored Procedures/User_Update.sql b/src/Sql/dbo/Stored Procedures/User_Update.sql index 5ba2deb7f7..1461b4f42b 100644 --- a/src/Sql/dbo/Stored Procedures/User_Update.sql +++ b/src/Sql/dbo/Stored Procedures/User_Update.sql @@ -10,6 +10,7 @@ @TwoFactorEnabled BIT, @TwoFactorProvider TINYINT, @AuthenticatorKey NVARCHAR(50), + @TwoFactorProviders NVARCHAR(MAX), @TwoFactorRecoveryCode NVARCHAR(32), @EquivalentDomains NVARCHAR(MAX), @ExcludedGlobalEquivalentDomains NVARCHAR(MAX), @@ -36,6 +37,7 @@ BEGIN [TwoFactorEnabled] = @TwoFactorEnabled, [TwoFactorProvider] = @TwoFactorProvider, [AuthenticatorKey] = @AuthenticatorKey, + [TwoFactorProviders] = @TwoFactorProviders, [TwoFactorRecoveryCode] = @TwoFactorRecoveryCode, [EquivalentDomains] = @EquivalentDomains, [ExcludedGlobalEquivalentDomains] = @ExcludedGlobalEquivalentDomains, diff --git a/src/Sql/dbo/Tables/User.sql b/src/Sql/dbo/Tables/User.sql index b413ed37d8..3174aa6913 100644 --- a/src/Sql/dbo/Tables/User.sql +++ b/src/Sql/dbo/Tables/User.sql @@ -10,6 +10,7 @@ [TwoFactorEnabled] BIT NOT NULL, [TwoFactorProvider] TINYINT NULL, [AuthenticatorKey] NVARCHAR (50) NULL, + [TwoFactorProviders] NVARCHAR (MAX) NULL, [TwoFactorRecoveryCode] NVARCHAR (32) NULL, [EquivalentDomains] NVARCHAR (MAX) NULL, [ExcludedGlobalEquivalentDomains] NVARCHAR (MAX) NULL,