Dont allow blocking local instance (fixes #4241)

This commit is contained in:
Felix Ableitner 2023-12-11 12:59:28 +01:00
parent a5386187e3
commit a21027dee2
2 changed files with 7 additions and 1 deletions

View file

@ -8,7 +8,7 @@ use lemmy_db_schema::{
source::instance_block::{InstanceBlock, InstanceBlockForm},
traits::Blockable,
};
use lemmy_db_views::structs::LocalUserView;
use lemmy_db_views::structs::{LocalUserView, SiteView};
use lemmy_utils::error::{LemmyError, LemmyErrorExt, LemmyErrorType};
#[tracing::instrument(skip(context))]
@ -19,6 +19,11 @@ pub async fn block_instance(
) -> Result<Json<BlockInstanceResponse>, LemmyError> {
let instance_id = data.instance_id;
let person_id = local_user_view.person.id;
let local_site = SiteView::read_local(&mut context.pool()).await?;
if local_site.site.instance_id == instance_id {
return Err(LemmyErrorType::CantBlockLocalInstance)?;
}
let instance_block_form = InstanceBlockForm {
person_id,
instance_id,

View file

@ -227,6 +227,7 @@ pub enum LemmyErrorType {
BanExpirationInPast,
InvalidUnixTime,
InvalidBotAction,
CantBlockLocalInstance,
Unknown(String),
}