@qrvey/assets-sharing 0.3.4-dev.2181 → 0.3.4-dev.2186

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.
@@ -71,9 +71,15 @@ var ACCESS_LEVEL = /* @__PURE__ */ ((ACCESS_LEVEL3) => {
71
71
  ACCESS_LEVEL3[ACCESS_LEVEL3["ADMIN"] = 4] = "ADMIN";
72
72
  return ACCESS_LEVEL3;
73
73
  })(ACCESS_LEVEL || {});
74
+ var SHARING_MODE = /* @__PURE__ */ ((SHARING_MODE2) => {
75
+ SHARING_MODE2[SHARING_MODE2["PRIVATE"] = 0] = "PRIVATE";
76
+ SHARING_MODE2[SHARING_MODE2["SAME_AS_APP"] = 1] = "SAME_AS_APP";
77
+ return SHARING_MODE2;
78
+ })(SHARING_MODE || {});
74
79
  var APP_SHARING_STATUS = /* @__PURE__ */ ((APP_SHARING_STATUS2) => {
75
80
  APP_SHARING_STATUS2["PUBLIC"] = "public";
76
81
  APP_SHARING_STATUS2["PRIVATE"] = "private";
82
+ APP_SHARING_STATUS2["SHARED"] = "shared";
77
83
  return APP_SHARING_STATUS2;
78
84
  })(APP_SHARING_STATUS || {});
79
85
  var LIMIT_PER_PAGE = 10;
@@ -197,7 +203,7 @@ var AdminRepository = class {
197
203
  const data = await response.json();
198
204
  return {
199
205
  status: response.status,
200
- legacyMode: (_c = (_b = (_a = data == null ? void 0 : data.Item) == null ? void 0 : _a.settings) == null ? void 0 : _b.legacyMode) != null ? _c : true
206
+ defaultSharingMode: (_c = (_b = (_a = data == null ? void 0 : data.Item) == null ? void 0 : _a.settings) == null ? void 0 : _b.defaultSharingMode) != null ? _c : 0 /* PRIVATE */
201
207
  };
202
208
  }
203
209
  };
