Dont allow community urls like /c/{id} (fixes #611) (#612)

* Dont allow community urls like /c/{id} (fixes #611)

* Also remove usage of numeric ids for user profiles

* fix

* fix
This commit is contained in:
Nutomic 2022-04-08 13:29:02 +00:00 committed by GitHub
parent f1c5c60c76
commit 06c3e547fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 32 deletions

View 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));
}

View 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();
}