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 9c891baad1838eb3446a90b2d6d71ebace9b347c
parent b050c60807bb20d23aca95df31421ff768cf0ce0
Author: Daniel GarcĂ­a <dani-garcia@users.noreply.github.com>
Date:   Mon, 12 Sep 2022 17:12:23 +0200

Merge pull request #2739 from BlackDex/fix-restore-revoke

 Rename/Fix revoke/restore endpoints
Diffstat:
Msrc/api/core/organizations.rs | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Msrc/db/models/organization.rs | 2+-
2 files changed, 57 insertions(+), 9 deletions(-)

diff --git a/src/api/core/organizations.rs b/src/api/core/organizations.rs @@ -63,8 +63,12 @@ pub fn routes() -> Vec<Route> { bulk_public_keys, deactivate_organization_user, bulk_deactivate_organization_user, + revoke_organization_user, + bulk_revoke_organization_user, activate_organization_user, - bulk_activate_organization_user + bulk_activate_organization_user, + restore_organization_user, + bulk_restore_organization_user ] } @@ -1480,6 +1484,7 @@ async fn import(org_id: String, data: JsonUpcase<OrgImportData>, headers: Header Ok(()) } +// Pre web-vault v2022.9.x endpoint #[put("/organizations/<org_id>/users/<org_user_id>/deactivate")] async fn deactivate_organization_user( org_id: String, @@ -1487,9 +1492,10 @@ async fn deactivate_organization_user( headers: AdminHeaders, conn: DbConn, ) -> EmptyResult { - _deactivate_organization_user(&org_id, &org_user_id, &headers, &conn).await + _revoke_organization_user(&org_id, &org_user_id, &headers, &conn).await } +// Pre web-vault v2022.9.x endpoint #[put("/organizations/<org_id>/users/deactivate", data = "<data>")] async fn bulk_deactivate_organization_user( org_id: String, @@ -1497,6 +1503,26 @@ async fn bulk_deactivate_organization_user( headers: AdminHeaders, conn: DbConn, ) -> Json<Value> { + bulk_revoke_organization_user(org_id, data, headers, conn).await +} + +#[put("/organizations/<org_id>/users/<org_user_id>/revoke")] +async fn revoke_organization_user( + org_id: String, + org_user_id: String, + headers: AdminHeaders, + conn: DbConn, +) -> EmptyResult { + _revoke_organization_user(&org_id, &org_user_id, &headers, &conn).await +} + +#[put("/organizations/<org_id>/users/revoke", data = "<data>")] +async fn bulk_revoke_organization_user( + org_id: String, + data: JsonUpcase<Value>, + headers: AdminHeaders, + conn: DbConn, +) -> Json<Value> { let data = data.into_inner().data; let mut bulk_response = Vec::new(); @@ -1504,7 +1530,7 @@ async fn bulk_deactivate_organization_user( Some(org_users) => { for org_user_id in org_users { let org_user_id = org_user_id.as_str().unwrap_or_default(); - let err_msg = match _deactivate_organization_user(&org_id, org_user_id, &headers, &conn).await { + let err_msg = match _revoke_organization_user(&org_id, org_user_id, &headers, &conn).await { Ok(_) => String::from(""), Err(e) => format!("{:?}", e), }; @@ -1528,7 +1554,7 @@ async fn bulk_deactivate_organization_user( })) } -async fn _deactivate_organization_user( +async fn _revoke_organization_user( org_id: &str, org_user_id: &str, headers: &AdminHeaders, @@ -1557,6 +1583,7 @@ async fn _deactivate_organization_user( Ok(()) } +// Pre web-vault v2022.9.x endpoint #[put("/organizations/<org_id>/users/<org_user_id>/activate")] async fn activate_organization_user( org_id: String, @@ -1564,9 +1591,10 @@ async fn activate_organization_user( headers: AdminHeaders, conn: DbConn, ) -> EmptyResult { - _activate_organization_user(&org_id, &org_user_id, &headers, &conn).await + _restore_organization_user(&org_id, &org_user_id, &headers, &conn).await } +// Pre web-vault v2022.9.x endpoint #[put("/organizations/<org_id>/users/activate", data = "<data>")] async fn bulk_activate_organization_user( org_id: String, @@ -1574,6 +1602,26 @@ async fn bulk_activate_organization_user( headers: AdminHeaders, conn: DbConn, ) -> Json<Value> { + bulk_restore_organization_user(org_id, data, headers, conn).await +} + +#[put("/organizations/<org_id>/users/<org_user_id>/restore")] +async fn restore_organization_user( + org_id: String, + org_user_id: String, + headers: AdminHeaders, + conn: DbConn, +) -> EmptyResult { + _restore_organization_user(&org_id, &org_user_id, &headers, &conn).await +} + +#[put("/organizations/<org_id>/users/restore", data = "<data>")] +async fn bulk_restore_organization_user( + org_id: String, + data: JsonUpcase<Value>, + headers: AdminHeaders, + conn: DbConn, +) -> Json<Value> { let data = data.into_inner().data; let mut bulk_response = Vec::new(); @@ -1581,7 +1629,7 @@ async fn bulk_activate_organization_user( Some(org_users) => { for org_user_id in org_users { let org_user_id = org_user_id.as_str().unwrap_or_default(); - let err_msg = match _activate_organization_user(&org_id, org_user_id, &headers, &conn).await { + let err_msg = match _restore_organization_user(&org_id, org_user_id, &headers, &conn).await { Ok(_) => String::from(""), Err(e) => format!("{:?}", e), }; @@ -1605,7 +1653,7 @@ async fn bulk_activate_organization_user( })) } -async fn _activate_organization_user( +async fn _restore_organization_user( org_id: &str, org_user_id: &str, headers: &AdminHeaders, @@ -1634,7 +1682,7 @@ async fn _activate_organization_user( } } - user_org.activate(); + user_org.restore(); user_org.save(conn).await?; } Some(_) => err!("User is already active"), diff --git a/src/db/models/organization.rs b/src/db/models/organization.rs @@ -196,7 +196,7 @@ impl UserOrganization { } } - pub fn activate(&mut self) { + pub fn restore(&mut self) { if self.status < UserOrgStatus::Accepted as i32 { self.status += ACTIVATE_REVOKE_DIFF; }