From 0ff6791c19d7d3d7c3c32c97ab904e24cd3ce43f Mon Sep 17 00:00:00 2001 From: trivernis Date: Sun, 12 Jan 2020 17:12:58 +0100 Subject: [PATCH] Fix status fields error when not logged in - Fix userVote, joined, deletable --- src/lib/models/Event.ts | 8 ++++++-- src/lib/models/Group.ts | 8 ++++++-- src/lib/models/Post.ts | 10 +++++++--- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/lib/models/Event.ts b/src/lib/models/Event.ts index c52e9a1..d6564d6 100644 --- a/src/lib/models/Event.ts +++ b/src/lib/models/Event.ts @@ -68,7 +68,11 @@ export class Event extends Model { */ public async joined({userId}: {userId: number}, request: any): Promise { userId = userId ?? request.session.userId; - const participants = await this.$get("rParticipants", {where: {id: userId}}) as User[]; - return participants.length !== 0; + if (userId) { + const participants = await this.$get("rParticipants", {where: {id: userId}}) as User[]; + return participants.length !== 0; + } else { + return false; + } } } diff --git a/src/lib/models/Group.ts b/src/lib/models/Group.ts index f7f7ce0..f4f83a8 100644 --- a/src/lib/models/Group.ts +++ b/src/lib/models/Group.ts @@ -129,7 +129,11 @@ export class Group extends Model { */ public async joined({userId}: {userId: number}, request: any): Promise { userId = userId ?? request.session.userId; - const members = await this.$get("rMembers", {where: {id: userId}}) as User[]; - return members.length !== 0; + if (userId) { + const members = await this.$get("rMembers", {where: {id: userId}}) as User[]; + return members.length !== 0; + } else { + return false; + } } } diff --git a/src/lib/models/Post.ts b/src/lib/models/Post.ts index 59ee1de..af67f06 100644 --- a/src/lib/models/Post.ts +++ b/src/lib/models/Post.ts @@ -137,8 +137,12 @@ export class Post extends Model { */ public async userVote({userId}: {userId: number}, request: any): Promise { userId = userId ?? request.session.userId; - const votes = await this.$get("rVotes", {where: {id: userId}}) as Array; - return votes[0]?.PostVote?.voteType; + if (userId) { + const votes = await this.$get("rVotes", {where: {id: userId}}) as Array; + return votes[0]?.PostVote?.voteType; + } else { + return undefined; + } } /** @@ -149,7 +153,7 @@ export class Post extends Model { public async deletable({userId}: {userId: number}, request: any): Promise { userId = userId ?? request.session.userId; const isAuthor = Number(userId) === Number(this.authorId); - if (!isAuthor) { + if (userId && !isAuthor) { return (await User.findOne({where: {id: userId}})).isAdmin; } return isAuthor;