Browse Source

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

 Rename/Fix revoke/restore endpoints
Daniel García 3 years ago
parent
commit
9c891baad1
2 changed files with 57 additions and 9 deletions
  1. 56 8
      src/api/core/organizations.rs
  2. 1 1
      src/db/models/organization.rs

+ 56 - 8
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,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"),

+ 1 - 1
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;
         }