wabe 0.6.12 → 0.6.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/package.json +4 -1
  2. package/dev/index.ts +0 -215
  3. package/generated/schema.graphql +0 -1945
  4. package/generated/wabe.ts +0 -448
  5. package/src/authentication/OTP.test.ts +0 -69
  6. package/src/authentication/OTP.ts +0 -64
  7. package/src/authentication/Session.test.ts +0 -629
  8. package/src/authentication/Session.ts +0 -517
  9. package/src/authentication/cookies.ts +0 -10
  10. package/src/authentication/defaultAuthentication.ts +0 -209
  11. package/src/authentication/index.ts +0 -4
  12. package/src/authentication/interface.ts +0 -177
  13. package/src/authentication/oauth/GitHub.test.ts +0 -91
  14. package/src/authentication/oauth/GitHub.ts +0 -121
  15. package/src/authentication/oauth/Google.test.ts +0 -91
  16. package/src/authentication/oauth/Google.ts +0 -101
  17. package/src/authentication/oauth/Oauth2Client.test.ts +0 -219
  18. package/src/authentication/oauth/Oauth2Client.ts +0 -135
  19. package/src/authentication/oauth/index.ts +0 -2
  20. package/src/authentication/oauth/utils.test.ts +0 -33
  21. package/src/authentication/oauth/utils.ts +0 -27
  22. package/src/authentication/providers/EmailOTP.test.ts +0 -127
  23. package/src/authentication/providers/EmailOTP.ts +0 -95
  24. package/src/authentication/providers/EmailPassword.test.ts +0 -263
  25. package/src/authentication/providers/EmailPassword.ts +0 -138
  26. package/src/authentication/providers/EmailPasswordSRP.test.ts +0 -208
  27. package/src/authentication/providers/EmailPasswordSRP.ts +0 -191
  28. package/src/authentication/providers/GitHub.ts +0 -24
  29. package/src/authentication/providers/Google.ts +0 -24
  30. package/src/authentication/providers/OAuth.test.ts +0 -185
  31. package/src/authentication/providers/OAuth.ts +0 -106
  32. package/src/authentication/providers/PhonePassword.test.ts +0 -221
  33. package/src/authentication/providers/PhonePassword.ts +0 -136
  34. package/src/authentication/providers/QRCodeOTP.test.ts +0 -77
  35. package/src/authentication/providers/QRCodeOTP.ts +0 -69
  36. package/src/authentication/providers/index.ts +0 -6
  37. package/src/authentication/resolvers/refreshResolver.test.ts +0 -30
  38. package/src/authentication/resolvers/refreshResolver.ts +0 -19
  39. package/src/authentication/resolvers/signInWithResolver.inte.test.ts +0 -59
  40. package/src/authentication/resolvers/signInWithResolver.test.ts +0 -306
  41. package/src/authentication/resolvers/signInWithResolver.ts +0 -106
  42. package/src/authentication/resolvers/signOutResolver.test.ts +0 -38
  43. package/src/authentication/resolvers/signOutResolver.ts +0 -18
  44. package/src/authentication/resolvers/signUpWithResolver.test.ts +0 -180
  45. package/src/authentication/resolvers/signUpWithResolver.ts +0 -68
  46. package/src/authentication/resolvers/verifyChallenge.test.ts +0 -230
  47. package/src/authentication/resolvers/verifyChallenge.ts +0 -78
  48. package/src/authentication/roles.test.ts +0 -49
  49. package/src/authentication/roles.ts +0 -40
  50. package/src/authentication/security.ts +0 -278
  51. package/src/authentication/utils.test.ts +0 -97
  52. package/src/authentication/utils.ts +0 -39
  53. package/src/cache/InMemoryCache.test.ts +0 -62
  54. package/src/cache/InMemoryCache.ts +0 -45
  55. package/src/cron/index.test.ts +0 -17
  56. package/src/cron/index.ts +0 -43
  57. package/src/database/DatabaseController.test.ts +0 -613
  58. package/src/database/DatabaseController.ts +0 -1415
  59. package/src/database/index.test.ts +0 -1551
  60. package/src/database/index.ts +0 -9
  61. package/src/database/interface.ts +0 -308
  62. package/src/email/DevAdapter.ts +0 -7
  63. package/src/email/EmailController.test.ts +0 -29
  64. package/src/email/EmailController.ts +0 -13
  65. package/src/email/index.ts +0 -2
  66. package/src/email/interface.ts +0 -36
  67. package/src/email/templates/sendOtpCode.ts +0 -120
  68. package/src/file/FileController.ts +0 -28
  69. package/src/file/FileDevAdapter.ts +0 -51
  70. package/src/file/hookDeleteFile.ts +0 -25
  71. package/src/file/hookReadFile.ts +0 -66
  72. package/src/file/hookUploadFile.ts +0 -52
  73. package/src/file/index.test.ts +0 -1031
  74. package/src/file/index.ts +0 -2
  75. package/src/file/interface.ts +0 -63
  76. package/src/file/security.ts +0 -156
  77. package/src/graphql/GraphQLSchema.test.ts +0 -5099
  78. package/src/graphql/GraphQLSchema.ts +0 -886
  79. package/src/graphql/index.ts +0 -2
  80. package/src/graphql/parseGraphqlSchema.ts +0 -85
  81. package/src/graphql/parser.test.ts +0 -203
  82. package/src/graphql/parser.ts +0 -707
  83. package/src/graphql/pointerAndRelationFunction.ts +0 -191
  84. package/src/graphql/resolvers.ts +0 -464
  85. package/src/graphql/tests/aggregation.test.ts +0 -1115
  86. package/src/graphql/tests/e2e.test.ts +0 -590
  87. package/src/graphql/tests/scalars.test.ts +0 -250
  88. package/src/graphql/types.ts +0 -227
  89. package/src/hooks/HookObject.test.ts +0 -122
  90. package/src/hooks/HookObject.ts +0 -165
  91. package/src/hooks/authentication.ts +0 -67
  92. package/src/hooks/createUser.test.ts +0 -77
  93. package/src/hooks/createUser.ts +0 -10
  94. package/src/hooks/defaultFields.test.ts +0 -176
  95. package/src/hooks/defaultFields.ts +0 -32
  96. package/src/hooks/deleteSession.test.ts +0 -181
  97. package/src/hooks/deleteSession.ts +0 -20
  98. package/src/hooks/hashFieldHook.test.ts +0 -152
  99. package/src/hooks/hashFieldHook.ts +0 -89
  100. package/src/hooks/index.test.ts +0 -258
  101. package/src/hooks/index.ts +0 -420
  102. package/src/hooks/permissions.test.ts +0 -412
  103. package/src/hooks/permissions.ts +0 -93
  104. package/src/hooks/protected.test.ts +0 -551
  105. package/src/hooks/protected.ts +0 -74
  106. package/src/hooks/searchableFields.test.ts +0 -147
  107. package/src/hooks/searchableFields.ts +0 -86
  108. package/src/hooks/session.test.ts +0 -134
  109. package/src/hooks/session.ts +0 -76
  110. package/src/hooks/setEmail.test.ts +0 -216
  111. package/src/hooks/setEmail.ts +0 -33
  112. package/src/hooks/setupAcl.test.ts +0 -618
  113. package/src/hooks/setupAcl.ts +0 -25
  114. package/src/hooks/virtualFields.test.ts +0 -228
  115. package/src/hooks/virtualFields.ts +0 -48
  116. package/src/index.ts +0 -9
  117. package/src/schema/Schema.test.ts +0 -482
  118. package/src/schema/Schema.ts +0 -839
  119. package/src/schema/defaultResolvers.ts +0 -93
  120. package/src/schema/index.ts +0 -1
  121. package/src/schema/resolvers/meResolver.test.ts +0 -62
  122. package/src/schema/resolvers/meResolver.ts +0 -10
  123. package/src/schema/resolvers/resetPassword.test.ts +0 -341
  124. package/src/schema/resolvers/resetPassword.ts +0 -63
  125. package/src/schema/resolvers/sendEmail.test.ts +0 -118
  126. package/src/schema/resolvers/sendEmail.ts +0 -21
  127. package/src/schema/resolvers/sendOtpCode.test.ts +0 -141
  128. package/src/schema/resolvers/sendOtpCode.ts +0 -52
  129. package/src/security.test.ts +0 -4136
  130. package/src/server/defaultSessionHandler.test.ts +0 -62
  131. package/src/server/defaultSessionHandler.ts +0 -104
  132. package/src/server/generateCodegen.ts +0 -433
  133. package/src/server/index.test.ts +0 -843
  134. package/src/server/index.ts +0 -336
  135. package/src/server/interface.ts +0 -11
  136. package/src/server/routes/authHandler.ts +0 -171
  137. package/src/server/routes/index.ts +0 -48
  138. package/src/utils/crypto.test.ts +0 -41
  139. package/src/utils/crypto.ts +0 -105
  140. package/src/utils/database.ts +0 -8
  141. package/src/utils/export.ts +0 -12
  142. package/src/utils/helper.ts +0 -204
  143. package/src/utils/index.test.ts +0 -11
  144. package/src/utils/index.ts +0 -196
  145. package/src/utils/preload.ts +0 -8
  146. package/src/utils/testHelper.ts +0 -124
  147. package/tsconfig.json +0 -32
