]> Untitled Git - lemmy.git/commitdiff
Creating the default community and signing people up for it if it doesnt exist.
authorDessalines <tyhou13@gmx.com>
Sun, 2 Jun 2019 16:34:45 +0000 (09:34 -0700)
committerDessalines <tyhou13@gmx.com>
Sun, 2 Jun 2019 16:34:45 +0000 (09:34 -0700)
server/src/api/user.rs

index 5d957120bd8773684bf6b09f1c56ceb1289b7c2b..d6d5962eb7ec4eada2943fc69e286c7c2ff80cf1 100644 (file)
@@ -161,6 +161,53 @@ impl Perform<LoginResponse> for Oper<Register> {
       }
     };
 
+    // Create the main community if it doesn't exist
+    let main_community: Community = match Community::read_from_name(&conn, "main".to_string()) {
+      Ok(c) => c,
+      Err(_e) => {
+        let community_form = CommunityForm {
+          name: "main".to_string(),
+          title: "The Default Community".to_string(),
+          description: Some("The Default Community".to_string()),
+          category_id: 1,
+          creator_id: inserted_user.id,
+          removed: None,
+          deleted: None,
+          updated: None,
+        };
+        Community::create(&conn, &community_form).unwrap()
+      }
+    };
+
+    // Sign them up for main community no matter what
+    let community_follower_form = CommunityFollowerForm {
+      community_id: main_community.id,
+      user_id: inserted_user.id,
+    };
+
+    let _inserted_community_follower = match CommunityFollower::follow(&conn, &community_follower_form) {
+      Ok(user) => user,
+      Err(_e) => {
+        return Err(APIError::err(&self.op, "Community follower already exists."))?
+      }
+    };
+
+    // If its an admin, add them as a mod and follower to main
+    if data.admin {
+      let community_moderator_form = CommunityModeratorForm {
+        community_id: main_community.id,
+        user_id: inserted_user.id,
+      };
+
+      let _inserted_community_moderator = match CommunityModerator::join(&conn, &community_moderator_form) {
+        Ok(user) => user,
+        Err(_e) => {
+          return Err(APIError::err(&self.op, "Community moderator already exists."))?
+        }
+      };
+
+    }
+
     // Return the jwt
     Ok(
       LoginResponse {