@qrvey/assets-sharing 0.3.4 → 0.3.5-1236
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/common/constants.js +11 -1
- package/dist/cjs/common/constants.js.map +1 -1
- package/dist/cjs/common/util.js +5 -0
- package/dist/cjs/common/util.js.map +1 -1
- package/dist/cjs/context.js +6 -0
- package/dist/cjs/context.js.map +1 -1
- package/dist/cjs/index.js +23 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/quser/implementations/group.model.js +3 -0
- package/dist/cjs/quser/implementations/group.model.js.map +1 -1
- package/dist/cjs/quser/implementations/group.repository.js +22 -1
- package/dist/cjs/quser/implementations/group.repository.js.map +1 -1
- package/dist/cjs/quser/implementations/permission.repository.js +27 -0
- package/dist/cjs/quser/implementations/permission.repository.js.map +1 -0
- package/dist/cjs/quser/interfaces/permissionsRepository.interface.js +3 -0
- package/dist/cjs/quser/interfaces/permissionsRepository.interface.js.map +1 -0
- package/dist/cjs/quser/services/fromTokenToUser.js +5 -1
- package/dist/cjs/quser/services/fromTokenToUser.js.map +1 -1
- package/dist/cjs/quser/services/hasAdminRole.js +31 -12
- package/dist/cjs/quser/services/hasAdminRole.js.map +1 -1
- package/dist/cjs/quser/services/hasSharingPermission.js +47 -0
- package/dist/cjs/quser/services/hasSharingPermission.js.map +1 -0
- package/dist/cjs/sharing/entities/details.js +13 -2
- package/dist/cjs/sharing/entities/details.js.map +1 -1
- package/dist/cjs/sharing/entities/types/orgTreeResult.js +10 -0
- package/dist/cjs/sharing/entities/types/orgTreeResult.js.map +1 -0
- package/dist/cjs/sharing/entities/types/organization.type.js +3 -0
- package/dist/cjs/sharing/entities/types/organization.type.js.map +1 -0
- package/dist/cjs/sharing/implementations/admin.repository.js +30 -0
- package/dist/cjs/sharing/implementations/admin.repository.js.map +1 -0
- package/dist/cjs/sharing/implementations/details.repository.js +13 -4
- package/dist/cjs/sharing/implementations/details.repository.js.map +1 -1
- package/dist/cjs/sharing/implementations/organization.model.js +31 -0
- package/dist/cjs/sharing/implementations/organization.model.js.map +1 -0
- package/dist/cjs/sharing/implementations/organization.repository.js +73 -0
- package/dist/cjs/sharing/implementations/organization.repository.js.map +1 -0
- package/dist/cjs/sharing/implementations/sharing.model.js +4 -2
- package/dist/cjs/sharing/implementations/sharing.model.js.map +1 -1
- package/dist/cjs/sharing/interfaces/adminRepository.interface.js +3 -0
- package/dist/cjs/sharing/interfaces/adminRepository.interface.js.map +1 -0
- package/dist/cjs/sharing/interfaces/organizationRepository.interface.js +3 -0
- package/dist/cjs/sharing/interfaces/organizationRepository.interface.js.map +1 -0
- package/dist/cjs/sharing/services/checkAppAccess.js +47 -0
- package/dist/cjs/sharing/services/checkAppAccess.js.map +1 -0
- package/dist/cjs/sharing/services/checkOrgPermissions.js +36 -0
- package/dist/cjs/sharing/services/checkOrgPermissions.js.map +1 -0
- package/dist/cjs/sharing/services/checkUserAccessLevel.js +30 -7
- package/dist/cjs/sharing/services/checkUserAccessLevel.js.map +1 -1
- package/dist/cjs/sharing/services/delete.js +5 -1
- package/dist/cjs/sharing/services/delete.js.map +1 -1
- package/dist/cjs/sharing/services/getOrgTree.js +31 -0
- package/dist/cjs/sharing/services/getOrgTree.js.map +1 -0
- package/dist/cjs/sharing/services/list.js +5 -1
- package/dist/cjs/sharing/services/list.js.map +1 -1
- package/dist/cjs/sharing/services/upsert.js +11 -2
- package/dist/cjs/sharing/services/upsert.js.map +1 -1
- package/dist/cjs/sharing/services/upsertDefaultSharing.js +71 -0
- package/dist/cjs/sharing/services/upsertDefaultSharing.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/index.mjs +1089 -312
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/index.d.ts +348 -54
- package/package.json +60 -51
- package/.eslintrc +0 -88
- package/__test__/hasAdminRole.test.ts +0 -299
- package/jest.config.ts +0 -15
- package/src/common/common.type.ts +0 -33
- package/src/common/constants.ts +0 -47
- package/src/common/persistence/base.ts +0 -13
- package/src/common/persistence/poolClient.ts +0 -7
- package/src/common/util.ts +0 -8
- package/src/context.ts +0 -35
- package/src/index.ts +0 -38
- package/src/quser/entities/types/user.type.ts +0 -14
- package/src/quser/entities/user.ts +0 -31
- package/src/quser/implementations/group.model.ts +0 -18
- package/src/quser/implementations/group.repository.ts +0 -20
- package/src/quser/implementations/user.model.ts +0 -23
- package/src/quser/implementations/user.repository.ts +0 -35
- package/src/quser/interfaces/rolesRepository.interface.ts +0 -3
- package/src/quser/interfaces/userRepository.interface.ts +0 -10
- package/src/quser/services/fromTokenToUser.ts +0 -49
- package/src/quser/services/hasAdminRole.ts +0 -52
- package/src/sharing/entities/details.ts +0 -144
- package/src/sharing/entities/sharing.ts +0 -84
- package/src/sharing/entities/types/details.type.ts +0 -58
- package/src/sharing/entities/types/sharing.type.ts +0 -24
- package/src/sharing/implementations/details.model.ts +0 -93
- package/src/sharing/implementations/details.repository.ts +0 -154
- package/src/sharing/implementations/dm.model.ts +0 -21
- package/src/sharing/implementations/dm.repository.ts +0 -23
- package/src/sharing/implementations/dx.model.ts +0 -30
- package/src/sharing/implementations/dx.repository.ts +0 -22
- package/src/sharing/implementations/sharing.model.ts +0 -33
- package/src/sharing/implementations/sharing.repository.ts +0 -36
- package/src/sharing/interfaces/dashboardRepository.interface.ts +0 -3
- package/src/sharing/interfaces/detailsRepository.interface.ts +0 -60
- package/src/sharing/interfaces/downloadManagerRepository.interface.ts +0 -3
- package/src/sharing/interfaces/sharingRepository.interface.ts +0 -32
- package/src/sharing/services/checkUserAccessLevel.ts +0 -63
- package/src/sharing/services/delete.ts +0 -24
- package/src/sharing/services/list.ts +0 -53
- package/src/sharing/services/upsert.ts +0 -197
- package/tsconfig.cjs.json +0 -7
- package/tsconfig.json +0 -19
- package/tsup.config.cjs.ts +0 -11
- package/tsup.config.esm.ts +0 -12
- package/tsup.config.types.ts +0 -9
package/dist/esm/index.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import { container, injectable, inject } from 'tsyringe';
|
|
3
3
|
import { CrudSchema, CrudService, buildFilter, getDbPool } from '@qrvey/data-persistence';
|
|
4
|
+
import { getAttribute } from '@qrvey/utils';
|
|
4
5
|
import { getId } from '@qrvey/id-generator';
|
|
5
6
|
|
|
6
7
|
var __defProp = Object.defineProperty;
|
|
7
8
|
var __defProps = Object.defineProperties;
|
|
8
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
9
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
10
10
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
11
11
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
@@ -23,19 +23,27 @@ var __spreadValues = (a, b) => {
|
|
|
23
23
|
return a;
|
|
24
24
|
};
|
|
25
25
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
27
|
+
var __objRest = (source, exclude) => {
|
|
28
|
+
var target = {};
|
|
29
|
+
for (var prop in source)
|
|
30
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
31
|
+
target[prop] = source[prop];
|
|
32
|
+
if (source != null && __getOwnPropSymbols)
|
|
33
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
34
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
35
|
+
target[prop] = source[prop];
|
|
36
|
+
}
|
|
37
|
+
return target;
|
|
38
|
+
};
|
|
39
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
34
40
|
|
|
35
41
|
// src/common/constants.ts
|
|
36
42
|
var ENVIRONMENT = {
|
|
37
43
|
SERVER_PREFIX: process.env.SERVER_PREFIX,
|
|
38
|
-
TABLE_PREFIX: process.env.TABLE_PREFIX
|
|
44
|
+
TABLE_PREFIX: process.env.TABLE_PREFIX,
|
|
45
|
+
DOMAIN: process.env.DOMAIN,
|
|
46
|
+
API_KEY: process.env.API_KEY
|
|
39
47
|
};
|
|
40
48
|
var DATABASE_INFO = {
|
|
41
49
|
DATA_PERSISTENCE_SCHEMA: "admin",
|
|
@@ -43,54 +51,67 @@ var DATABASE_INFO = {
|
|
|
43
51
|
TABLE_PREFIX: ENVIRONMENT.TABLE_PREFIX
|
|
44
52
|
};
|
|
45
53
|
var ORGANIZATION_QRVEY = "org:0";
|
|
46
|
-
var
|
|
54
|
+
var USER_ANONYMOUS = "anonymous";
|
|
55
|
+
var ASSET_TYPE = /* @__PURE__ */ (function(ASSET_TYPE2) {
|
|
47
56
|
ASSET_TYPE2["DX"] = "DX";
|
|
48
57
|
ASSET_TYPE2["DM"] = "DM";
|
|
49
58
|
return ASSET_TYPE2;
|
|
50
|
-
})(
|
|
51
|
-
var SHARED_ORIGIN = /* @__PURE__ */ ((
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return
|
|
56
|
-
})(
|
|
57
|
-
var SHARE_TYPE = /* @__PURE__ */ ((
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
59
|
+
})({});
|
|
60
|
+
var SHARED_ORIGIN = /* @__PURE__ */ (function(SHARED_ORIGIN2) {
|
|
61
|
+
SHARED_ORIGIN2["INTERNAL"] = "INTERNAL";
|
|
62
|
+
SHARED_ORIGIN2["EXTERNAL"] = "EXTERNAL";
|
|
63
|
+
SHARED_ORIGIN2["UNKNOWN"] = "UNKNOWN";
|
|
64
|
+
return SHARED_ORIGIN2;
|
|
65
|
+
})({});
|
|
66
|
+
var SHARE_TYPE = /* @__PURE__ */ (function(SHARE_TYPE2) {
|
|
67
|
+
SHARE_TYPE2["USER"] = "USER";
|
|
68
|
+
SHARE_TYPE2["ROLE"] = "ROLE";
|
|
69
|
+
SHARE_TYPE2["ORGANIZATION"] = "ORGANIZATION";
|
|
70
|
+
SHARE_TYPE2["TENANT"] = "TENANT";
|
|
71
|
+
return SHARE_TYPE2;
|
|
72
|
+
})({});
|
|
73
|
+
var ACCESS_LEVEL = /* @__PURE__ */ (function(ACCESS_LEVEL2) {
|
|
74
|
+
ACCESS_LEVEL2[ACCESS_LEVEL2["NONE"] = 0] = "NONE";
|
|
75
|
+
ACCESS_LEVEL2[ACCESS_LEVEL2["CAN_USE"] = 1] = "CAN_USE";
|
|
76
|
+
ACCESS_LEVEL2[ACCESS_LEVEL2["CAN_EDIT"] = 2] = "CAN_EDIT";
|
|
77
|
+
ACCESS_LEVEL2[ACCESS_LEVEL2["ADMIN"] = 4] = "ADMIN";
|
|
78
|
+
return ACCESS_LEVEL2;
|
|
79
|
+
})({});
|
|
80
|
+
var APP_SHARING_STATUS = /* @__PURE__ */ (function(APP_SHARING_STATUS2) {
|
|
81
|
+
APP_SHARING_STATUS2["PUBLIC"] = "public";
|
|
82
|
+
APP_SHARING_STATUS2["PRIVATE"] = "private";
|
|
83
|
+
APP_SHARING_STATUS2["SHARED"] = "shared";
|
|
84
|
+
return APP_SHARING_STATUS2;
|
|
85
|
+
})({});
|
|
70
86
|
var LIMIT_PER_PAGE = 10;
|
|
71
87
|
|
|
72
88
|
// src/quser/implementations/group.model.ts
|
|
73
|
-
var
|
|
89
|
+
var _GroupModel = class _GroupModel extends CrudSchema {
|
|
74
90
|
};
|
|
75
|
-
GroupModel
|
|
91
|
+
__name(_GroupModel, "GroupModel");
|
|
92
|
+
__publicField(_GroupModel, "table", {
|
|
76
93
|
name: `${DATABASE_INFO.SERVER_PREFIX}Groups`,
|
|
77
94
|
alias: "qv_groups"
|
|
78
|
-
};
|
|
79
|
-
|
|
95
|
+
});
|
|
96
|
+
__publicField(_GroupModel, "columns", {
|
|
80
97
|
groupid: {
|
|
81
98
|
type: "string"
|
|
99
|
+
},
|
|
100
|
+
name: {
|
|
101
|
+
type: "string"
|
|
82
102
|
}
|
|
83
|
-
};
|
|
84
|
-
|
|
103
|
+
});
|
|
104
|
+
__publicField(_GroupModel, "schema", DATABASE_INFO.DATA_PERSISTENCE_SCHEMA);
|
|
105
|
+
var GroupModel = _GroupModel;
|
|
85
106
|
var poolClient;
|
|
86
107
|
function getPoolClient() {
|
|
87
|
-
if (!poolClient)
|
|
88
|
-
poolClient = getDbPool();
|
|
108
|
+
if (!poolClient) poolClient = getDbPool();
|
|
89
109
|
return poolClient;
|
|
90
110
|
}
|
|
111
|
+
__name(getPoolClient, "getPoolClient");
|
|
91
112
|
|
|
92
113
|
// src/common/persistence/base.ts
|
|
93
|
-
var
|
|
114
|
+
var _BaseRepository = class _BaseRepository extends CrudService {
|
|
94
115
|
constructor(schema) {
|
|
95
116
|
super(schema, getPoolClient());
|
|
96
117
|
}
|
|
@@ -98,27 +119,81 @@ var BaseRepository = class extends CrudService {
|
|
|
98
119
|
return buildFilter(attribute, value, operator);
|
|
99
120
|
}
|
|
100
121
|
};
|
|
122
|
+
__name(_BaseRepository, "BaseRepository");
|
|
123
|
+
var BaseRepository = _BaseRepository;
|
|
101
124
|
|
|
102
125
|
// src/quser/implementations/group.repository.ts
|
|
103
|
-
var
|
|
126
|
+
var _GroupRepository = class _GroupRepository extends BaseRepository {
|
|
104
127
|
constructor() {
|
|
105
128
|
super(GroupModel);
|
|
106
129
|
}
|
|
107
130
|
async getOne(identifier) {
|
|
108
131
|
const params = {
|
|
109
|
-
filters:
|
|
132
|
+
filters: {
|
|
133
|
+
OR: [
|
|
134
|
+
this.filter("groupid", identifier),
|
|
135
|
+
this.filter("name", identifier)
|
|
136
|
+
]
|
|
137
|
+
}
|
|
110
138
|
};
|
|
111
139
|
const response = await super.findItem(params);
|
|
112
140
|
return response;
|
|
113
141
|
}
|
|
142
|
+
async getByName(name) {
|
|
143
|
+
const params = {
|
|
144
|
+
filters: {
|
|
145
|
+
OR: [
|
|
146
|
+
this.filter("groupid", name),
|
|
147
|
+
this.filter("name", name)
|
|
148
|
+
]
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const response = await super.findItem(params);
|
|
152
|
+
if (!response) return null;
|
|
153
|
+
const data = {
|
|
154
|
+
groupid: response.groupid,
|
|
155
|
+
permissions: {
|
|
156
|
+
contentAdministration: response.permissions.some((p) => p.feature === "contentAdministration" && p.permission === "edit"),
|
|
157
|
+
assetSharing: response.permissions.some((p) => p.feature === "assetSharing" && p.permission === "edit")
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
return data;
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
__name(_GroupRepository, "GroupRepository");
|
|
164
|
+
var GroupRepository = _GroupRepository;
|
|
165
|
+
|
|
166
|
+
// src/quser/implementations/permission.repository.ts
|
|
167
|
+
var _PermissionRepository = class _PermissionRepository {
|
|
168
|
+
async getPermission(userIdentifier) {
|
|
169
|
+
var _a, _b, _c, _d;
|
|
170
|
+
const url = `${ENVIRONMENT.DOMAIN}/api/admin/v5/user/${userIdentifier}/permissions`;
|
|
171
|
+
const headers = {
|
|
172
|
+
"x-api-key": ENVIRONMENT.API_KEY
|
|
173
|
+
};
|
|
174
|
+
const requestOptions = {
|
|
175
|
+
method: "GET",
|
|
176
|
+
headers
|
|
177
|
+
};
|
|
178
|
+
const response = await fetch(url, requestOptions);
|
|
179
|
+
if (!response.ok) return null;
|
|
180
|
+
const data = await response.json();
|
|
181
|
+
return {
|
|
182
|
+
contentAdministration: (_b = (_a = data == null ? void 0 : data.settings) == null ? void 0 : _a.contentAdministration) != null ? _b : false,
|
|
183
|
+
assetSharing: (_d = (_c = data == null ? void 0 : data.settings) == null ? void 0 : _c.assetSharing) != null ? _d : false
|
|
184
|
+
};
|
|
185
|
+
}
|
|
114
186
|
};
|
|
115
|
-
|
|
187
|
+
__name(_PermissionRepository, "PermissionRepository");
|
|
188
|
+
var PermissionRepository = _PermissionRepository;
|
|
189
|
+
var _UserModel = class _UserModel extends CrudSchema {
|
|
116
190
|
};
|
|
117
|
-
UserModel
|
|
191
|
+
__name(_UserModel, "UserModel");
|
|
192
|
+
__publicField(_UserModel, "table", {
|
|
118
193
|
name: `${DATABASE_INFO.SERVER_PREFIX}Users`,
|
|
119
194
|
alias: "qv_users"
|
|
120
|
-
};
|
|
121
|
-
|
|
195
|
+
});
|
|
196
|
+
__publicField(_UserModel, "columns", {
|
|
122
197
|
userid: {
|
|
123
198
|
type: "string",
|
|
124
199
|
primary: true,
|
|
@@ -127,17 +202,20 @@ UserModel.columns = {
|
|
|
127
202
|
groups: {
|
|
128
203
|
type: "array"
|
|
129
204
|
}
|
|
130
|
-
};
|
|
131
|
-
|
|
205
|
+
});
|
|
206
|
+
__publicField(_UserModel, "schema", DATABASE_INFO.DATA_PERSISTENCE_SCHEMA);
|
|
207
|
+
var UserModel = _UserModel;
|
|
132
208
|
|
|
133
209
|
// src/quser/implementations/user.repository.ts
|
|
134
|
-
var
|
|
210
|
+
var _UserRepository = class _UserRepository extends BaseRepository {
|
|
135
211
|
constructor() {
|
|
136
212
|
super(UserModel);
|
|
137
213
|
}
|
|
138
214
|
async getOne(identifier) {
|
|
139
215
|
const params = {
|
|
140
|
-
filters: [
|
|
216
|
+
filters: [
|
|
217
|
+
this.filter("userid", identifier)
|
|
218
|
+
]
|
|
141
219
|
};
|
|
142
220
|
const response = await super.findItem(params);
|
|
143
221
|
return response;
|
|
@@ -153,26 +231,77 @@ var UserRepository = class extends BaseRepository {
|
|
|
153
231
|
return response;
|
|
154
232
|
}
|
|
155
233
|
};
|
|
156
|
-
|
|
234
|
+
__name(_UserRepository, "UserRepository");
|
|
235
|
+
var UserRepository = _UserRepository;
|
|
236
|
+
var _AdminRepository = class _AdminRepository {
|
|
237
|
+
async getApplicationInfo(body) {
|
|
238
|
+
var _a;
|
|
239
|
+
const url = `${ENVIRONMENT.DOMAIN}/devapi/v4/user/${body.userId}/app/${body.appId}`;
|
|
240
|
+
const headers = {
|
|
241
|
+
"x-api-key": ENVIRONMENT.API_KEY
|
|
242
|
+
};
|
|
243
|
+
const requestOptions = {
|
|
244
|
+
method: "GET",
|
|
245
|
+
headers
|
|
246
|
+
};
|
|
247
|
+
const response = await fetch(url, requestOptions);
|
|
248
|
+
const data = await response.json();
|
|
249
|
+
return {
|
|
250
|
+
status: response.status,
|
|
251
|
+
data: {
|
|
252
|
+
userId: (_a = data == null ? void 0 : data.userid) != null ? _a : body.userId,
|
|
253
|
+
appId: getAttribute(data, "appId"),
|
|
254
|
+
userEmail: getAttribute(data, "userEmail")
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
}
|
|
157
258
|
};
|
|
158
|
-
|
|
259
|
+
__name(_AdminRepository, "AdminRepository");
|
|
260
|
+
var AdminRepository = _AdminRepository;
|
|
261
|
+
var _SharingDetailsModel = class _SharingDetailsModel extends CrudSchema {
|
|
262
|
+
};
|
|
263
|
+
__name(_SharingDetailsModel, "SharingDetailsModel");
|
|
264
|
+
__publicField(_SharingDetailsModel, "table", {
|
|
159
265
|
name: `${DATABASE_INFO.SERVER_PREFIX}_sharing_details`,
|
|
160
266
|
alias: `${DATABASE_INFO.TABLE_PREFIX}_sharing_details`
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
sharing_details_id: {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
267
|
+
});
|
|
268
|
+
__publicField(_SharingDetailsModel, "columns", {
|
|
269
|
+
sharing_details_id: {
|
|
270
|
+
type: "string",
|
|
271
|
+
primary: true
|
|
272
|
+
},
|
|
273
|
+
asset_id: {
|
|
274
|
+
type: "string"
|
|
275
|
+
},
|
|
276
|
+
access_level: {
|
|
277
|
+
type: "numeric"
|
|
278
|
+
},
|
|
279
|
+
org_id: {
|
|
280
|
+
type: "string"
|
|
281
|
+
},
|
|
282
|
+
shared_with: {
|
|
283
|
+
type: "string"
|
|
284
|
+
},
|
|
285
|
+
shared_type: {
|
|
286
|
+
type: "string"
|
|
287
|
+
},
|
|
288
|
+
shared_email: {
|
|
289
|
+
type: "string"
|
|
290
|
+
},
|
|
291
|
+
share_origin: {
|
|
292
|
+
type: "string"
|
|
293
|
+
},
|
|
294
|
+
created_at: {
|
|
295
|
+
type: "date"
|
|
296
|
+
},
|
|
297
|
+
updated_at: {
|
|
298
|
+
type: "date"
|
|
299
|
+
},
|
|
300
|
+
deleted_at: {
|
|
301
|
+
type: "date"
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
__publicField(_SharingDetailsModel, "indexes", {
|
|
176
305
|
sharingDetailsOrgId: {
|
|
177
306
|
name: "sharing_details_org_id_index",
|
|
178
307
|
columns: [
|
|
@@ -236,18 +365,21 @@ SharingDetailsModel.indexes = {
|
|
|
236
365
|
"share_origin"
|
|
237
366
|
]
|
|
238
367
|
}
|
|
239
|
-
};
|
|
240
|
-
|
|
241
|
-
|
|
368
|
+
});
|
|
369
|
+
__publicField(_SharingDetailsModel, "schema", DATABASE_INFO.DATA_PERSISTENCE_SCHEMA);
|
|
370
|
+
__publicField(_SharingDetailsModel, "usePool", true);
|
|
371
|
+
var SharingDetailsModel = _SharingDetailsModel;
|
|
242
372
|
|
|
243
373
|
// src/sharing/implementations/details.repository.ts
|
|
244
|
-
var
|
|
374
|
+
var _SharingDetailsRepository = class _SharingDetailsRepository extends BaseRepository {
|
|
245
375
|
constructor() {
|
|
246
376
|
super(SharingDetailsModel);
|
|
247
377
|
}
|
|
248
378
|
async getOne(sharingDetailId) {
|
|
249
379
|
const params = {
|
|
250
|
-
filters: [
|
|
380
|
+
filters: [
|
|
381
|
+
this.filter("sharing_details_id", sharingDetailId)
|
|
382
|
+
]
|
|
251
383
|
};
|
|
252
384
|
const response = await super.findItem(params);
|
|
253
385
|
return response;
|
|
@@ -264,6 +396,7 @@ var SharingDetailsRepository = class extends BaseRepository {
|
|
|
264
396
|
return response;
|
|
265
397
|
}
|
|
266
398
|
async getList(options) {
|
|
399
|
+
var _a;
|
|
267
400
|
const assetIndex = SharingDetailsModel.indexes.sharingDetailsAssetId;
|
|
268
401
|
const pagination = this.getPagination(options.pagination);
|
|
269
402
|
const params = {
|
|
@@ -273,7 +406,9 @@ var SharingDetailsRepository = class extends BaseRepository {
|
|
|
273
406
|
columns: assetIndex.columns
|
|
274
407
|
}
|
|
275
408
|
};
|
|
276
|
-
const filterList = [
|
|
409
|
+
const filterList = [
|
|
410
|
+
this.filter("asset_id", options.data.assetId)
|
|
411
|
+
];
|
|
277
412
|
if (options.filters) {
|
|
278
413
|
options.filters.forEach((filter) => {
|
|
279
414
|
filterList.push(this.filter(filter.column, filter.value));
|
|
@@ -281,14 +416,9 @@ var SharingDetailsRepository = class extends BaseRepository {
|
|
|
281
416
|
}
|
|
282
417
|
params.filters = filterList;
|
|
283
418
|
if (options.data.user) {
|
|
284
|
-
|
|
285
|
-
options.data.user,
|
|
286
|
-
filterList
|
|
287
|
-
);
|
|
288
|
-
params.filters = currentFilter;
|
|
419
|
+
params.filters = this.getUserFilter(options.data.user, (_a = options.data.parentOrgIds) != null ? _a : [], filterList);
|
|
289
420
|
}
|
|
290
|
-
if (options.sorting)
|
|
291
|
-
params.sorting = options.sorting;
|
|
421
|
+
if (options.sorting) params.sorting = options.sorting;
|
|
292
422
|
const response = await super.find(params);
|
|
293
423
|
return response;
|
|
294
424
|
}
|
|
@@ -297,10 +427,9 @@ var SharingDetailsRepository = class extends BaseRepository {
|
|
|
297
427
|
return response;
|
|
298
428
|
}
|
|
299
429
|
async patch(sharingDetailId, details) {
|
|
300
|
-
await super.update(
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
);
|
|
430
|
+
await super.update([
|
|
431
|
+
this.filter("sharing_details_id", sharingDetailId)
|
|
432
|
+
], details);
|
|
304
433
|
return true;
|
|
305
434
|
}
|
|
306
435
|
async delete(sharingDetailId) {
|
|
@@ -316,9 +445,12 @@ var SharingDetailsRepository = class extends BaseRepository {
|
|
|
316
445
|
from: (_b = options == null ? void 0 : options.from) != null ? _b : void 0
|
|
317
446
|
};
|
|
318
447
|
}
|
|
319
|
-
getUserFilter(user, currentFilters) {
|
|
448
|
+
getUserFilter(user, parentsOrgIds, currentFilters) {
|
|
320
449
|
const { userId, roles } = user;
|
|
321
450
|
const orgId = user.orgId === "" ? ORGANIZATION_QRVEY : user.orgId;
|
|
451
|
+
if (!parentsOrgIds.includes(ORGANIZATION_QRVEY)) {
|
|
452
|
+
parentsOrgIds.push(ORGANIZATION_QRVEY);
|
|
453
|
+
}
|
|
322
454
|
const sharing = {
|
|
323
455
|
OR: [
|
|
324
456
|
{
|
|
@@ -334,6 +466,12 @@ var SharingDetailsRepository = class extends BaseRepository {
|
|
|
334
466
|
this.buildFilter("shared_type", "ORGANIZATION"),
|
|
335
467
|
this.buildFilter("org_id", orgId)
|
|
336
468
|
]
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
AND: [
|
|
472
|
+
this.buildFilter("shared_type", "TENANT"),
|
|
473
|
+
this.buildFilter("org_id", parentsOrgIds, "IN")
|
|
474
|
+
]
|
|
337
475
|
}
|
|
338
476
|
]
|
|
339
477
|
};
|
|
@@ -347,35 +485,42 @@ var SharingDetailsRepository = class extends BaseRepository {
|
|
|
347
485
|
});
|
|
348
486
|
}
|
|
349
487
|
const filter = [];
|
|
350
|
-
if (currentFilters)
|
|
351
|
-
filter.push(...currentFilters);
|
|
488
|
+
if (currentFilters) filter.push(...currentFilters);
|
|
352
489
|
filter.push(sharing);
|
|
353
|
-
return {
|
|
490
|
+
return {
|
|
491
|
+
AND: filter
|
|
492
|
+
};
|
|
354
493
|
}
|
|
355
494
|
};
|
|
356
|
-
|
|
495
|
+
__name(_SharingDetailsRepository, "SharingDetailsRepository");
|
|
496
|
+
var SharingDetailsRepository = _SharingDetailsRepository;
|
|
497
|
+
var _DownloadManagerSchema = class _DownloadManagerSchema extends CrudSchema {
|
|
357
498
|
};
|
|
358
|
-
DownloadManagerSchema
|
|
499
|
+
__name(_DownloadManagerSchema, "DownloadManagerSchema");
|
|
500
|
+
__publicField(_DownloadManagerSchema, "table", {
|
|
359
501
|
name: `${DATABASE_INFO.SERVER_PREFIX}DownloadManager`,
|
|
360
502
|
alias: `${DATABASE_INFO.TABLE_PREFIX}_download_manager`
|
|
361
|
-
};
|
|
362
|
-
|
|
503
|
+
});
|
|
504
|
+
__publicField(_DownloadManagerSchema, "columns", {
|
|
363
505
|
downloadManagerId: {
|
|
364
506
|
primary: true,
|
|
365
507
|
type: "String",
|
|
366
508
|
columnId: true
|
|
367
509
|
}
|
|
368
|
-
};
|
|
369
|
-
|
|
370
|
-
|
|
510
|
+
});
|
|
511
|
+
__publicField(_DownloadManagerSchema, "schema", "exports");
|
|
512
|
+
__publicField(_DownloadManagerSchema, "usePool", true);
|
|
513
|
+
var DownloadManagerSchema = _DownloadManagerSchema;
|
|
371
514
|
|
|
372
515
|
// src/sharing/implementations/dm.repository.ts
|
|
373
|
-
var
|
|
516
|
+
var _DownloadManagerRepository = class _DownloadManagerRepository extends BaseRepository {
|
|
374
517
|
constructor() {
|
|
375
518
|
super(DownloadManagerSchema);
|
|
376
519
|
}
|
|
377
520
|
async get(identifier) {
|
|
378
|
-
const filterList = [
|
|
521
|
+
const filterList = [
|
|
522
|
+
this.filter("downloadManagerId", identifier)
|
|
523
|
+
];
|
|
379
524
|
const params = {
|
|
380
525
|
filters: filterList
|
|
381
526
|
};
|
|
@@ -383,38 +528,62 @@ var DownloadManagerRepository = class extends BaseRepository {
|
|
|
383
528
|
return response;
|
|
384
529
|
}
|
|
385
530
|
};
|
|
386
|
-
|
|
531
|
+
__name(_DownloadManagerRepository, "DownloadManagerRepository");
|
|
532
|
+
var DownloadManagerRepository = _DownloadManagerRepository;
|
|
533
|
+
var _DashboardSchema = class _DashboardSchema extends CrudSchema {
|
|
387
534
|
};
|
|
388
|
-
DashboardSchema
|
|
535
|
+
__name(_DashboardSchema, "DashboardSchema");
|
|
536
|
+
__publicField(_DashboardSchema, "table", {
|
|
389
537
|
name: `${DATABASE_INFO.SERVER_PREFIX}_dx_dashboard`,
|
|
390
538
|
alias: `${DATABASE_INFO.TABLE_PREFIX}_dashboard`
|
|
391
|
-
};
|
|
392
|
-
|
|
393
|
-
ResourceUID: {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
539
|
+
});
|
|
540
|
+
__publicField(_DashboardSchema, "columns", {
|
|
541
|
+
ResourceUID: {
|
|
542
|
+
type: "string",
|
|
543
|
+
primary: true
|
|
544
|
+
},
|
|
545
|
+
dashboardId: {
|
|
546
|
+
type: "string"
|
|
547
|
+
},
|
|
548
|
+
contentId: {
|
|
549
|
+
type: "string"
|
|
550
|
+
},
|
|
551
|
+
userId: {
|
|
552
|
+
type: "string"
|
|
553
|
+
},
|
|
554
|
+
ownerId: {
|
|
555
|
+
type: "string"
|
|
556
|
+
},
|
|
557
|
+
appId: {
|
|
558
|
+
type: "string"
|
|
559
|
+
},
|
|
560
|
+
qvAttributes: {
|
|
561
|
+
type: "object"
|
|
562
|
+
}
|
|
563
|
+
});
|
|
564
|
+
__publicField(_DashboardSchema, "indexes", {
|
|
402
565
|
ResourceUID: {
|
|
403
566
|
name: "MetadataByResource",
|
|
404
|
-
columns: [
|
|
567
|
+
columns: [
|
|
568
|
+
"Metadata",
|
|
569
|
+
"ResourceUID"
|
|
570
|
+
]
|
|
405
571
|
}
|
|
406
|
-
};
|
|
407
|
-
|
|
408
|
-
|
|
572
|
+
});
|
|
573
|
+
__publicField(_DashboardSchema, "schema", "dashboard_x");
|
|
574
|
+
__publicField(_DashboardSchema, "usePool", true);
|
|
575
|
+
var DashboardSchema = _DashboardSchema;
|
|
409
576
|
|
|
410
577
|
// src/sharing/implementations/dx.repository.ts
|
|
411
|
-
var
|
|
578
|
+
var _DashboardRepository = class _DashboardRepository extends BaseRepository {
|
|
412
579
|
constructor() {
|
|
413
580
|
super(DashboardSchema);
|
|
414
581
|
}
|
|
415
582
|
async get(identifier) {
|
|
416
583
|
const uid = `DASHBOARD=${identifier}&BRANCH=MAIN`;
|
|
417
|
-
const filterList = [
|
|
584
|
+
const filterList = [
|
|
585
|
+
this.filter("ResourceUID", uid)
|
|
586
|
+
];
|
|
418
587
|
const params = {
|
|
419
588
|
filters: filterList
|
|
420
589
|
};
|
|
@@ -422,41 +591,196 @@ var DashboardRepository = class extends BaseRepository {
|
|
|
422
591
|
return response;
|
|
423
592
|
}
|
|
424
593
|
};
|
|
425
|
-
|
|
594
|
+
__name(_DashboardRepository, "DashboardRepository");
|
|
595
|
+
var DashboardRepository = _DashboardRepository;
|
|
596
|
+
var _OrganizationModel = class _OrganizationModel extends CrudSchema {
|
|
426
597
|
};
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
598
|
+
__name(_OrganizationModel, "OrganizationModel");
|
|
599
|
+
__publicField(_OrganizationModel, "table", {
|
|
600
|
+
name: "qv_organizations",
|
|
601
|
+
alias: `${DATABASE_INFO.TABLE_PREFIX}_organizations`
|
|
602
|
+
});
|
|
603
|
+
__publicField(_OrganizationModel, "columns", {
|
|
604
|
+
orgId: {
|
|
605
|
+
type: "string",
|
|
606
|
+
primary: true
|
|
607
|
+
},
|
|
608
|
+
name: {
|
|
609
|
+
type: "string"
|
|
610
|
+
},
|
|
611
|
+
parent_org_id: {
|
|
612
|
+
type: "string"
|
|
613
|
+
},
|
|
614
|
+
org_path: {
|
|
615
|
+
type: "string"
|
|
616
|
+
},
|
|
617
|
+
asset_sharing: {
|
|
618
|
+
type: "boolean"
|
|
619
|
+
},
|
|
620
|
+
effective_asset_sharing: {
|
|
621
|
+
type: "boolean"
|
|
622
|
+
},
|
|
623
|
+
created_at: {
|
|
624
|
+
type: "string"
|
|
625
|
+
},
|
|
626
|
+
updated_at: {
|
|
627
|
+
type: "string"
|
|
628
|
+
}
|
|
629
|
+
});
|
|
630
|
+
__publicField(_OrganizationModel, "indexes", {
|
|
631
|
+
org_path: {
|
|
632
|
+
name: "idx_qv_orgs_org_path_gist",
|
|
633
|
+
columns: [
|
|
634
|
+
"org_path"
|
|
635
|
+
]
|
|
636
|
+
},
|
|
637
|
+
parent_org_id: {
|
|
638
|
+
name: "idx_qv_orgs_parent",
|
|
639
|
+
columns: [
|
|
640
|
+
"parent_org_id"
|
|
641
|
+
]
|
|
642
|
+
}
|
|
643
|
+
});
|
|
644
|
+
__publicField(_OrganizationModel, "schema", DATABASE_INFO.DATA_PERSISTENCE_SCHEMA);
|
|
645
|
+
__publicField(_OrganizationModel, "usePool", true);
|
|
646
|
+
var OrganizationModel = _OrganizationModel;
|
|
647
|
+
|
|
648
|
+
// src/sharing/entities/types/orgTreeResult.ts
|
|
649
|
+
var HIERARCHY_SCOPE = /* @__PURE__ */ (function(HIERARCHY_SCOPE2) {
|
|
650
|
+
HIERARCHY_SCOPE2["CHILDREN"] = "children";
|
|
651
|
+
HIERARCHY_SCOPE2["PARENTS"] = "parents";
|
|
652
|
+
HIERARCHY_SCOPE2["BOTH"] = "both";
|
|
653
|
+
return HIERARCHY_SCOPE2;
|
|
654
|
+
})({});
|
|
655
|
+
|
|
656
|
+
// src/sharing/implementations/organization.repository.ts
|
|
657
|
+
var _OrganizationRepository = class _OrganizationRepository extends BaseRepository {
|
|
658
|
+
constructor() {
|
|
659
|
+
super(OrganizationModel);
|
|
660
|
+
}
|
|
661
|
+
async getOne(orgId) {
|
|
662
|
+
const params = {
|
|
663
|
+
filters: [
|
|
664
|
+
this.filter('"orgId"', orgId)
|
|
665
|
+
]
|
|
666
|
+
};
|
|
667
|
+
const response = await super.findItem(params);
|
|
668
|
+
return response;
|
|
669
|
+
}
|
|
670
|
+
async getOrgTree(orgId, scope = HIERARCHY_SCOPE.BOTH) {
|
|
671
|
+
const cte = `WITH target AS (SELECT org_path FROM admin.qv_organizations WHERE "orgId" = '${orgId}')`;
|
|
672
|
+
let condition = "";
|
|
673
|
+
if (scope === HIERARCHY_SCOPE.CHILDREN) {
|
|
674
|
+
condition = `admin.qv_organizations.org_path <@ target.org_path`;
|
|
675
|
+
} else if (scope === HIERARCHY_SCOPE.PARENTS) {
|
|
676
|
+
condition = `admin.qv_organizations.org_path @> target.org_path`;
|
|
677
|
+
} else {
|
|
678
|
+
condition = `(
|
|
679
|
+
admin.qv_organizations.org_path <@ target.org_path
|
|
680
|
+
OR
|
|
681
|
+
admin.qv_organizations.org_path @> target.org_path
|
|
682
|
+
)`;
|
|
683
|
+
}
|
|
684
|
+
const selectClause = `
|
|
685
|
+
SELECT
|
|
686
|
+
COALESCE(
|
|
687
|
+
ARRAY_AGG("orgId") FILTER (
|
|
688
|
+
WHERE admin.qv_organizations.org_path <@ target.org_path AND "orgId" != '${orgId}'
|
|
689
|
+
),
|
|
690
|
+
'{}'
|
|
691
|
+
) as db_children,
|
|
692
|
+
COALESCE(
|
|
693
|
+
ARRAY_AGG("orgId") FILTER (
|
|
694
|
+
WHERE admin.qv_organizations.org_path @> target.org_path AND "orgId" != '${orgId}'
|
|
695
|
+
),
|
|
696
|
+
'{}'
|
|
697
|
+
) as db_parents
|
|
698
|
+
`;
|
|
699
|
+
const fromWhereClause = `
|
|
700
|
+
FROM admin.qv_organizations, target
|
|
701
|
+
WHERE ${condition}
|
|
702
|
+
AND "orgId" != '${orgId}'
|
|
703
|
+
`;
|
|
704
|
+
const fullSql = `${cte} ${selectClause} ${fromWhereClause};`;
|
|
705
|
+
const result = await super.runRawQuery(fullSql, []);
|
|
706
|
+
const row = result == null ? void 0 : result.rows[0];
|
|
707
|
+
if (!row) {
|
|
708
|
+
return {
|
|
709
|
+
childrenIds: [],
|
|
710
|
+
parentIds: []
|
|
711
|
+
};
|
|
712
|
+
}
|
|
713
|
+
return {
|
|
714
|
+
childrenIds: row.db_children,
|
|
715
|
+
parentIds: row.db_parents
|
|
716
|
+
};
|
|
717
|
+
}
|
|
430
718
|
};
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
created_at: { type: "date" },
|
|
435
|
-
updated_at: { type: "date" },
|
|
436
|
-
deleted_at: { type: "date" },
|
|
437
|
-
qvAttributes: { type: "object" }
|
|
719
|
+
__name(_OrganizationRepository, "OrganizationRepository");
|
|
720
|
+
var OrganizationRepository = _OrganizationRepository;
|
|
721
|
+
var _SharingModel = class _SharingModel extends CrudSchema {
|
|
438
722
|
};
|
|
439
|
-
SharingModel
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
723
|
+
__name(_SharingModel, "SharingModel");
|
|
724
|
+
__publicField(_SharingModel, "table", {
|
|
725
|
+
name: `${DATABASE_INFO.SERVER_PREFIX}_sharing`,
|
|
726
|
+
alias: `${DATABASE_INFO.TABLE_PREFIX}_sharing`
|
|
727
|
+
});
|
|
728
|
+
__publicField(_SharingModel, "columns", {
|
|
729
|
+
asset_id: {
|
|
730
|
+
type: "string",
|
|
731
|
+
primary: true
|
|
732
|
+
},
|
|
733
|
+
asset_type: {
|
|
734
|
+
type: "string"
|
|
735
|
+
},
|
|
736
|
+
sharing_mode_status: {
|
|
737
|
+
type: "boolean"
|
|
738
|
+
},
|
|
739
|
+
sharing_mode: {
|
|
740
|
+
type: "number"
|
|
741
|
+
},
|
|
742
|
+
created_at: {
|
|
743
|
+
type: "date"
|
|
744
|
+
},
|
|
745
|
+
updated_at: {
|
|
746
|
+
type: "date"
|
|
747
|
+
},
|
|
748
|
+
deleted_at: {
|
|
749
|
+
type: "date"
|
|
750
|
+
},
|
|
751
|
+
qvAttributes: {
|
|
752
|
+
type: "object"
|
|
753
|
+
}
|
|
754
|
+
});
|
|
755
|
+
__publicField(_SharingModel, "indexes", {
|
|
756
|
+
sharingConfigLookup: {
|
|
757
|
+
name: "sharing_config_lookup_idx",
|
|
758
|
+
columns: [
|
|
759
|
+
"asset_id",
|
|
760
|
+
"asset_type"
|
|
761
|
+
]
|
|
443
762
|
},
|
|
444
763
|
sharingAssetType: {
|
|
445
764
|
name: "sharing_asset_type_index",
|
|
446
|
-
columns: [
|
|
765
|
+
columns: [
|
|
766
|
+
"asset_type"
|
|
767
|
+
]
|
|
447
768
|
}
|
|
448
|
-
};
|
|
449
|
-
|
|
450
|
-
|
|
769
|
+
});
|
|
770
|
+
__publicField(_SharingModel, "schema", DATABASE_INFO.DATA_PERSISTENCE_SCHEMA);
|
|
771
|
+
__publicField(_SharingModel, "usePool", true);
|
|
772
|
+
var SharingModel = _SharingModel;
|
|
451
773
|
|
|
452
774
|
// src/sharing/implementations/sharing.repository.ts
|
|
453
|
-
var
|
|
775
|
+
var _SharingRepository = class _SharingRepository extends BaseRepository {
|
|
454
776
|
constructor() {
|
|
455
777
|
super(SharingModel);
|
|
456
778
|
}
|
|
457
779
|
async getOne(assetId) {
|
|
458
780
|
const params = {
|
|
459
|
-
filters: [
|
|
781
|
+
filters: [
|
|
782
|
+
this.filter("asset_id", assetId)
|
|
783
|
+
]
|
|
460
784
|
};
|
|
461
785
|
const response = await super.findItem(params);
|
|
462
786
|
return response;
|
|
@@ -466,44 +790,50 @@ var SharingRepository = class extends BaseRepository {
|
|
|
466
790
|
return response;
|
|
467
791
|
}
|
|
468
792
|
async patch(assetId, sharing) {
|
|
469
|
-
await super.update([
|
|
793
|
+
await super.update([
|
|
794
|
+
this.filter("asset_id", assetId)
|
|
795
|
+
], sharing);
|
|
470
796
|
return true;
|
|
471
797
|
}
|
|
472
798
|
async delete(assetId) {
|
|
473
|
-
await super.remove([
|
|
799
|
+
await super.remove([
|
|
800
|
+
this.filter("asset_id", assetId)
|
|
801
|
+
]);
|
|
474
802
|
return true;
|
|
475
803
|
}
|
|
476
804
|
};
|
|
805
|
+
__name(_SharingRepository, "SharingRepository");
|
|
806
|
+
var SharingRepository = _SharingRepository;
|
|
477
807
|
|
|
478
808
|
// src/context.ts
|
|
479
|
-
container.register(
|
|
480
|
-
|
|
481
|
-
SharingRepository
|
|
482
|
-
);
|
|
483
|
-
container.register(
|
|
484
|
-
"SharingDetailsRepository",
|
|
485
|
-
SharingDetailsRepository
|
|
486
|
-
);
|
|
809
|
+
container.register("SharingRepository", SharingRepository);
|
|
810
|
+
container.register("SharingDetailsRepository", SharingDetailsRepository);
|
|
487
811
|
container.register("UserRepository", UserRepository);
|
|
488
812
|
container.register("RoleRepository", GroupRepository);
|
|
489
|
-
container.register(
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
);
|
|
493
|
-
container.register(
|
|
494
|
-
"dmRepository",
|
|
495
|
-
DownloadManagerRepository
|
|
496
|
-
);
|
|
813
|
+
container.register("dxRepository", DashboardRepository);
|
|
814
|
+
container.register("dmRepository", DownloadManagerRepository);
|
|
815
|
+
container.register("OrganizationRepository", OrganizationRepository);
|
|
816
|
+
container.register("AdminRepository", AdminRepository);
|
|
817
|
+
container.register("PermissionRepository", PermissionRepository);
|
|
497
818
|
var Context = container;
|
|
498
819
|
|
|
499
820
|
// src/common/util.ts
|
|
500
821
|
function isComposer(type) {
|
|
501
|
-
return type === "qrveyLogin"
|
|
822
|
+
return type === "qrveyLogin" || type === "OPENID_CREATORS";
|
|
502
823
|
}
|
|
824
|
+
__name(isComposer, "isComposer");
|
|
825
|
+
function isAnonymousUser(value) {
|
|
826
|
+
return (value == null ? void 0 : value.toLowerCase()) === USER_ANONYMOUS;
|
|
827
|
+
}
|
|
828
|
+
__name(isAnonymousUser, "isAnonymousUser");
|
|
503
829
|
|
|
504
830
|
// src/quser/entities/user.ts
|
|
505
|
-
var
|
|
831
|
+
var _User = class _User {
|
|
506
832
|
constructor(params) {
|
|
833
|
+
__publicField(this, "userId");
|
|
834
|
+
__publicField(this, "email");
|
|
835
|
+
__publicField(this, "groups");
|
|
836
|
+
__publicField(this, "organization");
|
|
507
837
|
this.userId = params.userid;
|
|
508
838
|
this.email = params.email;
|
|
509
839
|
this.groups = params.groups;
|
|
@@ -522,19 +852,35 @@ var User = class {
|
|
|
522
852
|
return this.organization;
|
|
523
853
|
}
|
|
524
854
|
};
|
|
855
|
+
__name(_User, "User");
|
|
856
|
+
var User = _User;
|
|
525
857
|
|
|
526
858
|
// src/quser/services/fromTokenToUser.ts
|
|
527
|
-
|
|
859
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
860
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
861
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
862
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
863
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
864
|
+
}
|
|
865
|
+
__name(_ts_decorate, "_ts_decorate");
|
|
866
|
+
function _ts_metadata(k, v) {
|
|
867
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
868
|
+
}
|
|
869
|
+
__name(_ts_metadata, "_ts_metadata");
|
|
870
|
+
function _ts_param(paramIndex, decorator) {
|
|
871
|
+
return function(target, key) {
|
|
872
|
+
decorator(target, key, paramIndex);
|
|
873
|
+
};
|
|
874
|
+
}
|
|
875
|
+
__name(_ts_param, "_ts_param");
|
|
876
|
+
var _FromTokenToUser = class _FromTokenToUser {
|
|
528
877
|
constructor(userRepository) {
|
|
878
|
+
__publicField(this, "userRepository");
|
|
529
879
|
this.userRepository = userRepository;
|
|
530
880
|
}
|
|
531
|
-
async execute({
|
|
532
|
-
body
|
|
533
|
-
}) {
|
|
881
|
+
async execute({ body }) {
|
|
534
882
|
var _a;
|
|
535
|
-
const current = await this.userRepository.getOne(
|
|
536
|
-
body.clientId || body.userId
|
|
537
|
-
);
|
|
883
|
+
const current = await this.userRepository.getOne(body.clientId || body.userId);
|
|
538
884
|
if (current) {
|
|
539
885
|
const user = new User(current);
|
|
540
886
|
return {
|
|
@@ -558,54 +904,246 @@ var FromTokenToUser = class {
|
|
|
558
904
|
};
|
|
559
905
|
}
|
|
560
906
|
};
|
|
561
|
-
FromTokenToUser
|
|
907
|
+
__name(_FromTokenToUser, "FromTokenToUser");
|
|
908
|
+
var FromTokenToUser = _FromTokenToUser;
|
|
909
|
+
FromTokenToUser = _ts_decorate([
|
|
562
910
|
injectable(),
|
|
563
|
-
|
|
911
|
+
_ts_param(0, inject("UserRepository")),
|
|
912
|
+
_ts_metadata("design:type", Function),
|
|
913
|
+
_ts_metadata("design:paramtypes", [
|
|
914
|
+
typeof UserRepositoryInterface === "undefined" ? Object : UserRepositoryInterface
|
|
915
|
+
])
|
|
564
916
|
], FromTokenToUser);
|
|
565
|
-
|
|
566
|
-
|
|
917
|
+
function _ts_decorate2(decorators, target, key, desc) {
|
|
918
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
919
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
920
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
921
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
922
|
+
}
|
|
923
|
+
__name(_ts_decorate2, "_ts_decorate");
|
|
924
|
+
function _ts_metadata2(k, v) {
|
|
925
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
926
|
+
}
|
|
927
|
+
__name(_ts_metadata2, "_ts_metadata");
|
|
928
|
+
function _ts_param2(paramIndex, decorator) {
|
|
929
|
+
return function(target, key) {
|
|
930
|
+
decorator(target, key, paramIndex);
|
|
931
|
+
};
|
|
932
|
+
}
|
|
933
|
+
__name(_ts_param2, "_ts_param");
|
|
934
|
+
var _HasAdminRole = class _HasAdminRole {
|
|
935
|
+
constructor(userRepository, permissionRepository, roleRepository) {
|
|
936
|
+
__publicField(this, "userRepository");
|
|
937
|
+
__publicField(this, "permissionRepository");
|
|
938
|
+
__publicField(this, "roleRepository");
|
|
567
939
|
this.userRepository = userRepository;
|
|
940
|
+
this.permissionRepository = permissionRepository;
|
|
941
|
+
this.roleRepository = roleRepository;
|
|
568
942
|
}
|
|
569
|
-
async execute({
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
userId,
|
|
574
|
-
loginType
|
|
575
|
-
} = {}) {
|
|
576
|
-
if (!userId)
|
|
577
|
-
return false;
|
|
943
|
+
async execute({ apiKey, clientId, orgId, userId, loginType, roles } = {}) {
|
|
944
|
+
var _a;
|
|
945
|
+
if (!userId) return false;
|
|
946
|
+
if (isAnonymousUser(clientId)) return false;
|
|
578
947
|
const existingUser = await this.userRepository.getOne(userId);
|
|
579
|
-
const isMasterKey = apiKey && (orgId
|
|
580
|
-
if (isMasterKey && existingUser && (!clientId || clientId === userId))
|
|
581
|
-
return true;
|
|
582
|
-
const user = await this.userRepository.getList({
|
|
583
|
-
data: { identifier: clientId != null ? clientId : userId, role: "administrator" }
|
|
584
|
-
});
|
|
585
|
-
const isAdmin = user.items.length > 0;
|
|
586
|
-
if (isMasterKey && isAdmin)
|
|
948
|
+
const isMasterKey = apiKey && (!orgId || orgId === ORGANIZATION_QRVEY);
|
|
949
|
+
if (isMasterKey && existingUser && (!clientId || clientId === userId)) {
|
|
587
950
|
return true;
|
|
951
|
+
}
|
|
952
|
+
if (roles == null ? void 0 : roles.length) {
|
|
953
|
+
const rolePermissions = await Promise.all(roles.map((role) => this.roleRepository.getByName(role)));
|
|
954
|
+
const foundRoles = rolePermissions.filter((role) => role != null);
|
|
955
|
+
if (foundRoles.length > 0) {
|
|
956
|
+
return foundRoles.some((role) => {
|
|
957
|
+
var _a2;
|
|
958
|
+
return (_a2 = role == null ? void 0 : role.permissions) == null ? void 0 : _a2.contentAdministration;
|
|
959
|
+
});
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
const user = await this.permissionRepository.getPermission(clientId != null ? clientId : userId);
|
|
963
|
+
const isAdmin = (_a = user == null ? void 0 : user.contentAdministration) != null ? _a : false;
|
|
964
|
+
if (isMasterKey && isAdmin) return true;
|
|
588
965
|
const inComposer = isComposer(loginType || "");
|
|
589
966
|
const isExternal = !clientId && !inComposer || orgId && orgId !== ORGANIZATION_QRVEY;
|
|
590
|
-
if (isExternal)
|
|
591
|
-
|
|
592
|
-
if (isAdmin)
|
|
593
|
-
return true;
|
|
594
|
-
return false;
|
|
967
|
+
if (isExternal) return false;
|
|
968
|
+
return isAdmin;
|
|
595
969
|
}
|
|
596
970
|
};
|
|
597
|
-
HasAdminRole
|
|
971
|
+
__name(_HasAdminRole, "HasAdminRole");
|
|
972
|
+
var HasAdminRole = _HasAdminRole;
|
|
973
|
+
HasAdminRole = _ts_decorate2([
|
|
598
974
|
injectable(),
|
|
599
|
-
|
|
975
|
+
_ts_param2(0, inject("UserRepository")),
|
|
976
|
+
_ts_param2(1, inject("PermissionRepository")),
|
|
977
|
+
_ts_param2(2, inject("RoleRepository")),
|
|
978
|
+
_ts_metadata2("design:type", Function),
|
|
979
|
+
_ts_metadata2("design:paramtypes", [
|
|
980
|
+
typeof UserRepositoryInterface === "undefined" ? Object : UserRepositoryInterface,
|
|
981
|
+
typeof PermissionRepositoryInterface === "undefined" ? Object : PermissionRepositoryInterface,
|
|
982
|
+
typeof RoleRepositoryInterface === "undefined" ? Object : RoleRepositoryInterface
|
|
983
|
+
])
|
|
600
984
|
], HasAdminRole);
|
|
601
|
-
|
|
985
|
+
function _ts_decorate3(decorators, target, key, desc) {
|
|
986
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
987
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
988
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
989
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
990
|
+
}
|
|
991
|
+
__name(_ts_decorate3, "_ts_decorate");
|
|
992
|
+
function _ts_metadata3(k, v) {
|
|
993
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
994
|
+
}
|
|
995
|
+
__name(_ts_metadata3, "_ts_metadata");
|
|
996
|
+
function _ts_param3(paramIndex, decorator) {
|
|
997
|
+
return function(target, key) {
|
|
998
|
+
decorator(target, key, paramIndex);
|
|
999
|
+
};
|
|
1000
|
+
}
|
|
1001
|
+
__name(_ts_param3, "_ts_param");
|
|
1002
|
+
var _HasSharingPermission = class _HasSharingPermission {
|
|
1003
|
+
constructor(permissionRepository, roleRepository) {
|
|
1004
|
+
__publicField(this, "permissionRepository");
|
|
1005
|
+
__publicField(this, "roleRepository");
|
|
1006
|
+
this.permissionRepository = permissionRepository;
|
|
1007
|
+
this.roleRepository = roleRepository;
|
|
1008
|
+
}
|
|
1009
|
+
async execute({ clientId, userId, roles } = {}) {
|
|
1010
|
+
var _a;
|
|
1011
|
+
if (!userId) return false;
|
|
1012
|
+
if (isAnonymousUser(clientId)) return false;
|
|
1013
|
+
if (roles == null ? void 0 : roles.length) {
|
|
1014
|
+
const rolePermissions = await Promise.all(roles.map((role) => this.roleRepository.getByName(role)));
|
|
1015
|
+
const foundRoles = rolePermissions.filter((role) => role != null);
|
|
1016
|
+
if (foundRoles.length > 0) {
|
|
1017
|
+
return foundRoles.some((role) => {
|
|
1018
|
+
var _a2;
|
|
1019
|
+
return (_a2 = role == null ? void 0 : role.permissions) == null ? void 0 : _a2.assetSharing;
|
|
1020
|
+
});
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
const permission = await this.permissionRepository.getPermission(clientId != null ? clientId : userId);
|
|
1024
|
+
return (_a = permission == null ? void 0 : permission.assetSharing) != null ? _a : false;
|
|
1025
|
+
}
|
|
1026
|
+
};
|
|
1027
|
+
__name(_HasSharingPermission, "HasSharingPermission");
|
|
1028
|
+
var HasSharingPermission = _HasSharingPermission;
|
|
1029
|
+
HasSharingPermission = _ts_decorate3([
|
|
1030
|
+
injectable(),
|
|
1031
|
+
_ts_param3(0, inject("PermissionRepository")),
|
|
1032
|
+
_ts_param3(1, inject("RoleRepository")),
|
|
1033
|
+
_ts_metadata3("design:type", Function),
|
|
1034
|
+
_ts_metadata3("design:paramtypes", [
|
|
1035
|
+
typeof PermissionRepositoryInterface === "undefined" ? Object : PermissionRepositoryInterface,
|
|
1036
|
+
typeof RoleRepositoryInterface === "undefined" ? Object : RoleRepositoryInterface
|
|
1037
|
+
])
|
|
1038
|
+
], HasSharingPermission);
|
|
1039
|
+
function _ts_decorate4(decorators, target, key, desc) {
|
|
1040
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1041
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1042
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1043
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1044
|
+
}
|
|
1045
|
+
__name(_ts_decorate4, "_ts_decorate");
|
|
1046
|
+
function _ts_metadata4(k, v) {
|
|
1047
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
1048
|
+
}
|
|
1049
|
+
__name(_ts_metadata4, "_ts_metadata");
|
|
1050
|
+
function _ts_param4(paramIndex, decorator) {
|
|
1051
|
+
return function(target, key) {
|
|
1052
|
+
decorator(target, key, paramIndex);
|
|
1053
|
+
};
|
|
1054
|
+
}
|
|
1055
|
+
__name(_ts_param4, "_ts_param");
|
|
1056
|
+
var _CheckAppAccess = class _CheckAppAccess {
|
|
1057
|
+
constructor(adminRepository) {
|
|
1058
|
+
__publicField(this, "adminRepository");
|
|
1059
|
+
this.adminRepository = adminRepository;
|
|
1060
|
+
}
|
|
1061
|
+
//TODO Need Test
|
|
1062
|
+
async execute({ appId, userId }) {
|
|
1063
|
+
if (!userId) return {
|
|
1064
|
+
hasAccess: false
|
|
1065
|
+
};
|
|
1066
|
+
const appInfo = await this.adminRepository.getApplicationInfo({
|
|
1067
|
+
appId,
|
|
1068
|
+
userId
|
|
1069
|
+
});
|
|
1070
|
+
if (appInfo.status !== 200) return {
|
|
1071
|
+
hasAccess: false
|
|
1072
|
+
};
|
|
1073
|
+
return {
|
|
1074
|
+
hasAccess: true
|
|
1075
|
+
};
|
|
1076
|
+
}
|
|
1077
|
+
};
|
|
1078
|
+
__name(_CheckAppAccess, "CheckAppAccess");
|
|
1079
|
+
var CheckAppAccess = _CheckAppAccess;
|
|
1080
|
+
CheckAppAccess = _ts_decorate4([
|
|
1081
|
+
injectable(),
|
|
1082
|
+
_ts_param4(0, inject("AdminRepository")),
|
|
1083
|
+
_ts_metadata4("design:type", Function),
|
|
1084
|
+
_ts_metadata4("design:paramtypes", [
|
|
1085
|
+
typeof AdminRepositoryInterface === "undefined" ? Object : AdminRepositoryInterface
|
|
1086
|
+
])
|
|
1087
|
+
], CheckAppAccess);
|
|
1088
|
+
function _ts_decorate5(decorators, target, key, desc) {
|
|
1089
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1090
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1091
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1092
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1093
|
+
}
|
|
1094
|
+
__name(_ts_decorate5, "_ts_decorate");
|
|
1095
|
+
function _ts_metadata5(k, v) {
|
|
1096
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
1097
|
+
}
|
|
1098
|
+
__name(_ts_metadata5, "_ts_metadata");
|
|
1099
|
+
function _ts_param5(paramIndex, decorator) {
|
|
1100
|
+
return function(target, key) {
|
|
1101
|
+
decorator(target, key, paramIndex);
|
|
1102
|
+
};
|
|
1103
|
+
}
|
|
1104
|
+
__name(_ts_param5, "_ts_param");
|
|
1105
|
+
var _CheckOrgPermissions = class _CheckOrgPermissions {
|
|
1106
|
+
constructor(organizationRepository) {
|
|
1107
|
+
__publicField(this, "organizationRepository");
|
|
1108
|
+
this.organizationRepository = organizationRepository;
|
|
1109
|
+
}
|
|
1110
|
+
//TODO Need Tes
|
|
1111
|
+
async execute({ orgId }) {
|
|
1112
|
+
const hasPublicAccess = await this.organizationRepository.getOne(orgId);
|
|
1113
|
+
const privacy = (hasPublicAccess == null ? void 0 : hasPublicAccess.effective_asset_sharing) ? APP_SHARING_STATUS.PRIVATE : APP_SHARING_STATUS.PUBLIC;
|
|
1114
|
+
return {
|
|
1115
|
+
privacy
|
|
1116
|
+
};
|
|
1117
|
+
}
|
|
1118
|
+
};
|
|
1119
|
+
__name(_CheckOrgPermissions, "CheckOrgPermissions");
|
|
1120
|
+
var CheckOrgPermissions = _CheckOrgPermissions;
|
|
1121
|
+
CheckOrgPermissions = _ts_decorate5([
|
|
1122
|
+
injectable(),
|
|
1123
|
+
_ts_param5(0, inject("OrganizationRepository")),
|
|
1124
|
+
_ts_metadata5("design:type", Function),
|
|
1125
|
+
_ts_metadata5("design:paramtypes", [
|
|
1126
|
+
typeof OrganizationRepositoryInterface === "undefined" ? Object : OrganizationRepositoryInterface
|
|
1127
|
+
])
|
|
1128
|
+
], CheckOrgPermissions);
|
|
1129
|
+
var _SharingDetail = class _SharingDetail {
|
|
602
1130
|
constructor(params) {
|
|
1131
|
+
__publicField(this, "sharingDetailsId");
|
|
1132
|
+
__publicField(this, "assetId");
|
|
1133
|
+
__publicField(this, "accessLevel");
|
|
1134
|
+
__publicField(this, "accessLevelAsText");
|
|
1135
|
+
__publicField(this, "orgId");
|
|
1136
|
+
__publicField(this, "sharedWith");
|
|
1137
|
+
__publicField(this, "sharedType");
|
|
1138
|
+
__publicField(this, "sharedOrigin");
|
|
1139
|
+
__publicField(this, "sharedEmail");
|
|
1140
|
+
__publicField(this, "createdAt");
|
|
1141
|
+
__publicField(this, "updatedAt");
|
|
1142
|
+
__publicField(this, "deletedAt");
|
|
603
1143
|
this.sharingDetailsId = params.sharingDetailsId;
|
|
604
1144
|
this.assetId = params.assetId;
|
|
605
1145
|
this.accessLevel = params.accessLevel;
|
|
606
|
-
this.accessLevelAsText = this.convertAccessLevelToText(
|
|
607
|
-
params.accessLevel
|
|
608
|
-
);
|
|
1146
|
+
this.accessLevelAsText = this.convertAccessLevelToText(params.accessLevel);
|
|
609
1147
|
this.orgId = params.orgId;
|
|
610
1148
|
this.sharedWith = params.sharedWith;
|
|
611
1149
|
this.sharedType = params.sharedType;
|
|
@@ -616,10 +1154,10 @@ var SharingDetail = class _SharingDetail {
|
|
|
616
1154
|
this.deletedAt = params.deletedAt;
|
|
617
1155
|
}
|
|
618
1156
|
static create(params) {
|
|
619
|
-
var _a;
|
|
620
1157
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
621
|
-
const
|
|
622
|
-
|
|
1158
|
+
const _a = params, { sharedId } = _a, rest = __objRest(_a, ["sharedId"]);
|
|
1159
|
+
const obj = __spreadProps(__spreadValues({}, rest), {
|
|
1160
|
+
sharingDetailsId: sharedId != null ? sharedId : getId(),
|
|
623
1161
|
createdAt: now,
|
|
624
1162
|
updatedAt: now
|
|
625
1163
|
});
|
|
@@ -641,10 +1179,8 @@ var SharingDetail = class _SharingDetail {
|
|
|
641
1179
|
});
|
|
642
1180
|
}
|
|
643
1181
|
update(params) {
|
|
644
|
-
if (params.accessLevel || params.accessLevel === 0)
|
|
645
|
-
|
|
646
|
-
if (params.sharedEmail)
|
|
647
|
-
this.sharedEmail = params.sharedEmail;
|
|
1182
|
+
if (params.accessLevel || params.accessLevel === 0) this.accessLevel = params.accessLevel;
|
|
1183
|
+
if (params.sharedEmail) this.sharedEmail = params.sharedEmail;
|
|
648
1184
|
this.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
649
1185
|
}
|
|
650
1186
|
toTable() {
|
|
@@ -706,40 +1242,92 @@ var SharingDetail = class _SharingDetail {
|
|
|
706
1242
|
return (_a = ACCESS_LEVEL[level]) != null ? _a : "UNKNOWN";
|
|
707
1243
|
}
|
|
708
1244
|
};
|
|
1245
|
+
__name(_SharingDetail, "SharingDetail");
|
|
1246
|
+
var SharingDetail = _SharingDetail;
|
|
709
1247
|
|
|
710
1248
|
// src/sharing/services/checkUserAccessLevel.ts
|
|
711
|
-
|
|
712
|
-
|
|
1249
|
+
function _ts_decorate6(decorators, target, key, desc) {
|
|
1250
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1251
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1252
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1253
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1254
|
+
}
|
|
1255
|
+
__name(_ts_decorate6, "_ts_decorate");
|
|
1256
|
+
function _ts_metadata6(k, v) {
|
|
1257
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
1258
|
+
}
|
|
1259
|
+
__name(_ts_metadata6, "_ts_metadata");
|
|
1260
|
+
function _ts_param6(paramIndex, decorator) {
|
|
1261
|
+
return function(target, key) {
|
|
1262
|
+
decorator(target, key, paramIndex);
|
|
1263
|
+
};
|
|
1264
|
+
}
|
|
1265
|
+
__name(_ts_param6, "_ts_param");
|
|
1266
|
+
var _CheckUserAccessLevel = class _CheckUserAccessLevel {
|
|
1267
|
+
constructor(detailsRepository, organizationRepository) {
|
|
1268
|
+
__publicField(this, "detailsRepository");
|
|
1269
|
+
__publicField(this, "organizationRepository");
|
|
713
1270
|
this.detailsRepository = detailsRepository;
|
|
1271
|
+
this.organizationRepository = organizationRepository;
|
|
714
1272
|
}
|
|
715
|
-
async execute({
|
|
716
|
-
|
|
717
|
-
assetId,
|
|
718
|
-
clientId,
|
|
719
|
-
loginType,
|
|
720
|
-
roles,
|
|
721
|
-
orgId
|
|
722
|
-
}) {
|
|
1273
|
+
async execute({ userId, assetId, assetOrgId, clientId, loginType, roles, orgId }) {
|
|
1274
|
+
var _a;
|
|
723
1275
|
const user = await fromTokenToUser({
|
|
724
|
-
body: {
|
|
1276
|
+
body: {
|
|
1277
|
+
userId,
|
|
1278
|
+
clientId,
|
|
1279
|
+
roles,
|
|
1280
|
+
orgId,
|
|
1281
|
+
loginType
|
|
1282
|
+
}
|
|
725
1283
|
});
|
|
1284
|
+
if (isAnonymousUser(user.userId)) return {
|
|
1285
|
+
level: ACCESS_LEVEL.CAN_USE,
|
|
1286
|
+
levelAsText: "CAN_USE"
|
|
1287
|
+
};
|
|
1288
|
+
const currentUserOrgId = user.orgId || ORGANIZATION_QRVEY;
|
|
1289
|
+
const orgsId = await this.organizationRepository.getOrgTree(currentUserOrgId, HIERARCHY_SCOPE.BOTH);
|
|
1290
|
+
const isAdmin = await hasAdminRole(user);
|
|
1291
|
+
if (isAdmin) {
|
|
1292
|
+
const isSuperAdmin = currentUserOrgId === ORGANIZATION_QRVEY;
|
|
1293
|
+
const isSameOrg = currentUserOrgId === assetOrgId;
|
|
1294
|
+
const isChildOrg = ((_a = orgsId == null ? void 0 : orgsId.childrenIds) == null ? void 0 : _a.includes(assetOrgId)) || false;
|
|
1295
|
+
if (isSuperAdmin || isSameOrg || isChildOrg) {
|
|
1296
|
+
return {
|
|
1297
|
+
level: ACCESS_LEVEL.ADMIN,
|
|
1298
|
+
levelAsText: "ADMIN"
|
|
1299
|
+
};
|
|
1300
|
+
}
|
|
1301
|
+
}
|
|
1302
|
+
orgsId.parentIds.push(currentUserOrgId);
|
|
726
1303
|
const details = await this.detailsRepository.getList({
|
|
727
|
-
data: {
|
|
728
|
-
|
|
1304
|
+
data: {
|
|
1305
|
+
assetId,
|
|
1306
|
+
user,
|
|
1307
|
+
parentOrgIds: orgsId.parentIds
|
|
1308
|
+
},
|
|
1309
|
+
sorting: [
|
|
1310
|
+
{
|
|
1311
|
+
column: "access_level",
|
|
1312
|
+
direction: "DESC"
|
|
1313
|
+
}
|
|
1314
|
+
]
|
|
729
1315
|
});
|
|
730
|
-
if (details.items.length === 0)
|
|
731
|
-
|
|
1316
|
+
if (details.items.length === 0) return {
|
|
1317
|
+
level: ACCESS_LEVEL.NONE,
|
|
1318
|
+
levelAsText: "NONE"
|
|
1319
|
+
};
|
|
732
1320
|
const priority = {
|
|
733
|
-
[
|
|
734
|
-
[
|
|
735
|
-
[
|
|
1321
|
+
[SHARE_TYPE.USER]: 4,
|
|
1322
|
+
[SHARE_TYPE.ROLE]: 3,
|
|
1323
|
+
[SHARE_TYPE.ORGANIZATION]: 2,
|
|
1324
|
+
[SHARE_TYPE.TENANT]: 1
|
|
736
1325
|
};
|
|
737
1326
|
const priorityDetail = details.items.reduce((best, current) => {
|
|
738
1327
|
const bestPriority = priority[best.shared_type];
|
|
739
1328
|
const currentPriority = priority[current.shared_type];
|
|
740
1329
|
const isBetter = currentPriority > bestPriority || currentPriority === bestPriority && current.access_level > best.access_level;
|
|
741
|
-
if (isBetter)
|
|
742
|
-
return current;
|
|
1330
|
+
if (isBetter) return current;
|
|
743
1331
|
return best;
|
|
744
1332
|
});
|
|
745
1333
|
const currentDetail = SharingDetail.parse(priorityDetail);
|
|
@@ -749,66 +1337,163 @@ var CheckUserAccessLevel = class {
|
|
|
749
1337
|
};
|
|
750
1338
|
}
|
|
751
1339
|
};
|
|
752
|
-
CheckUserAccessLevel
|
|
1340
|
+
__name(_CheckUserAccessLevel, "CheckUserAccessLevel");
|
|
1341
|
+
var CheckUserAccessLevel = _CheckUserAccessLevel;
|
|
1342
|
+
CheckUserAccessLevel = _ts_decorate6([
|
|
753
1343
|
injectable(),
|
|
754
|
-
|
|
1344
|
+
_ts_param6(0, inject("SharingDetailsRepository")),
|
|
1345
|
+
_ts_param6(1, inject("OrganizationRepository")),
|
|
1346
|
+
_ts_metadata6("design:type", Function),
|
|
1347
|
+
_ts_metadata6("design:paramtypes", [
|
|
1348
|
+
typeof SharingDetailsRepositoryInterface === "undefined" ? Object : SharingDetailsRepositoryInterface,
|
|
1349
|
+
typeof OrganizationRepositoryInterface === "undefined" ? Object : OrganizationRepositoryInterface
|
|
1350
|
+
])
|
|
755
1351
|
], CheckUserAccessLevel);
|
|
756
|
-
|
|
1352
|
+
function _ts_decorate7(decorators, target, key, desc) {
|
|
1353
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1354
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1355
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1356
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1357
|
+
}
|
|
1358
|
+
__name(_ts_decorate7, "_ts_decorate");
|
|
1359
|
+
function _ts_metadata7(k, v) {
|
|
1360
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
1361
|
+
}
|
|
1362
|
+
__name(_ts_metadata7, "_ts_metadata");
|
|
1363
|
+
function _ts_param7(paramIndex, decorator) {
|
|
1364
|
+
return function(target, key) {
|
|
1365
|
+
decorator(target, key, paramIndex);
|
|
1366
|
+
};
|
|
1367
|
+
}
|
|
1368
|
+
__name(_ts_param7, "_ts_param");
|
|
1369
|
+
var _DeleteSharing = class _DeleteSharing {
|
|
757
1370
|
constructor(sharingRepository) {
|
|
1371
|
+
__publicField(this, "sharingRepository");
|
|
758
1372
|
this.sharingRepository = sharingRepository;
|
|
759
1373
|
}
|
|
760
1374
|
async execute({ body }) {
|
|
761
1375
|
const { assetId } = body;
|
|
762
1376
|
const sharing = await this.sharingRepository.getOne(assetId);
|
|
763
|
-
if (!sharing)
|
|
764
|
-
return null;
|
|
1377
|
+
if (!sharing) return null;
|
|
765
1378
|
const detailSharing = await this.sharingRepository.delete(assetId);
|
|
766
1379
|
return detailSharing;
|
|
767
1380
|
}
|
|
768
1381
|
};
|
|
769
|
-
DeleteSharing
|
|
1382
|
+
__name(_DeleteSharing, "DeleteSharing");
|
|
1383
|
+
var DeleteSharing = _DeleteSharing;
|
|
1384
|
+
DeleteSharing = _ts_decorate7([
|
|
770
1385
|
injectable(),
|
|
771
|
-
|
|
1386
|
+
_ts_param7(0, inject("SharingRepository")),
|
|
1387
|
+
_ts_metadata7("design:type", Function),
|
|
1388
|
+
_ts_metadata7("design:paramtypes", [
|
|
1389
|
+
typeof SharingRepositoryInterface === "undefined" ? Object : SharingRepositoryInterface
|
|
1390
|
+
])
|
|
772
1391
|
], DeleteSharing);
|
|
773
|
-
|
|
1392
|
+
function _ts_decorate8(decorators, target, key, desc) {
|
|
1393
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1394
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1395
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1396
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1397
|
+
}
|
|
1398
|
+
__name(_ts_decorate8, "_ts_decorate");
|
|
1399
|
+
function _ts_metadata8(k, v) {
|
|
1400
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
1401
|
+
}
|
|
1402
|
+
__name(_ts_metadata8, "_ts_metadata");
|
|
1403
|
+
function _ts_param8(paramIndex, decorator) {
|
|
1404
|
+
return function(target, key) {
|
|
1405
|
+
decorator(target, key, paramIndex);
|
|
1406
|
+
};
|
|
1407
|
+
}
|
|
1408
|
+
__name(_ts_param8, "_ts_param");
|
|
1409
|
+
var _GetOrgTree = class _GetOrgTree {
|
|
1410
|
+
constructor(organizationRepository) {
|
|
1411
|
+
__publicField(this, "organizationRepository");
|
|
1412
|
+
this.organizationRepository = organizationRepository;
|
|
1413
|
+
}
|
|
1414
|
+
async execute(orgId, scope) {
|
|
1415
|
+
return this.organizationRepository.getOrgTree(orgId, scope != null ? scope : HIERARCHY_SCOPE.BOTH);
|
|
1416
|
+
}
|
|
1417
|
+
};
|
|
1418
|
+
__name(_GetOrgTree, "GetOrgTree");
|
|
1419
|
+
var GetOrgTree = _GetOrgTree;
|
|
1420
|
+
GetOrgTree = _ts_decorate8([
|
|
1421
|
+
injectable(),
|
|
1422
|
+
_ts_param8(0, inject("OrganizationRepository")),
|
|
1423
|
+
_ts_metadata8("design:type", Function),
|
|
1424
|
+
_ts_metadata8("design:paramtypes", [
|
|
1425
|
+
typeof OrganizationRepositoryInterface === "undefined" ? Object : OrganizationRepositoryInterface
|
|
1426
|
+
])
|
|
1427
|
+
], GetOrgTree);
|
|
1428
|
+
function _ts_decorate9(decorators, target, key, desc) {
|
|
1429
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1430
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1431
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1432
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1433
|
+
}
|
|
1434
|
+
__name(_ts_decorate9, "_ts_decorate");
|
|
1435
|
+
function _ts_metadata9(k, v) {
|
|
1436
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
1437
|
+
}
|
|
1438
|
+
__name(_ts_metadata9, "_ts_metadata");
|
|
1439
|
+
function _ts_param9(paramIndex, decorator) {
|
|
1440
|
+
return function(target, key) {
|
|
1441
|
+
decorator(target, key, paramIndex);
|
|
1442
|
+
};
|
|
1443
|
+
}
|
|
1444
|
+
__name(_ts_param9, "_ts_param");
|
|
1445
|
+
var _ListSharing = class _ListSharing {
|
|
774
1446
|
constructor(sharingRepository, detailsRepository) {
|
|
1447
|
+
__publicField(this, "sharingRepository");
|
|
1448
|
+
__publicField(this, "detailsRepository");
|
|
775
1449
|
this.sharingRepository = sharingRepository;
|
|
776
1450
|
this.detailsRepository = detailsRepository;
|
|
777
1451
|
}
|
|
778
|
-
async execute({
|
|
779
|
-
body
|
|
780
|
-
}) {
|
|
1452
|
+
async execute({ body }) {
|
|
781
1453
|
var _a;
|
|
782
|
-
const {
|
|
783
|
-
data: { assetId },
|
|
784
|
-
pagination
|
|
785
|
-
} = body;
|
|
1454
|
+
const { data: { assetId }, pagination } = body;
|
|
786
1455
|
const sharing = await this.sharingRepository.getOne(assetId);
|
|
787
|
-
if (!sharing)
|
|
788
|
-
|
|
789
|
-
|
|
1456
|
+
if (!sharing) return null;
|
|
1457
|
+
const sorting = body.sorting && ((_a = body.sorting) == null ? void 0 : _a.length) > 0 ? body.sorting : [
|
|
1458
|
+
{
|
|
1459
|
+
column: "created_at",
|
|
1460
|
+
direction: "ASC"
|
|
1461
|
+
}
|
|
1462
|
+
];
|
|
790
1463
|
const detailSharing = await this.detailsRepository.getList({
|
|
791
|
-
data: {
|
|
1464
|
+
data: {
|
|
1465
|
+
assetId
|
|
1466
|
+
},
|
|
792
1467
|
pagination,
|
|
793
1468
|
sorting
|
|
794
1469
|
});
|
|
795
|
-
const items = detailSharing.items.map(
|
|
796
|
-
(item) => SharingDetail.parse(item).toJSON()
|
|
797
|
-
);
|
|
1470
|
+
const items = detailSharing.items.map((item) => SharingDetail.parse(item).toJSON());
|
|
798
1471
|
return __spreadProps(__spreadValues({}, detailSharing), {
|
|
799
1472
|
items
|
|
800
1473
|
});
|
|
801
1474
|
}
|
|
802
1475
|
};
|
|
803
|
-
ListSharing
|
|
1476
|
+
__name(_ListSharing, "ListSharing");
|
|
1477
|
+
var ListSharing = _ListSharing;
|
|
1478
|
+
ListSharing = _ts_decorate9([
|
|
804
1479
|
injectable(),
|
|
805
|
-
|
|
806
|
-
|
|
1480
|
+
_ts_param9(0, inject("SharingRepository")),
|
|
1481
|
+
_ts_param9(1, inject("SharingDetailsRepository")),
|
|
1482
|
+
_ts_metadata9("design:type", Function),
|
|
1483
|
+
_ts_metadata9("design:paramtypes", [
|
|
1484
|
+
typeof SharingRepositoryInterface === "undefined" ? Object : SharingRepositoryInterface,
|
|
1485
|
+
typeof SharingDetailsRepositoryInterface === "undefined" ? Object : SharingDetailsRepositoryInterface
|
|
1486
|
+
])
|
|
807
1487
|
], ListSharing);
|
|
808
1488
|
|
|
809
1489
|
// src/sharing/entities/sharing.ts
|
|
810
|
-
var
|
|
1490
|
+
var _Sharing = class _Sharing {
|
|
811
1491
|
constructor(params) {
|
|
1492
|
+
__publicField(this, "assetId");
|
|
1493
|
+
__publicField(this, "assetType");
|
|
1494
|
+
__publicField(this, "createdAt");
|
|
1495
|
+
__publicField(this, "updatedAt");
|
|
1496
|
+
__publicField(this, "deletedAt");
|
|
812
1497
|
this.assetId = params.assetId;
|
|
813
1498
|
this.assetType = params.assetType;
|
|
814
1499
|
this.createdAt = params.createdAt;
|
|
@@ -868,10 +1553,35 @@ var Sharing = class _Sharing {
|
|
|
868
1553
|
return this.assetType;
|
|
869
1554
|
}
|
|
870
1555
|
};
|
|
1556
|
+
__name(_Sharing, "Sharing");
|
|
1557
|
+
var Sharing = _Sharing;
|
|
871
1558
|
|
|
872
1559
|
// src/sharing/services/upsert.ts
|
|
873
|
-
|
|
1560
|
+
function _ts_decorate10(decorators, target, key, desc) {
|
|
1561
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1562
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1563
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1564
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1565
|
+
}
|
|
1566
|
+
__name(_ts_decorate10, "_ts_decorate");
|
|
1567
|
+
function _ts_metadata10(k, v) {
|
|
1568
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
1569
|
+
}
|
|
1570
|
+
__name(_ts_metadata10, "_ts_metadata");
|
|
1571
|
+
function _ts_param10(paramIndex, decorator) {
|
|
1572
|
+
return function(target, key) {
|
|
1573
|
+
decorator(target, key, paramIndex);
|
|
1574
|
+
};
|
|
1575
|
+
}
|
|
1576
|
+
__name(_ts_param10, "_ts_param");
|
|
1577
|
+
var _UpsertSharing = class _UpsertSharing {
|
|
874
1578
|
constructor(sharingRepository, detailsRepository, dxRepository, dmRepository, userRepository, roleRepository) {
|
|
1579
|
+
__publicField(this, "sharingRepository");
|
|
1580
|
+
__publicField(this, "detailsRepository");
|
|
1581
|
+
__publicField(this, "dxRepository");
|
|
1582
|
+
__publicField(this, "dmRepository");
|
|
1583
|
+
__publicField(this, "userRepository");
|
|
1584
|
+
__publicField(this, "roleRepository");
|
|
875
1585
|
this.sharingRepository = sharingRepository;
|
|
876
1586
|
this.detailsRepository = detailsRepository;
|
|
877
1587
|
this.dxRepository = dxRepository;
|
|
@@ -879,16 +1589,10 @@ var UpsertSharing = class {
|
|
|
879
1589
|
this.userRepository = userRepository;
|
|
880
1590
|
this.roleRepository = roleRepository;
|
|
881
1591
|
}
|
|
882
|
-
async execute({
|
|
883
|
-
body
|
|
884
|
-
}) {
|
|
1592
|
+
async execute({ body }) {
|
|
885
1593
|
const assetId = body.assetId;
|
|
886
|
-
const isValidAsset = await this.validateIfAssetExists(
|
|
887
|
-
|
|
888
|
-
body.assetType
|
|
889
|
-
);
|
|
890
|
-
if (!isValidAsset)
|
|
891
|
-
throw new Error(`Asset with ID ${assetId} not found`);
|
|
1594
|
+
const isValidAsset = await this.validateIfAssetExists(assetId, body.assetType);
|
|
1595
|
+
if (!isValidAsset) throw new Error(`Asset with ID ${assetId} not found`);
|
|
892
1596
|
const sharing = await this.sharingRepository.getOne(assetId);
|
|
893
1597
|
let currentSharing;
|
|
894
1598
|
if (sharing) {
|
|
@@ -902,26 +1606,20 @@ var UpsertSharing = class {
|
|
|
902
1606
|
await this.sharingRepository.create(currentSharing.toTable());
|
|
903
1607
|
}
|
|
904
1608
|
let updatedList = [];
|
|
905
|
-
if (body.add)
|
|
906
|
-
|
|
907
|
-
if (body.remove)
|
|
908
|
-
await this.removeDetails(body.remove);
|
|
1609
|
+
if (body.add) updatedList = await this.addDetails(assetId, body.add);
|
|
1610
|
+
if (body.remove) await this.removeDetails(body.remove);
|
|
909
1611
|
currentSharing.update();
|
|
910
|
-
await this.sharingRepository.patch(
|
|
911
|
-
currentSharing.getAssetId,
|
|
912
|
-
currentSharing.toTable()
|
|
913
|
-
);
|
|
1612
|
+
await this.sharingRepository.patch(currentSharing.getAssetId, currentSharing.toTable());
|
|
914
1613
|
return updatedList.map((detail) => detail.toJSON());
|
|
915
1614
|
}
|
|
916
1615
|
async validateIfAssetExists(assetId, assetType) {
|
|
917
1616
|
switch (assetType) {
|
|
918
|
-
case
|
|
1617
|
+
case ASSET_TYPE.DX: {
|
|
919
1618
|
const result = await this.dxRepository.get(assetId);
|
|
920
|
-
if (result)
|
|
921
|
-
return true;
|
|
1619
|
+
if (result) return true;
|
|
922
1620
|
return false;
|
|
923
1621
|
}
|
|
924
|
-
case
|
|
1622
|
+
case ASSET_TYPE.DM: {
|
|
925
1623
|
return true;
|
|
926
1624
|
}
|
|
927
1625
|
default:
|
|
@@ -932,8 +1630,7 @@ var UpsertSharing = class {
|
|
|
932
1630
|
const sharingList = [];
|
|
933
1631
|
for (const detail of list) {
|
|
934
1632
|
const currentDetail = await this.addSpecificDetail(assetId, detail);
|
|
935
|
-
if (currentDetail)
|
|
936
|
-
sharingList.push(currentDetail);
|
|
1633
|
+
if (currentDetail) sharingList.push(currentDetail);
|
|
937
1634
|
}
|
|
938
1635
|
return sharingList;
|
|
939
1636
|
}
|
|
@@ -941,24 +1638,15 @@ var UpsertSharing = class {
|
|
|
941
1638
|
var _a;
|
|
942
1639
|
let currentDetail;
|
|
943
1640
|
const isValid = await this.validateIfSharedWithExist(detail);
|
|
944
|
-
if (!isValid)
|
|
945
|
-
|
|
946
|
-
let sharingDetail = await this.detailsRepository.getBySharedWith(
|
|
947
|
-
assetId,
|
|
948
|
-
detail.sharedWith
|
|
949
|
-
);
|
|
1641
|
+
if (!isValid) return null;
|
|
1642
|
+
let sharingDetail = await this.detailsRepository.getBySharedWith(assetId, detail.sharedWith);
|
|
950
1643
|
if (!sharingDetail && detail.sharedId) {
|
|
951
|
-
sharingDetail = await this.detailsRepository.getOne(
|
|
952
|
-
detail.sharedId
|
|
953
|
-
);
|
|
1644
|
+
sharingDetail = await this.detailsRepository.getOne(detail.sharedId);
|
|
954
1645
|
}
|
|
955
1646
|
if (sharingDetail) {
|
|
956
1647
|
currentDetail = SharingDetail.parse(sharingDetail);
|
|
957
1648
|
currentDetail.update(detail);
|
|
958
|
-
await this.detailsRepository.patch(
|
|
959
|
-
currentDetail.getSharingDetailsId,
|
|
960
|
-
currentDetail.toTable()
|
|
961
|
-
);
|
|
1649
|
+
await this.detailsRepository.patch(currentDetail.getSharingDetailsId, currentDetail.toTable());
|
|
962
1650
|
} else {
|
|
963
1651
|
const createDetails = __spreadValues({
|
|
964
1652
|
assetId,
|
|
@@ -970,21 +1658,18 @@ var UpsertSharing = class {
|
|
|
970
1658
|
return currentDetail;
|
|
971
1659
|
}
|
|
972
1660
|
async validateIfSharedWithExist(detail) {
|
|
973
|
-
if (detail.sharedOrigin ===
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
if (
|
|
977
|
-
return true;
|
|
978
|
-
if (detail.sharedType === "USER" /* USER */) {
|
|
1661
|
+
if (detail.sharedOrigin === SHARED_ORIGIN.EXTERNAL || detail.sharedOrigin === SHARED_ORIGIN.UNKNOWN) return true;
|
|
1662
|
+
const isQrveyOrg = detail.sharedType === SHARE_TYPE.ORGANIZATION && detail.sharedWith === ORGANIZATION_QRVEY;
|
|
1663
|
+
if (isQrveyOrg) return true;
|
|
1664
|
+
if (detail.sharedType === SHARE_TYPE.USER) {
|
|
979
1665
|
const user = await this.userRepository.getOne(detail.sharedWith);
|
|
980
|
-
if (user)
|
|
981
|
-
return true;
|
|
1666
|
+
if (user) return true;
|
|
982
1667
|
}
|
|
983
|
-
if (detail.sharedType ===
|
|
1668
|
+
if (detail.sharedType === SHARE_TYPE.ROLE) {
|
|
984
1669
|
const role = await this.roleRepository.getOne(detail.sharedWith);
|
|
985
|
-
if (role)
|
|
986
|
-
return true;
|
|
1670
|
+
if (role) return true;
|
|
987
1671
|
}
|
|
1672
|
+
if (detail.sharedType === SHARE_TYPE.TENANT && detail.sharedWith === SHARE_TYPE.TENANT) return true;
|
|
988
1673
|
return false;
|
|
989
1674
|
}
|
|
990
1675
|
async removeDetails(list) {
|
|
@@ -993,26 +1678,118 @@ var UpsertSharing = class {
|
|
|
993
1678
|
}
|
|
994
1679
|
}
|
|
995
1680
|
};
|
|
996
|
-
UpsertSharing
|
|
1681
|
+
__name(_UpsertSharing, "UpsertSharing");
|
|
1682
|
+
var UpsertSharing = _UpsertSharing;
|
|
1683
|
+
UpsertSharing = _ts_decorate10([
|
|
997
1684
|
injectable(),
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1685
|
+
_ts_param10(0, inject("SharingRepository")),
|
|
1686
|
+
_ts_param10(1, inject("SharingDetailsRepository")),
|
|
1687
|
+
_ts_param10(2, inject("dxRepository")),
|
|
1688
|
+
_ts_param10(3, inject("dmRepository")),
|
|
1689
|
+
_ts_param10(4, inject("UserRepository")),
|
|
1690
|
+
_ts_param10(5, inject("RoleRepository")),
|
|
1691
|
+
_ts_metadata10("design:type", Function),
|
|
1692
|
+
_ts_metadata10("design:paramtypes", [
|
|
1693
|
+
typeof SharingRepositoryInterface === "undefined" ? Object : SharingRepositoryInterface,
|
|
1694
|
+
typeof SharingDetailsRepositoryInterface === "undefined" ? Object : SharingDetailsRepositoryInterface,
|
|
1695
|
+
typeof DashboardRepositoryInterface === "undefined" ? Object : DashboardRepositoryInterface,
|
|
1696
|
+
typeof DownloadManagerRepositoryInterface === "undefined" ? Object : DownloadManagerRepositoryInterface,
|
|
1697
|
+
typeof UserRepositoryInterface === "undefined" ? Object : UserRepositoryInterface,
|
|
1698
|
+
typeof RoleRepositoryInterface === "undefined" ? Object : RoleRepositoryInterface
|
|
1699
|
+
])
|
|
1004
1700
|
], UpsertSharing);
|
|
1701
|
+
function _ts_decorate11(decorators, target, key, desc) {
|
|
1702
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1703
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1704
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1705
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1706
|
+
}
|
|
1707
|
+
__name(_ts_decorate11, "_ts_decorate");
|
|
1708
|
+
function _ts_metadata11(k, v) {
|
|
1709
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
1710
|
+
}
|
|
1711
|
+
__name(_ts_metadata11, "_ts_metadata");
|
|
1712
|
+
function _ts_param11(paramIndex, decorator) {
|
|
1713
|
+
return function(target, key) {
|
|
1714
|
+
decorator(target, key, paramIndex);
|
|
1715
|
+
};
|
|
1716
|
+
}
|
|
1717
|
+
__name(_ts_param11, "_ts_param");
|
|
1718
|
+
var _SetDefaultSharing = class _SetDefaultSharing {
|
|
1719
|
+
constructor(sharingRepository, detailsRepository, adminRepository) {
|
|
1720
|
+
__publicField(this, "sharingRepository");
|
|
1721
|
+
__publicField(this, "detailsRepository");
|
|
1722
|
+
__publicField(this, "adminRepository");
|
|
1723
|
+
this.sharingRepository = sharingRepository;
|
|
1724
|
+
this.detailsRepository = detailsRepository;
|
|
1725
|
+
this.adminRepository = adminRepository;
|
|
1726
|
+
}
|
|
1727
|
+
async execute({ assetId, assetType, orgId, sharedOrigin }) {
|
|
1728
|
+
const sharingRecord = await this.sharingRepository.getOne(assetId);
|
|
1729
|
+
let currentSharing;
|
|
1730
|
+
if (sharingRecord) {
|
|
1731
|
+
currentSharing = Sharing.parse(sharingRecord);
|
|
1732
|
+
} else {
|
|
1733
|
+
const createSharing = {
|
|
1734
|
+
assetId,
|
|
1735
|
+
assetType
|
|
1736
|
+
};
|
|
1737
|
+
currentSharing = Sharing.create(createSharing);
|
|
1738
|
+
await this.sharingRepository.create(currentSharing.toTable());
|
|
1739
|
+
}
|
|
1740
|
+
const sharingDetailsTenants = SharingDetail.create({
|
|
1741
|
+
accessLevel: ACCESS_LEVEL.CAN_USE,
|
|
1742
|
+
assetId,
|
|
1743
|
+
sharedOrigin,
|
|
1744
|
+
sharedType: SHARE_TYPE.TENANT,
|
|
1745
|
+
sharedWith: "TENANT",
|
|
1746
|
+
orgId
|
|
1747
|
+
});
|
|
1748
|
+
const sharingDetailsOrg = SharingDetail.create({
|
|
1749
|
+
accessLevel: ACCESS_LEVEL.CAN_EDIT,
|
|
1750
|
+
assetId,
|
|
1751
|
+
sharedOrigin,
|
|
1752
|
+
sharedType: SHARE_TYPE.ORGANIZATION,
|
|
1753
|
+
sharedWith: orgId,
|
|
1754
|
+
orgId
|
|
1755
|
+
});
|
|
1756
|
+
await Promise.all([
|
|
1757
|
+
this.detailsRepository.create(sharingDetailsTenants.toTable()),
|
|
1758
|
+
this.detailsRepository.create(sharingDetailsOrg.toTable())
|
|
1759
|
+
]);
|
|
1760
|
+
return currentSharing;
|
|
1761
|
+
}
|
|
1762
|
+
};
|
|
1763
|
+
__name(_SetDefaultSharing, "SetDefaultSharing");
|
|
1764
|
+
var SetDefaultSharing = _SetDefaultSharing;
|
|
1765
|
+
SetDefaultSharing = _ts_decorate11([
|
|
1766
|
+
injectable(),
|
|
1767
|
+
_ts_param11(0, inject("SharingRepository")),
|
|
1768
|
+
_ts_param11(1, inject("SharingDetailsRepository")),
|
|
1769
|
+
_ts_param11(2, inject("AdminRepository")),
|
|
1770
|
+
_ts_metadata11("design:type", Function),
|
|
1771
|
+
_ts_metadata11("design:paramtypes", [
|
|
1772
|
+
typeof SharingRepositoryInterface === "undefined" ? Object : SharingRepositoryInterface,
|
|
1773
|
+
typeof SharingDetailsRepositoryInterface === "undefined" ? Object : SharingDetailsRepositoryInterface,
|
|
1774
|
+
typeof AdminRepositoryInterface === "undefined" ? Object : AdminRepositoryInterface
|
|
1775
|
+
])
|
|
1776
|
+
], SetDefaultSharing);
|
|
1005
1777
|
|
|
1006
1778
|
// src/index.ts
|
|
1007
1779
|
var api = {
|
|
1008
|
-
upsert: (...args) => Context.resolve(UpsertSharing).execute(...args),
|
|
1009
|
-
list: (...args) => Context.resolve(ListSharing).execute(...args),
|
|
1010
|
-
delete: (...args) => Context.resolve(DeleteSharing).execute(...args)
|
|
1780
|
+
upsert: /* @__PURE__ */ __name((...args) => Context.resolve(UpsertSharing).execute(...args), "upsert"),
|
|
1781
|
+
list: /* @__PURE__ */ __name((...args) => Context.resolve(ListSharing).execute(...args), "list"),
|
|
1782
|
+
delete: /* @__PURE__ */ __name((...args) => Context.resolve(DeleteSharing).execute(...args), "delete")
|
|
1011
1783
|
};
|
|
1012
|
-
var checkUserAccessLevel = (...args) => Context.resolve(CheckUserAccessLevel).execute(...args);
|
|
1013
|
-
var
|
|
1014
|
-
var
|
|
1784
|
+
var checkUserAccessLevel = /* @__PURE__ */ __name((...args) => Context.resolve(CheckUserAccessLevel).execute(...args), "checkUserAccessLevel");
|
|
1785
|
+
var checkAppAccess = /* @__PURE__ */ __name((...args) => Context.resolve(CheckAppAccess).execute(...args), "checkAppAccess");
|
|
1786
|
+
var getOrgTree = /* @__PURE__ */ __name((...args) => Context.resolve(GetOrgTree).execute(...args), "getOrgTree");
|
|
1787
|
+
var fromTokenToUser = /* @__PURE__ */ __name((...args) => Context.resolve(FromTokenToUser).execute(...args), "fromTokenToUser");
|
|
1788
|
+
var hasAdminRole = /* @__PURE__ */ __name((...args) => Context.resolve(HasAdminRole).execute(...args), "hasAdminRole");
|
|
1789
|
+
var hasSharingPermission = /* @__PURE__ */ __name((...args) => Context.resolve(HasSharingPermission).execute(...args), "hasSharingPermission");
|
|
1790
|
+
var setDefaultSharing = /* @__PURE__ */ __name((...args) => Context.resolve(SetDefaultSharing).execute(...args), "setDefaultSharing");
|
|
1791
|
+
var checkOrgPermissions = /* @__PURE__ */ __name((...args) => Context.resolve(CheckOrgPermissions).execute(...args), "checkOrgPermissions");
|
|
1015
1792
|
|
|
1016
|
-
export { ACCESS_LEVEL, ASSET_TYPE, ORGANIZATION_QRVEY, SHARED_ORIGIN, SHARE_TYPE, api, checkUserAccessLevel, fromTokenToUser, hasAdminRole };
|
|
1017
|
-
//# sourceMappingURL=
|
|
1793
|
+
export { ACCESS_LEVEL, APP_SHARING_STATUS, ASSET_TYPE, HIERARCHY_SCOPE, ORGANIZATION_QRVEY, SHARED_ORIGIN, SHARE_TYPE, USER_ANONYMOUS, api, checkAppAccess, checkOrgPermissions, checkUserAccessLevel, fromTokenToUser, getOrgTree, hasAdminRole, hasSharingPermission, setDefaultSharing };
|
|
1794
|
+
//# sourceMappingURL=index.mjs.map
|
|
1018
1795
|
//# sourceMappingURL=index.mjs.map
|