@@ -1,618 +0,0 @@
1
- import { describe, beforeAll, afterAll, it, expect, afterEach, mock } from 'bun:test'
2
- import { gql, type GraphQLClient } from 'graphql-request'
3
- import {
4
- getAnonymousClient,
5
- getGraphqlClient,
6
- getUserClient,
7
- type DevWabeTypes,
8
- } from '../utils/helper'
9
- import { setupTests, closeTests } from '../utils/testHelper'
10
- import type { Wabe } from '../server'
11
-
12
- const createUserAndUpdateRole = async ({
13
- anonymousClient,
14
- rootClient,
15
- roleName,
16
- port,
17
- }: {
18
- port: number
19
- anonymousClient: GraphQLClient
20
- rootClient: GraphQLClient
21
- roleName: string
22
- }) => {
23
- const res = await anonymousClient.request<any>(graphql.signUpWith, {
24
- input: {
25
- authentication: {
26
- emailPassword: {
27
- email: 'email@test.fr',
28
- password: 'password',
29
- },
30
- },
31
- },
32
- })
33
-
34
- const resOfRoles = await rootClient.request<any>(gql`
35
- query getRoles {
36
- roles(where: {name: {equalTo: "${roleName}"}}) {
37
- edges {
38
- node {
39
- id
40
- }
41
- }
42
- }
43
- }
44
- `)
45
-
46
- const roleId = resOfRoles.roles.edges[0].node.id
47
-
48
- await rootClient.request<any>(gql`
49
- mutation updateUser {
50
- updateUser(input: {id: "${res.signUpWith.id}", fields: {role: {link: "${roleId}"}}}) {
51
- user {
52
- id
53
- }
54
- }
55
- }
56
- `)
57
-
58
- const userClient = getUserClient(port, {
59
- accessToken: res.signUpWith.accessToken,
60
- })
61
-
62
- return {
63
- userClient,
64
- roleId,
65
- userId: res.signUpWith.id,
66
- accessToken: res.signUpWith.accessToken,
67
- refreshToken: res.signUpWith.refreshToken,
68
- }
69
- }
70
-
71
- const getRoleNameFromId = async (roleId: string, rootClient: GraphQLClient) => {
72
- const resOfRoles = await rootClient.request<any>(gql`
73
- query getRoles {
74
- roles(where: {id: {equalTo: "${roleId}"}}) {
75
- edges {
76
- node {
77
- name
78
- }
79
- }
80
- }
81
- }
82
- `)
83
-
84
- return resOfRoles.roles.edges[0].node.name
85
- }
86
-
87
- describe('setupAcl', () => {
88
- let wabe: Wabe<DevWabeTypes>
89
- let port: number
90
- let anonymousClient: GraphQLClient
91
- let rootClient: GraphQLClient
92
-
93
- const mockCallback = mock(() => {})
94
-
95
- beforeAll(async () => {
96
- const setup = await setupTests([
97
- {
98
- name: 'SetupACL',
99
- fields: {
100
- test: {
101
- type: 'String',
102
- },
103
- },
104
- permissions: {
105
- create: {
106
- requireAuthentication: false,
107
- },
108
- acl: async (hookObject) => {
109
- await hookObject.addACL('users', {
110
- userId: hookObject.context.user?.id || '',
111
- read: true,
112
- write: true,
113
- })
114
-
115
- await hookObject.addACL('roles', {
116
- // @ts-expect-error
117
- role: 'Client',
118
- read: true,
119
- write: true,
120
- })
121
- },
122
- },
123
- },
124
- {
125
- name: 'SetupACL2',
126
- fields: {
127
- test: {
128
- type: 'String',
129
- },
130
- },
131
- permissions: {
132
- create: {
133
- requireAuthentication: false,
134
- },
135
- },
136
- },
137
- {
138
- name: 'SetupACL3',
139
- fields: {
140
- test: {
141
- type: 'String',
142
- },
143
- },
144
- permissions: {
145
- create: {
146
- requireAuthentication: false,
147
- },
148
- acl: async (hookObject) => {
149
- await hookObject.addACL('users', null)
150
- await hookObject.addACL('roles', null)
151
- },
152
- },
153
- },
154
- {
155
- name: 'SetupACL4',
156
- fields: {
157
- test: {
158
- type: 'String',
159
- },
160
- },
161
- permissions: {
162
- create: {
163
- requireAuthentication: false,
164
- },
165
- acl: mockCallback,
166
- },
167
- },
168
- {
169
- name: 'SetupACL5',
170
- fields: {
171
- test: {
172
- type: 'String',
173
- },
174
- },
175
- permissions: {
176
- create: {
177
- requireAuthentication: false,
178
- },
179
- acl: async (hookObject) => {
180
- await hookObject.addACL('users', null)
181
-
182
- await hookObject.addACL('roles', {
183
- // @ts-expect-error
184
- role: 'Client',
185
- read: true,
186
- write: false,
187
- })
188
-
189
- await hookObject.addACL('roles', {
190
- // @ts-expect-error
191
- role: 'Client2',
192
- read: false,
193
- write: true,
194
- })
195
- },
196
- },
197
- },
198
- {
199
- name: 'SetupACL6',
200
- fields: {
201
- test: {
202
- type: 'String',
203
- },
204
- },
205
- permissions: {
206
- create: {
207
- requireAuthentication: false,
208
- },
209
- acl: async (hookObject) => {
210
- await hookObject.addACL('users', {
211
- userId: hookObject.context.user?.id || '',
212
- read: true,
213
- write: true,
214
- })
215
-
216
- await hookObject.addACL('roles', {
217
- // @ts-expect-error
218
- role: 'Client',
219
- read: true,
220
- write: true,
221
- })
222
- },
223
- },
224
- },
225
- {
226
- name: 'SetupACL7',
227
- fields: {
228
- test: {
229
- type: 'String',
230
- },
231
- },
232
- permissions: {
233
- create: {
234
- requireAuthentication: false,
235
- },
236
- acl: async (hookObject) => {
237
- await hookObject.addACL('users', {
238
- userId: hookObject.context.user?.id || '',
239
- read: true,
240
- write: true,
241
- })
242
-
243
- await hookObject.addACL('roles', {
244
- // @ts-expect-error
245
- role: 'Client',
246
- read: true,
247
- write: true,
248
- })
249
- },
250
- },
251
- },
252
- {
253
- name: 'SetupACL8',
254
- fields: {
255
- test: {
256
- type: 'String',
257
- },
258
- },
259
- permissions: {
260
- create: {
261
- requireAuthentication: false,
262
- },
263
- read: {
264
- requireAuthentication: false,
265
- },
266
- acl: async (hookObject) => {
267
- await hookObject.addACL('users', {
268
- userId: hookObject.context.user?.id || '',
269
- read: true,
270
- write: true,
271
- })
272
-
273
- await hookObject.addACL('roles', {
274
- // @ts-expect-error
275
- role: 'Client',
276
- read: true,
277
- write: true,
278
- })
279
- },
280
- },
281
- },
282
- ])
283
-
284
- wabe = setup.wabe
285
-
286
- port = setup.port
287
- anonymousClient = getAnonymousClient(port)
288
- rootClient = getGraphqlClient(port)
289
- })
290
-
291
- afterAll(async () => {
292
- await closeTests(wabe)
293
- })
294
-
295
- afterEach(async () => {
296
- await rootClient.request<any>(graphql.deleteUsers)
297
- })
298
-
299
- it('should not access to an object created with anonymous client when only user that create the object can access to it with ACL', async () => {
300
- await anonymousClient.request<any>(gql`
301
- mutation createUser {
302
- createUser(input: { fields: { name: "test" } }) {
303
- user {
304
- id
305
- acl {
306
- users {
307
- userId
308
- }
309
- }
310
- }
311
- }
312
- }
313
- `)
314
-
315
- const res = await rootClient.request<any>(gql`
316
- query users {
317
- users(where: { name: { equalTo: "test" } }) {
318
- edges {
319
- node {
320
- id
321
- acl {
322
- users {
323
- userId
324
- }
325
- }
326
- }
327
- }
328
- }
329
- }
330
- `)
331
-
332
- expect(res.users.edges[0].node.acl).not.toBeNull()
333
- })
334
-
335
- it('should add acl object with to owner (with role client2) is authenticated (on read)', async () => {
336
- const { userClient, userId } = await createUserAndUpdateRole({
337
- anonymousClient,
338
- port,
339
- roleName: 'Client2',
340
- rootClient,
341
- })
342
-
343
- const setupResult = await userClient.request<any>(gql`
344
- mutation createSetupACL8 {
345
- createSetupACL8(input: { fields: { test: "test" } }) {
346
- setupACL8 {
347
- id
348
- acl {
349
- users {
350
- userId
351
- read
352
- write
353
- }
354
- roles {
355
- roleId
356
- read
357
- write
358
- }
359
- }
360
- }
361
- }
362
- }
363
- `)
364
-
365
- const res = await rootClient.request<any>(gql`
366
- query setupACL8 {
367
- setupACL8(id: "${setupResult.createSetupACL8.setupACL8.id}") {
368
- id
369
- acl {
370
- users {
371
- userId
372
- read
373
- write
374
- }
375
- roles {
376
- roleId
377
- read
378
- write
379
- }
380
- }
381
- }
382
- }
383
- `)
384
-
385
- // User
386
- expect(res.setupACL8.acl.users[0].userId).toEqual(userId)
387
- expect(res.setupACL8.acl.users[0].read).toEqual(true)
388
- expect(res.setupACL8.acl.users[0].write).toEqual(true)
389
-
390
- // Role
391
- expect(await getRoleNameFromId(res.setupACL8.acl.roles[0].roleId, rootClient)).toEqual('Client')
392
- expect(res.setupACL8.acl.roles[0].read).toEqual(true)
393
- expect(res.setupACL8.acl.roles[0].write).toEqual(true)
394
- })
395
-
396
- it('should not update acl object if the acl function is not present in permissions in the class', async () => {
397
- const res = await rootClient.request<any>(gql`
398
- mutation createSetupACL2 {
399
- createSetupACL2(input: { fields: { test: "test" } }) {
400
- setupACL2 {
401
- id
402
- acl {
403
- users {
404
- userId
405
- read
406
- write
407
- }
408
- roles {
409
- roleId
410
- read
411
- write
412
- }
413
- }
414
- }
415
- }
416
- }
417
- `)
418
-
419
- expect(res.createSetupACL2.setupACL2.acl).toBeNull()
420
- })
421
-
422
- it('should set read and write to false if the null value is provided for users and roles', async () => {
423
- await rootClient.request<any>(gql`
424
- mutation createSetupACL3 {
425
- createSetupACL3(input: { fields: { test: "test" } }) {
426
- setupACL3 {
427
- id
428
- }
429
- }
430
- }
431
- `)
432
-
433
- const res = await rootClient.request<any>(gql`
434
- query setupACL3s {
435
- setupACL3s {
436
- edges {
437
- node {
438
- id
439
- acl {
440
- users {
441
- userId
442
- read
443
- write
444
- }
445
- roles {
446
- roleId
447
- read
448
- write
449
- }
450
- }
451
- }
452
- }
453
- }
454
- }
455
- `)
456
-
457
- // User
458
- expect(res.setupACL3s.edges[0].node.acl.users).toHaveLength(0)
459
-
460
- // Role
461
- expect(res.setupACL3s.edges[0].node.acl.roles).toHaveLength(0)
462
- })
463
-
464
- it('should call acl function if provided', async () => {
465
- await rootClient.request<any>(gql`
466
- mutation createSetupACL4 {
467
- createSetupACL4(input: { fields: { test: "test" } }) {
468
- setupACL4 {
469
- id
470
- }
471
- }
472
- }
473
- `)
474
-
475
- expect(mockCallback).toHaveBeenCalledTimes(1)
476
- })
477
-
478
- it('should get different role id for read and write if roles are different', async () => {
479
- const setupResult = await rootClient.request<any>(gql`
480
- mutation createSetupACL5 {
481
- createSetupACL5(input: { fields: { test: "test" } }) {
482
- setupACL5 {
483
- id
484
- acl {
485
- users {
486
- userId
487
- read
488
- write
489
- }
490
- roles {
491
- roleId
492
- read
493
- write
494
- }
495
- }
496
- }
497
- }
498
- }
499
- `)
500
-
501
- const res = await rootClient.request<any>(gql`
502
- query setupACL5 {
503
- setupACL5(id: "${setupResult.createSetupACL5.setupACL5.id}") {
504
- id
505
- acl {
506
- users {
507
- userId
508
- read
509
- write
510
- }
511
- roles {
512
- roleId
513
- read
514
- write
515
- }
516
- }
517
- }
518
- }
519
- `)
520
-
521
- expect(res.setupACL5.acl.users).toHaveLength(0)
522
-
523
- // Role
524
- expect(await getRoleNameFromId(res.setupACL5.acl.roles[0].roleId, rootClient)).toEqual('Client')
525
-
526
- expect(await getRoleNameFromId(res.setupACL5.acl.roles[1].roleId, rootClient)).toEqual(
527
- 'Client2',
528
- )
529
- })
530
-
531
- it('should not setup acl if the acl field is already provided in the creation', async () => {
532
- await rootClient.request<any>(gql`
533
- mutation createSetupACL6 {
534
- createSetupACL6(
535
- input: {
536
- fields: {
537
- test: "test"
538
- acl: {
539
- users: [{ userId: "test", read: true, write: true }]
540
- roles: [{ roleId: "test", read: true, write: true }]
541
- }
542
- }
543
- }
544
- ) {
545
- setupACL6 {
546
- id
547
- acl {
548
- users {
549
- userId
550
- read
551
- write
552
- }
553
- roles {
554
- roleId
555
- read
556
- write
557
- }
558
- }
559
- }
560
- }
561
- }
562
- `)
563
-
564
- const res = await rootClient.request<any>(gql`
565
- query setupACLs {
566
- setupACL6s {
567
- edges {
568
- node {
569
- id
570
- acl {
571
- users {
572
- userId
573
- read
574
- write
575
- }
576
- roles {
577
- roleId
578
- read
579
- write
580
- }
581
- }
582
- }
583
- }
584
- }
585
- }
586
- `)
587
-
588
- expect(res.setupACL6s.edges[0].node.acl).toEqual({
589
- users: [{ userId: 'test', read: true, write: true }],
590
- roles: [{ roleId: 'test', read: true, write: true }],
591
- })
592
- })
593
- })
594
-
595
- const graphql = {
596
- deleteUsers: gql`
597
- mutation deleteUser {
598
- deleteUsers(
599
- input: { where: { authentication: { emailPassword: { email: { equalTo: "email@test.fr" } } } } }
600
- ) {
601
- edges {
602
- node {
603
- id
604
- }
605
- }
606
- }
607
- }
608
- `,
609
- signUpWith: gql`
610
- mutation signUpWith($input: SignUpWithInput!) {
611
- signUpWith(input: $input) {
612
- id
613
- accessToken
614
- refreshToken
615
- }
616
- }
617
- `,
618
- }
@@ -1,25 +0,0 @@
1
- import type { HookObject } from './HookObject'
2
-
3
- const setupAcl = async (hookObject: HookObject<any, any>) => {
4
- const schemaPermissionsObject = hookObject.context.wabe.config.schema?.classes?.find(
5
- (c) => c.name === hookObject.className,
6
- )?.permissions
7
-
8
- if (!schemaPermissionsObject) return
9
-
10
- const { acl } = schemaPermissionsObject
11
-
12
- if (hookObject.isFieldUpdated('acl') || !acl) return
13
-
14
- if (acl) await acl(hookObject)
15
- }
16
-
17
- export const defaultSetupAclBeforeCreate = async (hookObject: HookObject<any, any>) => {
18
- // ACL on user need an update mutation not upsertNewData
19
- if (hookObject.className === 'User') return
20
-
21
- await setupAcl(hookObject)
22
- }
23
-
24
- export const defaultSetupAclOnUserAfterCreate = async (hookObject: HookObject<any, any>) =>
25
- setupAcl(hookObject)