1
0
Fork 1
Spiegel von https://github.com/dani-garcia/vaultwarden.git synchronisiert 2024-11-22 05:10:29 +01:00

Rename/Fix revoke/restore endpoints

In web-vault v2022.9.x it seems the endpoints changed.
 - activate > restore
 - deactivate > revoke

This PR adds those endpoints and renames the functions.
It also keeps the previous endpoints for now to be compatible with
previous vault verions for now, just in case.
Dieser Commit ist enthalten in:
BlackDex 2022-09-12 16:08:36 +02:00
Ursprung edca4248aa
Commit e47a2fd0f3
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 58C80A2AA6C765E1
2 geänderte Dateien mit 57 neuen und 9 gelöschten Zeilen

Datei anzeigen

@ -63,8 +63,12 @@ pub fn routes() -> Vec<Route> {
bulk_public_keys, bulk_public_keys,
deactivate_organization_user, deactivate_organization_user,
bulk_deactivate_organization_user, bulk_deactivate_organization_user,
revoke_organization_user,
bulk_revoke_organization_user,
activate_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(()) Ok(())
} }
// Pre web-vault v2022.9.x endpoint
#[put("/organizations/<org_id>/users/<org_user_id>/deactivate")] #[put("/organizations/<org_id>/users/<org_user_id>/deactivate")]
async fn deactivate_organization_user( async fn deactivate_organization_user(
org_id: String, org_id: String,
@ -1487,15 +1492,36 @@ async fn deactivate_organization_user(
headers: AdminHeaders, headers: AdminHeaders,
conn: DbConn, conn: DbConn,
) -> EmptyResult { ) -> 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>")] #[put("/organizations/<org_id>/users/deactivate", data = "<data>")]
async fn bulk_deactivate_organization_user( async fn bulk_deactivate_organization_user(
org_id: String, org_id: String,
data: JsonUpcase<Value>, data: JsonUpcase<Value>,
headers: AdminHeaders, headers: AdminHeaders,
conn: DbConn, 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> { ) -> Json<Value> {
let data = data.into_inner().data; let data = data.into_inner().data;
@ -1504,7 +1530,7 @@ async fn bulk_deactivate_organization_user(
Some(org_users) => { Some(org_users) => {
for org_user_id in org_users { for org_user_id in org_users {
let org_user_id = org_user_id.as_str().unwrap_or_default(); 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(""), Ok(_) => String::from(""),
Err(e) => format!("{:?}", e), 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_id: &str,
org_user_id: &str, org_user_id: &str,
headers: &AdminHeaders, headers: &AdminHeaders,
@ -1557,6 +1583,7 @@ async fn _deactivate_organization_user(
Ok(()) Ok(())
} }
// Pre web-vault v2022.9.x endpoint
#[put("/organizations/<org_id>/users/<org_user_id>/activate")] #[put("/organizations/<org_id>/users/<org_user_id>/activate")]
async fn activate_organization_user( async fn activate_organization_user(
org_id: String, org_id: String,
@ -1564,15 +1591,36 @@ async fn activate_organization_user(
headers: AdminHeaders, headers: AdminHeaders,
conn: DbConn, conn: DbConn,
) -> EmptyResult { ) -> 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>")] #[put("/organizations/<org_id>/users/activate", data = "<data>")]
async fn bulk_activate_organization_user( async fn bulk_activate_organization_user(
org_id: String, org_id: String,
data: JsonUpcase<Value>, data: JsonUpcase<Value>,
headers: AdminHeaders, headers: AdminHeaders,
conn: DbConn, 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> { ) -> Json<Value> {
let data = data.into_inner().data; let data = data.into_inner().data;
@ -1581,7 +1629,7 @@ async fn bulk_activate_organization_user(
Some(org_users) => { Some(org_users) => {
for org_user_id in org_users { for org_user_id in org_users {
let org_user_id = org_user_id.as_str().unwrap_or_default(); 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(""), Ok(_) => String::from(""),
Err(e) => format!("{:?}", e), 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_id: &str,
org_user_id: &str, org_user_id: &str,
headers: &AdminHeaders, headers: &AdminHeaders,
@ -1634,7 +1682,7 @@ async fn _activate_organization_user(
} }
} }
user_org.activate(); user_org.restore();
user_org.save(conn).await?; user_org.save(conn).await?;
} }
Some(_) => err!("User is already active"), Some(_) => err!("User is already active"),

Datei anzeigen

@ -196,7 +196,7 @@ impl UserOrganization {
} }
} }
pub fn activate(&mut self) { pub fn restore(&mut self) {
if self.status < UserOrgStatus::Accepted as i32 { if self.status < UserOrgStatus::Accepted as i32 {
self.status += ACTIVATE_REVOKE_DIFF; self.status += ACTIVATE_REVOKE_DIFF;
} }