Correctly read local SiteView (#2122)

This commit is contained in:
Nutomic 2022-03-08 12:52:33 +00:00 committed by GitHub
parent 15ff832c4a
commit 660efd1549
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 13 additions and 12 deletions

View file

@ -502,7 +502,7 @@ impl Perform for LeaveAdmin {
blocking(context.pool(), move |conn| ModAdd::create(conn, &form)).await??; blocking(context.pool(), move |conn| ModAdd::create(conn, &form)).await??;
// Reread site and admins // Reread site and admins
let site_view = blocking(context.pool(), SiteView::read).await??; let site_view = blocking(context.pool(), SiteView::read_local).await??;
let admins = blocking(context.pool(), PersonViewSafe::admins).await??; let admins = blocking(context.pool(), PersonViewSafe::admins).await??;
let federated_instances = build_federated_instances( let federated_instances = build_federated_instances(

View file

@ -89,7 +89,7 @@ impl PerformCrud for CreateSite {
return Err(LemmyError::from_message("site_already_exists")); return Err(LemmyError::from_message("site_already_exists"));
} }
let site_view = blocking(context.pool(), SiteView::read).await??; let site_view = blocking(context.pool(), SiteView::read_local).await??;
Ok(SiteResponse { site_view }) Ok(SiteResponse { site_view })
} }

View file

@ -31,7 +31,7 @@ impl PerformCrud for GetSite {
) -> Result<GetSiteResponse, LemmyError> { ) -> Result<GetSiteResponse, LemmyError> {
let data: &GetSite = self; let data: &GetSite = self;
let site_view = match blocking(context.pool(), SiteView::read).await? { let site_view = match blocking(context.pool(), SiteView::read_local).await? {
Ok(site_view) => Some(site_view), Ok(site_view) => Some(site_view),
// If the site isn't created yet, check the setup // If the site isn't created yet, check the setup
Err(_) => { Err(_) => {
@ -73,7 +73,7 @@ impl PerformCrud for GetSite {
}; };
create_site.perform(context, websocket_id).await?; create_site.perform(context, websocket_id).await?;
info!("Site {} created", setup.site_name); info!("Site {} created", setup.site_name);
Some(blocking(context.pool(), SiteView::read).await??) Some(blocking(context.pool(), SiteView::read_local).await??)
} else { } else {
None None
} }

View file

@ -103,7 +103,7 @@ impl PerformCrud for EditSite {
.map_err(|e| e.with_message("couldnt_set_all_email_verified"))?; .map_err(|e| e.with_message("couldnt_set_all_email_verified"))?;
} }
let site_view = blocking(context.pool(), SiteView::read).await??; let site_view = blocking(context.pool(), SiteView::read_local).await??;
let res = SiteResponse { site_view }; let res = SiteResponse { site_view };

View file

@ -13,10 +13,11 @@ pub struct SiteView {
} }
impl SiteView { impl SiteView {
pub fn read(conn: &PgConnection) -> Result<Self, Error> { pub fn read_local(conn: &PgConnection) -> Result<Self, Error> {
let (mut site, counts) = site::table let (mut site, counts) = site::table
.inner_join(site_aggregates::table) .inner_join(site_aggregates::table)
.select((site::all_columns, site_aggregates::all_columns)) .select((site::all_columns, site_aggregates::all_columns))
.order_by(site::id)
.first::<(Site, SiteAggregates)>(conn)?; .first::<(Site, SiteAggregates)>(conn)?;
site.private_key = None; site.private_key = None;

View file

@ -82,7 +82,7 @@ async fn get_feed_data(
listing_type: ListingType, listing_type: ListingType,
sort_type: SortType, sort_type: SortType,
) -> Result<HttpResponse, LemmyError> { ) -> Result<HttpResponse, LemmyError> {
let site_view = blocking(context.pool(), SiteView::read).await??; let site_view = blocking(context.pool(), SiteView::read_local).await??;
let posts = blocking(context.pool(), move |conn| { let posts = blocking(context.pool(), move |conn| {
PostQueryBuilder::create(conn) PostQueryBuilder::create(conn)
@ -174,7 +174,7 @@ fn get_feed_user(
user_name: &str, user_name: &str,
protocol_and_hostname: &str, protocol_and_hostname: &str,
) -> Result<ChannelBuilder, LemmyError> { ) -> Result<ChannelBuilder, LemmyError> {
let site_view = SiteView::read(conn)?; let site_view = SiteView::read_local(conn)?;
let person = Person::read_from_name(conn, user_name)?; let person = Person::read_from_name(conn, user_name)?;
let posts = PostQueryBuilder::create(conn) let posts = PostQueryBuilder::create(conn)
@ -202,7 +202,7 @@ fn get_feed_community(
community_name: &str, community_name: &str,
protocol_and_hostname: &str, protocol_and_hostname: &str,
) -> Result<ChannelBuilder, LemmyError> { ) -> Result<ChannelBuilder, LemmyError> {
let site_view = SiteView::read(conn)?; let site_view = SiteView::read_local(conn)?;
let community = Community::read_from_name(conn, community_name)?; let community = Community::read_from_name(conn, community_name)?;
let posts = PostQueryBuilder::create(conn) let posts = PostQueryBuilder::create(conn)
@ -235,7 +235,7 @@ fn get_feed_front(
jwt: &str, jwt: &str,
protocol_and_hostname: &str, protocol_and_hostname: &str,
) -> Result<ChannelBuilder, LemmyError> { ) -> Result<ChannelBuilder, LemmyError> {
let site_view = SiteView::read(conn)?; let site_view = SiteView::read_local(conn)?;
let local_user_id = LocalUserId(Claims::decode(jwt, jwt_secret)?.claims.sub); let local_user_id = LocalUserId(Claims::decode(jwt, jwt_secret)?.claims.sub);
let local_user = LocalUser::read(conn, local_user_id)?; let local_user = LocalUser::read(conn, local_user_id)?;
@ -270,7 +270,7 @@ fn get_feed_inbox(
jwt: &str, jwt: &str,
protocol_and_hostname: &str, protocol_and_hostname: &str,
) -> Result<ChannelBuilder, LemmyError> { ) -> Result<ChannelBuilder, LemmyError> {
let site_view = SiteView::read(conn)?; let site_view = SiteView::read_local(conn)?;
let local_user_id = LocalUserId(Claims::decode(jwt, jwt_secret)?.claims.sub); let local_user_id = LocalUserId(Claims::decode(jwt, jwt_secret)?.claims.sub);
let local_user = LocalUser::read(conn, local_user_id)?; let local_user = LocalUser::read(conn, local_user_id)?;
let person_id = local_user.person_id; let person_id = local_user.person_id;

View file

@ -29,7 +29,7 @@ async fn node_info_well_known(
} }
async fn node_info(context: web::Data<LemmyContext>) -> Result<HttpResponse, Error> { async fn node_info(context: web::Data<LemmyContext>) -> Result<HttpResponse, Error> {
let site_view = blocking(context.pool(), SiteView::read) let site_view = blocking(context.pool(), SiteView::read_local)
.await? .await?
.map_err(|_| ErrorBadRequest(LemmyError::from(anyhow!("not_found"))))?; .map_err(|_| ErrorBadRequest(LemmyError::from(anyhow!("not_found"))))?;