]> Untitled Git - lemmy-ui.git/commitdiff
Dont allow community urls like /c/{id} (fixes #611) (#612)
authorNutomic <me@nutomic.com>
Fri, 8 Apr 2022 13:29:02 +0000 (13:29 +0000)
committerGitHub <noreply@github.com>
Fri, 8 Apr 2022 13:29:02 +0000 (13:29 +0000)
* Dont allow community urls like /c/{id} (fixes #611)

* Also remove usage of numeric ids for user profiles

* fix

* fix

src/shared/components/community/community.tsx
src/shared/components/person/profile.tsx

index da215f4b9d30b43d0960e147457dbdc25e42eb0f..ab9230887698f1faef8cd08d37635f5cd1d941ce 100644 (file)
@@ -166,17 +166,8 @@ export class Community extends Component<any, State> {
     let pathSplit = req.path.split("/");
     let promises: Promise<any>[] = [];
 
-    // It can be /c/main, or /c/1
-    let idOrName = pathSplit[2];
-    let id: number;
-    let name_: string;
-    if (isNaN(Number(idOrName))) {
-      name_ = idOrName;
-    } else {
-      id = Number(idOrName);
-    }
-
-    let communityForm: GetCommunity = id ? { id } : { name: name_ };
+    let communityName = pathSplit[2];
+    let communityForm: GetCommunity = { name: communityName };
     setOptionalAuth(communityForm, req.auth);
     promises.push(req.client.getCommunity(communityForm));
 
@@ -204,7 +195,7 @@ export class Community extends Component<any, State> {
         saved_only: false,
       };
       setOptionalAuth(getPostsForm, req.auth);
-      this.setName(getPostsForm, name_);
+      this.setName(getPostsForm, communityName);
       promises.push(req.client.getPosts(getPostsForm));
     } else {
       let getCommentsForm: GetComments = {
@@ -214,7 +205,7 @@ export class Community extends Component<any, State> {
         type_: ListingType.Community,
         saved_only: false,
       };
-      this.setName(getCommentsForm, name_);
+      this.setName(getCommentsForm, communityName);
       setOptionalAuth(getCommentsForm, req.auth);
       promises.push(req.client.getComments(getCommentsForm));
     }
index d94ffab1f605eedc34e2371b521b80589924187d..cf3e795414762ac747c1af7cb524b2ec62cb01ca 100644 (file)
@@ -154,16 +154,7 @@ export class Profile extends Component<any, ProfileState> {
     let pathSplit = req.path.split("/");
     let promises: Promise<any>[] = [];
 
-    // It can be /u/me, or /username/1
-    let idOrName = pathSplit[2];
-    let person_id: number;
-    let username: string;
-    if (isNaN(Number(idOrName))) {
-      username = idOrName;
-    } else {
-      person_id = Number(idOrName);
-    }
-
+    let username = pathSplit[2];
     let view = this.getViewFromProps(pathSplit[4]);
     let sort = this.getSortTypeFromProps(pathSplit[6]);
     let page = this.getPageFromProps(Number(pathSplit[8]));
@@ -173,21 +164,13 @@ export class Profile extends Component<any, ProfileState> {
       saved_only: view === PersonDetailsView.Saved,
       page,
       limit: fetchLimit,
+      username: username,
     };
     setOptionalAuth(form, req.auth);
-    this.setIdOrName(form, person_id, username);
     promises.push(req.client.getPersonDetails(form));
     return promises;
   }
 
-  static setIdOrName(obj: any, id: number, name_: string) {
-    if (id) {
-      obj.person_id = id;
-    } else {
-      obj.username = name_;
-    }
-  }
-
   componentDidMount() {
     setupTippy();
   }