mirror of
https://github.com/dani-garcia/vaultwarden
synced 2024-11-21 19:33:11 +00:00
Merge pull request #3831 from BlackDex/fix-3819
Fix Login With Device without MasterPassword
This commit is contained in:
commit
bbd630f1ee
11 changed files with 53 additions and 12 deletions
|
@ -0,0 +1,5 @@
|
|||
ALTER TABLE auth_requests
|
||||
MODIFY master_password_hash TEXT;
|
||||
|
||||
ALTER TABLE auth_requests
|
||||
MODIFY enc_key TEXT;
|
|
@ -0,0 +1,5 @@
|
|||
ALTER TABLE auth_requests
|
||||
ALTER COLUMN master_password_hash DROP NOT NULL;
|
||||
|
||||
ALTER TABLE auth_requests
|
||||
ALTER COLUMN enc_key DROP NOT NULL;
|
|
@ -0,0 +1,29 @@
|
|||
-- Create new auth_requests table with master_password_hash as nullable column
|
||||
CREATE TABLE auth_requests_new (
|
||||
uuid TEXT NOT NULL PRIMARY KEY,
|
||||
user_uuid TEXT NOT NULL,
|
||||
organization_uuid TEXT,
|
||||
request_device_identifier TEXT NOT NULL,
|
||||
device_type INTEGER NOT NULL,
|
||||
request_ip TEXT NOT NULL,
|
||||
response_device_id TEXT,
|
||||
access_code TEXT NOT NULL,
|
||||
public_key TEXT NOT NULL,
|
||||
enc_key TEXT,
|
||||
master_password_hash TEXT,
|
||||
approved BOOLEAN,
|
||||
creation_date DATETIME NOT NULL,
|
||||
response_date DATETIME,
|
||||
authentication_date DATETIME,
|
||||
FOREIGN KEY (user_uuid) REFERENCES users (uuid),
|
||||
FOREIGN KEY (organization_uuid) REFERENCES organizations (uuid)
|
||||
);
|
||||
|
||||
-- Transfer current data to new table
|
||||
INSERT INTO auth_requests_new SELECT * FROM auth_requests;
|
||||
|
||||
-- Drop the old table
|
||||
DROP TABLE auth_requests;
|
||||
|
||||
-- Rename the new table to the original name
|
||||
ALTER TABLE auth_requests_new RENAME TO auth_requests;
|
|
@ -1090,7 +1090,7 @@ async fn get_auth_request(uuid: &str, mut conn: DbConn) -> JsonResult {
|
|||
struct AuthResponseRequest {
|
||||
deviceIdentifier: String,
|
||||
key: String,
|
||||
masterPasswordHash: String,
|
||||
masterPasswordHash: Option<String>,
|
||||
requestApproved: bool,
|
||||
}
|
||||
|
||||
|
@ -1111,7 +1111,7 @@ async fn put_auth_request(
|
|||
};
|
||||
|
||||
auth_request.approved = Some(data.requestApproved);
|
||||
auth_request.enc_key = data.key;
|
||||
auth_request.enc_key = Some(data.key);
|
||||
auth_request.master_password_hash = data.masterPasswordHash;
|
||||
auth_request.response_device_id = Some(data.deviceIdentifier.clone());
|
||||
auth_request.save(&mut conn).await?;
|
||||
|
|
|
@ -20,9 +20,9 @@ db_object! {
|
|||
pub access_code: String,
|
||||
pub public_key: String,
|
||||
|
||||
pub enc_key: String,
|
||||
pub enc_key: Option<String>,
|
||||
|
||||
pub master_password_hash: String,
|
||||
pub master_password_hash: Option<String>,
|
||||
pub approved: Option<bool>,
|
||||
pub creation_date: NaiveDateTime,
|
||||
pub response_date: Option<NaiveDateTime>,
|
||||
|
@ -53,8 +53,8 @@ impl AuthRequest {
|
|||
response_device_id: None,
|
||||
access_code,
|
||||
public_key,
|
||||
enc_key: String::new(),
|
||||
master_password_hash: String::new(),
|
||||
enc_key: None,
|
||||
master_password_hash: None,
|
||||
approved: None,
|
||||
creation_date: now,
|
||||
response_date: None,
|
||||
|
|
|
@ -297,8 +297,8 @@ table! {
|
|||
response_device_id -> Nullable<Text>,
|
||||
access_code -> Text,
|
||||
public_key -> Text,
|
||||
enc_key -> Text,
|
||||
master_password_hash -> Text,
|
||||
enc_key -> Nullable<Text>,
|
||||
master_password_hash -> Nullable<Text>,
|
||||
approved -> Nullable<Bool>,
|
||||
creation_date -> Timestamp,
|
||||
response_date -> Nullable<Timestamp>,
|
||||
|
@ -324,6 +324,7 @@ joinable!(users_collections -> collections (collection_uuid));
|
|||
joinable!(users_collections -> users (user_uuid));
|
||||
joinable!(users_organizations -> organizations (org_uuid));
|
||||
joinable!(users_organizations -> users (user_uuid));
|
||||
joinable!(users_organizations -> ciphers (org_uuid));
|
||||
joinable!(organization_api_key -> organizations (org_uuid));
|
||||
joinable!(emergency_access -> users (grantor_uuid));
|
||||
joinable!(groups -> organizations (organizations_uuid));
|
||||
|
|
|
@ -297,8 +297,8 @@ table! {
|
|||
response_device_id -> Nullable<Text>,
|
||||
access_code -> Text,
|
||||
public_key -> Text,
|
||||
enc_key -> Text,
|
||||
master_password_hash -> Text,
|
||||
enc_key -> Nullable<Text>,
|
||||
master_password_hash -> Nullable<Text>,
|
||||
approved -> Nullable<Bool>,
|
||||
creation_date -> Timestamp,
|
||||
response_date -> Nullable<Timestamp>,
|
||||
|
@ -324,6 +324,7 @@ joinable!(users_collections -> collections (collection_uuid));
|
|||
joinable!(users_collections -> users (user_uuid));
|
||||
joinable!(users_organizations -> organizations (org_uuid));
|
||||
joinable!(users_organizations -> users (user_uuid));
|
||||
joinable!(users_organizations -> ciphers (org_uuid));
|
||||
joinable!(organization_api_key -> organizations (org_uuid));
|
||||
joinable!(emergency_access -> users (grantor_uuid));
|
||||
joinable!(groups -> organizations (organizations_uuid));
|
||||
|
|
|
@ -297,8 +297,8 @@ table! {
|
|||
response_device_id -> Nullable<Text>,
|
||||
access_code -> Text,
|
||||
public_key -> Text,
|
||||
enc_key -> Text,
|
||||
master_password_hash -> Text,
|
||||
enc_key -> Nullable<Text>,
|
||||
master_password_hash -> Nullable<Text>,
|
||||
approved -> Nullable<Bool>,
|
||||
creation_date -> Timestamp,
|
||||
response_date -> Nullable<Timestamp>,
|
||||
|
|
Loading…
Reference in a new issue