use actix_web::web::Data;
use lemmy_api_common::{
person::{LoginResponse, SaveUserSettings},
- utils::{
- blocking,
- check_image_has_local_domain,
- get_local_user_view_from_jwt,
- send_verification_email,
- },
+ utils::{blocking, get_local_user_view_from_jwt, send_verification_email},
};
use lemmy_db_schema::{
source::{
let email_deref = data.email.as_deref().map(|e| e.to_owned());
let email = diesel_option_overwrite(&email_deref);
- check_image_has_local_domain(avatar.as_ref().unwrap_or(&None))?;
- check_image_has_local_domain(banner.as_ref().unwrap_or(&None))?;
-
if let Some(Some(email)) = &email {
let previous_email = local_user_view.local_user.email.clone().unwrap_or_default();
// Only send the verification email if there was an email change
use crate::{sensitive::Sensitive, site::FederatedInstances};
use lemmy_db_schema::{
- newtypes::{CommunityId, DbUrl, LocalUserId, PersonId, PostId},
+ newtypes::{CommunityId, LocalUserId, PersonId, PostId},
source::{
comment::Comment,
community::Community,
Ok(())
}
-
-pub fn check_image_has_local_domain(url: &Option<DbUrl>) -> Result<(), LemmyError> {
- if let Some(url) = url {
- let settings = Settings::get();
- let domain = url.domain().expect("url has domain");
- if domain != settings.hostname {
- return Err(LemmyError::from_message("image_not_local"));
- }
- }
- Ok(())
-}
use actix_web::web::Data;
use lemmy_api_common::{
community::{CommunityResponse, CreateCommunity},
- utils::{blocking, check_image_has_local_domain, get_local_user_view_from_jwt, is_admin},
+ utils::{blocking, get_local_user_view_from_jwt, is_admin},
};
use lemmy_apub::{
generate_followers_url,
check_slurs(&data.name, &context.settings().slur_regex())?;
check_slurs(&data.title, &context.settings().slur_regex())?;
check_slurs_opt(&data.description, &context.settings().slur_regex())?;
- check_image_has_local_domain(icon.as_ref().unwrap_or(&None))?;
- check_image_has_local_domain(banner.as_ref().unwrap_or(&None))?;
if !is_valid_actor_name(&data.name, context.settings().actor_name_max_length) {
return Err(LemmyError::from_message("invalid_community_name"));
use actix_web::web::Data;
use lemmy_api_common::{
community::{CommunityResponse, EditCommunity},
- utils::{blocking, check_image_has_local_domain, get_local_user_view_from_jwt},
+ utils::{blocking, get_local_user_view_from_jwt},
};
use lemmy_apub::protocol::activities::community::update::UpdateCommunity;
use lemmy_db_schema::{
check_slurs_opt(&data.title, &context.settings().slur_regex())?;
check_slurs_opt(&data.description, &context.settings().slur_regex())?;
- check_image_has_local_domain(icon.as_ref().unwrap_or(&None))?;
- check_image_has_local_domain(banner.as_ref().unwrap_or(&None))?;
// Verify its a mod (only mods can edit it)
let community_id = data.community_id;
use actix_web::web::Data;
use lemmy_api_common::{
site::{CreateSite, SiteResponse},
- utils::{
- blocking,
- check_image_has_local_domain,
- get_local_user_view_from_jwt,
- is_admin,
- site_description_length_check,
- },
+ utils::{blocking, get_local_user_view_from_jwt, is_admin, site_description_length_check},
};
use lemmy_apub::generate_site_inbox_url;
use lemmy_db_schema::{
check_slurs(&data.name, &context.settings().slur_regex())?;
check_slurs_opt(&data.description, &context.settings().slur_regex())?;
- check_image_has_local_domain(icon.as_ref().unwrap_or(&None))?;
- check_image_has_local_domain(banner.as_ref().unwrap_or(&None))?;
// Make sure user is an admin
is_admin(&local_user_view)?;
use actix_web::web::Data;
use lemmy_api_common::{
site::{EditSite, SiteResponse},
- utils::{
- blocking,
- check_image_has_local_domain,
- get_local_user_view_from_jwt,
- is_admin,
- site_description_length_check,
- },
+ utils::{blocking, get_local_user_view_from_jwt, is_admin, site_description_length_check},
};
use lemmy_db_schema::{
source::{
check_slurs_opt(&data.name, &context.settings().slur_regex())?;
check_slurs_opt(&data.description, &context.settings().slur_regex())?;
- check_image_has_local_domain(icon.as_ref().unwrap_or(&None))?;
- check_image_has_local_domain(banner.as_ref().unwrap_or(&None))?;
if let Some(Some(desc)) = &description {
site_description_length_check(desc)?;
use crate::{
check_is_apub_id_valid,
- objects::{read_from_string_or_source_opt, verify_image_domain_matches},
+ objects::read_from_string_or_source_opt,
protocol::{
objects::instance::{Instance, InstanceType},
ImageObject,
) -> Result<(), LemmyError> {
check_is_apub_id_valid(apub.id.inner(), true, &data.settings())?;
verify_domains_match(expected_domain, apub.id.inner())?;
- verify_image_domain_matches(expected_domain, &apub.icon)?;
- verify_image_domain_matches(expected_domain, &apub.image)?;
let slur_regex = &data.settings().slur_regex();
check_slurs(&apub.name, slur_regex)?;
-use crate::protocol::{ImageObject, Source};
+use crate::protocol::Source;
use anyhow::anyhow;
use html2md::parse_html;
-use lemmy_apub_lib::{values::MediaTypeMarkdownOrHtml, verify::verify_domains_match};
+use lemmy_apub_lib::values::MediaTypeMarkdownOrHtml;
use lemmy_utils::{settings::structs::Settings, LemmyError};
use url::Url;
.map(|content| read_from_string_or_source(content, media_type, source))
}
-pub(crate) fn verify_image_domain_matches(
- a: &Url,
- b: &Option<ImageObject>,
-) -> Result<(), LemmyError> {
- if let Some(b) = b {
- verify_domains_match(a, &b.url)
- } else {
- Ok(())
- }
-}
-
/// When for example a Post is made in a remote community, the community will send it back,
/// wrapped in Announce. If we simply receive this like any other federated object, overwrite the
/// existing, local Post. In particular, it will set the field local = false, so that the object
use crate::{
check_is_apub_id_valid,
generate_outbox_url,
- objects::{
- instance::fetch_instance_actor_for_object,
- read_from_string_or_source_opt,
- verify_image_domain_matches,
- },
+ objects::{instance::fetch_instance_actor_for_object, read_from_string_or_source_opt},
protocol::{
objects::{
person::{Person, UserTypes},
) -> Result<(), LemmyError> {
verify_domains_match(person.id.inner(), expected_domain)?;
check_is_apub_id_valid(person.id.inner(), false, &context.settings())?;
- verify_image_domain_matches(expected_domain, &person.icon)?;
- verify_image_domain_matches(expected_domain, &person.image)?;
let slur_regex = &context.settings().slur_regex();
check_slurs(&person.preferred_username, slur_regex)?;
community_moderators::ApubCommunityModerators,
community_outbox::ApubCommunityOutbox,
},
- objects::{
- community::ApubCommunity,
- read_from_string_or_source_opt,
- verify_image_domain_matches,
- },
+ objects::{community::ApubCommunity, read_from_string_or_source_opt},
protocol::{objects::Endpoints, ImageObject, Source},
};
use activitystreams_kinds::actor::GroupType;
) -> Result<(), LemmyError> {
check_is_apub_id_valid(self.id.inner(), true, &context.settings())?;
verify_domains_match(expected_domain, self.id.inner())?;
- verify_image_domain_matches(expected_domain, &self.icon)?;
- verify_image_domain_matches(expected_domain, &self.image)?;
let slur_regex = &context.settings().slur_regex();
check_slurs(&self.preferred_username, slur_regex)?;