@lightdash/common 0.2562.0 → 0.2563.0

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 (154) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/authorization/index.mock.d.ts +1 -1
  3. package/dist/cjs/authorization/index.mock.js +1 -1
  4. package/dist/cjs/authorization/index.mock.js.map +1 -1
  5. package/dist/cjs/authorization/index.test.js +12 -12
  6. package/dist/cjs/authorization/index.test.js.map +1 -1
  7. package/dist/cjs/authorization/jwtAbility.test.js +2 -2
  8. package/dist/cjs/authorization/jwtAbility.test.js.map +1 -1
  9. package/dist/cjs/authorization/organizationMemberAbility.d.ts.map +1 -1
  10. package/dist/cjs/authorization/organizationMemberAbility.js +20 -0
  11. package/dist/cjs/authorization/organizationMemberAbility.js.map +1 -1
  12. package/dist/cjs/authorization/organizationMemberAbility.test.js +88 -82
  13. package/dist/cjs/authorization/organizationMemberAbility.test.js.map +1 -1
  14. package/dist/cjs/authorization/projectMemberAbility.d.ts.map +1 -1
  15. package/dist/cjs/authorization/projectMemberAbility.js +20 -0
  16. package/dist/cjs/authorization/projectMemberAbility.js.map +1 -1
  17. package/dist/cjs/authorization/projectMemberAbility.test.js +124 -94
  18. package/dist/cjs/authorization/projectMemberAbility.test.js.map +1 -1
  19. package/dist/cjs/authorization/roleToScopeMapping.test.js +8 -8
  20. package/dist/cjs/authorization/roleToScopeMapping.test.js.map +1 -1
  21. package/dist/cjs/authorization/roleToScopeMapping.testUtils.d.ts +119 -119
  22. package/dist/cjs/authorization/roleToScopeMapping.testUtils.js +4 -4
  23. package/dist/cjs/authorization/roleToScopeMapping.testUtils.js.map +1 -1
  24. package/dist/cjs/authorization/roleToScopeParity.test.js +10 -3
  25. package/dist/cjs/authorization/roleToScopeParity.test.js.map +1 -1
  26. package/dist/cjs/authorization/scopeAbilityBuilder.test.js +17 -17
  27. package/dist/cjs/authorization/scopeAbilityBuilder.test.js.map +1 -1
  28. package/dist/cjs/authorization/scopes.d.ts.map +1 -1
  29. package/dist/cjs/authorization/scopes.js +8 -0
  30. package/dist/cjs/authorization/scopes.js.map +1 -1
  31. package/dist/cjs/authorization/serviceAccountAbility.d.ts.map +1 -1
  32. package/dist/cjs/authorization/serviceAccountAbility.js +20 -0
  33. package/dist/cjs/authorization/serviceAccountAbility.js.map +1 -1
  34. package/dist/cjs/types/dashboard.d.ts +2 -1
  35. package/dist/cjs/types/dashboard.d.ts.map +1 -1
  36. package/dist/cjs/types/dashboard.js.map +1 -1
  37. package/dist/cjs/types/metricQuery.d.ts +4 -0
  38. package/dist/cjs/types/metricQuery.d.ts.map +1 -1
  39. package/dist/cjs/types/metricQuery.js.map +1 -1
  40. package/dist/cjs/types/savedCharts.d.ts +3 -2
  41. package/dist/cjs/types/savedCharts.d.ts.map +1 -1
  42. package/dist/cjs/types/savedCharts.js.map +1 -1
  43. package/dist/cjs/types/space.d.ts +1 -0
  44. package/dist/cjs/types/space.d.ts.map +1 -1
  45. package/dist/cjs/types/space.js.map +1 -1
  46. package/dist/cjs/utils/tableCalculationFunctions.d.ts +55 -2
  47. package/dist/cjs/utils/tableCalculationFunctions.d.ts.map +1 -1
  48. package/dist/cjs/utils/tableCalculationFunctions.js +151 -1
  49. package/dist/cjs/utils/tableCalculationFunctions.js.map +1 -1
  50. package/dist/cjs/utils/tableCalculationFunctions.test.js +178 -0
  51. package/dist/cjs/utils/tableCalculationFunctions.test.js.map +1 -1
  52. package/dist/esm/.tsbuildinfo +1 -1
  53. package/dist/esm/authorization/index.mock.d.ts +1 -1
  54. package/dist/esm/authorization/index.mock.js +1 -1
  55. package/dist/esm/authorization/index.mock.js.map +1 -1
  56. package/dist/esm/authorization/index.test.js +12 -12
  57. package/dist/esm/authorization/index.test.js.map +1 -1
  58. package/dist/esm/authorization/jwtAbility.test.js +2 -2
  59. package/dist/esm/authorization/jwtAbility.test.js.map +1 -1
  60. package/dist/esm/authorization/organizationMemberAbility.d.ts.map +1 -1
  61. package/dist/esm/authorization/organizationMemberAbility.js +20 -0
  62. package/dist/esm/authorization/organizationMemberAbility.js.map +1 -1
  63. package/dist/esm/authorization/organizationMemberAbility.test.js +88 -82
  64. package/dist/esm/authorization/organizationMemberAbility.test.js.map +1 -1
  65. package/dist/esm/authorization/projectMemberAbility.d.ts.map +1 -1
  66. package/dist/esm/authorization/projectMemberAbility.js +20 -0
  67. package/dist/esm/authorization/projectMemberAbility.js.map +1 -1
  68. package/dist/esm/authorization/projectMemberAbility.test.js +124 -94
  69. package/dist/esm/authorization/projectMemberAbility.test.js.map +1 -1
  70. package/dist/esm/authorization/roleToScopeMapping.test.js +8 -8
  71. package/dist/esm/authorization/roleToScopeMapping.test.js.map +1 -1
  72. package/dist/esm/authorization/roleToScopeMapping.testUtils.d.ts +119 -119
  73. package/dist/esm/authorization/roleToScopeMapping.testUtils.js +4 -4
  74. package/dist/esm/authorization/roleToScopeMapping.testUtils.js.map +1 -1
  75. package/dist/esm/authorization/roleToScopeParity.test.js +10 -3
  76. package/dist/esm/authorization/roleToScopeParity.test.js.map +1 -1
  77. package/dist/esm/authorization/scopeAbilityBuilder.test.js +17 -17
  78. package/dist/esm/authorization/scopeAbilityBuilder.test.js.map +1 -1
  79. package/dist/esm/authorization/scopes.d.ts.map +1 -1
  80. package/dist/esm/authorization/scopes.js +8 -0
  81. package/dist/esm/authorization/scopes.js.map +1 -1
  82. package/dist/esm/authorization/serviceAccountAbility.d.ts.map +1 -1
  83. package/dist/esm/authorization/serviceAccountAbility.js +20 -0
  84. package/dist/esm/authorization/serviceAccountAbility.js.map +1 -1
  85. package/dist/esm/types/dashboard.d.ts +2 -1
  86. package/dist/esm/types/dashboard.d.ts.map +1 -1
  87. package/dist/esm/types/dashboard.js.map +1 -1
  88. package/dist/esm/types/metricQuery.d.ts +4 -0
  89. package/dist/esm/types/metricQuery.d.ts.map +1 -1
  90. package/dist/esm/types/metricQuery.js.map +1 -1
  91. package/dist/esm/types/savedCharts.d.ts +3 -2
  92. package/dist/esm/types/savedCharts.d.ts.map +1 -1
  93. package/dist/esm/types/savedCharts.js.map +1 -1
  94. package/dist/esm/types/space.d.ts +1 -0
  95. package/dist/esm/types/space.d.ts.map +1 -1
  96. package/dist/esm/types/space.js.map +1 -1
  97. package/dist/esm/utils/tableCalculationFunctions.d.ts +55 -2
  98. package/dist/esm/utils/tableCalculationFunctions.d.ts.map +1 -1
  99. package/dist/esm/utils/tableCalculationFunctions.js +146 -0
  100. package/dist/esm/utils/tableCalculationFunctions.js.map +1 -1
  101. package/dist/esm/utils/tableCalculationFunctions.test.js +179 -1
  102. package/dist/esm/utils/tableCalculationFunctions.test.js.map +1 -1
  103. package/dist/types/.tsbuildinfo +1 -1
  104. package/dist/types/authorization/index.mock.d.ts +1 -1
  105. package/dist/types/authorization/index.mock.js +1 -1
  106. package/dist/types/authorization/index.mock.js.map +1 -1
  107. package/dist/types/authorization/index.test.js +12 -12
  108. package/dist/types/authorization/index.test.js.map +1 -1
  109. package/dist/types/authorization/jwtAbility.test.js +2 -2
  110. package/dist/types/authorization/jwtAbility.test.js.map +1 -1
  111. package/dist/types/authorization/organizationMemberAbility.d.ts.map +1 -1
  112. package/dist/types/authorization/organizationMemberAbility.js +20 -0
  113. package/dist/types/authorization/organizationMemberAbility.js.map +1 -1
  114. package/dist/types/authorization/organizationMemberAbility.test.js +88 -82
  115. package/dist/types/authorization/organizationMemberAbility.test.js.map +1 -1
  116. package/dist/types/authorization/projectMemberAbility.d.ts.map +1 -1
  117. package/dist/types/authorization/projectMemberAbility.js +20 -0
  118. package/dist/types/authorization/projectMemberAbility.js.map +1 -1
  119. package/dist/types/authorization/projectMemberAbility.test.js +124 -94
  120. package/dist/types/authorization/projectMemberAbility.test.js.map +1 -1
  121. package/dist/types/authorization/roleToScopeMapping.test.js +8 -8
  122. package/dist/types/authorization/roleToScopeMapping.test.js.map +1 -1
  123. package/dist/types/authorization/roleToScopeMapping.testUtils.d.ts +119 -119
  124. package/dist/types/authorization/roleToScopeMapping.testUtils.js +4 -4
  125. package/dist/types/authorization/roleToScopeMapping.testUtils.js.map +1 -1
  126. package/dist/types/authorization/roleToScopeParity.test.js +10 -3
  127. package/dist/types/authorization/roleToScopeParity.test.js.map +1 -1
  128. package/dist/types/authorization/scopeAbilityBuilder.test.js +17 -17
  129. package/dist/types/authorization/scopeAbilityBuilder.test.js.map +1 -1
  130. package/dist/types/authorization/scopes.d.ts.map +1 -1
  131. package/dist/types/authorization/scopes.js +8 -0
  132. package/dist/types/authorization/scopes.js.map +1 -1
  133. package/dist/types/authorization/serviceAccountAbility.d.ts.map +1 -1
  134. package/dist/types/authorization/serviceAccountAbility.js +20 -0
  135. package/dist/types/authorization/serviceAccountAbility.js.map +1 -1
  136. package/dist/types/types/dashboard.d.ts +2 -1
  137. package/dist/types/types/dashboard.d.ts.map +1 -1
  138. package/dist/types/types/dashboard.js.map +1 -1
  139. package/dist/types/types/metricQuery.d.ts +4 -0
  140. package/dist/types/types/metricQuery.d.ts.map +1 -1
  141. package/dist/types/types/metricQuery.js.map +1 -1
  142. package/dist/types/types/savedCharts.d.ts +3 -2
  143. package/dist/types/types/savedCharts.d.ts.map +1 -1
  144. package/dist/types/types/savedCharts.js.map +1 -1
  145. package/dist/types/types/space.d.ts +1 -0
  146. package/dist/types/types/space.d.ts.map +1 -1
  147. package/dist/types/types/space.js.map +1 -1
  148. package/dist/types/utils/tableCalculationFunctions.d.ts +55 -2
  149. package/dist/types/utils/tableCalculationFunctions.d.ts.map +1 -1
  150. package/dist/types/utils/tableCalculationFunctions.js +146 -0
  151. package/dist/types/utils/tableCalculationFunctions.js.map +1 -1
  152. package/dist/types/utils/tableCalculationFunctions.test.js +179 -1
  153. package/dist/types/utils/tableCalculationFunctions.test.js.map +1 -1
  154. package/package.json +1 -1
