diff --git a/.drone.yml b/.drone.yml index 5c68e2ccb..bb27984f9 100644 --- a/.drone.yml +++ b/.drone.yml @@ -21,13 +21,7 @@ steps: - name: cargo clippy image: ekidd/rust-musl-builder:1.50.0 - environment: - CARGO_HOME: /drone/src/.cargo commands: - - whoami - - ls -la ~/.cargo - - mv ~/.cargo . - - ls -la .cargo - cargo clippy --workspace --tests --all-targets --all-features -- -D warnings -D deprecated -D clippy::perf -D clippy::complexity -D clippy::dbg_macro - cargo clippy --workspace -- -D clippy::unwrap_used @@ -37,7 +31,6 @@ steps: LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy RUST_BACKTRACE: 1 RUST_TEST_THREADS: 1 - CARGO_HOME: /drone/src/.cargo commands: - sudo apt-get update - sudo apt-get -y install --no-install-recommends espeak postgresql-client @@ -45,8 +38,6 @@ steps: - name: cargo build image: ekidd/rust-musl-builder:1.50.0 - environment: - CARGO_HOME: /drone/src/.cargo commands: - cargo build - mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server @@ -118,7 +109,6 @@ steps: LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy RUST_BACKTRACE: 1 RUST_TEST_THREADS: 1 - CARGO_HOME: /drone/src/.cargo commands: - apt-get update - apt-get -y install --no-install-recommends espeak postgresql-client libssl-dev pkg-config libpq-dev @@ -128,8 +118,6 @@ steps: # Using Debian here because there seems to be no official Alpine-based Rust docker image for ARM. - name: cargo build image: rust:1.50-slim-buster - environment: - CARGO_HOME: /drone/src/.cargo commands: - apt-get update - apt-get -y install --no-install-recommends libssl-dev pkg-config libpq-dev diff --git a/crates/api/src/comment.rs b/crates/api/src/comment.rs index bcee72b09..78bb484f9 100644 --- a/crates/api/src/comment.rs +++ b/crates/api/src/comment.rs @@ -85,13 +85,7 @@ impl Perform for CreateComment { parent_id: data.parent_id.to_owned(), post_id: data.post_id, creator_id: local_user_view.person.id, - removed: None, - deleted: None, - read: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; // Create the comment diff --git a/crates/api/src/community.rs b/crates/api/src/community.rs index f7e8e23ce..589cefd0c 100644 --- a/crates/api/src/community.rs +++ b/crates/api/src/community.rs @@ -170,19 +170,14 @@ impl Perform for CreateCommunity { icon, banner, creator_id: local_user_view.person.id, - removed: None, - deleted: None, nsfw: data.nsfw, - updated: None, actor_id: Some(community_actor_id.to_owned()), - local: true, private_key: Some(keypair.private_key), public_key: Some(keypair.public_key), - last_refreshed_at: None, - published: None, followers_url: Some(generate_followers_url(&community_actor_id)?), inbox_url: Some(generate_inbox_url(&community_actor_id)?), shared_inbox_url: Some(Some(generate_shared_inbox_url(&community_actor_id)?)), + ..CommunityForm::default() }; let inserted_community = match blocking(context.pool(), move |conn| { @@ -265,23 +260,13 @@ impl Perform for EditCommunity { let community_form = CommunityForm { name: read_community.name, title: data.title.to_owned(), + creator_id: read_community.creator_id, description: data.description.to_owned(), icon, banner, - creator_id: read_community.creator_id, - removed: Some(read_community.removed), - deleted: Some(read_community.deleted), nsfw: data.nsfw, updated: Some(naive_now()), - actor_id: Some(read_community.actor_id), - local: read_community.local, - private_key: read_community.private_key, - public_key: read_community.public_key, - last_refreshed_at: None, - published: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let community_id = data.community_id; diff --git a/crates/api/src/lib.rs b/crates/api/src/lib.rs index 529a13cfd..dacf46f2b 100644 --- a/crates/api/src/lib.rs +++ b/crates/api/src/lib.rs @@ -79,7 +79,7 @@ pub(crate) async fn is_mod_or_admin( } pub fn is_admin(local_user_view: &LocalUserView) -> Result<(), LemmyError> { - if !local_user_view.local_user.admin { + if !local_user_view.person.admin { return Err(ApiError::err("not_an_admin").into()); } Ok(()) @@ -528,38 +528,15 @@ mod tests { let new_person = PersonForm { name: "Gerry9812".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); let local_user_form = LocalUserForm { person_id: inserted_person.id, - email: None, - matrix_user_id: None, password_encrypted: "123456".to_string(), - admin: None, - show_nsfw: None, - theme: None, - default_sort_type: None, - default_listing_type: None, - lang: None, - show_avatars: None, - send_notifications_to_email: None, + ..LocalUserForm::default() }; let inserted_local_user = LocalUser::create(&conn, &local_user_form).unwrap(); diff --git a/crates/api/src/local_user.rs b/crates/api/src/local_user.rs index 6aa8b26c9..20e7ff979 100644 --- a/crates/api/src/local_user.rs +++ b/crates/api/src/local_user.rs @@ -199,21 +199,13 @@ impl Perform for Register { // Register the new person let person_form = PersonForm { name: data.username.to_owned(), - avatar: None, - banner: None, - preferred_username: None, - published: None, - updated: None, - banned: None, - deleted: None, actor_id: Some(actor_id.clone()), - bio: None, - local: Some(true), private_key: Some(Some(actor_keypair.private_key)), public_key: Some(Some(actor_keypair.public_key)), - last_refreshed_at: None, inbox_url: Some(generate_inbox_url(&actor_id)?), shared_inbox_url: Some(Some(generate_shared_inbox_url(&actor_id)?)), + admin: Some(no_admins), + ..PersonForm::default() }; // insert the person @@ -232,9 +224,7 @@ impl Perform for Register { let local_user_form = LocalUserForm { person_id: inserted_person.id, email: Some(data.email.to_owned()), - matrix_user_id: None, password_encrypted: data.password.to_owned(), - admin: Some(no_admins), show_nsfw: Some(data.show_nsfw), theme: Some("browser".into()), default_sort_type: Some(SortType::Active as i16), @@ -285,22 +275,14 @@ impl Perform for Register { name: default_community_name.to_string(), title: "The Default Community".to_string(), description: Some("The Default Community".to_string()), - nsfw: false, creator_id: inserted_person.id, - removed: None, - deleted: None, - updated: None, actor_id: Some(actor_id.to_owned()), - local: true, private_key: Some(main_community_keypair.private_key), public_key: Some(main_community_keypair.public_key), - last_refreshed_at: None, - published: None, - icon: None, - banner: None, followers_url: Some(generate_followers_url(&actor_id)?), inbox_url: Some(generate_inbox_url(&actor_id)?), shared_inbox_url: Some(Some(generate_shared_inbox_url(&actor_id)?)), + ..CommunityForm::default() }; blocking(context.pool(), move |conn| { Community::create(conn, &community_form) @@ -473,10 +455,12 @@ impl Perform for SaveUserSettings { actor_id: None, bio, local: None, + admin: None, private_key: None, public_key: None, last_refreshed_at: None, shared_inbox_url: None, + matrix_user_id, }; let person_res = blocking(context.pool(), move |conn| { @@ -493,9 +477,7 @@ impl Perform for SaveUserSettings { let local_user_form = LocalUserForm { person_id, email, - matrix_user_id, password_encrypted, - admin: None, show_nsfw: data.show_nsfw, theme: data.theme.to_owned(), default_sort_type, @@ -657,7 +639,7 @@ impl Perform for AddAdmin { let added = data.added; let added_person_id = data.person_id; let added_admin = match blocking(context.pool(), move |conn| { - LocalUser::add_admin(conn, added_person_id, added) + Person::add_admin(conn, added_person_id, added) }) .await? { @@ -670,7 +652,7 @@ impl Perform for AddAdmin { // Mod tables let form = ModAddForm { mod_person_id: local_user_view.person.id, - other_person_id: added_admin.person_id, + other_person_id: added_admin.id, removed: Some(!data.added), }; @@ -1102,12 +1084,7 @@ impl Perform for CreatePrivateMessage { content: content_slurs_removed.to_owned(), creator_id: local_user_view.person.id, recipient_id: data.recipient_id, - deleted: None, - read: None, - updated: None, - ap_id: None, - local: true, - published: None, + ..PrivateMessageForm::default() }; let inserted_private_message = match blocking(context.pool(), move |conn| { diff --git a/crates/api/src/post.rs b/crates/api/src/post.rs index bbc3e04bb..e76cfa18f 100644 --- a/crates/api/src/post.rs +++ b/crates/api/src/post.rs @@ -82,19 +82,12 @@ impl Perform for CreatePost { body: data.body.to_owned(), community_id: data.community_id, creator_id: local_user_view.person.id, - removed: None, - deleted: None, nsfw: data.nsfw, - locked: None, - stickied: None, - updated: None, embed_title: iframely_title, embed_description: iframely_description, embed_html: iframely_html, thumbnail_url: pictrs_thumbnail.map(|u| u.into()), - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = @@ -402,24 +395,18 @@ impl Perform for EditPost { fetch_iframely_and_pictrs_data(context.client(), data_url).await; let post_form = PostForm { + creator_id: orig_post.creator_id.to_owned(), + community_id: orig_post.community_id, name: data.name.trim().to_owned(), url: data_url.map(|u| u.to_owned().into()), body: data.body.to_owned(), nsfw: data.nsfw, - creator_id: orig_post.creator_id.to_owned(), - community_id: orig_post.community_id, - removed: Some(orig_post.removed), - deleted: Some(orig_post.deleted), - locked: Some(orig_post.locked), - stickied: Some(orig_post.stickied), updated: Some(naive_now()), embed_title: iframely_title, embed_description: iframely_description, embed_html: iframely_html, thumbnail_url: pictrs_thumbnail.map(|u| u.into()), - ap_id: Some(orig_post.ap_id), - local: orig_post.local, - published: None, + ..PostForm::default() }; let post_id = data.post_id; diff --git a/crates/api_structs/src/community.rs b/crates/api_structs/src/community.rs index bd0e129dc..a03440447 100644 --- a/crates/api_structs/src/community.rs +++ b/crates/api_structs/src/community.rs @@ -28,7 +28,7 @@ pub struct CreateCommunity { pub description: Option, pub icon: Option, pub banner: Option, - pub nsfw: bool, + pub nsfw: Option, pub auth: String, } @@ -88,7 +88,7 @@ pub struct EditCommunity { pub description: Option, pub icon: Option, pub banner: Option, - pub nsfw: bool, + pub nsfw: Option, pub auth: String, } diff --git a/crates/apub/src/extensions/context.rs b/crates/apub/src/extensions/context.rs index a36b84899..041ca4bf0 100644 --- a/crates/apub/src/extensions/context.rs +++ b/crates/apub/src/extensions/context.rs @@ -14,7 +14,11 @@ pub(crate) fn lemmy_context() -> Result, LemmyError> { "type": "sc:Boolean", "id": "pt:commentsEnabled" }, - "moderators": "as:moderators" + "moderators": "as:moderators", + "matrixUserId": { + "type": "sc:Text", + "id": "as:alsoKnownAs" + }, }))?; Ok(vec![ AnyBase::from(context()), diff --git a/crates/apub/src/extensions/group_extensions.rs b/crates/apub/src/extensions/group_extension.rs similarity index 100% rename from crates/apub/src/extensions/group_extensions.rs rename to crates/apub/src/extensions/group_extension.rs diff --git a/crates/apub/src/extensions/mod.rs b/crates/apub/src/extensions/mod.rs index 4b4c08664..2f7df8211 100644 --- a/crates/apub/src/extensions/mod.rs +++ b/crates/apub/src/extensions/mod.rs @@ -1,4 +1,5 @@ pub(crate) mod context; -pub(crate) mod group_extensions; +pub(crate) mod group_extension; pub(crate) mod page_extension; +pub(crate) mod person_extension; pub(crate) mod signatures; diff --git a/crates/apub/src/extensions/person_extension.rs b/crates/apub/src/extensions/person_extension.rs new file mode 100644 index 000000000..248adcc43 --- /dev/null +++ b/crates/apub/src/extensions/person_extension.rs @@ -0,0 +1,36 @@ +use activitystreams::unparsed::UnparsedMutExt; +use activitystreams_ext::UnparsedExtension; +use lemmy_utils::LemmyError; +use serde::{Deserialize, Serialize}; + +/// Activitystreams extension to allow (de)serializing additional Person field +/// `also_known_as` (used for Matrix profile link). +#[derive(Clone, Debug, Default, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct PersonExtension { + pub matrix_user_id: Option, +} + +impl PersonExtension { + pub fn new(matrix_user_id: Option) -> Result { + Ok(PersonExtension { matrix_user_id }) + } +} + +impl UnparsedExtension for PersonExtension +where + U: UnparsedMutExt, +{ + type Error = serde_json::Error; + + fn try_from_unparsed(unparsed_mut: &mut U) -> Result { + Ok(PersonExtension { + matrix_user_id: unparsed_mut.remove("matrix_user_id")?, + }) + } + + fn try_into_unparsed(self, unparsed_mut: &mut U) -> Result<(), Self::Error> { + unparsed_mut.insert("matrix_user_id", self.matrix_user_id)?; + Ok(()) + } +} diff --git a/crates/apub/src/lib.rs b/crates/apub/src/lib.rs index 74d4cbef3..0e2c826ad 100644 --- a/crates/apub/src/lib.rs +++ b/crates/apub/src/lib.rs @@ -11,8 +11,9 @@ pub mod objects; pub mod routes; use crate::extensions::{ - group_extensions::GroupExtension, + group_extension::GroupExtension, page_extension::PageExtension, + person_extension::PersonExtension, signatures::{PublicKey, PublicKeyExtension}, }; use activitystreams::{ @@ -46,7 +47,7 @@ use url::{ParseError, Url}; /// Activitystreams type for community type GroupExt = Ext2>, GroupExtension, PublicKeyExtension>; /// Activitystreams type for person -type PersonExt = Ext1>, PublicKeyExtension>; +type PersonExt = Ext2>, PersonExtension, PublicKeyExtension>; /// Activitystreams type for post type PageExt = Ext1, PageExtension>; type NoteExt = ApObject; diff --git a/crates/apub/src/objects/comment.rs b/crates/apub/src/objects/comment.rs index bd6c1a332..cd06b7eb1 100644 --- a/crates/apub/src/objects/comment.rs +++ b/crates/apub/src/objects/comment.rs @@ -203,7 +203,7 @@ impl FromApubToForm for CommentForm { updated: note.updated().map(|u| u.to_owned().naive_local()), deleted: None, ap_id: Some(check_object_domain(note, expected_domain)?), - local: false, + local: Some(false), }) } } diff --git a/crates/apub/src/objects/community.rs b/crates/apub/src/objects/community.rs index d7e42c4ae..9667031c7 100644 --- a/crates/apub/src/objects/community.rs +++ b/crates/apub/src/objects/community.rs @@ -1,5 +1,5 @@ use crate::{ - extensions::{context::lemmy_context, group_extensions::GroupExtension}, + extensions::{context::lemmy_context, group_extension::GroupExtension}, fetcher::{community::fetch_community_mods, person::get_or_fetch_and_upsert_person}, generate_moderators_url, objects::{ @@ -220,9 +220,9 @@ impl FromApubToForm for CommunityForm { published: group.inner.published().map(|u| u.to_owned().naive_local()), updated: group.inner.updated().map(|u| u.to_owned().naive_local()), deleted: None, - nsfw: group.ext_one.sensitive.unwrap_or(false), + nsfw: Some(group.ext_one.sensitive.unwrap_or(false)), actor_id: Some(check_object_domain(group, expected_domain)?), - local: false, + local: Some(false), private_key: None, public_key: Some(group.ext_two.to_owned().public_key.public_key_pem), last_refreshed_at: Some(naive_now()), diff --git a/crates/apub/src/objects/person.rs b/crates/apub/src/objects/person.rs index 87227dd14..662871dc1 100644 --- a/crates/apub/src/objects/person.rs +++ b/crates/apub/src/objects/person.rs @@ -1,5 +1,5 @@ use crate::{ - extensions::context::lemmy_context, + extensions::{context::lemmy_context, person_extension::PersonExtension}, objects::{ check_object_domain, get_source_markdown_value, @@ -16,7 +16,7 @@ use activitystreams::{ object::{ApObject, Image, Tombstone}, prelude::*, }; -use activitystreams_ext::Ext1; +use activitystreams_ext::Ext2; use anyhow::Context; use lemmy_api_structs::blocking; use lemmy_db_queries::{ApubObject, DbPool}; @@ -77,7 +77,8 @@ impl ToApub for DbPerson { ..Default::default() }); - Ok(Ext1::new(ap_actor, self.get_public_key_ext()?)) + let person_ext = PersonExtension::new(self.matrix_user_id.to_owned())?; + Ok(Ext2::new(ap_actor, person_ext, self.get_public_key_ext()?)) } fn to_tombstone(&self) -> Result { unimplemented!() @@ -190,11 +191,13 @@ impl FromApubToForm for PersonForm { actor_id: Some(check_object_domain(person, expected_domain)?), bio: Some(bio), local: Some(false), + admin: Some(false), private_key: None, - public_key: Some(Some(person.ext_one.public_key.to_owned().public_key_pem)), + public_key: Some(Some(person.ext_two.public_key.to_owned().public_key_pem)), last_refreshed_at: Some(naive_now()), inbox_url: Some(person.inner.inbox()?.to_owned().into()), shared_inbox_url: Some(shared_inbox), + matrix_user_id: Some(person.ext_one.matrix_user_id.to_owned()), }) } } diff --git a/crates/apub/src/objects/post.rs b/crates/apub/src/objects/post.rs index f532fcc1d..f5830843e 100644 --- a/crates/apub/src/objects/post.rs +++ b/crates/apub/src/objects/post.rs @@ -238,7 +238,7 @@ impl FromApubToForm for PostForm { embed_html: iframely_html, thumbnail_url: pictrs_thumbnail.map(|u| u.into()), ap_id: Some(ap_id), - local: false, + local: Some(false), }) } } diff --git a/crates/apub/src/objects/private_message.rs b/crates/apub/src/objects/private_message.rs index 6eec9fa8c..6ec2c8011 100644 --- a/crates/apub/src/objects/private_message.rs +++ b/crates/apub/src/objects/private_message.rs @@ -130,7 +130,7 @@ impl FromApubToForm for PrivateMessageForm { deleted: None, read: None, ap_id: Some(check_object_domain(note, expected_domain)?), - local: false, + local: Some(false), }) } } diff --git a/crates/db_queries/src/aggregates/comment_aggregates.rs b/crates/db_queries/src/aggregates/comment_aggregates.rs index c55fef0ca..a2bea11ef 100644 --- a/crates/db_queries/src/aggregates/comment_aggregates.rs +++ b/crates/db_queries/src/aggregates/comment_aggregates.rs @@ -44,42 +44,14 @@ mod tests { let new_person = PersonForm { name: "thommy_comment_agg".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); let another_person = PersonForm { name: "jerry_comment_agg".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let another_inserted_person = Person::create(&conn, &another_person).unwrap(); @@ -88,45 +60,16 @@ mod tests { name: "TIL_comment_agg".into(), creator_id: inserted_person.id, title: "nada".to_owned(), - description: None, - nsfw: false, - removed: None, - deleted: None, - updated: None, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); let new_post = PostForm { name: "A test post".into(), - url: None, - body: None, creator_id: inserted_person.id, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - nsfw: false, - updated: None, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = Post::create(&conn, &new_post).unwrap(); @@ -135,14 +78,7 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, - parent_id: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let inserted_comment = Comment::create(&conn, &comment_form).unwrap(); @@ -151,14 +87,8 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, parent_id: Some(inserted_comment.id), - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let _inserted_child_comment = Comment::create(&conn, &child_comment_form).unwrap(); diff --git a/crates/db_queries/src/aggregates/community_aggregates.rs b/crates/db_queries/src/aggregates/community_aggregates.rs index bbe751ae5..25c0b394e 100644 --- a/crates/db_queries/src/aggregates/community_aggregates.rs +++ b/crates/db_queries/src/aggregates/community_aggregates.rs @@ -48,42 +48,14 @@ mod tests { let new_person = PersonForm { name: "thommy_community_agg".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); let another_person = PersonForm { name: "jerry_community_agg".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let another_inserted_person = Person::create(&conn, &another_person).unwrap(); @@ -92,22 +64,7 @@ mod tests { name: "TIL_community_agg".into(), creator_id: inserted_person.id, title: "nada".to_owned(), - description: None, - nsfw: false, - removed: None, - deleted: None, - updated: None, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); @@ -116,22 +73,7 @@ mod tests { name: "TIL_community_agg_2".into(), creator_id: inserted_person.id, title: "nada".to_owned(), - description: None, - nsfw: false, - removed: None, - deleted: None, - updated: None, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let another_inserted_community = Community::create(&conn, &another_community).unwrap(); @@ -162,23 +104,9 @@ mod tests { let new_post = PostForm { name: "A test post".into(), - url: None, - body: None, creator_id: inserted_person.id, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - nsfw: false, - updated: None, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = Post::create(&conn, &new_post).unwrap(); @@ -187,14 +115,7 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, - parent_id: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let inserted_comment = Comment::create(&conn, &comment_form).unwrap(); @@ -203,14 +124,8 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, parent_id: Some(inserted_comment.id), - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let _inserted_child_comment = Comment::create(&conn, &child_comment_form).unwrap(); diff --git a/crates/db_queries/src/aggregates/person_aggregates.rs b/crates/db_queries/src/aggregates/person_aggregates.rs index c1082c4b6..953f74ee7 100644 --- a/crates/db_queries/src/aggregates/person_aggregates.rs +++ b/crates/db_queries/src/aggregates/person_aggregates.rs @@ -44,42 +44,14 @@ mod tests { let new_person = PersonForm { name: "thommy_user_agg".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); let another_person = PersonForm { name: "jerry_user_agg".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let another_inserted_person = Person::create(&conn, &another_person).unwrap(); @@ -88,45 +60,16 @@ mod tests { name: "TIL_site_agg".into(), creator_id: inserted_person.id, title: "nada".to_owned(), - description: None, - nsfw: false, - removed: None, - deleted: None, - updated: None, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); let new_post = PostForm { name: "A test post".into(), - url: None, - body: None, creator_id: inserted_person.id, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - nsfw: false, - updated: None, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = Post::create(&conn, &new_post).unwrap(); @@ -143,14 +86,7 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, - parent_id: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let inserted_comment = Comment::create(&conn, &comment_form).unwrap(); @@ -168,14 +104,8 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, parent_id: Some(inserted_comment.id), - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let inserted_child_comment = Comment::create(&conn, &child_comment_form).unwrap(); diff --git a/crates/db_queries/src/aggregates/post_aggregates.rs b/crates/db_queries/src/aggregates/post_aggregates.rs index aa5e774e0..fe7381316 100644 --- a/crates/db_queries/src/aggregates/post_aggregates.rs +++ b/crates/db_queries/src/aggregates/post_aggregates.rs @@ -48,42 +48,14 @@ mod tests { let new_person = PersonForm { name: "thommy_community_agg".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); let another_person = PersonForm { name: "jerry_community_agg".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let another_inserted_person = Person::create(&conn, &another_person).unwrap(); @@ -92,45 +64,16 @@ mod tests { name: "TIL_community_agg".into(), creator_id: inserted_person.id, title: "nada".to_owned(), - description: None, - nsfw: false, - removed: None, - deleted: None, - updated: None, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); let new_post = PostForm { name: "A test post".into(), - url: None, - body: None, creator_id: inserted_person.id, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - nsfw: false, - updated: None, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = Post::create(&conn, &new_post).unwrap(); @@ -139,14 +82,7 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, - parent_id: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let inserted_comment = Comment::create(&conn, &comment_form).unwrap(); @@ -155,14 +91,8 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, parent_id: Some(inserted_comment.id), - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let _inserted_child_comment = Comment::create(&conn, &child_comment_form).unwrap(); diff --git a/crates/db_queries/src/aggregates/site_aggregates.rs b/crates/db_queries/src/aggregates/site_aggregates.rs index a685ad0da..64fbdf7df 100644 --- a/crates/db_queries/src/aggregates/site_aggregates.rs +++ b/crates/db_queries/src/aggregates/site_aggregates.rs @@ -42,21 +42,7 @@ mod tests { let new_person = PersonForm { name: "thommy_site_agg".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); @@ -79,45 +65,16 @@ mod tests { name: "TIL_site_agg".into(), creator_id: inserted_person.id, title: "nada".to_owned(), - description: None, - nsfw: false, - removed: None, - deleted: None, - updated: None, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); let new_post = PostForm { name: "A test post".into(), - url: None, - body: None, creator_id: inserted_person.id, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - nsfw: false, - updated: None, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; // Insert two of those posts @@ -128,14 +85,7 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, - parent_id: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; // Insert two of those comments @@ -145,14 +95,8 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, parent_id: Some(inserted_comment.id), - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let _inserted_child_comment = Comment::create(&conn, &child_comment_form).unwrap(); diff --git a/crates/db_queries/src/source/activity.rs b/crates/db_queries/src/source/activity.rs index 1ec9b8d16..d1fc0622f 100644 --- a/crates/db_queries/src/source/activity.rs +++ b/crates/db_queries/src/source/activity.rs @@ -74,7 +74,7 @@ impl Activity_ for Activity { let activity_form = ActivityForm { ap_id, data: serde_json::to_value(&data)?, - local, + local: Some(local), sensitive, updated: None, }; @@ -138,21 +138,7 @@ mod tests { let creator_form = PersonForm { name: "activity_creator_pm".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_creator = Person::create(&conn, &creator_form).unwrap(); @@ -179,7 +165,7 @@ mod tests { let activity_form = ActivityForm { ap_id: ap_id.clone(), data: test_json.to_owned(), - local: true, + local: Some(true), sensitive: false, updated: None, }; diff --git a/crates/db_queries/src/source/comment.rs b/crates/db_queries/src/source/comment.rs index 69ac4c081..8d77626aa 100644 --- a/crates/db_queries/src/source/comment.rs +++ b/crates/db_queries/src/source/comment.rs @@ -246,21 +246,7 @@ mod tests { let new_person = PersonForm { name: "terry".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); @@ -268,23 +254,8 @@ mod tests { let new_community = CommunityForm { name: "test community".to_string(), title: "nada".to_owned(), - description: None, creator_id: inserted_person.id, - removed: None, - deleted: None, - updated: None, - nsfw: false, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - banner: None, - icon: None, - inbox_url: None, - shared_inbox_url: None, - followers_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); @@ -292,22 +263,8 @@ mod tests { let new_post = PostForm { name: "A test post".into(), creator_id: inserted_person.id, - url: None, - body: None, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - updated: None, - nsfw: false, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = Post::create(&conn, &new_post).unwrap(); @@ -316,14 +273,7 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, - parent_id: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let inserted_comment = Comment::create(&conn, &comment_form).unwrap(); @@ -348,13 +298,7 @@ mod tests { creator_id: inserted_person.id, post_id: inserted_post.id, parent_id: Some(inserted_comment.id), - removed: None, - deleted: None, - read: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let inserted_child_comment = Comment::create(&conn, &child_comment_form).unwrap(); diff --git a/crates/db_queries/src/source/community.rs b/crates/db_queries/src/source/community.rs index 5b7fc92c8..1970eef88 100644 --- a/crates/db_queries/src/source/community.rs +++ b/crates/db_queries/src/source/community.rs @@ -356,21 +356,7 @@ mod tests { let new_person = PersonForm { name: "bobbee".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); @@ -379,22 +365,7 @@ mod tests { name: "TIL".into(), creator_id: inserted_person.id, title: "nada".to_owned(), - description: None, - nsfw: false, - removed: None, - deleted: None, - updated: None, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); diff --git a/crates/db_queries/src/source/local_user.rs b/crates/db_queries/src/source/local_user.rs index eabd067d3..18720ceba 100644 --- a/crates/db_queries/src/source/local_user.rs +++ b/crates/db_queries/src/source/local_user.rs @@ -6,7 +6,6 @@ use lemmy_db_schema::{ schema::local_user::dsl::*, source::local_user::{LocalUser, LocalUserForm}, LocalUserId, - PersonId, }; mod safe_settings_type { @@ -17,7 +16,6 @@ mod safe_settings_type { id, person_id, email, - admin, show_nsfw, theme, default_sort_type, @@ -25,7 +23,6 @@ mod safe_settings_type { lang, show_avatars, send_notifications_to_email, - matrix_user_id, validator_time, ); @@ -38,7 +35,6 @@ mod safe_settings_type { id, person_id, email, - admin, show_nsfw, theme, default_sort_type, @@ -46,7 +42,6 @@ mod safe_settings_type { lang, show_avatars, send_notifications_to_email, - matrix_user_id, validator_time, ) } @@ -60,7 +55,6 @@ pub trait LocalUser_ { local_user_id: LocalUserId, new_password: &str, ) -> Result; - fn add_admin(conn: &PgConnection, person_id: PersonId, added: bool) -> Result; } impl LocalUser_ for LocalUser { @@ -87,12 +81,6 @@ impl LocalUser_ for LocalUser { )) .get_result::(conn) } - - fn add_admin(conn: &PgConnection, for_person_id: PersonId, added: bool) -> Result { - diesel::update(local_user.filter(person_id.eq(for_person_id))) - .set(admin.eq(added)) - .get_result::(conn) - } } impl Crud for LocalUser { diff --git a/crates/db_queries/src/source/moderator.rs b/crates/db_queries/src/source/moderator.rs index 526fc2bd8..c641fffc7 100644 --- a/crates/db_queries/src/source/moderator.rs +++ b/crates/db_queries/src/source/moderator.rs @@ -209,42 +209,14 @@ mod tests { let new_mod = PersonForm { name: "the mod".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_mod = Person::create(&conn, &new_mod).unwrap(); let new_person = PersonForm { name: "jim2".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); @@ -252,46 +224,17 @@ mod tests { let new_community = CommunityForm { name: "mod_community".to_string(), title: "nada".to_owned(), - description: None, creator_id: inserted_person.id, - removed: None, - deleted: None, - updated: None, - nsfw: false, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); let new_post = PostForm { name: "A test post thweep".into(), - url: None, - body: None, creator_id: inserted_person.id, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - updated: None, - nsfw: false, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = Post::create(&conn, &new_post).unwrap(); @@ -300,14 +243,7 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, - parent_id: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let inserted_comment = Comment::create(&conn, &comment_form).unwrap(); diff --git a/crates/db_queries/src/source/password_reset_request.rs b/crates/db_queries/src/source/password_reset_request.rs index 89c375058..6fe4ee3a5 100644 --- a/crates/db_queries/src/source/password_reset_request.rs +++ b/crates/db_queries/src/source/password_reset_request.rs @@ -95,21 +95,7 @@ mod tests { let new_person = PersonForm { name: "thommy prw".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); @@ -117,16 +103,7 @@ mod tests { let new_local_user = LocalUserForm { person_id: inserted_person.id, password_encrypted: "pass".to_string(), - email: None, - matrix_user_id: None, - admin: None, - show_nsfw: None, - theme: None, - default_sort_type: None, - default_listing_type: None, - lang: None, - show_avatars: None, - send_notifications_to_email: None, + ..LocalUserForm::default() }; let inserted_local_user = LocalUser::create(&conn, &new_local_user).unwrap(); diff --git a/crates/db_queries/src/source/person.rs b/crates/db_queries/src/source/person.rs index f9979c970..35ed540c0 100644 --- a/crates/db_queries/src/source/person.rs +++ b/crates/db_queries/src/source/person.rs @@ -27,6 +27,8 @@ mod safe_type { deleted, inbox_url, shared_inbox_url, + matrix_user_id, + admin, ); impl ToSafe for Person { @@ -47,6 +49,8 @@ mod safe_type { deleted, inbox_url, shared_inbox_url, + matrix_user_id, + admin, ) } } @@ -71,6 +75,8 @@ mod safe_type_alias_1 { deleted, inbox_url, shared_inbox_url, + matrix_user_id, + admin, ); impl ToSafe for PersonAlias1 { @@ -91,6 +97,8 @@ mod safe_type_alias_1 { deleted, inbox_url, shared_inbox_url, + matrix_user_id, + admin, ) } } @@ -115,6 +123,8 @@ mod safe_type_alias_2 { deleted, inbox_url, shared_inbox_url, + matrix_user_id, + admin, ); impl ToSafe for PersonAlias2 { @@ -135,6 +145,8 @@ mod safe_type_alias_2 { deleted, inbox_url, shared_inbox_url, + matrix_user_id, + admin, ) } } @@ -181,6 +193,7 @@ impl ApubObject for Person { pub trait Person_ { fn ban_person(conn: &PgConnection, person_id: PersonId, ban: bool) -> Result; + fn add_admin(conn: &PgConnection, person_id: PersonId, added: bool) -> Result; fn find_by_name(conn: &PgConnection, name: &str) -> Result; fn mark_as_updated(conn: &PgConnection, person_id: PersonId) -> Result; fn delete_account(conn: &PgConnection, person_id: PersonId) -> Result; @@ -193,6 +206,12 @@ impl Person_ for Person { .get_result::(conn) } + fn add_admin(conn: &PgConnection, person_id: PersonId, added: bool) -> Result { + diesel::update(person.find(person_id)) + .set(admin.eq(added)) + .get_result::(conn) + } + fn find_by_name(conn: &PgConnection, from_name: &str) -> Result { person .filter(deleted.eq(false)) @@ -212,16 +231,14 @@ impl Person_ for Person { // Set the local user info to none diesel::update(local_user::table.filter(local_user::person_id.eq(person_id))) - .set(( - local_user::email.eq::>(None), - local_user::matrix_user_id.eq::>(None), - )) + .set((local_user::email.eq::>(None),)) .execute(conn)?; diesel::update(person.find(person_id)) .set(( preferred_username.eq::>(None), bio.eq::>(None), + matrix_user_id.eq::>(None), deleted.eq(true), updated.eq(naive_now()), )) @@ -239,21 +256,7 @@ mod tests { let new_person = PersonForm { name: "holly".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); @@ -271,11 +274,13 @@ mod tests { actor_id: inserted_person.actor_id.to_owned(), bio: None, local: true, + admin: false, private_key: None, public_key: None, last_refreshed_at: inserted_person.published, inbox_url: inserted_person.inbox_url.to_owned(), shared_inbox_url: None, + matrix_user_id: None, }; let read_person = Person::read(&conn, inserted_person.id).unwrap(); diff --git a/crates/db_queries/src/source/person_mention.rs b/crates/db_queries/src/source/person_mention.rs index dfd626cba..5a3a7ea61 100644 --- a/crates/db_queries/src/source/person_mention.rs +++ b/crates/db_queries/src/source/person_mention.rs @@ -90,42 +90,14 @@ mod tests { let new_person = PersonForm { name: "terrylake".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); let recipient_form = PersonForm { name: "terrylakes recipient".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_recipient = Person::create(&conn, &recipient_form).unwrap(); @@ -133,23 +105,8 @@ mod tests { let new_community = CommunityForm { name: "test community lake".to_string(), title: "nada".to_owned(), - description: None, creator_id: inserted_person.id, - removed: None, - deleted: None, - updated: None, - nsfw: false, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); @@ -157,22 +114,8 @@ mod tests { let new_post = PostForm { name: "A test post".into(), creator_id: inserted_person.id, - url: None, - body: None, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - updated: None, - nsfw: false, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = Post::create(&conn, &new_post).unwrap(); @@ -181,14 +124,7 @@ mod tests { content: "A test comment".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - removed: None, - deleted: None, - read: None, - parent_id: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let inserted_comment = Comment::create(&conn, &comment_form).unwrap(); diff --git a/crates/db_queries/src/source/post.rs b/crates/db_queries/src/source/post.rs index d6492e130..169ca18ef 100644 --- a/crates/db_queries/src/source/post.rs +++ b/crates/db_queries/src/source/post.rs @@ -273,21 +273,7 @@ mod tests { let new_person = PersonForm { name: "jim".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); @@ -295,46 +281,17 @@ mod tests { let new_community = CommunityForm { name: "test community_3".to_string(), title: "nada".to_owned(), - description: None, creator_id: inserted_person.id, - removed: None, - deleted: None, - updated: None, - nsfw: false, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); let new_post = PostForm { name: "A test post".into(), - url: None, - body: None, creator_id: inserted_person.id, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - nsfw: false, - updated: None, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = Post::create(&conn, &new_post).unwrap(); diff --git a/crates/db_queries/src/source/private_message.rs b/crates/db_queries/src/source/private_message.rs index fe2456890..98c8e08ce 100644 --- a/crates/db_queries/src/source/private_message.rs +++ b/crates/db_queries/src/source/private_message.rs @@ -150,42 +150,14 @@ mod tests { let creator_form = PersonForm { name: "creator_pm".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_creator = Person::create(&conn, &creator_form).unwrap(); let recipient_form = PersonForm { name: "recipient_pm".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_recipient = Person::create(&conn, &recipient_form).unwrap(); @@ -194,12 +166,7 @@ mod tests { content: "A test private message".into(), creator_id: inserted_creator.id, recipient_id: inserted_recipient.id, - deleted: None, - read: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..PrivateMessageForm::default() }; let inserted_private_message = PrivateMessage::create(&conn, &private_message_form).unwrap(); diff --git a/crates/db_schema/src/lib.rs b/crates/db_schema/src/lib.rs index 6b07e5cee..4efa983fe 100644 --- a/crates/db_schema/src/lib.rs +++ b/crates/db_schema/src/lib.rs @@ -22,7 +22,9 @@ use url::Url; pub mod schema; pub mod source; -#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, Serialize, Deserialize, DieselNewType)] +#[derive( + Debug, Copy, Clone, Hash, Eq, PartialEq, Default, Serialize, Deserialize, DieselNewType, +)] pub struct PostId(pub i32); impl fmt::Display for PostId { @@ -31,7 +33,9 @@ impl fmt::Display for PostId { } } -#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, Serialize, Deserialize, DieselNewType)] +#[derive( + Debug, Copy, Clone, Hash, Eq, PartialEq, Default, Serialize, Deserialize, DieselNewType, +)] pub struct PersonId(pub i32); #[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, Serialize, Deserialize, DieselNewType)] @@ -43,7 +47,9 @@ impl fmt::Display for CommentId { } } -#[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, Serialize, Deserialize, DieselNewType)] +#[derive( + Debug, Copy, Clone, Hash, Eq, PartialEq, Default, Serialize, Deserialize, DieselNewType, +)] pub struct CommunityId(pub i32); #[derive(Debug, Copy, Clone, Hash, Eq, PartialEq, Serialize, Deserialize, DieselNewType)] diff --git a/crates/db_schema/src/schema.rs b/crates/db_schema/src/schema.rs index 9bb3fe2d6..5bc55f529 100644 --- a/crates/db_schema/src/schema.rs +++ b/crates/db_schema/src/schema.rs @@ -146,7 +146,6 @@ table! { person_id -> Int4, password_encrypted -> Text, email -> Nullable, - admin -> Bool, show_nsfw -> Bool, theme -> Varchar, default_sort_type -> Int2, @@ -154,7 +153,6 @@ table! { lang -> Varchar, show_avatars -> Bool, send_notifications_to_email -> Bool, - matrix_user_id -> Nullable, validator_time -> Timestamp, } } @@ -287,6 +285,8 @@ table! { deleted -> Bool, inbox_url -> Varchar, shared_inbox_url -> Nullable, + matrix_user_id -> Nullable, + admin -> Bool, } } @@ -485,6 +485,8 @@ table! { deleted -> Bool, inbox_url -> Varchar, shared_inbox_url -> Nullable, + matrix_user_id -> Nullable, + admin -> Bool, } } @@ -507,6 +509,8 @@ table! { deleted -> Bool, inbox_url -> Varchar, shared_inbox_url -> Nullable, + matrix_user_id -> Nullable, + admin -> Bool, } } diff --git a/crates/db_schema/src/source/activity.rs b/crates/db_schema/src/source/activity.rs index 7b7f4aba3..ced8f3be4 100644 --- a/crates/db_schema/src/source/activity.rs +++ b/crates/db_schema/src/source/activity.rs @@ -18,7 +18,7 @@ pub struct Activity { #[table_name = "activity"] pub struct ActivityForm { pub data: Value, - pub local: bool, + pub local: Option, pub updated: Option, pub ap_id: DbUrl, pub sensitive: bool, diff --git a/crates/db_schema/src/source/comment.rs b/crates/db_schema/src/source/comment.rs index 8a91f601e..fba61f463 100644 --- a/crates/db_schema/src/source/comment.rs +++ b/crates/db_schema/src/source/comment.rs @@ -51,7 +51,7 @@ pub struct CommentAlias1 { pub local: bool, } -#[derive(Insertable, AsChangeset, Clone)] +#[derive(Insertable, AsChangeset, Clone, Default)] #[table_name = "comment"] pub struct CommentForm { pub creator_id: PersonId, @@ -64,7 +64,7 @@ pub struct CommentForm { pub updated: Option, pub deleted: Option, pub ap_id: Option, - pub local: bool, + pub local: Option, } #[derive(Identifiable, Queryable, Associations, PartialEq, Debug, Clone)] diff --git a/crates/db_schema/src/source/community.rs b/crates/db_schema/src/source/community.rs index 81789ecdf..427510270 100644 --- a/crates/db_schema/src/source/community.rs +++ b/crates/db_schema/src/source/community.rs @@ -51,7 +51,7 @@ pub struct CommunitySafe { pub banner: Option, } -#[derive(Insertable, AsChangeset, Debug)] +#[derive(Insertable, AsChangeset, Debug, Default)] #[table_name = "community"] pub struct CommunityForm { pub name: String, @@ -62,9 +62,9 @@ pub struct CommunityForm { pub published: Option, pub updated: Option, pub deleted: Option, - pub nsfw: bool, + pub nsfw: Option, pub actor_id: Option, - pub local: bool, + pub local: Option, pub private_key: Option, pub public_key: Option, pub last_refreshed_at: Option, diff --git a/crates/db_schema/src/source/local_user.rs b/crates/db_schema/src/source/local_user.rs index 11dac6c9c..6f28a8fbc 100644 --- a/crates/db_schema/src/source/local_user.rs +++ b/crates/db_schema/src/source/local_user.rs @@ -8,7 +8,6 @@ pub struct LocalUser { pub person_id: PersonId, pub password_encrypted: String, pub email: Option, - pub admin: bool, pub show_nsfw: bool, pub theme: String, pub default_sort_type: i16, @@ -16,18 +15,16 @@ pub struct LocalUser { pub lang: String, pub show_avatars: bool, pub send_notifications_to_email: bool, - pub matrix_user_id: Option, pub validator_time: chrono::NaiveDateTime, } // TODO redo these, check table defaults -#[derive(Insertable, AsChangeset, Clone)] +#[derive(Insertable, AsChangeset, Clone, Default)] #[table_name = "local_user"] pub struct LocalUserForm { pub person_id: PersonId, pub password_encrypted: String, pub email: Option>, - pub admin: Option, pub show_nsfw: Option, pub theme: Option, pub default_sort_type: Option, @@ -35,7 +32,6 @@ pub struct LocalUserForm { pub lang: Option, pub show_avatars: Option, pub send_notifications_to_email: Option, - pub matrix_user_id: Option>, } /// A local user view that removes password encrypted @@ -45,7 +41,6 @@ pub struct LocalUserSettings { pub id: LocalUserId, pub person_id: PersonId, pub email: Option, - pub admin: bool, pub show_nsfw: bool, pub theme: String, pub default_sort_type: i16, @@ -53,6 +48,5 @@ pub struct LocalUserSettings { pub lang: String, pub show_avatars: bool, pub send_notifications_to_email: bool, - pub matrix_user_id: Option, pub validator_time: chrono::NaiveDateTime, } diff --git a/crates/db_schema/src/source/person.rs b/crates/db_schema/src/source/person.rs index f669f0c55..2c0e7e8b7 100644 --- a/crates/db_schema/src/source/person.rs +++ b/crates/db_schema/src/source/person.rs @@ -25,6 +25,8 @@ pub struct Person { pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, + pub matrix_user_id: Option, + pub admin: bool, } /// A safe representation of person, without the sensitive info @@ -45,6 +47,8 @@ pub struct PersonSafe { pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, + pub matrix_user_id: Option, + pub admin: bool, } #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] @@ -67,6 +71,8 @@ pub struct PersonAlias1 { pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, + pub matrix_user_id: Option, + pub admin: bool, } #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] @@ -86,6 +92,8 @@ pub struct PersonSafeAlias1 { pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, + pub matrix_user_id: Option, + pub admin: bool, } #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] @@ -108,6 +116,8 @@ pub struct PersonAlias2 { pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, + pub matrix_user_id: Option, + pub admin: bool, } #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] @@ -127,9 +137,11 @@ pub struct PersonSafeAlias2 { pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, + pub matrix_user_id: Option, + pub admin: bool, } -#[derive(Insertable, AsChangeset, Clone)] +#[derive(Insertable, AsChangeset, Clone, Default)] #[table_name = "person"] pub struct PersonForm { pub name: String, @@ -148,4 +160,6 @@ pub struct PersonForm { pub deleted: Option, pub inbox_url: Option, pub shared_inbox_url: Option>, + pub matrix_user_id: Option>, + pub admin: Option, } diff --git a/crates/db_schema/src/source/post.rs b/crates/db_schema/src/source/post.rs index 34b889d46..87681e010 100644 --- a/crates/db_schema/src/source/post.rs +++ b/crates/db_schema/src/source/post.rs @@ -31,7 +31,7 @@ pub struct Post { pub local: bool, } -#[derive(Insertable, AsChangeset)] +#[derive(Insertable, AsChangeset, Default)] #[table_name = "post"] pub struct PostForm { pub name: String, @@ -51,7 +51,7 @@ pub struct PostForm { pub embed_html: Option, pub thumbnail_url: Option, pub ap_id: Option, - pub local: bool, + pub local: Option, } #[derive(Identifiable, Queryable, Associations, PartialEq, Debug)] diff --git a/crates/db_schema/src/source/private_message.rs b/crates/db_schema/src/source/private_message.rs index 6d46c0129..6710c2dcf 100644 --- a/crates/db_schema/src/source/private_message.rs +++ b/crates/db_schema/src/source/private_message.rs @@ -16,7 +16,7 @@ pub struct PrivateMessage { pub local: bool, } -#[derive(Insertable, AsChangeset)] +#[derive(Insertable, AsChangeset, Default)] #[table_name = "private_message"] pub struct PrivateMessageForm { pub creator_id: PersonId, @@ -27,5 +27,5 @@ pub struct PrivateMessageForm { pub published: Option, pub updated: Option, pub ap_id: Option, - pub local: bool, + pub local: Option, } diff --git a/crates/db_views/src/comment_view.rs b/crates/db_views/src/comment_view.rs index 6c5850ad3..6b13103c0 100644 --- a/crates/db_views/src/comment_view.rs +++ b/crates/db_views/src/comment_view.rs @@ -454,21 +454,7 @@ mod tests { let new_person = PersonForm { name: "timmy".into(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); @@ -476,23 +462,8 @@ mod tests { let new_community = CommunityForm { name: "test community 5".to_string(), title: "nada".to_owned(), - description: None, creator_id: inserted_person.id, - removed: None, - deleted: None, - updated: None, - nsfw: false, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); @@ -500,22 +471,8 @@ mod tests { let new_post = PostForm { name: "A test post 2".into(), creator_id: inserted_person.id, - url: None, - body: None, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - updated: None, - nsfw: false, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = Post::create(&conn, &new_post).unwrap(); @@ -524,14 +481,7 @@ mod tests { content: "A test comment 32".into(), creator_id: inserted_person.id, post_id: inserted_post.id, - parent_id: None, - removed: None, - deleted: None, - read: None, - published: None, - updated: None, - ap_id: None, - local: true, + ..CommentForm::default() }; let inserted_comment = Comment::create(&conn, &comment_form).unwrap(); @@ -576,11 +526,13 @@ mod tests { local: true, banned: false, deleted: false, + admin: false, bio: None, banner: None, updated: None, inbox_url: inserted_person.inbox_url.to_owned(), shared_inbox_url: None, + matrix_user_id: None, }, recipient: None, post: Post { diff --git a/crates/db_views/src/post_view.rs b/crates/db_views/src/post_view.rs index fe852e376..df67d3693 100644 --- a/crates/db_views/src/post_view.rs +++ b/crates/db_views/src/post_view.rs @@ -454,21 +454,7 @@ mod tests { let new_person = PersonForm { name: person_name.to_owned(), - preferred_username: None, - avatar: None, - banner: None, - banned: None, - deleted: None, - published: None, - updated: None, - actor_id: None, - bio: None, - local: None, - private_key: None, - public_key: None, - last_refreshed_at: None, - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; let inserted_person = Person::create(&conn, &new_person).unwrap(); @@ -476,46 +462,17 @@ mod tests { let new_community = CommunityForm { name: community_name.to_owned(), title: "nada".to_owned(), - description: None, creator_id: inserted_person.id, - removed: None, - deleted: None, - updated: None, - nsfw: false, - actor_id: None, - local: true, - private_key: None, - public_key: None, - last_refreshed_at: None, - published: None, - icon: None, - banner: None, - followers_url: None, - inbox_url: None, - shared_inbox_url: None, + ..CommunityForm::default() }; let inserted_community = Community::create(&conn, &new_community).unwrap(); let new_post = PostForm { name: post_name.to_owned(), - url: None, - body: None, creator_id: inserted_person.id, community_id: inserted_community.id, - removed: None, - deleted: None, - locked: None, - stickied: None, - updated: None, - nsfw: false, - embed_title: None, - embed_description: None, - embed_html: None, - thumbnail_url: None, - ap_id: None, - local: true, - published: None, + ..PostForm::default() }; let inserted_post = Post::create(&conn, &new_post).unwrap(); @@ -589,6 +546,7 @@ mod tests { avatar: None, actor_id: inserted_person.actor_id.to_owned(), local: true, + admin: false, banned: false, deleted: false, bio: None, @@ -596,6 +554,7 @@ mod tests { updated: None, inbox_url: inserted_person.inbox_url.to_owned(), shared_inbox_url: None, + matrix_user_id: None, }, creator_banned_from_community: false, community: CommunitySafe { diff --git a/crates/db_views_actor/src/person_view.rs b/crates/db_views_actor/src/person_view.rs index a44a468c4..8e292c3fc 100644 --- a/crates/db_views_actor/src/person_view.rs +++ b/crates/db_views_actor/src/person_view.rs @@ -9,7 +9,7 @@ use lemmy_db_queries::{ ViewToVec, }; use lemmy_db_schema::{ - schema::{local_user, person, person_aggregates}, + schema::{person, person_aggregates}, source::person::{Person, PersonSafe}, PersonId, }; @@ -36,9 +36,8 @@ impl PersonViewSafe { pub fn admins(conn: &PgConnection) -> Result, Error> { let admins = person::table .inner_join(person_aggregates::table) - .inner_join(local_user::table) .select((Person::safe_columns_tuple(), person_aggregates::all_columns)) - .filter(local_user::admin.eq(true)) + .filter(person::admin.eq(true)) .order_by(person::published) .load::(conn)?; diff --git a/crates/utils/src/version.rs b/crates/utils/src/version.rs index ad718a725..67580d9ed 100644 --- a/crates/utils/src/version.rs +++ b/crates/utils/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "0.10.0-rc.7"; +pub const VERSION: &str = "0.10.0-rc.10"; diff --git a/docker/dev/docker-compose.yml b/docker/dev/docker-compose.yml index b8dcac91e..fccfc2bc7 100644 --- a/docker/dev/docker-compose.yml +++ b/docker/dev/docker-compose.yml @@ -17,7 +17,7 @@ services: - iframely lemmy-ui: - image: dessalines/lemmy-ui:0.9.9 + image: dessalines/lemmy-ui:0.10.0-rc.10 ports: - "1235:1234" restart: always diff --git a/docker/federation/docker-compose.yml b/docker/federation/docker-compose.yml index 03355aa49..28a2188ce 100644 --- a/docker/federation/docker-compose.yml +++ b/docker/federation/docker-compose.yml @@ -29,7 +29,7 @@ services: - ./volumes/pictrs_alpha:/mnt lemmy-alpha-ui: - image: dessalines/lemmy-ui:0.9.9 + image: dessalines/lemmy-ui:0.10.0-rc.10 environment: - LEMMY_INTERNAL_HOST=lemmy-alpha:8541 - LEMMY_EXTERNAL_HOST=localhost:8541 @@ -58,7 +58,7 @@ services: - ./volumes/postgres_alpha:/var/lib/postgresql/data lemmy-beta-ui: - image: dessalines/lemmy-ui:0.9.9 + image: dessalines/lemmy-ui:0.10.0-rc.10 environment: - LEMMY_INTERNAL_HOST=lemmy-beta:8551 - LEMMY_EXTERNAL_HOST=localhost:8551 @@ -87,7 +87,7 @@ services: - ./volumes/postgres_beta:/var/lib/postgresql/data lemmy-gamma-ui: - image: dessalines/lemmy-ui:0.9.9 + image: dessalines/lemmy-ui:0.10.0-rc.10 environment: - LEMMY_INTERNAL_HOST=lemmy-gamma:8561 - LEMMY_EXTERNAL_HOST=localhost:8561 @@ -117,7 +117,7 @@ services: # An instance with only an allowlist for beta lemmy-delta-ui: - image: dessalines/lemmy-ui:0.9.9 + image: dessalines/lemmy-ui:0.10.0-rc.10 environment: - LEMMY_INTERNAL_HOST=lemmy-delta:8571 - LEMMY_EXTERNAL_HOST=localhost:8571 @@ -147,7 +147,7 @@ services: # An instance who has a blocklist, with lemmy-alpha blocked lemmy-epsilon-ui: - image: dessalines/lemmy-ui:0.9.9 + image: dessalines/lemmy-ui:0.10.0-rc.10 environment: - LEMMY_INTERNAL_HOST=lemmy-epsilon:8581 - LEMMY_EXTERNAL_HOST=localhost:8581 diff --git a/migrations/2021-03-20-185321_move_matrix_id_to_person/down.sql b/migrations/2021-03-20-185321_move_matrix_id_to_person/down.sql new file mode 100644 index 000000000..990d8fe97 --- /dev/null +++ b/migrations/2021-03-20-185321_move_matrix_id_to_person/down.sql @@ -0,0 +1,17 @@ +alter table local_user add column matrix_user_id text; +alter table local_user add column admin boolean default false not null; + +update local_user lu +set + matrix_user_id = p.matrix_user_id, + admin = p.admin +from person p +where p.id = lu.person_id; + +drop view person_alias_1, person_alias_2; +alter table person drop column matrix_user_id; +alter table person drop column admin; + +-- Regenerate the person_alias views +create view person_alias_1 as select * from person; +create view person_alias_2 as select * from person; diff --git a/migrations/2021-03-20-185321_move_matrix_id_to_person/up.sql b/migrations/2021-03-20-185321_move_matrix_id_to_person/up.sql new file mode 100644 index 000000000..d9ba3dd9c --- /dev/null +++ b/migrations/2021-03-20-185321_move_matrix_id_to_person/up.sql @@ -0,0 +1,17 @@ +alter table person add column matrix_user_id text; +alter table person add column admin boolean default false not null; + +update person p +set + matrix_user_id = lu.matrix_user_id, + admin = lu.admin +from local_user lu +where p.id = lu.person_id; + +alter table local_user drop column matrix_user_id; +alter table local_user drop column admin; + +-- Regenerate the person_alias views +drop view person_alias_1, person_alias_2; +create view person_alias_1 as select * from person; +create view person_alias_2 as select * from person; diff --git a/src/code_migrations.rs b/src/code_migrations.rs index bd67fe699..144c39f87 100644 --- a/src/code_migrations.rs +++ b/src/code_migrations.rs @@ -55,21 +55,11 @@ fn user_updates_2020_04_02(conn: &PgConnection) -> Result<(), LemmyError> { let form = PersonForm { name: cperson.name.to_owned(), - avatar: None, - banner: None, - preferred_username: None, - published: None, - updated: None, - banned: None, - deleted: None, actor_id: Some(generate_apub_endpoint(EndpointType::Person, &cperson.name)?), - bio: None, - local: None, private_key: Some(Some(keypair.private_key)), public_key: Some(Some(keypair.public_key)), last_refreshed_at: Some(naive_now()), - inbox_url: None, - shared_inbox_url: None, + ..PersonForm::default() }; Person::update(&conn, cperson.id, &form)?; @@ -102,10 +92,10 @@ fn community_updates_2020_04_02(conn: &PgConnection) -> Result<(), LemmyError> { creator_id: ccommunity.creator_id, removed: None, deleted: None, - nsfw: ccommunity.nsfw, + nsfw: None, updated: None, actor_id: Some(community_actor_id.to_owned()), - local: ccommunity.local, + local: Some(ccommunity.local), private_key: Some(keypair.private_key), public_key: Some(keypair.public_key), last_refreshed_at: Some(naive_now()),