commit b94f4db52a2baa6010f7baa4181dd582c2ff5f6b
parent 66a4c5d48bc6acdf6f30b15824992507dd3ca15e
Author: Miroslav Prasil <miroslav@prasil.info>
Date: Tue, 13 Nov 2018 15:34:37 +0000
Fix #242
Diffstat:
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/api/core/ciphers.rs b/src/api/core/ciphers.rs
@@ -132,9 +132,18 @@ pub struct CipherData {
}
#[post("/ciphers/admin", data = "<data>")]
-fn post_ciphers_admin(data: JsonUpcase<CipherData>, headers: Headers, conn: DbConn, ws: State<WebSocketUsers>) -> JsonResult {
- // TODO: Implement this correctly
- post_ciphers(data, headers, conn, ws)
+fn post_ciphers_admin(data: JsonUpcase<ShareCipherData>, headers: Headers, conn: DbConn, ws: State<WebSocketUsers>) -> JsonResult {
+ let data: ShareCipherData = data.into_inner().data;
+
+ let mut cipher = Cipher::new(data.Cipher.Type.clone(), data.Cipher.Name.clone());
+ cipher.user_uuid = Some(headers.user.uuid.clone());
+ match cipher.save(&conn) {
+ Ok(()) => (),
+ Err(_) => err!("Failed saving cipher")
+ };
+
+ share_cipher_by_uuid(&cipher.uuid, data, &headers, &conn, &ws)
+
}
#[post("/ciphers", data = "<data>")]