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 aba5b234af4ab1b9a2b7cf60ef02dcf84ba24a46
parent c42bcae22471b04569c999ada30d93dc82668763
Author: Daniel GarcĂ­a <dani-garcia@users.noreply.github.com>
Date:   Sun, 16 May 2021 14:11:21 +0200

Merge pull request #1700 from jjlin/fix-attachment-downloads

Fix attachment downloads
Diffstat:
Msrc/api/admin.rs | 3++-
Msrc/api/core/ciphers.rs | 10++++++++++
Msrc/api/web.rs | 6+++---
3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/api/admin.rs b/src/api/admin.rs @@ -308,7 +308,8 @@ fn invite_user(data: Json<InviteData>, _token: AdminToken, conn: DbConn) -> Json } user.save(&conn) - })().map_err(|e| e.with_code(Status::InternalServerError.code))?; + })() + .map_err(|e| e.with_code(Status::InternalServerError.code))?; Ok(Json(user.to_json(&conn))) } diff --git a/src/api/core/ciphers.rs b/src/api/core/ciphers.rs @@ -39,6 +39,7 @@ pub fn routes() -> Vec<Route> { post_ciphers_admin, post_ciphers_create, post_ciphers_import, + get_attachment, post_attachment, post_attachment_admin, post_attachment_share, @@ -754,6 +755,15 @@ fn share_cipher_by_uuid( Ok(Json(cipher.to_json(&headers.host, &headers.user.uuid, &conn))) } +#[get("/ciphers/<uuid>/attachment/<attachment_id>")] +fn get_attachment(uuid: String, attachment_id: String, headers: Headers, conn: DbConn) -> JsonResult { + match Attachment::find_by_id(&attachment_id, &conn) { + Some(attachment) if uuid == attachment.cipher_uuid => Ok(Json(attachment.to_json(&headers.host))), + Some(_) => err!("Attachment doesn't belong to cipher"), + None => err!("Attachment doesn't exist"), + } +} + #[post("/ciphers/<uuid>/attachment", format = "multipart/form-data", data = "<data>")] fn post_attachment( uuid: String, diff --git a/src/api/web.rs b/src/api/web.rs @@ -55,9 +55,9 @@ fn web_files(p: PathBuf) -> Cached<Option<NamedFile>> { Cached::long(NamedFile::open(Path::new(&CONFIG.web_vault_folder()).join(p)).ok()) } -#[get("/attachments/<uuid>/<file..>")] -fn attachments(uuid: String, file: PathBuf) -> Option<NamedFile> { - NamedFile::open(Path::new(&CONFIG.attachments_folder()).join(uuid).join(file)).ok() +#[get("/attachments/<uuid>/<file_id>")] +fn attachments(uuid: String, file_id: String) -> Option<NamedFile> { + NamedFile::open(Path::new(&CONFIG.attachments_folder()).join(uuid).join(file_id)).ok() } #[get("/sends/<send_id>/<file_id>")]