@lightdash/common 0.2572.1 → 0.2573.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.
- package/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/authorization/space/spaceAccessResolver.d.ts +2 -3
- package/dist/cjs/authorization/space/spaceAccessResolver.d.ts.map +1 -1
- package/dist/cjs/authorization/space/spaceAccessResolver.js +14 -78
- package/dist/cjs/authorization/space/spaceAccessResolver.js.map +1 -1
- package/dist/cjs/authorization/space/spaceAccessResolver.test.js +18 -529
- package/dist/cjs/authorization/space/spaceAccessResolver.test.js.map +1 -1
- package/dist/cjs/compiler/exploreCompiler.d.ts.map +1 -1
- package/dist/cjs/compiler/exploreCompiler.js +5 -3
- package/dist/cjs/compiler/exploreCompiler.js.map +1 -1
- package/dist/cjs/compiler/filtersCompiler.d.ts.map +1 -1
- package/dist/cjs/compiler/filtersCompiler.js +1 -0
- package/dist/cjs/compiler/filtersCompiler.js.map +1 -1
- package/dist/cjs/dbt/schemas/lightdashMetadata.json +1 -0
- package/dist/cjs/ee/AiAgent/schemas/customMetrics.d.ts +148 -148
- package/dist/cjs/ee/AiAgent/schemas/filters/index.d.ts +180 -180
- package/dist/cjs/ee/AiAgent/schemas/filters/numberFilters.d.ts +12 -12
- package/dist/cjs/ee/AiAgent/schemas/filters/numberFilters.d.ts.map +1 -1
- package/dist/cjs/ee/AiAgent/schemas/filters/numberFilters.js +1 -0
- package/dist/cjs/ee/AiAgent/schemas/filters/numberFilters.js.map +1 -1
- package/dist/cjs/ee/AiAgent/schemas/tools/toolDashboardArgs.d.ts +1608 -1608
- package/dist/cjs/ee/AiAgent/schemas/tools/toolDashboardV2Args.d.ts +440 -440
- package/dist/cjs/ee/AiAgent/schemas/tools/toolProposeChangeArgs.d.ts +60 -60
- package/dist/cjs/ee/AiAgent/schemas/tools/toolRunMetricQueryArgs.d.ts +256 -256
- package/dist/cjs/ee/AiAgent/schemas/tools/toolRunQueryArgs.d.ts +256 -256
- package/dist/cjs/ee/AiAgent/schemas/tools/toolSearchFieldValuesArgs.d.ts +180 -180
- package/dist/cjs/ee/AiAgent/schemas/tools/toolTableVizArgs.d.ts +320 -320
- package/dist/cjs/ee/AiAgent/schemas/tools/toolTimeSeriesArgs.d.ts +320 -320
- package/dist/cjs/ee/AiAgent/schemas/tools/toolVerticalBarArgs.d.ts +320 -320
- package/dist/cjs/preAggregates/additivity.d.ts.map +1 -1
- package/dist/cjs/preAggregates/additivity.js +1 -0
- package/dist/cjs/preAggregates/additivity.js.map +1 -1
- package/dist/cjs/preAggregates/metricRepresentation.d.ts.map +1 -1
- package/dist/cjs/preAggregates/metricRepresentation.js +1 -0
- package/dist/cjs/preAggregates/metricRepresentation.js.map +1 -1
- package/dist/cjs/schemas/json/chart-as-code-1.0.json +443 -114
- package/dist/cjs/types/api.d.ts +1 -0
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/cjs/types/api.js.map +1 -1
- package/dist/cjs/types/catalog.d.ts.map +1 -1
- package/dist/cjs/types/catalog.js +1 -0
- package/dist/cjs/types/catalog.js.map +1 -1
- package/dist/cjs/types/featureFlags.d.ts +0 -6
- package/dist/cjs/types/featureFlags.d.ts.map +1 -1
- package/dist/cjs/types/featureFlags.js +0 -6
- package/dist/cjs/types/featureFlags.js.map +1 -1
- package/dist/cjs/types/field.d.ts +1 -0
- package/dist/cjs/types/field.d.ts.map +1 -1
- package/dist/cjs/types/field.js +3 -0
- package/dist/cjs/types/field.js.map +1 -1
- package/dist/cjs/types/results.d.ts.map +1 -1
- package/dist/cjs/types/results.js +1 -0
- package/dist/cjs/types/results.js.map +1 -1
- package/dist/cjs/types/space.d.ts +0 -7
- package/dist/cjs/types/space.d.ts.map +1 -1
- package/dist/cjs/types/space.js.map +1 -1
- package/dist/cjs/utils/filters.d.ts.map +1 -1
- package/dist/cjs/utils/filters.js +1 -0
- package/dist/cjs/utils/filters.js.map +1 -1
- package/dist/cjs/utils/item.d.ts.map +1 -1
- package/dist/cjs/utils/item.js +1 -0
- package/dist/cjs/utils/item.js.map +1 -1
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/authorization/space/spaceAccessResolver.d.ts +2 -3
- package/dist/esm/authorization/space/spaceAccessResolver.d.ts.map +1 -1
- package/dist/esm/authorization/space/spaceAccessResolver.js +6 -69
- package/dist/esm/authorization/space/spaceAccessResolver.js.map +1 -1
- package/dist/esm/authorization/space/spaceAccessResolver.test.js +19 -530
- package/dist/esm/authorization/space/spaceAccessResolver.test.js.map +1 -1
- package/dist/esm/compiler/exploreCompiler.d.ts.map +1 -1
- package/dist/esm/compiler/exploreCompiler.js +5 -3
- package/dist/esm/compiler/exploreCompiler.js.map +1 -1
- package/dist/esm/compiler/filtersCompiler.d.ts.map +1 -1
- package/dist/esm/compiler/filtersCompiler.js +1 -0
- package/dist/esm/compiler/filtersCompiler.js.map +1 -1
- package/dist/esm/dbt/schemas/lightdashMetadata.json +1 -0
- package/dist/esm/ee/AiAgent/schemas/customMetrics.d.ts +148 -148
- package/dist/esm/ee/AiAgent/schemas/filters/index.d.ts +180 -180
- package/dist/esm/ee/AiAgent/schemas/filters/numberFilters.d.ts +12 -12
- package/dist/esm/ee/AiAgent/schemas/filters/numberFilters.d.ts.map +1 -1
- package/dist/esm/ee/AiAgent/schemas/filters/numberFilters.js +1 -0
- package/dist/esm/ee/AiAgent/schemas/filters/numberFilters.js.map +1 -1
- package/dist/esm/ee/AiAgent/schemas/tools/toolDashboardArgs.d.ts +1608 -1608
- package/dist/esm/ee/AiAgent/schemas/tools/toolDashboardV2Args.d.ts +440 -440
- package/dist/esm/ee/AiAgent/schemas/tools/toolProposeChangeArgs.d.ts +60 -60
- package/dist/esm/ee/AiAgent/schemas/tools/toolRunMetricQueryArgs.d.ts +256 -256
- package/dist/esm/ee/AiAgent/schemas/tools/toolRunQueryArgs.d.ts +256 -256
- package/dist/esm/ee/AiAgent/schemas/tools/toolSearchFieldValuesArgs.d.ts +180 -180
- package/dist/esm/ee/AiAgent/schemas/tools/toolTableVizArgs.d.ts +320 -320
- package/dist/esm/ee/AiAgent/schemas/tools/toolTimeSeriesArgs.d.ts +320 -320
- package/dist/esm/ee/AiAgent/schemas/tools/toolVerticalBarArgs.d.ts +320 -320
- package/dist/esm/preAggregates/additivity.d.ts.map +1 -1
- package/dist/esm/preAggregates/additivity.js +1 -0
- package/dist/esm/preAggregates/additivity.js.map +1 -1
- package/dist/esm/preAggregates/metricRepresentation.d.ts.map +1 -1
- package/dist/esm/preAggregates/metricRepresentation.js +1 -0
- package/dist/esm/preAggregates/metricRepresentation.js.map +1 -1
- package/dist/esm/schemas/json/chart-as-code-1.0.json +443 -114
- package/dist/esm/types/api.d.ts +1 -0
- package/dist/esm/types/api.d.ts.map +1 -1
- package/dist/esm/types/api.js.map +1 -1
- package/dist/esm/types/catalog.d.ts.map +1 -1
- package/dist/esm/types/catalog.js +1 -0
- package/dist/esm/types/catalog.js.map +1 -1
- package/dist/esm/types/featureFlags.d.ts +0 -6
- package/dist/esm/types/featureFlags.d.ts.map +1 -1
- package/dist/esm/types/featureFlags.js +0 -6
- package/dist/esm/types/featureFlags.js.map +1 -1
- package/dist/esm/types/field.d.ts +1 -0
- package/dist/esm/types/field.d.ts.map +1 -1
- package/dist/esm/types/field.js +3 -0
- package/dist/esm/types/field.js.map +1 -1
- package/dist/esm/types/results.d.ts.map +1 -1
- package/dist/esm/types/results.js +1 -0
- package/dist/esm/types/results.js.map +1 -1
- package/dist/esm/types/space.d.ts +0 -7
- package/dist/esm/types/space.d.ts.map +1 -1
- package/dist/esm/types/space.js.map +1 -1
- package/dist/esm/utils/filters.d.ts.map +1 -1
- package/dist/esm/utils/filters.js +1 -0
- package/dist/esm/utils/filters.js.map +1 -1
- package/dist/esm/utils/item.d.ts.map +1 -1
- package/dist/esm/utils/item.js +1 -0
- package/dist/esm/utils/item.js.map +1 -1
- package/dist/types/.tsbuildinfo +1 -1
- package/dist/types/authorization/space/spaceAccessResolver.d.ts +2 -3
- package/dist/types/authorization/space/spaceAccessResolver.d.ts.map +1 -1
- package/dist/types/authorization/space/spaceAccessResolver.js +6 -69
- package/dist/types/authorization/space/spaceAccessResolver.js.map +1 -1
- package/dist/types/authorization/space/spaceAccessResolver.test.js +19 -530
- package/dist/types/authorization/space/spaceAccessResolver.test.js.map +1 -1
- package/dist/types/compiler/exploreCompiler.d.ts.map +1 -1
- package/dist/types/compiler/exploreCompiler.js +5 -3
- package/dist/types/compiler/exploreCompiler.js.map +1 -1
- package/dist/types/compiler/filtersCompiler.d.ts.map +1 -1
- package/dist/types/compiler/filtersCompiler.js +1 -0
- package/dist/types/compiler/filtersCompiler.js.map +1 -1
- package/dist/types/dbt/schemas/lightdashMetadata.json +1 -0
- package/dist/types/ee/AiAgent/schemas/customMetrics.d.ts +148 -148
- package/dist/types/ee/AiAgent/schemas/filters/index.d.ts +180 -180
- package/dist/types/ee/AiAgent/schemas/filters/numberFilters.d.ts +12 -12
- package/dist/types/ee/AiAgent/schemas/filters/numberFilters.d.ts.map +1 -1
- package/dist/types/ee/AiAgent/schemas/filters/numberFilters.js +1 -0
- package/dist/types/ee/AiAgent/schemas/filters/numberFilters.js.map +1 -1
- package/dist/types/ee/AiAgent/schemas/tools/toolDashboardArgs.d.ts +1608 -1608
- package/dist/types/ee/AiAgent/schemas/tools/toolDashboardV2Args.d.ts +440 -440
- package/dist/types/ee/AiAgent/schemas/tools/toolProposeChangeArgs.d.ts +60 -60
- package/dist/types/ee/AiAgent/schemas/tools/toolRunMetricQueryArgs.d.ts +256 -256
- package/dist/types/ee/AiAgent/schemas/tools/toolRunQueryArgs.d.ts +256 -256
- package/dist/types/ee/AiAgent/schemas/tools/toolSearchFieldValuesArgs.d.ts +180 -180
- package/dist/types/ee/AiAgent/schemas/tools/toolTableVizArgs.d.ts +320 -320
- package/dist/types/ee/AiAgent/schemas/tools/toolTimeSeriesArgs.d.ts +320 -320
- package/dist/types/ee/AiAgent/schemas/tools/toolVerticalBarArgs.d.ts +320 -320
- package/dist/types/preAggregates/additivity.d.ts.map +1 -1
- package/dist/types/preAggregates/additivity.js +1 -0
- package/dist/types/preAggregates/additivity.js.map +1 -1
- package/dist/types/preAggregates/metricRepresentation.d.ts.map +1 -1
- package/dist/types/preAggregates/metricRepresentation.js +1 -0
- package/dist/types/preAggregates/metricRepresentation.js.map +1 -1
- package/dist/types/schemas/json/chart-as-code-1.0.json +443 -114
- package/dist/types/types/api.d.ts +1 -0
- package/dist/types/types/api.d.ts.map +1 -1
- package/dist/types/types/api.js.map +1 -1
- package/dist/types/types/catalog.d.ts.map +1 -1
- package/dist/types/types/catalog.js +1 -0
- package/dist/types/types/catalog.js.map +1 -1
- package/dist/types/types/featureFlags.d.ts +0 -6
- package/dist/types/types/featureFlags.d.ts.map +1 -1
- package/dist/types/types/featureFlags.js +0 -6
- package/dist/types/types/featureFlags.js.map +1 -1
- package/dist/types/types/field.d.ts +1 -0
- package/dist/types/types/field.d.ts.map +1 -1
- package/dist/types/types/field.js +3 -0
- package/dist/types/types/field.js.map +1 -1
- package/dist/types/types/results.d.ts.map +1 -1
- package/dist/types/types/results.js +1 -0
- package/dist/types/types/results.js.map +1 -1
- package/dist/types/types/space.d.ts +0 -7
- package/dist/types/types/space.d.ts.map +1 -1
- package/dist/types/types/space.js.map +1 -1
- package/dist/types/utils/filters.d.ts.map +1 -1
- package/dist/types/utils/filters.js +1 -0
- package/dist/types/utils/filters.js.map +1 -1
- package/dist/types/utils/item.d.ts.map +1 -1
- package/dist/types/utils/item.js +1 -0
- package/dist/types/utils/item.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type SpaceAccess, type
|
|
2
|
-
export declare const resolveSpaceAccess: (input:
|
|
3
|
-
export declare const resolveSpaceAccessWithInheritance: (input: SpaceAccessWithInheritanceInput) => SpaceAccess[];
|
|
1
|
+
import { type SpaceAccess, type SpaceAccessWithInheritanceInput } from '../../types/space';
|
|
2
|
+
export declare const resolveSpaceAccess: (input: SpaceAccessWithInheritanceInput) => SpaceAccess[];
|
|
4
3
|
//# sourceMappingURL=spaceAccessResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spaceAccessResolver.d.ts","sourceRoot":"","sources":["../../../../src/authorization/space/spaceAccessResolver.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"spaceAccessResolver.d.ts","sourceRoot":"","sources":["../../../../src/authorization/space/spaceAccessResolver.ts"],"names":[],"mappings":"AAOA,OAAO,EAOH,KAAK,WAAW,EAChB,KAAK,+BAA+B,EAEvC,MAAM,mBAAmB,CAAC;AAwM3B,eAAO,MAAM,kBAAkB,GAC3B,OAAO,+BAA+B,KACvC,WAAW,EAeb,CAAC"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const projectMemberRole_1 = require("../../types/projectMemberRole");
|
|
3
|
+
exports.resolveSpaceAccess = void 0;
|
|
5
4
|
const space_1 = require("../../types/space");
|
|
6
|
-
const
|
|
5
|
+
const projectMemberRole_1 = require("../../utils/projectMemberRole");
|
|
7
6
|
const getUserOrganizationRole = (organizationAccess, userUuid) => {
|
|
8
7
|
const userOrgAccess = organizationAccess.filter((a) => a.userUuid === userUuid);
|
|
9
8
|
return {
|
|
10
9
|
type: 'organization',
|
|
11
10
|
role: userOrgAccess.length > 0
|
|
12
|
-
? (0,
|
|
11
|
+
? (0, projectMemberRole_1.convertOrganizationRoleToProjectRole)(userOrgAccess[0].role)
|
|
13
12
|
: undefined,
|
|
14
13
|
};
|
|
15
14
|
};
|
|
@@ -36,73 +35,10 @@ const getUserDirectGroupAccess = (directAccess, userUuid) => {
|
|
|
36
35
|
a.from === space_1.DirectSpaceAccessOrigin.GROUP_ACCESS);
|
|
37
36
|
return userDirectGroups.map((entry) => ({
|
|
38
37
|
type: 'space_group',
|
|
39
|
-
role: (0,
|
|
38
|
+
role: (0, projectMemberRole_1.convertSpaceRoleToProjectRole)(entry.role),
|
|
40
39
|
}));
|
|
41
40
|
};
|
|
42
|
-
const getSpaceRole = (
|
|
43
|
-
const userAccessEntries = userDirectAccess.filter((a) => a.from === space_1.DirectSpaceAccessOrigin.USER_ACCESS);
|
|
44
|
-
const groupAccessEntries = userDirectAccess.filter((a) => a.from === space_1.DirectSpaceAccessOrigin.GROUP_ACCESS);
|
|
45
|
-
const hasDirectAccess = userDirectAccess.length > 0;
|
|
46
|
-
if (highestRole === projectMemberRole_1.ProjectMemberRole.ADMIN) {
|
|
47
|
-
return space_1.SpaceMemberRole.ADMIN;
|
|
48
|
-
}
|
|
49
|
-
if (hasDirectAccess) {
|
|
50
|
-
// If user has explicit user role in space, use that; otherwise use highest group role
|
|
51
|
-
const userSpaceRole = userAccessEntries.length > 0
|
|
52
|
-
? userAccessEntries[0].role
|
|
53
|
-
: undefined;
|
|
54
|
-
return (userSpaceRole ??
|
|
55
|
-
(0, projectMemberRole_2.getHighestSpaceRole)(groupAccessEntries.map((e) => e.role)));
|
|
56
|
-
}
|
|
57
|
-
if (inheritsFromOrgOrProject) {
|
|
58
|
-
return (0, projectMemberRole_2.convertProjectRoleToSpaceRole)(highestRole);
|
|
59
|
-
}
|
|
60
|
-
return undefined;
|
|
61
|
-
};
|
|
62
|
-
const resolveUserSpaceAccess = (userUuid, input) => {
|
|
63
|
-
const { inheritsFromOrgOrProject, directAccess, projectAccess, organizationAccess, } = input;
|
|
64
|
-
const organizationRole = getUserOrganizationRole(organizationAccess, userUuid);
|
|
65
|
-
const projectRole = getUserProjectRole(projectAccess, userUuid);
|
|
66
|
-
const groupRoles = getUserProjectGroupRoles(projectAccess, userUuid);
|
|
67
|
-
const spaceGroupAccessRoles = getUserDirectGroupAccess(directAccess, userUuid);
|
|
68
|
-
// Compute highest role across all sources
|
|
69
|
-
const highestRole = (0, projectMemberRole_2.getHighestProjectRole)([
|
|
70
|
-
organizationRole,
|
|
71
|
-
projectRole,
|
|
72
|
-
...groupRoles,
|
|
73
|
-
...spaceGroupAccessRoles,
|
|
74
|
-
]);
|
|
75
|
-
if (!highestRole)
|
|
76
|
-
return undefined;
|
|
77
|
-
const userDirectAccess = directAccess.filter((a) => a.userUuid === userUuid);
|
|
78
|
-
const spaceRole = getSpaceRole(highestRole.role, userDirectAccess, inheritsFromOrgOrProject);
|
|
79
|
-
if (!spaceRole)
|
|
80
|
-
return undefined;
|
|
81
|
-
// Compute highest project role (org + direct project membership only)
|
|
82
|
-
const highestProjectRole = (0, projectMemberRole_2.getHighestProjectRole)([
|
|
83
|
-
organizationRole,
|
|
84
|
-
projectRole,
|
|
85
|
-
]);
|
|
86
|
-
return {
|
|
87
|
-
userUuid,
|
|
88
|
-
role: spaceRole,
|
|
89
|
-
hasDirectAccess: userDirectAccess.length > 0,
|
|
90
|
-
inheritedRole: highestRole.role,
|
|
91
|
-
inheritedFrom: highestRole.type,
|
|
92
|
-
projectRole: highestProjectRole?.role,
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
const resolveSpaceAccess = (input) => {
|
|
96
|
-
const { directAccess, projectAccess, organizationAccess } = input;
|
|
97
|
-
// Collect all unique user UUIDs
|
|
98
|
-
const uniqueUserUuids = new Set([...directAccess, ...projectAccess, ...organizationAccess].map((e) => e.userUuid));
|
|
99
|
-
return Array.from(uniqueUserUuids)
|
|
100
|
-
.map((userUuid) => resolveUserSpaceAccess(userUuid, input))
|
|
101
|
-
.filter((share) => share !== undefined);
|
|
102
|
-
};
|
|
103
|
-
exports.resolveSpaceAccess = resolveSpaceAccess;
|
|
104
|
-
// --- Chain-aware resolution ("most permissive wins") ---
|
|
105
|
-
const getSpaceRoleFromChain = (highestProjectRole, userUuid, chainDirectAccess, leafSpaceUuid, inheritsFromOrgOrProject) => {
|
|
41
|
+
const getSpaceRole = (highestProjectRole, userUuid, chainDirectAccess, leafSpaceUuid, inheritsFromOrgOrProject) => {
|
|
106
42
|
// Collect all direct access entries for this user across the entire chain
|
|
107
43
|
const allUserEntries = [];
|
|
108
44
|
for (const chainLevel of chainDirectAccess) {
|
|
@@ -117,7 +53,7 @@ const getSpaceRoleFromChain = (highestProjectRole, userUuid, chainDirectAccess,
|
|
|
117
53
|
}
|
|
118
54
|
if (allUserEntries.length > 0) {
|
|
119
55
|
// Most permissive wins: highest role across all chain levels, all origins
|
|
120
|
-
const highestDirectRole = (0,
|
|
56
|
+
const highestDirectRole = (0, projectMemberRole_1.getHighestSpaceRole)(allUserEntries.map((e) => e.role));
|
|
121
57
|
if (!highestDirectRole)
|
|
122
58
|
return undefined;
|
|
123
59
|
// Check if the winning role came from a parent space (not the leaf)
|
|
@@ -128,13 +64,13 @@ const getSpaceRoleFromChain = (highestProjectRole, userUuid, chainDirectAccess,
|
|
|
128
64
|
// No direct access anywhere in chain — fall through to project/org inheritance
|
|
129
65
|
if (inheritsFromOrgOrProject) {
|
|
130
66
|
return {
|
|
131
|
-
role: (0,
|
|
67
|
+
role: (0, projectMemberRole_1.convertProjectRoleToSpaceRole)(highestProjectRole),
|
|
132
68
|
fromParent: false, // not from a parent space — access is from org/project level
|
|
133
69
|
};
|
|
134
70
|
}
|
|
135
71
|
return undefined;
|
|
136
72
|
};
|
|
137
|
-
const
|
|
73
|
+
const resolveUserSpaceAccess = (userUuid, input) => {
|
|
138
74
|
const { spaceUuid, inheritsFromOrgOrProject, chainDirectAccess, projectAccess, organizationAccess, } = input;
|
|
139
75
|
// Step 1: Compute highest project-level role (same as existing logic)
|
|
140
76
|
const organizationRole = getUserOrganizationRole(organizationAccess, userUuid);
|
|
@@ -143,7 +79,7 @@ const resolveUserSpaceAccessWithInheritance = (userUuid, input) => {
|
|
|
143
79
|
// Flatten all direct access for group role computation at project level
|
|
144
80
|
const allDirectAccess = chainDirectAccess.flatMap((c) => c.directAccess);
|
|
145
81
|
const spaceGroupAccessRoles = getUserDirectGroupAccess(allDirectAccess, userUuid);
|
|
146
|
-
const highestRole = (0,
|
|
82
|
+
const highestRole = (0, projectMemberRole_1.getHighestProjectRole)([
|
|
147
83
|
organizationRole,
|
|
148
84
|
projectRole,
|
|
149
85
|
...groupRoles,
|
|
@@ -152,7 +88,7 @@ const resolveUserSpaceAccessWithInheritance = (userUuid, input) => {
|
|
|
152
88
|
if (!highestRole)
|
|
153
89
|
return undefined;
|
|
154
90
|
// Step 2: Compute effective space role using "most permissive wins"
|
|
155
|
-
const spaceRoleResult =
|
|
91
|
+
const spaceRoleResult = getSpaceRole(highestRole.role, userUuid, chainDirectAccess, spaceUuid, inheritsFromOrgOrProject);
|
|
156
92
|
if (!spaceRoleResult)
|
|
157
93
|
return undefined;
|
|
158
94
|
// Step 3: Determine hasDirectAccess (leaf space only)
|
|
@@ -161,7 +97,7 @@ const resolveUserSpaceAccessWithInheritance = (userUuid, input) => {
|
|
|
161
97
|
? leafLevel.directAccess.some((a) => a.userUuid === userUuid)
|
|
162
98
|
: false;
|
|
163
99
|
// Step 4: Compute projectRole metadata (org + direct project only)
|
|
164
|
-
const highestProjectRole = (0,
|
|
100
|
+
const highestProjectRole = (0, projectMemberRole_1.getHighestProjectRole)([
|
|
165
101
|
organizationRole,
|
|
166
102
|
projectRole,
|
|
167
103
|
]);
|
|
@@ -179,14 +115,14 @@ const resolveUserSpaceAccessWithInheritance = (userUuid, input) => {
|
|
|
179
115
|
projectRole: highestProjectRole?.role,
|
|
180
116
|
};
|
|
181
117
|
};
|
|
182
|
-
const
|
|
118
|
+
const resolveSpaceAccess = (input) => {
|
|
183
119
|
const { chainDirectAccess, projectAccess, organizationAccess } = input;
|
|
184
120
|
const allDirectAccess = chainDirectAccess.flatMap((c) => c.directAccess);
|
|
185
121
|
// Collect all unique user UUIDs
|
|
186
122
|
const uniqueUserUuids = new Set([...allDirectAccess, ...projectAccess, ...organizationAccess].map((e) => e.userUuid));
|
|
187
123
|
return Array.from(uniqueUserUuids)
|
|
188
|
-
.map((userUuid) =>
|
|
124
|
+
.map((userUuid) => resolveUserSpaceAccess(userUuid, input))
|
|
189
125
|
.filter((share) => share !== undefined);
|
|
190
126
|
};
|
|
191
|
-
exports.
|
|
127
|
+
exports.resolveSpaceAccess = resolveSpaceAccess;
|
|
192
128
|
//# sourceMappingURL=spaceAccessResolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spaceAccessResolver.js","sourceRoot":"","sources":["../../../../src/authorization/space/spaceAccessResolver.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"spaceAccessResolver.js","sourceRoot":"","sources":["../../../../src/authorization/space/spaceAccessResolver.ts"],"names":[],"mappings":"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"}
|