From aa91e2b41007104fe838887def58d90bab2b9208 Mon Sep 17 00:00:00 2001 From: elweyn Date: Mon, 8 Aug 2022 10:48:09 +0200 Subject: [PATCH 1/4] Add RIGHTS.LIST_CONTRIBUTION_LINKS to ROLE_USER --- backend/src/auth/RIGHTS.ts | 2 +- backend/src/auth/ROLES.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/src/auth/RIGHTS.ts b/backend/src/auth/RIGHTS.ts index d5e2cc7ce..1e38eab7f 100644 --- a/backend/src/auth/RIGHTS.ts +++ b/backend/src/auth/RIGHTS.ts @@ -30,6 +30,7 @@ export enum RIGHTS { LIST_CONTRIBUTIONS = 'LIST_CONTRIBUTIONS', LIST_ALL_CONTRIBUTIONS = 'LIST_ALL_CONTRIBUTIONS', UPDATE_CONTRIBUTION = 'UPDATE_CONTRIBUTION', + LIST_CONTRIBUTION_LINKS = 'LIST_CONTRIBUTION_LINKS', // Admin SEARCH_USERS = 'SEARCH_USERS', SET_USER_ROLE = 'SET_USER_ROLE', @@ -45,7 +46,6 @@ export enum RIGHTS { CREATION_TRANSACTION_LIST = 'CREATION_TRANSACTION_LIST', LIST_TRANSACTION_LINKS_ADMIN = 'LIST_TRANSACTION_LINKS_ADMIN', CREATE_CONTRIBUTION_LINK = 'CREATE_CONTRIBUTION_LINK', - LIST_CONTRIBUTION_LINKS = 'LIST_CONTRIBUTION_LINKS', DELETE_CONTRIBUTION_LINK = 'DELETE_CONTRIBUTION_LINK', UPDATE_CONTRIBUTION_LINK = 'UPDATE_CONTRIBUTION_LINK', } diff --git a/backend/src/auth/ROLES.ts b/backend/src/auth/ROLES.ts index 9dcba0a4b..500c8bec4 100644 --- a/backend/src/auth/ROLES.ts +++ b/backend/src/auth/ROLES.ts @@ -28,6 +28,7 @@ export const ROLE_USER = new Role('user', [ RIGHTS.LIST_CONTRIBUTIONS, RIGHTS.LIST_ALL_CONTRIBUTIONS, RIGHTS.UPDATE_CONTRIBUTION, + RIGHTS.LIST_CONTRIBUTION_LINKS, ]) export const ROLE_ADMIN = new Role('admin', Object.values(RIGHTS)) // all rights From 7201fb6fc3f326e959616f41b6c65fb623ee1393 Mon Sep 17 00:00:00 2001 From: elweyn Date: Mon, 8 Aug 2022 10:57:56 +0200 Subject: [PATCH 2/4] A User has now the right to get listContributionLinks. --- .../src/graphql/resolver/AdminResolver.test.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/AdminResolver.test.ts b/backend/src/graphql/resolver/AdminResolver.test.ts index 7b1c6ffcd..69a68ead0 100644 --- a/backend/src/graphql/resolver/AdminResolver.test.ts +++ b/backend/src/graphql/resolver/AdminResolver.test.ts @@ -1861,7 +1861,22 @@ describe('AdminResolver', () => { it('returns an error', async () => { await expect(query({ query: listContributionLinks })).resolves.toEqual( expect.objectContaining({ - errors: [new GraphQLError('401 Unauthorized')], + data: { + createContributionLink: expect.objectContaining({ + id: expect.any(Number), + amount: '200', + code: expect.stringMatching(/^[0-9a-f]{24,24}$/), + link: expect.stringMatching(/^.*?\/CL-[0-9a-f]{24,24}$/), + createdAt: expect.any(String), + name: 'Dokumenta 2022', + memo: 'Danke für deine Teilnahme an der Dokumenta 2022', + validFrom: expect.any(String), + validTo: expect.any(String), + maxAmountPerMonth: '200', + cycle: 'once', + maxPerCycle: 1, + }), + }, }), ) }) From 5fb491572dbed5377ef7aa5715a6e7b9ee4fa5dd Mon Sep 17 00:00:00 2001 From: elweyn Date: Mon, 8 Aug 2022 11:04:24 +0200 Subject: [PATCH 3/4] Change test for listCOntributionLinks to get empty object as user without admin rights. --- .../graphql/resolver/AdminResolver.test.ts | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/backend/src/graphql/resolver/AdminResolver.test.ts b/backend/src/graphql/resolver/AdminResolver.test.ts index 69a68ead0..c0531a96c 100644 --- a/backend/src/graphql/resolver/AdminResolver.test.ts +++ b/backend/src/graphql/resolver/AdminResolver.test.ts @@ -1858,24 +1858,14 @@ describe('AdminResolver', () => { }) describe('listContributionLinks', () => { - it('returns an error', async () => { + it('returns an empty object', async () => { await expect(query({ query: listContributionLinks })).resolves.toEqual( expect.objectContaining({ data: { - createContributionLink: expect.objectContaining({ - id: expect.any(Number), - amount: '200', - code: expect.stringMatching(/^[0-9a-f]{24,24}$/), - link: expect.stringMatching(/^.*?\/CL-[0-9a-f]{24,24}$/), - createdAt: expect.any(String), - name: 'Dokumenta 2022', - memo: 'Danke für deine Teilnahme an der Dokumenta 2022', - validFrom: expect.any(String), - validTo: expect.any(String), - maxAmountPerMonth: '200', - cycle: 'once', - maxPerCycle: 1, - }), + listContributionLinks: { + count: 0, + links: [], + }, }, }), ) From 9a7073415c51fc21bb3595f9429b5259aa9b2839 Mon Sep 17 00:00:00 2001 From: elweyn Date: Mon, 8 Aug 2022 11:14:11 +0200 Subject: [PATCH 4/4] Add TODO for listContributionLinks test of user without admin rights. --- backend/src/graphql/resolver/AdminResolver.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/graphql/resolver/AdminResolver.test.ts b/backend/src/graphql/resolver/AdminResolver.test.ts index c0531a96c..f0ce064b4 100644 --- a/backend/src/graphql/resolver/AdminResolver.test.ts +++ b/backend/src/graphql/resolver/AdminResolver.test.ts @@ -1857,6 +1857,7 @@ describe('AdminResolver', () => { }) }) + // TODO: Set this test in new location to have datas describe('listContributionLinks', () => { it('returns an empty object', async () => { await expect(query({ query: listContributionLinks })).resolves.toEqual(