@@ -21,25 +21,25 @@ describe('Project member permissions', () => {
21
21
  it('can view and manage all kinds of dashboards', () => {
22
22
  expect(ability.can('view', subject('Dashboard', {
23
23
  projectUuid,
24
- isPrivate: false,
24
+ inheritsFromOrgOrProject: true,
25
25
  }))).toEqual(true);
26
26
  expect(ability.can('manage', subject('Dashboard', {
27
27
  projectUuid,
28
- isPrivate: false,
28
+ inheritsFromOrgOrProject: true,
29
29
  }))).toEqual(true);
30
30
  expect(ability.can('view', subject('Dashboard', {
31
31
  projectUuid,
32
- isPrivate: true,
32
+ inheritsFromOrgOrProject: false,
33
33
  access: [],
34
34
  }))).toEqual(true);
35
35
  expect(ability.can('manage', subject('Dashboard', {
36
36
  projectUuid,
37
- isPrivate: true,
37
+ inheritsFromOrgOrProject: false,
38
38
  access: [],
39
39
  }))).toEqual(true);
40
40
  expect(ability.can('view', subject('Dashboard', {
41
41
  projectUuid,
42
- isPrivate: true,
42
+ inheritsFromOrgOrProject: false,
43
43
  access: [
44
44
  {
45
45
  userUuid: PROJECT_ADMIN.userUuid,
@@ -49,7 +49,7 @@ describe('Project member permissions', () => {
49
49
  }))).toEqual(true);
50
50
  expect(ability.can('manage', subject('Dashboard', {
51
51
  projectUuid,
52
- isPrivate: true,
52
+ inheritsFromOrgOrProject: false,
53
53
  access: [
54
54
  {
55
55
  userUuid: PROJECT_ADMIN.userUuid,
@@ -59,7 +59,7 @@ describe('Project member permissions', () => {
59
59
  }))).toEqual(true);
60
60
  expect(ability.can('view', subject('Dashboard', {
61
61
  projectUuid,
62
- isPrivate: true,
62
+ inheritsFromOrgOrProject: false,
63
63
  access: [
64
64
  {
65
65
  userUuid: PROJECT_ADMIN.userUuid,
@@ -69,7 +69,7 @@ describe('Project member permissions', () => {
69
69
  }))).toEqual(true);
70
70
  expect(ability.can('manage', subject('Dashboard', {
71
71
  projectUuid,
72
- isPrivate: true,
72
+ inheritsFromOrgOrProject: false,
73
73
  access: [
74
74
  {
75
75
  userUuid: PROJECT_ADMIN.userUuid,
@@ -81,25 +81,25 @@ describe('Project member permissions', () => {
81
81
  it('can view and manage all kinds of saved charts', () => {
82
82
  expect(ability.can('view', subject('SavedChart', {
83
83
  projectUuid,
84
- isPrivate: false,
84
+ inheritsFromOrgOrProject: true,
85
85
  }))).toEqual(true);
86
86
  expect(ability.can('manage', subject('SavedChart', {
87
87
  projectUuid,
88
- isPrivate: false,
88
+ inheritsFromOrgOrProject: true,
89
89
  }))).toEqual(true);
90
90
  expect(ability.can('view', subject('SavedChart', {
91
91
  projectUuid,
92
- isPrivate: true,
92
+ inheritsFromOrgOrProject: false,
93
93
  access: [],
94
94
  }))).toEqual(true);
95
95
  expect(ability.can('manage', subject('SavedChart', {
96
96
  projectUuid,
97
- isPrivate: true,
97
+ inheritsFromOrgOrProject: false,
98
98
  access: [],
99
99
  }))).toEqual(true);
100
100
  expect(ability.can('view', subject('SavedChart', {
101
101
  projectUuid,
102
- isPrivate: true,
102
+ inheritsFromOrgOrProject: false,
103
103
  access: [
104
104
  {
105
105
  userUuid: PROJECT_ADMIN.userUuid,
@@ -109,7 +109,7 @@ describe('Project member permissions', () => {
109
109
  }))).toEqual(true);
110
110
  expect(ability.can('manage', subject('SavedChart', {
111
111
  projectUuid,
112
- isPrivate: true,
112
+ inheritsFromOrgOrProject: false,
113
113
  access: [
114
114
  {
115
115
  userUuid: PROJECT_ADMIN.userUuid,
@@ -119,7 +119,7 @@ describe('Project member permissions', () => {
119
119
  }))).toEqual(true);
120
120
  expect(ability.can('view', subject('SavedChart', {
121
121
  projectUuid,
122
- isPrivate: true,
122
+ inheritsFromOrgOrProject: false,
123
123
  access: [
124
124
  {
125
125
  userUuid: PROJECT_ADMIN.userUuid,
@@ -129,7 +129,7 @@ describe('Project member permissions', () => {
129
129
  }))).toEqual(true);
130
130
  expect(ability.can('manage', subject('SavedChart', {
131
131
  projectUuid,
132
- isPrivate: true,
132
+ inheritsFromOrgOrProject: false,
133
133
  access: [
134
134
  {
135
135
  userUuid: PROJECT_ADMIN.userUuid,
@@ -141,25 +141,25 @@ describe('Project member permissions', () => {
141
141
  it('can view and manage all kinds of space', () => {
142
142
  expect(ability.can('view', subject('Space', {
143
143
  projectUuid,
144
- isPrivate: false,
144
+ inheritsFromOrgOrProject: true,
145
145
  }))).toEqual(true);
146
146
  expect(ability.can('manage', subject('Space', {
147
147
  projectUuid,
148
- isPrivate: false,
148
+ inheritsFromOrgOrProject: true,
149
149
  }))).toEqual(true);
150
150
  expect(ability.can('view', subject('Space', {
151
151
  projectUuid,
152
- isPrivate: true,
152
+ inheritsFromOrgOrProject: false,
153
153
  access: [],
154
154
  }))).toEqual(true);
155
155
  expect(ability.can('manage', subject('Space', {
156
156
  projectUuid,
157
- isPrivate: true,
157
+ inheritsFromOrgOrProject: false,
158
158
  access: [],
159
159
  }))).toEqual(true);
160
160
  expect(ability.can('view', subject('Space', {
161
161
  projectUuid,
162
- isPrivate: true,
162
+ inheritsFromOrgOrProject: false,
163
163
  access: [
164
164
  {
165
165
  userUuid: PROJECT_ADMIN.userUuid,
@@ -169,7 +169,7 @@ describe('Project member permissions', () => {
169
169
  }))).toEqual(true);
170
170
  expect(ability.can('manage', subject('Space', {
171
171
  projectUuid,
172
- isPrivate: true,
172
+ inheritsFromOrgOrProject: false,
173
173
  access: [
174
174
  {
175
175
  userUuid: PROJECT_ADMIN.userUuid,
@@ -179,7 +179,7 @@ describe('Project member permissions', () => {
179
179
  }))).toEqual(true);
180
180
  expect(ability.can('view', subject('Space', {
181
181
  projectUuid,
182
- isPrivate: true,
182
+ inheritsFromOrgOrProject: false,
183
183
  access: [
184
184
  {
185
185
  userUuid: PROJECT_ADMIN.userUuid,
@@ -189,7 +189,7 @@ describe('Project member permissions', () => {
189
189
  }))).toEqual(true);
190
190
  expect(ability.can('manage', subject('Space', {
191
191
  projectUuid,
192
- isPrivate: true,
192
+ inheritsFromOrgOrProject: false,
193
193
  access: [
194
194
  {
195
195
  userUuid: PROJECT_ADMIN.userUuid,
@@ -205,15 +205,15 @@ describe('Project member permissions', () => {
205
205
  it('cannot view resources from another projectUuid', () => {
206
206
  expect(ability.can('view', subject('SavedChart', {
207
207
  projectUuid: '5678',
208
- isPrivate: false,
208
+ inheritsFromOrgOrProject: true,
209
209
  }))).toEqual(false);
210
210
  expect(ability.can('view', subject('Dashboard', {
211
211
  projectUuid: '5678',
212
- isPrivate: false,
212
+ inheritsFromOrgOrProject: true,
213
213
  }))).toEqual(false);
214
214
  expect(ability.can('view', subject('Space', {
215
215
  projectUuid: '5678',
216
- isPrivate: false,
216
+ inheritsFromOrgOrProject: true,
217
217
  }))).toEqual(false);
218
218
  expect(ability.can('view', subject('Project', { projectUuid: '5678' }))).toEqual(false);
219
219
  });
@@ -294,25 +294,25 @@ describe('Project member permissions', () => {
294
294
  it('can view and manage public & accessible dashboards', () => {
295
295
  expect(ability.can('view', subject('Dashboard', {
296
296
  projectUuid,
297
- isPrivate: false,
297
+ inheritsFromOrgOrProject: true,
298
298
  }))).toEqual(true);
299
299
  expect(ability.can('manage', subject('Dashboard', {
300
300
  projectUuid,
301
- isPrivate: false,
301
+ inheritsFromOrgOrProject: true,
302
302
  }))).toEqual(false);
303
303
  expect(ability.can('view', subject('Dashboard', {
304
304
  projectUuid,
305
- isPrivate: true,
305
+ inheritsFromOrgOrProject: false,
306
306
  access: [],
307
307
  }))).toEqual(false);
308
308
  expect(ability.can('manage', subject('Dashboard', {
309
309
  projectUuid,
310
- isPrivate: true,
310
+ inheritsFromOrgOrProject: false,
311
311
  access: [],
312
312
  }))).toEqual(false);
313
313
  expect(ability.can('view', subject('Dashboard', {
314
314
  projectUuid,
315
- isPrivate: true,
315
+ inheritsFromOrgOrProject: false,
316
316
  access: [
317
317
  {
318
318
  userUuid: PROJECT_EDITOR.userUuid,
@@ -322,7 +322,7 @@ describe('Project member permissions', () => {
322
322
  }))).toEqual(true);
323
323
  expect(ability.can('manage', subject('Dashboard', {
324
324
  projectUuid,
325
- isPrivate: true,
325
+ inheritsFromOrgOrProject: false,
326
326
  access: [
327
327
  {
328
328
  userUuid: PROJECT_EDITOR.userUuid,
@@ -332,7 +332,7 @@ describe('Project member permissions', () => {
332
332
  }))).toEqual(false);
333
333
  expect(ability.can('view', subject('Dashboard', {
334
334
  projectUuid,
335
- isPrivate: true,
335
+ inheritsFromOrgOrProject: false,
336
336
  access: [
337
337
  {
338
338
  userUuid: PROJECT_EDITOR.userUuid,
@@ -342,7 +342,7 @@ describe('Project member permissions', () => {
342
342
  }))).toEqual(true);
343
343
  expect(ability.can('manage', subject('Dashboard', {
344
344
  projectUuid,
345
- isPrivate: true,
345
+ inheritsFromOrgOrProject: false,
346
346
  access: [
347
347
  {
348
348
  userUuid: PROJECT_EDITOR.userUuid,
@@ -354,25 +354,25 @@ describe('Project member permissions', () => {
354
354
  it('can view and manage public & accessable saved charts', () => {
355
355
  expect(ability.can('view', subject('SavedChart', {
356
356
  projectUuid,
357
- isPrivate: false,
357
+ inheritsFromOrgOrProject: true,
358
358
  }))).toEqual(true);
359
359
  expect(ability.can('manage', subject('SavedChart', {
360
360
  projectUuid,
361
- isPrivate: false,
361
+ inheritsFromOrgOrProject: true,
362
362
  }))).toEqual(false);
363
363
  expect(ability.can('view', subject('SavedChart', {
364
364
  projectUuid,
365
- isPrivate: true,
365
+ inheritsFromOrgOrProject: false,
366
366
  access: [],
367
367
  }))).toEqual(false);
368
368
  expect(ability.can('manage', subject('SavedChart', {
369
369
  projectUuid,
370
- isPrivate: true,
370
+ inheritsFromOrgOrProject: false,
371
371
  access: [],
372
372
  }))).toEqual(false);
373
373
  expect(ability.can('view', subject('SavedChart', {
374
374
  projectUuid,
375
- isPrivate: true,
375
+ inheritsFromOrgOrProject: false,
376
376
  access: [
377
377
  {
378
378
  userUuid: PROJECT_EDITOR.userUuid,
@@ -382,7 +382,7 @@ describe('Project member permissions', () => {
382
382
  }))).toEqual(true);
383
383
  expect(ability.can('manage', subject('SavedChart', {
384
384
  projectUuid,
385
- isPrivate: true,
385
+ inheritsFromOrgOrProject: false,
386
386
  access: [
387
387
  {
388
388
  userUuid: PROJECT_EDITOR.userUuid,
@@ -392,7 +392,7 @@ describe('Project member permissions', () => {
392
392
  }))).toEqual(false);
393
393
  expect(ability.can('view', subject('SavedChart', {
394
394
  projectUuid,
395
- isPrivate: true,
395
+ inheritsFromOrgOrProject: false,
396
396
  access: [
397
397
  {
398
398
  userUuid: PROJECT_EDITOR.userUuid,
@@ -402,7 +402,7 @@ describe('Project member permissions', () => {
402
402
  }))).toEqual(true);
403
403
  expect(ability.can('manage', subject('SavedChart', {
404
404
  projectUuid,
405
- isPrivate: true,
405
+ inheritsFromOrgOrProject: false,
406
406
  access: [
407
407
  {
408
408
  userUuid: PROJECT_EDITOR.userUuid,
@@ -419,25 +419,25 @@ describe('Project member permissions', () => {
419
419
  it('can view and manage public & accessable space', () => {
420
420
  expect(ability.can('view', subject('Space', {
421
421
  projectUuid,
422
- isPrivate: false,
422
+ inheritsFromOrgOrProject: true,
423
423
  }))).toEqual(true);
424
424
  expect(ability.can('manage', subject('Space', {
425
425
  projectUuid,
426
- isPrivate: false,
426
+ inheritsFromOrgOrProject: true,
427
427
  }))).toEqual(true);
428
428
  expect(ability.can('view', subject('Space', {
429
429
  projectUuid,
430
- isPrivate: true,
430
+ inheritsFromOrgOrProject: false,
431
431
  access: [],
432
432
  }))).toEqual(false);
433
433
  expect(ability.can('manage', subject('Space', {
434
434
  projectUuid,
435
- isPrivate: true,
435
+ inheritsFromOrgOrProject: false,
436
436
  access: [],
437
437
  }))).toEqual(false);
438
438
  expect(ability.can('view', subject('Space', {
439
439
  projectUuid,
440
- isPrivate: true,
440
+ inheritsFromOrgOrProject: false,
441
441
  access: [
442
442
  {
443
443
  userUuid: PROJECT_EDITOR.userUuid,
@@ -447,7 +447,7 @@ describe('Project member permissions', () => {
447
447
  }))).toEqual(true);
448
448
  expect(ability.can('manage', subject('Space', {
449
449
  projectUuid,
450
- isPrivate: true,
450
+ inheritsFromOrgOrProject: false,
451
451
  access: [
452
452
  {
453
453
  userUuid: PROJECT_EDITOR.userUuid,
@@ -457,7 +457,7 @@ describe('Project member permissions', () => {
457
457
  }))).toEqual(false);
458
458
  expect(ability.can('view', subject('Space', {
459
459
  projectUuid,
460
- isPrivate: true,
460
+ inheritsFromOrgOrProject: false,
461
461
  access: [
462
462
  {
463
463
  userUuid: PROJECT_EDITOR.userUuid,
@@ -467,7 +467,7 @@ describe('Project member permissions', () => {
467
467
  }))).toEqual(true);
468
468
  expect(ability.can('manage', subject('Space', {
469
469
  projectUuid,
470
- isPrivate: true,
470
+ inheritsFromOrgOrProject: false,
471
471
  access: [
472
472
  {
473
473
  userUuid: PROJECT_EDITOR.userUuid,
@@ -477,7 +477,7 @@ describe('Project member permissions', () => {
477
477
  }))).toEqual(false);
478
478
  expect(ability.can('manage', subject('Space', {
479
479
  projectUuid,
480
- isPrivate: true,
480
+ inheritsFromOrgOrProject: false,
481
481
  access: [
482
482
  {
483
483
  userUuid: PROJECT_EDITOR.userUuid,
@@ -674,25 +674,25 @@ describe('Project member permissions', () => {
674
674
  it('can only view public & accessable dashboards', () => {
675
675
  expect(ability.can('view', subject('Dashboard', {
676
676
  projectUuid,
677
- isPrivate: false,
677
+ inheritsFromOrgOrProject: true,
678
678
  }))).toEqual(true);
679
679
  expect(ability.can('manage', subject('Dashboard', {
680
680
  projectUuid,
681
- isPrivate: false,
681
+ inheritsFromOrgOrProject: true,
682
682
  }))).toEqual(false);
683
683
  expect(ability.can('view', subject('Dashboard', {
684
684
  projectUuid,
685
- isPrivate: true,
685
+ inheritsFromOrgOrProject: false,
686
686
  access: [],
687
687
  }))).toEqual(false);
688
688
  expect(ability.can('manage', subject('Dashboard', {
689
689
  projectUuid,
690
- isPrivate: true,
690
+ inheritsFromOrgOrProject: false,
691
691
  access: [],
692
692
  }))).toEqual(false);
693
693
  expect(ability.can('view', subject('Dashboard', {
694
694
  projectUuid,
695
- isPrivate: true,
695
+ inheritsFromOrgOrProject: false,
696
696
  access: [
697
697
  {
698
698
  userUuid: PROJECT_VIEWER.userUuid,
@@ -702,7 +702,7 @@ describe('Project member permissions', () => {
702
702
  }))).toEqual(true);
703
703
  expect(ability.can('manage', subject('Dashboard', {
704
704
  projectUuid,
705
- isPrivate: true,
705
+ inheritsFromOrgOrProject: false,
706
706
  access: [
707
707
  {
708
708
  userUuid: PROJECT_VIEWER.userUuid,
@@ -712,7 +712,7 @@ describe('Project member permissions', () => {
712
712
  }))).toEqual(false);
713
713
  expect(ability.can('view', subject('Dashboard', {
714
714
  projectUuid,
715
- isPrivate: true,
715
+ inheritsFromOrgOrProject: false,
716
716
  access: [
717
717
  {
718
718
  userUuid: PROJECT_VIEWER.userUuid,
@@ -722,7 +722,7 @@ describe('Project member permissions', () => {
722
722
  }))).toEqual(true);
723
723
  expect(ability.can('manage', subject('Dashboard', {
724
724
  projectUuid,
725
- isPrivate: true,
725
+ inheritsFromOrgOrProject: false,
726
726
  access: [
727
727
  {
728
728
  userUuid: PROJECT_VIEWER.userUuid,
@@ -734,25 +734,25 @@ describe('Project member permissions', () => {
734
734
  it('can view and manage public & accessable saved charts', () => {
735
735
  expect(ability.can('view', subject('SavedChart', {
736
736
  projectUuid,
737
- isPrivate: false,
737
+ inheritsFromOrgOrProject: true,
738
738
  }))).toEqual(true);
739
739
  expect(ability.can('manage', subject('SavedChart', {
740
740
  projectUuid,
741
- isPrivate: false,
741
+ inheritsFromOrgOrProject: true,
742
742
  }))).toEqual(false);
743
743
  expect(ability.can('view', subject('SavedChart', {
744
744
  projectUuid,
745
- isPrivate: true,
745
+ inheritsFromOrgOrProject: false,
746
746
  access: [],
747
747
  }))).toEqual(false);
748
748
  expect(ability.can('manage', subject('SavedChart', {
749
749
  projectUuid,
750
- isPrivate: true,
750
+ inheritsFromOrgOrProject: false,
751
751
  access: [],
752
752
  }))).toEqual(false);
753
753
  expect(ability.can('view', subject('SavedChart', {
754
754
  projectUuid,
755
- isPrivate: true,
755
+ inheritsFromOrgOrProject: false,
756
756
  access: [
757
757
  {
758
758
  userUuid: PROJECT_VIEWER.userUuid,
@@ -762,7 +762,7 @@ describe('Project member permissions', () => {
762
762
  }))).toEqual(true);
763
763
  expect(ability.can('manage', subject('SavedChart', {
764
764
  projectUuid,
765
- isPrivate: true,
765
+ inheritsFromOrgOrProject: false,
766
766
  access: [
767
767
  {
768
768
  userUuid: PROJECT_VIEWER.userUuid,
@@ -772,7 +772,7 @@ describe('Project member permissions', () => {
772
772
  }))).toEqual(false);
773
773
  expect(ability.can('view', subject('SavedChart', {
774
774
  projectUuid,
775
- isPrivate: true,
775
+ inheritsFromOrgOrProject: false,
776
776
  access: [
777
777
  {
778
778
  userUuid: PROJECT_VIEWER.userUuid,
@@ -782,7 +782,7 @@ describe('Project member permissions', () => {
782
782
  }))).toEqual(true);
783
783
  expect(ability.can('manage', subject('SavedChart', {
784
784
  projectUuid,
785
- isPrivate: true,
785
+ inheritsFromOrgOrProject: false,
786
786
  access: [
787
787
  {
788
788
  userUuid: PROJECT_VIEWER.userUuid,
@@ -794,25 +794,25 @@ describe('Project member permissions', () => {
794
794
  it('can view and manage public & accessable space', () => {
795
795
  expect(ability.can('view', subject('Space', {
796
796
  projectUuid,
797
- isPrivate: false,
797
+ inheritsFromOrgOrProject: true,
798
798
  }))).toEqual(true);
799
799
  expect(ability.can('manage', subject('Space', {
800
800
  projectUuid,
801
- isPrivate: false,
801
+ inheritsFromOrgOrProject: true,
802
802
  }))).toEqual(false);
803
803
  expect(ability.can('view', subject('Space', {
804
804
  projectUuid,
805
- isPrivate: true,
805
+ inheritsFromOrgOrProject: false,
806
806
  access: [],
807
807
  }))).toEqual(false);
808
808
  expect(ability.can('manage', subject('Space', {
809
809
  projectUuid,
810
- isPrivate: true,
810
+ inheritsFromOrgOrProject: false,
811
811
  access: [],
812
812
  }))).toEqual(false);
813
813
  expect(ability.can('view', subject('Space', {
814
814
  projectUuid,
815
- isPrivate: true,
815
+ inheritsFromOrgOrProject: false,
816
816
  access: [
817
817
  {
818
818
  userUuid: PROJECT_VIEWER.userUuid,
@@ -822,7 +822,7 @@ describe('Project member permissions', () => {
822
822
  }))).toEqual(true);
823
823
  expect(ability.can('manage', subject('Space', {
824
824
  projectUuid,
825
- isPrivate: true,
825
+ inheritsFromOrgOrProject: false,
826
826
  access: [
827
827
  {
828
828
  userUuid: PROJECT_VIEWER.userUuid,
@@ -832,7 +832,7 @@ describe('Project member permissions', () => {
832
832
  }))).toEqual(false);
833
833
  expect(ability.can('view', subject('Space', {
834
834
  projectUuid,
835
- isPrivate: true,
835
+ inheritsFromOrgOrProject: false,
836
836
  access: [
837
837
  {
838
838
  userUuid: PROJECT_VIEWER.userUuid,
@@ -842,7 +842,7 @@ describe('Project member permissions', () => {
842
842
  }))).toEqual(true);
843
843
  expect(ability.can('manage', subject('Space', {
844
844
  projectUuid,
845
- isPrivate: true,
845
+ inheritsFromOrgOrProject: false,
846
846
  access: [
847
847
  {
848
848
  userUuid: PROJECT_VIEWER.userUuid,
@@ -857,15 +857,15 @@ describe('Project member permissions', () => {
857
857
  it('cannot view resources from another project', () => {
858
858
  expect(ability.can('view', subject('SavedChart', {
859
859
  projectUuid: '5678',
860
- isPrivate: false,
860
+ inheritsFromOrgOrProject: true,
861
861
  }))).toEqual(false);
862
862
  expect(ability.can('view', subject('Dashboard', {
863
863
  projectUuid: '5678',
864
- isPrivate: false,
864
+ inheritsFromOrgOrProject: true,
865
865
  }))).toEqual(false);
866
866
  expect(ability.can('view', subject('Space', {
867
867
  projectUuid: '5678',
868
- isPrivate: false,
868
+ inheritsFromOrgOrProject: true,
869
869
  }))).toEqual(false);
870
870
  expect(ability.can('view', subject('Project', { projectUuid: '5678' }))).toEqual(false);
871
871
  });
@@ -953,43 +953,73 @@ describe('Project member permissions', () => {
953
953
  it('can view public resources', () => {
954
954
  expect(ability.can('view', subject('SavedChart', {
955
955
  projectUuid,
956
- isPrivate: false,
956
+ inheritsFromOrgOrProject: true,
957
+ }))).toEqual(true);
958
+ expect(ability.can('view', subject('Dashboard', {
959
+ projectUuid,
960
+ inheritsFromOrgOrProject: true,
961
+ }))).toEqual(true);
962
+ expect(ability.can('view', subject('Space', {
963
+ projectUuid,
964
+ inheritsFromOrgOrProject: true,
957
965
  }))).toEqual(true);
958
- expect(ability.can('view', subject('Dashboard', { projectUuid, isPrivate: false }))).toEqual(true);
959
- expect(ability.can('view', subject('Space', { projectUuid, isPrivate: false }))).toEqual(true);
960
966
  expect(ability.can('view', subject('Project', { projectUuid }))).toEqual(true);
961
967
  expect(ability.can('view', subject('SemanticViewer', { projectUuid }))).toEqual(true);
962
968
  });
963
969
  it('can not view private resources', () => {
964
- expect(ability.can('view', subject('SavedChart', { projectUuid, isPrivate: true }))).toEqual(false);
965
- expect(ability.can('view', subject('Dashboard', { projectUuid, isPrivate: true }))).toEqual(false);
966
- expect(ability.can('view', subject('Space', { projectUuid, isPrivate: true }))).toEqual(false);
970
+ expect(ability.can('view', subject('SavedChart', {
971
+ projectUuid,
972
+ inheritsFromOrgOrProject: false,
973
+ }))).toEqual(false);
974
+ expect(ability.can('view', subject('Dashboard', {
975
+ projectUuid,
976
+ inheritsFromOrgOrProject: false,
977
+ }))).toEqual(false);
978
+ expect(ability.can('view', subject('Space', {
979
+ projectUuid,
980
+ inheritsFromOrgOrProject: false,
981
+ }))).toEqual(false);
967
982
  });
968
983
  it('cannot view resources from another project', () => {
969
984
  expect(ability.can('view', subject('SavedChart', {
970
985
  projectUuid: '5678',
971
- isPrivate: false,
986
+ inheritsFromOrgOrProject: true,
972
987
  }))).toEqual(false);
973
988
  expect(ability.can('view', subject('Dashboard', {
974
989
  projectUuid: '5678',
975
- isPrivate: false,
990
+ inheritsFromOrgOrProject: true,
976
991
  }))).toEqual(false);
977
992
  expect(ability.can('view', subject('Space', {
978
993
  projectUuid: '5678',
979
- isPrivate: false,
994
+ inheritsFromOrgOrProject: true,
980
995
  }))).toEqual(false);
981
996
  expect(ability.can('view', subject('Project', { projectUuid: '5678' }))).toEqual(false);
982
997
  });
983
998
  it('cannot manage resources', () => {
984
999
  expect(ability.can('manage', subject('SavedChart', {
985
1000
  projectUuid,
986
- isPrivate: false,
1001
+ inheritsFromOrgOrProject: true,
1002
+ }))).toEqual(false);
1003
+ expect(ability.can('manage', subject('Dashboard', {
1004
+ projectUuid,
1005
+ inheritsFromOrgOrProject: true,
1006
+ }))).toEqual(false);
1007
+ expect(ability.can('manage', subject('Space', {
1008
+ projectUuid,
1009
+ inheritsFromOrgOrProject: true,
1010
+ }))).toEqual(false);
1011
+ expect(ability.can('manage', subject('SavedChart', {
1012
+ projectUuid,
1013
+ inheritsFromOrgOrProject: false,
1014
+ }))).toEqual(false);
1015
+ expect(ability.can('manage', subject('Dashboard', {
1016
+ projectUuid,
1017
+ inheritsFromOrgOrProject: false,
1018
+ }))).toEqual(false);
1019
+ expect(ability.can('manage', subject('Space', {
1020
+ projectUuid,
1021
+ inheritsFromOrgOrProject: false,
987
1022
  }))).toEqual(false);
988
- expect(ability.can('manage', subject('Dashboard', { projectUuid, isPrivate: false }))).toEqual(false);
989
- expect(ability.can('manage', subject('Space', { projectUuid, isPrivate: false }))).toEqual(false);
990
- expect(ability.can('manage', subject('SavedChart', { projectUuid, isPrivate: true }))).toEqual(false);
991
- expect(ability.can('manage', subject('Dashboard', { projectUuid, isPrivate: true }))).toEqual(false);
992
- expect(ability.can('manage', subject('Space', { projectUuid, isPrivate: true }))).toEqual(false);
993
1023
  expect(ability.can('manage', subject('Project', { projectUuid }))).toEqual(false);
994
1024
  expect(ability.can('manage', subject('Job', { projectUuid }))).toEqual(false);
995
1025
  expect(ability.can('manage', subject('SqlRunner', { projectUuid }))).toEqual(false);