diff --git a/src/api/core/accounts.rs b/src/api/core/accounts.rs index f3e73244ab..89dcadea8f 100644 --- a/src/api/core/accounts.rs +++ b/src/api/core/accounts.rs @@ -1264,7 +1264,7 @@ async fn put_auth_request( auth_request.save(&mut conn).await?; ant.send_auth_response(&auth_request.user_uuid, &auth_request.uuid).await; - nt.send_auth_response(&auth_request.user_uuid, &auth_request.uuid, data.device_identifier, &mut conn).await; + nt.send_auth_response(&auth_request.user_uuid, &auth_request.uuid, &data.device_identifier, &mut conn).await; } else { // If denied, there's no reason to keep the request auth_request.delete(&mut conn).await?; diff --git a/src/api/notifications.rs b/src/api/notifications.rs index 1722e56d35..a8083a9f76 100644 --- a/src/api/notifications.rs +++ b/src/api/notifications.rs @@ -10,7 +10,7 @@ use rocket_ws::{Message, WebSocket}; use crate::{ auth::{ClientIp, WsAccessTokenHeader}, db::{ - models::{Cipher, CollectionId, DeviceId, Folder, Send as DbSend, User, UserId}, + models::{AuthRequestId, Cipher, CollectionId, DeviceId, Folder, Send as DbSend, User, UserId}, DbConn, }, Error, CONFIG, @@ -522,8 +522,8 @@ impl WebSocketUsers { pub async fn send_auth_response( &self, user_id: &UserId, - auth_response_uuid: &str, - approving_device_uuid: DeviceId, + auth_request_id: &AuthRequestId, + approving_device_id: &DeviceId, conn: &mut DbConn, ) { // Skip any processing if both WebSockets and Push are not active @@ -531,16 +531,16 @@ impl WebSocketUsers { return; } let data = create_update( - vec![("Id".into(), auth_response_uuid.to_owned().into()), ("UserId".into(), user_id.to_string().into())], + vec![("Id".into(), auth_request_id.to_string().into()), ("UserId".into(), user_id.to_string().into())], UpdateType::AuthRequestResponse, - Some(approving_device_uuid.clone()), + Some(approving_device_id.clone()), ); if CONFIG.enable_websocket() { self.send_update(user_id, &data).await; } if CONFIG.push_enabled() { - push_auth_response(user_id.clone(), auth_response_uuid.to_string(), approving_device_uuid, conn).await; + push_auth_response(user_id, auth_request_id, approving_device_id, conn).await; } } } @@ -559,16 +559,16 @@ impl AnonymousWebSocketSubscriptions { } } - pub async fn send_auth_response(&self, user_id: &UserId, auth_response_uuid: &str) { + pub async fn send_auth_response(&self, user_id: &UserId, auth_request_id: &AuthRequestId) { if !CONFIG.enable_websocket() { return; } let data = create_anonymous_update( - vec![("Id".into(), auth_response_uuid.to_owned().into()), ("UserId".into(), user_id.to_string().into())], + vec![("Id".into(), auth_request_id.to_string().into()), ("UserId".into(), user_id.to_string().into())], UpdateType::AuthRequestResponse, user_id.clone(), ); - self.send_update(user_id, &data).await; + self.send_update(auth_request_id, &data).await; } } diff --git a/src/api/push.rs b/src/api/push.rs index 95a536f1fb..e3ea0bcbca 100644 --- a/src/api/push.rs +++ b/src/api/push.rs @@ -7,7 +7,7 @@ use tokio::sync::RwLock; use crate::{ api::{ApiResult, EmptyResult, UpdateType}, - db::models::{Cipher, Device, DeviceId, Folder, Send, User, UserId}, + db::models::{AuthRequestId, Cipher, Device, DeviceId, Folder, Send, User, UserId}, http_client::make_http_request, util::format_date, CONFIG, @@ -301,12 +301,12 @@ pub async fn push_auth_request(user_id: UserId, auth_request_id: String, conn: & } pub async fn push_auth_response( - user_id: UserId, - auth_request_id: String, - approving_device_id: DeviceId, + user_id: &UserId, + auth_request_id: &AuthRequestId, + approving_device_id: &DeviceId, conn: &mut crate::db::DbConn, ) { - if Device::check_user_has_push_device(&user_id, conn).await { + if Device::check_user_has_push_device(user_id, conn).await { tokio::task::spawn(send_to_push_relay(json!({ "userId": user_id, "organizationId": (),