From fd497a03aae62b0296c7f1ffc5129c2facf25c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Tue, 23 Aug 2022 11:58:23 +0200 Subject: [PATCH] Change GQL parameter for 'ChangeGroupMemberRole' from 'id' to 'groupId' Co-Authored-By: Mogge --- backend/src/db/graphql/groups.js | 4 +- backend/src/db/seed.js | 20 ++++----- .../src/middleware/permissionsMiddleware.js | 2 +- backend/src/schema/resolvers/groups.js | 2 +- backend/src/schema/resolvers/groups.spec.js | 44 ++++++++----------- backend/src/schema/types/type/Group.gql | 2 +- 6 files changed, 34 insertions(+), 40 deletions(-) diff --git a/backend/src/db/graphql/groups.js b/backend/src/db/graphql/groups.js index a0aef97b2..c6f110ed1 100644 --- a/backend/src/db/graphql/groups.js +++ b/backend/src/db/graphql/groups.js @@ -51,8 +51,8 @@ export const joinGroupMutation = gql` ` export const changeGroupMemberRoleMutation = gql` - mutation ($id: ID!, $userId: ID!, $roleInGroup: GroupMemberRole!) { - ChangeGroupMemberRole(id: $id, userId: $userId, roleInGroup: $roleInGroup) { + mutation ($groupId: ID!, $userId: ID!, $roleInGroup: GroupMemberRole!) { + ChangeGroupMemberRole(groupId: $groupId, userId: $userId, roleInGroup: $roleInGroup) { id name slug diff --git a/backend/src/db/seed.js b/backend/src/db/seed.js index 1bd535456..a71b11131 100644 --- a/backend/src/db/seed.js +++ b/backend/src/db/seed.js @@ -438,7 +438,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'g0', + groupId: 'g0', userId: 'u2', roleInGroup: 'usual', }, @@ -446,7 +446,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'g0', + groupId: 'g0', userId: 'u4', roleInGroup: 'admin', }, @@ -454,7 +454,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'g0', + groupId: 'g0', userId: 'u3', roleInGroup: 'owner', }, @@ -517,7 +517,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'g0', + groupId: 'g0', userId: 'u1', roleInGroup: 'usual', }, @@ -525,7 +525,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'g0', + groupId: 'g0', userId: 'u2', roleInGroup: 'usual', }, @@ -533,7 +533,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'g0', + groupId: 'g0', userId: 'u5', roleInGroup: 'admin', }, @@ -541,7 +541,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'g0', + groupId: 'g0', userId: 'u6', roleInGroup: 'owner', }, @@ -597,7 +597,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'g0', + groupId: 'g0', userId: 'u4', roleInGroup: 'usual', }, @@ -605,7 +605,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'g0', + groupId: 'g0', userId: 'u5', roleInGroup: 'usual', }, @@ -613,7 +613,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'g0', + groupId: 'g0', userId: 'u6', roleInGroup: 'usual', }, diff --git a/backend/src/middleware/permissionsMiddleware.js b/backend/src/middleware/permissionsMiddleware.js index bbaff67d9..926f824e4 100644 --- a/backend/src/middleware/permissionsMiddleware.js +++ b/backend/src/middleware/permissionsMiddleware.js @@ -98,7 +98,7 @@ const isAllowedToChangeGroupMemberRole = rule({ })(async (_parent, args, { user, driver }) => { if (!(user && user.id)) return false const adminId = user.id - const { id: groupId, userId, roleInGroup } = args + const { groupId, userId, roleInGroup } = args if (adminId === userId) return false // Wolle: // console.log('isAllowedToChangeGroupMemberRole !!!') diff --git a/backend/src/schema/resolvers/groups.js b/backend/src/schema/resolvers/groups.js index d34d62eb7..6ca09d72a 100644 --- a/backend/src/schema/resolvers/groups.js +++ b/backend/src/schema/resolvers/groups.js @@ -159,7 +159,7 @@ export default { } }, ChangeGroupMemberRole: async (_parent, params, context, _resolveInfo) => { - const { id: groupId, userId, roleInGroup } = params + const { groupId, userId, roleInGroup } = params // Wolle // console.log('ChangeGroupMemberRole !!!') // console.log('groupId: ', groupId) diff --git a/backend/src/schema/resolvers/groups.spec.js b/backend/src/schema/resolvers/groups.spec.js index 74f806b7b..a660f6ce8 100644 --- a/backend/src/schema/resolvers/groups.spec.js +++ b/backend/src/schema/resolvers/groups.spec.js @@ -659,10 +659,11 @@ describe('in mode: building up – separate for each resolver', () => { }, }) await mutate({ - mutation: joinGroupMutation, + mutation: changeGroupMemberRoleMutation, variables: { groupId: 'closed-group', userId: 'owner-of-hidden-group', + roleInGroup: 'usual', }, }) // hidden-group @@ -683,7 +684,7 @@ describe('in mode: building up – separate for each resolver', () => { await mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'hidden-group', + groupId: 'hidden-group', userId: 'pending-user', roleInGroup: 'pending', }, @@ -691,7 +692,7 @@ describe('in mode: building up – separate for each resolver', () => { await mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'hidden-group', + groupId: 'hidden-group', userId: 'current-user', roleInGroup: 'usual', }, @@ -699,7 +700,7 @@ describe('in mode: building up – separate for each resolver', () => { await mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'hidden-group', + groupId: 'hidden-group', userId: 'owner-of-closed-group', roleInGroup: 'admin', }, @@ -858,7 +859,7 @@ describe('in mode: building up – separate for each resolver', () => { }), expect.objectContaining({ id: 'owner-of-hidden-group', - myRoleInGroup: 'pending', + myRoleInGroup: 'usual', }), ]), }, @@ -870,15 +871,6 @@ describe('in mode: building up – separate for each resolver', () => { describe('by usual member "owner-of-hidden-group"', () => { beforeEach(async () => { - authenticatedUser = await ownerOfClosedGroupUser.toJson() - await mutate({ - mutation: changeGroupMemberRoleMutation, - variables: { - id: 'closed-group', - userId: 'owner-of-hidden-group', - roleInGroup: 'usual', - }, - }) authenticatedUser = await ownerOfHiddenGroupUser.toJson() }) @@ -1205,7 +1197,7 @@ describe('in mode: building up – separate for each resolver', () => { await mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'hidden-group', + groupId: 'hidden-group', userId: 'admin-member-user', roleInGroup: 'usual', }, @@ -1213,7 +1205,7 @@ describe('in mode: building up – separate for each resolver', () => { await mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'hidden-group', + groupId: 'hidden-group', userId: 'second-owner-member-user', roleInGroup: 'usual', }, @@ -1221,7 +1213,7 @@ describe('in mode: building up – separate for each resolver', () => { await mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'hidden-group', + groupId: 'hidden-group', userId: 'admin-member-user', roleInGroup: 'usual', }, @@ -1229,7 +1221,7 @@ describe('in mode: building up – separate for each resolver', () => { await mutate({ mutation: changeGroupMemberRoleMutation, variables: { - id: 'hidden-group', + groupId: 'hidden-group', userId: 'second-owner-member-user', roleInGroup: 'usual', }, @@ -1244,12 +1236,14 @@ describe('in mode: building up – separate for each resolver', () => { describe('unauthenticated', () => { it('throws authorization error', async () => { - variables = { - id: 'not-existing-group', - userId: 'current-user', - roleInGroup: 'pending', - } - const { errors } = await mutate({ mutation: changeGroupMemberRoleMutation, variables }) + const { errors } = await mutate({ + mutation: changeGroupMemberRoleMutation, + variables: { + groupId: 'not-existing-group', + userId: 'current-user', + roleInGroup: 'pending', + }, + }) expect(errors[0]).toHaveProperty('message', 'Not Authorised!') }) }) @@ -1258,7 +1252,7 @@ describe('in mode: building up – separate for each resolver', () => { describe('in all group types – here "closed-group" for example', () => { beforeEach(async () => { variables = { - id: 'closed-group', + groupId: 'closed-group', } }) diff --git a/backend/src/schema/types/type/Group.gql b/backend/src/schema/types/type/Group.gql index 9d2210a1a..5c98e49e8 100644 --- a/backend/src/schema/types/type/Group.gql +++ b/backend/src/schema/types/type/Group.gql @@ -120,7 +120,7 @@ type Mutation { ): User ChangeGroupMemberRole( - id: ID! + groupId: ID! userId: ID! roleInGroup: GroupMemberRole! ): User