vw_small

Hardened fork of Vaultwarden (https://github.com/dani-garcia/vaultwarden) with fewer features.
git clone https://git.philomathiclife.com/repos/vw_small
Log | Files | Refs | README

commit 6af5c860811f8d51fc1cc579e9a01ff55924b537
parent f60a6929a9a289bd39c38eeb793ebf54c4d88199
Author: BlackDex <black.dex@gmail.com>
Date:   Sun,  6 Nov 2022 18:07:09 +0100

Add `/devices/knowndevice` endpoint

Added a new endpoint which the currently beta client for at least
Android v2022.10.1 seems to be calling, and crashes with the response we
currently provide

Fixes #2890
Fixes #2891
Fixes #2892

Diffstat:
Msrc/api/core/accounts.rs | 14++++++++++++++
1 file changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/api/core/accounts.rs b/src/api/core/accounts.rs @@ -36,6 +36,7 @@ pub fn routes() -> Vec<rocket::Route> { verify_password, api_key, rotate_api_key, + get_known_device, ] } @@ -739,3 +740,16 @@ async fn api_key(data: JsonUpcase<SecretVerificationRequest>, headers: Headers, async fn rotate_api_key(data: JsonUpcase<SecretVerificationRequest>, headers: Headers, conn: DbConn) -> JsonResult { _api_key(data, true, headers, conn).await } + +#[get("/devices/knowndevice/<email>/<uuid>")] +async fn get_known_device(email: String, uuid: String, mut conn: DbConn) -> String { + // This endpoint doesn't have auth header + if let Some(user) = User::find_by_mail(&email, &mut conn).await { + match Device::find_by_uuid_and_user(&uuid, &user.uuid, &mut conn).await { + Some(_) => String::from("true"), + _ => String::from("false"), + } + } else { + String::from("false") + } +}