@@ -494,6 +500,14 @@ OrganizationModel.indexes = {
494
500
  OrganizationModel.schema = DATABASE_INFO.DATA_PERSISTENCE_SCHEMA;
495
501
  OrganizationModel.usePool = true;
496
502
 
503
+ // src/sharing/entities/types/orgTreeResult.ts
504
+ var HIERARCHY_SCOPE = /* @__PURE__ */ ((HIERARCHY_SCOPE2) => {
505
+ HIERARCHY_SCOPE2["CHILDREN"] = "children";
506
+ HIERARCHY_SCOPE2["PARENTS"] = "parents";
507
+ HIERARCHY_SCOPE2["BOTH"] = "both";
508
+ return HIERARCHY_SCOPE2;
509
+ })(HIERARCHY_SCOPE || {});
510
+
497
511
  // src/sharing/implementations/organization.repository.ts
498
512
  var OrganizationRepository = class extends BaseRepository {
499
513
  constructor() {
@@ -506,47 +520,53 @@ var OrganizationRepository = class extends BaseRepository {
506
520
  const response = await super.findItem(params);
507
521
  return response;
508
522
  }
509
- async getOrgTree(orgId, contentSharing) {
523
+ async getOrgTree(orgId, scope = "both" /* BOTH */) {
510
524
  const cte = `WITH target AS (SELECT org_path FROM admin.qv_organization WHERE org_id = '${orgId}')`;
511
- let selectClause = "";
512
- let whereClause = `
513
- FROM admin.qv_organization, target
514
- WHERE (
515
- admin.qv_organization.org_path <@ target.org_path
516
- OR
517
- admin.qv_organization.org_path @> target.org_path
518
- )
519
- AND org_id != '${orgId}'
520
- `;
521
- if (contentSharing === void 0) {
522
- selectClause = `
523
- SELECT
524
- COALESCE(ARRAY_AGG(org_id) FILTER (WHERE effective_content_privacy = true), '{}') as db_private,
525
- COALESCE(ARRAY_AGG(org_id) FILTER (WHERE effective_content_privacy = false), '{}') as db_public
526
- `;
525
+ let condition = "";
526
+ if (scope === "children" /* CHILDREN */) {
527
+ condition = `admin.qv_organization.org_path <@ target.org_path`;
528
+ } else if (scope === "parents" /* PARENTS */) {
529
+ condition = `admin.qv_organization.org_path @> target.org_path`;
527
530
  } else {
528
- selectClause = `SELECT COALESCE(ARRAY_AGG(org_id), '{}') as db_specific`;
529
- whereClause += ` AND effective_content_privacy = ${contentSharing}`;
531
+ condition = `(
532
+ admin.qv_organization.org_path <@ target.org_path
533
+ OR
534
+ admin.qv_organization.org_path @> target.org_path
535
+ )`;
530
536
  }
531
- const fullSql = `${cte} ${selectClause} ${whereClause};`;
537
+ const selectClause = `
538
+ SELECT
539
+ COALESCE(
540
+ ARRAY_AGG(org_id) FILTER (
541
+ WHERE admin.qv_organization.org_path <@ target.org_path AND org_id != '${orgId}'
542
+ ),
543
+ '{}'
544
+ ) as db_children,
545
+ COALESCE(
546
+ ARRAY_AGG(org_id) FILTER (
547
+ WHERE admin.qv_organization.org_path @> target.org_path AND org_id != '${orgId}'
548
+ ),
549
+ '{}'
550
+ ) as db_parents
551
+ `;
552
+ const fromWhereClause = `
553
+ FROM admin.qv_organization, target
554
+ WHERE ${condition}
555
+ AND org_id != '${orgId}'
556
+ `;
557
+ const fullSql = `${cte} ${selectClause} ${fromWhereClause};`;
532
558
  const result = await super.runRawQuery(fullSql, []);
533
559
  const row = result == null ? void 0 : result.rows[0];
534
- if (!row)
535
- return {
536
- privateIds: [],
537
- publicIds: []
538
- };
539
- if (contentSharing === void 0) {
560
+ if (!row) {
540
561
  return {
541
- privateIds: row.db_private,
542
- publicIds: row.db_public
543
- };
544
- } else {
545
- return {
546
- privateIds: contentSharing ? row.db_specific : [],
547
- publicIds: contentSharing ? [] : row.db_specific
562
+ childrenIds: [],
563
+ parentIds: []
548
564
  };
549
565
  }
566
+ return {
567
+ childrenIds: row.db_children,
568
+ parentIds: row.db_parents
569
+ };
550
570
  }
551
571
  };
552
572
  var SharingModel = class extends CrudSchema {
@@ -731,7 +751,7 @@ HasAdminRole = __decorateClass([
731
751
  injectable(),
732
752
  __decorateParam(0, inject("UserRepository"))
733
753
  ], HasAdminRole);
734
- var CheckAppPermissions = class {
754
+ var CheckAppAccess = class {
735
755
  constructor(adminRepository) {
736
756
  this.adminRepository = adminRepository;
737
757
  }
@@ -740,40 +760,27 @@ var CheckAppPermissions = class {
740
760
  appId,
741
761
  userId
742
762
  }) {
743
- if (!userId) return { privacy: "private" /* PRIVATE */ };
763
+ if (!userId)
764
+ return {
765
+ hasAccess: false
766
+ };
744
767
  const appInfo = await this.adminRepository.getApplicationInfo({
745
768
  appId,
746
769
  userId
747
770
  });
748
- const platform = await this.adminRepository.getPlatformConfiguration();
749
771
  if (appInfo.status !== 200)
750
- return { privacy: "private" /* PRIVATE */ };
751
- const hasPublicAccess = platform == null ? void 0 : platform.legacyMode;
752
- const privacy = hasPublicAccess ? "public" /* PUBLIC */ : "private" /* PRIVATE */;
753
- return { privacy };
772
+ return {
773
+ hasAccess: false
774
+ };
775
+ return {
776
+ hasAccess: true
777
+ };
754
778
  }
755
779
  };
756
- CheckAppPermissions = __decorateClass([
780
+ CheckAppAccess = __decorateClass([
757
781
  injectable(),
758
782
  __decorateParam(0, inject("AdminRepository"))
759
- ], CheckAppPermissions);
760
- var CheckOrgPermissions = class {
761
- constructor(organizationRepository) {
762
- this.organizationRepository = organizationRepository;
763
- }
764
- //TODO Need Tes
765
- async execute({
766
- orgId
767
- }) {
768
- const hasPublicAccess = await this.organizationRepository.getOne(orgId);
769
- const privacy = (hasPublicAccess == null ? void 0 : hasPublicAccess.effective_content_privacy) ? "private" /* PRIVATE */ : "public" /* PUBLIC */;
770
- return { privacy };
771
- }
772
- };
773
- CheckOrgPermissions = __decorateClass([
774
- injectable(),
775
- __decorateParam(0, inject("OrganizationRepository"))
776
- ], CheckOrgPermissions);
783
+ ], CheckAppAccess);
777
784
  var SharingDetail = class _SharingDetail {
778
785
  constructor(params) {
779
786
  this.sharingDetailsId = params.sharingDetailsId;
@@ -947,10 +954,10 @@ var GetOrgTree = class {
947
954
  constructor(organizationRepository) {
948
955
  this.organizationRepository = organizationRepository;
949
956
  }
950
- async execute(orgId, contentSharingStatus) {
957
+ async execute(orgId, scope) {
951
958
  return this.organizationRepository.getOrgTree(
952
959
  orgId,
953
- contentSharingStatus
960
+ scope != null ? scope : "both" /* BOTH */
954
961
  );
955
962
  }
956
963
  };
@@ -1191,14 +1198,15 @@ UpsertSharing = __decorateClass([
1191
1198
  __decorateParam(5, inject("RoleRepository"))
1192
1199
  ], UpsertSharing);
1193
1200
  var UpsertDefaultSharing = class {
1194
- constructor(sharingRepository) {
1201
+ constructor(sharingRepository, adminRepository) {
1195
1202
  this.sharingRepository = sharingRepository;
1203
+ this.adminRepository = adminRepository;
1196
1204
  }
1197
1205
  async execute({
1198
1206
  assetId,
1199
1207
  assetType,
1200
- contentSharingEnabled = true,
1201
- defaultAccessLevel
1208
+ sharingMode,
1209
+ contentSharingEnabled = true
1202
1210
  }) {
1203
1211
  const sharingRecord = await this.sharingRepository.getOne(assetId);
1204
1212
  let currentSharing;
@@ -1209,12 +1217,12 @@ var UpsertDefaultSharing = class {
1209
1217
  assetId,
1210
1218
  assetType,
1211
1219
  defaultContentSharingEnabled: contentSharingEnabled,
1212
- defaultAccessLevel: defaultAccessLevel != null ? defaultAccessLevel : null
1220
+ defaultAccessLevel: sharingMode != null ? sharingMode : null
1213
1221
  };
1214
1222
  currentSharing = Sharing.create(createSharing);
1215
1223
  await this.sharingRepository.create(currentSharing.toTable());
1216
1224
  }
1217
- currentSharing.setDefaultAccessLevel = defaultAccessLevel != null ? defaultAccessLevel : null;
1225
+ currentSharing.setDefaultAccessLevel = sharingMode != null ? sharingMode : (await this.adminRepository.getPlatformConfiguration()).defaultSharingMode;
1218
1226
  currentSharing.setDefaultContentSharingEnabled = contentSharingEnabled;
1219
1227
  currentSharing.update();
1220
1228
  await this.sharingRepository.patch(
@@ -1226,7 +1234,8 @@ var UpsertDefaultSharing = class {
1226
1234
  };
1227
1235
  UpsertDefaultSharing = __decorateClass([
1228
1236
  injectable(),
1229
- __decorateParam(0, inject("SharingRepository"))
1237
+ __decorateParam(0, inject("SharingRepository")),
1238
+ __decorateParam(1, inject("AdminRepository"))
1230
1239
  ], UpsertDefaultSharing);
1231
1240
 
1232
1241
  // src/index.ts
@@ -1236,13 +1245,12 @@ var api = {
1236
1245
  delete: (...args) => Context.resolve(DeleteSharing).execute(...args)
1237
1246
  };
1238
1247
  var checkUserAccessLevel = (...args) => Context.resolve(CheckUserAccessLevel).execute(...args);
1239
- var checkAppPermissions = (...args) => Context.resolve(CheckAppPermissions).execute(...args);
1240
- var checkOrgPermissions = (...args) => Context.resolve(CheckOrgPermissions).execute(...args);
1248
+ var checkAppAccess = (...args) => Context.resolve(CheckAppAccess).execute(...args);
1241
1249
  var getOrgTree = (...args) => Context.resolve(GetOrgTree).execute(...args);
1242
1250
  var fromTokenToUser = (...args) => Context.resolve(FromTokenToUser).execute(...args);
1243
1251
  var hasAdminRole = (...args) => Context.resolve(HasAdminRole).execute(...args);
1244
1252
  var upsertDefaultSharing = (...args) => Context.resolve(UpsertDefaultSharing).execute(...args);
1245
1253
 
1246
- export { ACCESS_LEVEL, APP_SHARING_STATUS, ASSET_TYPE, ORGANIZATION_ANONYMOUS, ORGANIZATION_QRVEY, SHARED_ORIGIN, SHARE_TYPE, api, checkAppPermissions, checkOrgPermissions, checkUserAccessLevel, fromTokenToUser, getOrgTree, hasAdminRole, upsertDefaultSharing };
1254
+ export { ACCESS_LEVEL, APP_SHARING_STATUS, ASSET_TYPE, HIERARCHY_SCOPE, ORGANIZATION_ANONYMOUS, ORGANIZATION_QRVEY, SHARED_ORIGIN, SHARE_TYPE, SHARING_MODE, api, checkAppAccess, checkUserAccessLevel, fromTokenToUser, getOrgTree, hasAdminRole, upsertDefaultSharing };
1247
1255
  //# sourceMappingURL=index.mjs.map
1248
1256
  //# sourceMappingURL=index.mjs.map