mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2025-07-19 18:48:21 +00:00
Fix collection change ws notifications
When chaning a collection this did not got notified via WebSockets. This PR adds this feature and resolves #3534
This commit is contained in:
parent
04a17dcdef
commit
83376544d8
2 changed files with 39 additions and 9 deletions
|
@ -512,7 +512,7 @@ pub async fn update_cipher_from_data(
|
|||
.await;
|
||||
}
|
||||
|
||||
nt.send_cipher_update(ut, cipher, &cipher.update_users_revision(conn).await, &headers.device.uuid).await;
|
||||
nt.send_cipher_update(ut, cipher, &cipher.update_users_revision(conn).await, &headers.device.uuid, None).await;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
@ -702,8 +702,9 @@ async fn put_collections_update(
|
|||
data: JsonUpcase<CollectionsAdminData>,
|
||||
headers: Headers,
|
||||
conn: DbConn,
|
||||
nt: Notify<'_>,
|
||||
) -> EmptyResult {
|
||||
post_collections_admin(uuid, data, headers, conn).await
|
||||
post_collections_admin(uuid, data, headers, conn, nt).await
|
||||
}
|
||||
|
||||
#[post("/ciphers/<uuid>/collections", data = "<data>")]
|
||||
|
@ -712,8 +713,9 @@ async fn post_collections_update(
|
|||
data: JsonUpcase<CollectionsAdminData>,
|
||||
headers: Headers,
|
||||
conn: DbConn,
|
||||
nt: Notify<'_>,
|
||||
) -> EmptyResult {
|
||||
post_collections_admin(uuid, data, headers, conn).await
|
||||
post_collections_admin(uuid, data, headers, conn, nt).await
|
||||
}
|
||||
|
||||
#[put("/ciphers/<uuid>/collections-admin", data = "<data>")]
|
||||
|
@ -722,8 +724,9 @@ async fn put_collections_admin(
|
|||
data: JsonUpcase<CollectionsAdminData>,
|
||||
headers: Headers,
|
||||
conn: DbConn,
|
||||
nt: Notify<'_>,
|
||||
) -> EmptyResult {
|
||||
post_collections_admin(uuid, data, headers, conn).await
|
||||
post_collections_admin(uuid, data, headers, conn, nt).await
|
||||
}
|
||||
|
||||
#[post("/ciphers/<uuid>/collections-admin", data = "<data>")]
|
||||
|
@ -732,6 +735,7 @@ async fn post_collections_admin(
|
|||
data: JsonUpcase<CollectionsAdminData>,
|
||||
headers: Headers,
|
||||
mut conn: DbConn,
|
||||
nt: Notify<'_>,
|
||||
) -> EmptyResult {
|
||||
let data: CollectionsAdminData = data.into_inner().data;
|
||||
|
||||
|
@ -767,6 +771,15 @@ async fn post_collections_admin(
|
|||
}
|
||||
}
|
||||
|
||||
nt.send_cipher_update(
|
||||
UpdateType::SyncCipherUpdate,
|
||||
&cipher,
|
||||
&cipher.update_users_revision(&mut conn).await,
|
||||
&headers.device.uuid,
|
||||
Some(Vec::from_iter(posted_collections)),
|
||||
)
|
||||
.await;
|
||||
|
||||
log_event(
|
||||
EventType::CipherUpdatedCollections as i32,
|
||||
&cipher.uuid,
|
||||
|
@ -1108,6 +1121,7 @@ async fn save_attachment(
|
|||
&cipher,
|
||||
&cipher.update_users_revision(&mut conn).await,
|
||||
&headers.device.uuid,
|
||||
None,
|
||||
)
|
||||
.await;
|
||||
|
||||
|
@ -1393,7 +1407,8 @@ async fn move_cipher_selected(
|
|||
// Move cipher
|
||||
cipher.move_to_folder(data.FolderId.clone(), &user_uuid, &mut conn).await?;
|
||||
|
||||
nt.send_cipher_update(UpdateType::SyncCipherUpdate, &cipher, &[user_uuid.clone()], &headers.device.uuid).await;
|
||||
nt.send_cipher_update(UpdateType::SyncCipherUpdate, &cipher, &[user_uuid.clone()], &headers.device.uuid, None)
|
||||
.await;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
@ -1503,6 +1518,7 @@ async fn _delete_cipher_by_uuid(
|
|||
&cipher,
|
||||
&cipher.update_users_revision(conn).await,
|
||||
&headers.device.uuid,
|
||||
None,
|
||||
)
|
||||
.await;
|
||||
} else {
|
||||
|
@ -1512,6 +1528,7 @@ async fn _delete_cipher_by_uuid(
|
|||
&cipher,
|
||||
&cipher.update_users_revision(conn).await,
|
||||
&headers.device.uuid,
|
||||
None,
|
||||
)
|
||||
.await;
|
||||
}
|
||||
|
@ -1581,6 +1598,7 @@ async fn _restore_cipher_by_uuid(uuid: &str, headers: &Headers, conn: &mut DbCon
|
|||
&cipher,
|
||||
&cipher.update_users_revision(conn).await,
|
||||
&headers.device.uuid,
|
||||
None,
|
||||
)
|
||||
.await;
|
||||
if let Some(org_uuid) = &cipher.organization_uuid {
|
||||
|
@ -1662,6 +1680,7 @@ async fn _delete_cipher_attachment_by_id(
|
|||
&cipher,
|
||||
&cipher.update_users_revision(conn).await,
|
||||
&headers.device.uuid,
|
||||
None,
|
||||
)
|
||||
.await;
|
||||
if let Some(org_uuid) = cipher.organization_uuid {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue