mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-11-26 22:31:20 +00:00
Only search locally for Community::read_from_name and similar (ref #698)
This commit is contained in:
parent
ada82582ef
commit
15adc21e1f
5 changed files with 18 additions and 12 deletions
|
@ -35,6 +35,7 @@ use activitystreams::{
|
|||
};
|
||||
use actix_web::{body::Body, web, web::Path, HttpResponse};
|
||||
use anyhow::Context;
|
||||
use diesel::result::Error::NotFound;
|
||||
use itertools::Itertools;
|
||||
use lemmy_db::{
|
||||
comment::{Comment, CommentForm},
|
||||
|
@ -68,6 +69,9 @@ pub async fn get_apub_comment(
|
|||
) -> Result<HttpResponse<Body>, LemmyError> {
|
||||
let id = info.comment_id.parse::<i32>()?;
|
||||
let comment = blocking(context.pool(), move |conn| Comment::read(conn, id)).await??;
|
||||
if !comment.local {
|
||||
return Err(NotFound.into());
|
||||
}
|
||||
|
||||
if !comment.deleted {
|
||||
Ok(create_apub_response(
|
||||
|
|
|
@ -11,7 +11,7 @@ use activitystreams::{
|
|||
prelude::*,
|
||||
};
|
||||
use actix_web::{web, HttpRequest, HttpResponse};
|
||||
use anyhow::{anyhow, Context};
|
||||
use anyhow::Context;
|
||||
use lemmy_db::{
|
||||
community::{Community, CommunityFollower, CommunityFollowerForm},
|
||||
user::User_,
|
||||
|
@ -48,15 +48,6 @@ pub async fn community_inbox(
|
|||
})
|
||||
.await??;
|
||||
|
||||
if !community.local {
|
||||
return Err(
|
||||
anyhow!(
|
||||
"Received activity is addressed to remote community {}",
|
||||
&community.actor_id
|
||||
)
|
||||
.into(),
|
||||
);
|
||||
}
|
||||
debug!(
|
||||
"Community {} received activity {:?}",
|
||||
&community.name, &activity
|
||||
|
|
|
@ -31,6 +31,7 @@ use activitystreams::{
|
|||
use activitystreams_ext::Ext1;
|
||||
use actix_web::{body::Body, web, HttpResponse};
|
||||
use anyhow::Context;
|
||||
use diesel::result::Error::NotFound;
|
||||
use lemmy_db::{
|
||||
community::Community,
|
||||
post::{Post, PostForm},
|
||||
|
@ -61,6 +62,9 @@ pub async fn get_apub_post(
|
|||
) -> Result<HttpResponse<Body>, LemmyError> {
|
||||
let id = info.post_id.parse::<i32>()?;
|
||||
let post = blocking(context.pool(), move |conn| Post::read(conn, id)).await??;
|
||||
if !post.local {
|
||||
return Err(NotFound.into());
|
||||
}
|
||||
|
||||
if !post.deleted {
|
||||
Ok(create_apub_response(&post.to_apub(context.pool()).await?))
|
||||
|
|
|
@ -87,6 +87,7 @@ impl Community {
|
|||
pub fn read_from_name(conn: &PgConnection, community_name: &str) -> Result<Self, Error> {
|
||||
use crate::schema::community::dsl::*;
|
||||
community
|
||||
.filter(local)
|
||||
.filter(name.eq(community_name))
|
||||
.first::<Self>(conn)
|
||||
}
|
||||
|
|
|
@ -143,11 +143,17 @@ impl User_ {
|
|||
}
|
||||
|
||||
pub fn find_by_username(conn: &PgConnection, username: &str) -> Result<User_, Error> {
|
||||
user_.filter(name.ilike(username)).first::<User_>(conn)
|
||||
user_
|
||||
.filter(local)
|
||||
.filter(name.ilike(username))
|
||||
.first::<User_>(conn)
|
||||
}
|
||||
|
||||
pub fn find_by_email(conn: &PgConnection, from_email: &str) -> Result<User_, Error> {
|
||||
user_.filter(email.eq(from_email)).first::<User_>(conn)
|
||||
user_
|
||||
.filter(local)
|
||||
.filter(email.eq(from_email))
|
||||
.first::<User_>(conn)
|
||||
}
|
||||
|
||||
pub fn get_profile_url(&self, hostname: &str) -> String {
|
||||
|
|
Loading…
Reference in a new issue