From a51f3573570e7a7742b14cfa98894abbcbe0637f Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 14 Jun 2023 15:00:23 +0200 Subject: [PATCH] filter that only the rooms of the current user are returned --- backend/src/middleware/permissionsMiddleware.ts | 1 + backend/src/schema/resolvers/rooms.ts | 8 ++++++++ backend/src/schema/types/type/Room.gql | 6 ++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/src/middleware/permissionsMiddleware.ts b/backend/src/middleware/permissionsMiddleware.ts index 6498bba2f..fbca8846d 100644 --- a/backend/src/middleware/permissionsMiddleware.ts +++ b/backend/src/middleware/permissionsMiddleware.ts @@ -406,6 +406,7 @@ export default shield( queryLocations: isAuthenticated, availableRoles: isAdmin, getInviteCode: isAuthenticated, // and inviteRegistration + Room: isAuthenticated, }, Mutation: { '*': deny, diff --git a/backend/src/schema/resolvers/rooms.ts b/backend/src/schema/resolvers/rooms.ts index 11b2c9201..fe3779293 100644 --- a/backend/src/schema/resolvers/rooms.ts +++ b/backend/src/schema/resolvers/rooms.ts @@ -1,5 +1,6 @@ import { v4 as uuid } from 'uuid' import { neo4jgraphql } from 'neo4j-graphql-js' +import Resolver from './helpers/Resolver' export default { Query: { @@ -45,4 +46,11 @@ export default { } }, }, + Room: { + ...Resolver('Room', { + hasMany: { + users: '<-[:CHATS_IN]-(related:User)', + } + }), + } } diff --git a/backend/src/schema/types/type/Room.gql b/backend/src/schema/types/type/Room.gql index bedc8b6b4..b3b5ea913 100644 --- a/backend/src/schema/types/type/Room.gql +++ b/backend/src/schema/types/type/Room.gql @@ -1,9 +1,7 @@ input _RoomFilter { AND: [_RoomFilter!] OR: [_RoomFilter!] - users: _UserFilter - users_in: [_UserFilter!] - users_some: [_UserFilter!] + users_some: _UserFilter } type Room { @@ -11,7 +9,7 @@ type Room { createdAt: String updatedAt: String - users: [User!]! @relation(name: "CHATS_IN", direction: "IN") + users: [User]! @relation(name: "CHATS_IN", direction: "IN") } type Mutation {