mirror of
https://github.com/bitwarden/server
synced 2025-12-28 06:03:29 +00:00
feat(NewDeviceVerification) : * Created database migration scripts for VerifyDevices column in [dbo].[User]. * Updated DeviceValidator to check if user has opted out of device verification. * Added endpoint to AccountsController.cs to allow editing of new User.VerifyDevices property. * Added tests for new methods and endpoint. * Updating queries to track [dbo].[User].[VerifyDevices]. * Updated DeviceValidator to set `User.EmailVerified` property during the New Device Verification flow.
57 lines
3.1 KiB
Transact-SQL
57 lines
3.1 KiB
Transact-SQL
CREATE TABLE [dbo].[User] (
|
|
[Id] UNIQUEIDENTIFIER NOT NULL,
|
|
[Name] NVARCHAR (50) NULL,
|
|
[Email] NVARCHAR (256) NOT NULL,
|
|
[EmailVerified] BIT NOT NULL,
|
|
[MasterPassword] NVARCHAR (300) NULL,
|
|
[MasterPasswordHint] NVARCHAR (50) NULL,
|
|
[Culture] NVARCHAR (10) NOT NULL,
|
|
[SecurityStamp] NVARCHAR (50) NOT NULL,
|
|
[TwoFactorProviders] NVARCHAR (MAX) NULL,
|
|
[TwoFactorRecoveryCode] NVARCHAR (32) NULL,
|
|
[EquivalentDomains] NVARCHAR (MAX) NULL,
|
|
[ExcludedGlobalEquivalentDomains] NVARCHAR (MAX) NULL,
|
|
[AccountRevisionDate] DATETIME2 (7) NOT NULL,
|
|
[Key] VARCHAR (MAX) NULL,
|
|
[PublicKey] VARCHAR (MAX) NULL,
|
|
[PrivateKey] VARCHAR (MAX) NULL,
|
|
[Premium] BIT NOT NULL,
|
|
[PremiumExpirationDate] DATETIME2 (7) NULL,
|
|
[RenewalReminderDate] DATETIME2 (7) NULL,
|
|
[Storage] BIGINT NULL,
|
|
[MaxStorageGb] SMALLINT NULL,
|
|
[Gateway] TINYINT NULL,
|
|
[GatewayCustomerId] VARCHAR (50) NULL,
|
|
[GatewaySubscriptionId] VARCHAR (50) NULL,
|
|
[ReferenceData] NVARCHAR (MAX) NULL,
|
|
[LicenseKey] VARCHAR (100) NULL,
|
|
[Kdf] TINYINT NOT NULL,
|
|
[KdfIterations] INT NOT NULL,
|
|
[KdfMemory] INT NULL,
|
|
[KdfParallelism] INT NULL,
|
|
[CreationDate] DATETIME2 (7) NOT NULL,
|
|
[RevisionDate] DATETIME2 (7) NOT NULL,
|
|
[ApiKey] VARCHAR (30) NOT NULL,
|
|
[ForcePasswordReset] BIT NOT NULL,
|
|
[UsesKeyConnector] BIT NOT NULL,
|
|
[FailedLoginCount] INT CONSTRAINT [D_User_FailedLoginCount] DEFAULT ((0)) NOT NULL,
|
|
[LastFailedLoginDate] DATETIME2 (7) NULL,
|
|
[AvatarColor] VARCHAR(7) NULL,
|
|
[LastPasswordChangeDate] DATETIME2 (7) NULL,
|
|
[LastKdfChangeDate] DATETIME2 (7) NULL,
|
|
[LastKeyRotationDate] DATETIME2 (7) NULL,
|
|
[LastEmailChangeDate] DATETIME2 (7) NULL,
|
|
[VerifyDevices] BIT DEFAULT ((1)) NOT NULL,
|
|
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED ([Id] ASC)
|
|
);
|
|
|
|
|
|
GO
|
|
CREATE UNIQUE NONCLUSTERED INDEX [IX_User_Email]
|
|
ON [dbo].[User]([Email] ASC);
|
|
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IX_User_Premium_PremiumExpirationDate_RenewalReminderDate]
|
|
ON [dbo].[User]([Premium] ASC, [PremiumExpirationDate] ASC, [RenewalReminderDate] ASC);
|
|
|