geforkt von mirrored/vaultwarden
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:
Ursprung
edca4248aa
Commit
e47a2fd0f3
2 geänderte Dateien mit 57 neuen und 9 gelöschten Zeilen
|
@ -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,15 +1492,36 @@ 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,
|
||||
data: JsonUpcase<Value>,
|
||||
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;
|
||||
|
||||
|
@ -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,15 +1591,36 @@ 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,
|
||||
data: JsonUpcase<Value>,
|
||||
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;
|
||||
|
||||
|
@ -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"),
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Laden …
In neuem Issue referenzieren