]> Untitled Git - lemmy.git/blobdiff - crates/api/src/local_user/block.rs
Diesel 2.0.0 upgrade (#2452)
[lemmy.git] / crates / api / src / local_user / block.rs
index 4878cb02045d1ae49bcf292379fa3ac5b6ef791d..3f1b36f239a52f952912c4e82a41d86c344adbc0 100644 (file)
@@ -39,25 +39,29 @@ impl Perform for BlockPerson {
       target_id,
     };
 
+    let target_person_view = blocking(context.pool(), move |conn| {
+      PersonViewSafe::read(conn, target_id)
+    })
+    .await??;
+
+    if target_person_view.person.admin {
+      return Err(LemmyError::from_message("cant_block_admin"));
+    }
+
     if data.block {
-      let block = move |conn: &'_ _| PersonBlock::block(conn, &person_block_form);
+      let block = move |conn: &mut _| PersonBlock::block(conn, &person_block_form);
       blocking(context.pool(), block)
         .await?
         .map_err(|e| LemmyError::from_error_message(e, "person_block_already_exists"))?;
     } else {
-      let unblock = move |conn: &'_ _| PersonBlock::unblock(conn, &person_block_form);
+      let unblock = move |conn: &mut _| PersonBlock::unblock(conn, &person_block_form);
       blocking(context.pool(), unblock)
         .await?
         .map_err(|e| LemmyError::from_error_message(e, "person_block_already_exists"))?;
     }
 
-    let person_view = blocking(context.pool(), move |conn| {
-      PersonViewSafe::read(conn, target_id)
-    })
-    .await??;
-
     let res = BlockPersonResponse {
-      person_view,
+      person_view: target_person_view,
       blocked: data.block,
     };