@carbonbox/domain 0.3.3 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/build/carbonbox/shared/domain/authorization/contracts/IAuthorizationPolicy.js +2 -0
  2. package/build/carbonbox/shared/domain/authorization/contracts/IPermissionSpecification.js +2 -0
  3. package/build/carbonbox/shared/domain/authorization/enums/AuthorizationDecision.js +9 -0
  4. package/build/carbonbox/shared/domain/authorization/enums/Permission.js +77 -0
  5. package/build/carbonbox/shared/domain/authorization/value-objects/PermissionSet.js +127 -0
  6. package/build/carbonbox/shared/domain/authorization/value-objects/SecurityContext.js +105 -0
  7. package/build/carbonbox/shared/domain/entities/User.js +158 -2
  8. package/build/carbonbox/shared/domain/exceptions/SecurityContextReconstructionError.js +48 -0
  9. package/build/carbonbox/shared/domain/types/PermissionSet.js +2 -0
  10. package/build/carbonbox/shared/domain/types/PermissionSetPrimitives.js +2 -0
  11. package/build/carbonbox/shared/domain/types/SecurityContext.js +2 -0
  12. package/build/carbonbox/shared/domain/types/SecurityContextPrimitives.js +2 -0
  13. package/build/carbonbox/shared/domain/types/UserPermissionsValue.js +2 -0
  14. package/build/carbonbox/shared/domain/value-objects/UserPermissions.js +617 -0
  15. package/build/carbonbox/stakeholders/carbon-clients/domain/entity/CarbonClient.js +6 -8
  16. package/build/carbonbox/stakeholders/carbon-clients/domain/value-objects/CarbonClientPermissions.js +36 -350
  17. package/build/carbonbox/stakeholders/carbon-coordinators/domain/entity/CarbonCoordinator.js +7 -9
  18. package/build/carbonbox/stakeholders/carbon-coordinators/domain/value-objects/CarbonCoordinatorPermissions.js +39 -290
  19. package/build/carbonbox/stakeholders/carbon-host/domain/entity/CarbonHost.js +4 -25
  20. package/build/carbonbox/stakeholders/carbon-host/domain/value-objects/CarbonHostPermissions.js +63 -134
  21. package/build/carbonbox/stakeholders/carbon-managers/domain/entity/CarbonManager.js +6 -8
  22. package/build/carbonbox/stakeholders/carbon-managers/domain/value-objects/CarbonManagerPermissions.js +11 -315
  23. package/build/carbonbox/stakeholders/shared/domain/entity/Stakeholder.js +5 -0
  24. package/build/carbonbox/stakeholders/shared/domain/types/StakeholderPermissions.js +2 -0
  25. package/build/carbonbox/stakeholders/shared/domain/value-objects/StakeholderPermissions.js +7 -0
  26. package/build/main/index.js +19 -1
  27. package/build/types/carbonbox/shared/domain/authorization/contracts/IAuthorizationPolicy.d.ts +24 -0
  28. package/build/types/carbonbox/shared/domain/authorization/contracts/IAuthorizationPolicy.d.ts.map +1 -0
  29. package/build/types/carbonbox/shared/domain/authorization/contracts/IPermissionSpecification.d.ts +27 -0
  30. package/build/types/carbonbox/shared/domain/authorization/contracts/IPermissionSpecification.d.ts.map +1 -0
  31. package/build/types/carbonbox/shared/domain/authorization/enums/AuthorizationDecision.d.ts +6 -0
  32. package/build/types/carbonbox/shared/domain/authorization/enums/AuthorizationDecision.d.ts.map +1 -0
  33. package/build/types/carbonbox/shared/domain/authorization/enums/Permission.d.ts +64 -0
  34. package/build/types/carbonbox/shared/domain/authorization/enums/Permission.d.ts.map +1 -0
  35. package/build/types/carbonbox/shared/domain/authorization/value-objects/PermissionSet.d.ts +31 -0
  36. package/build/types/carbonbox/shared/domain/authorization/value-objects/PermissionSet.d.ts.map +1 -0
  37. package/build/types/carbonbox/shared/domain/authorization/value-objects/SecurityContext.d.ts +23 -0
  38. package/build/types/carbonbox/shared/domain/authorization/value-objects/SecurityContext.d.ts.map +1 -0
  39. package/build/types/carbonbox/shared/domain/entities/IUser.d.ts +4 -0
  40. package/build/types/carbonbox/shared/domain/entities/IUser.d.ts.map +1 -1
  41. package/build/types/carbonbox/shared/domain/entities/User.d.ts +10 -0
  42. package/build/types/carbonbox/shared/domain/entities/User.d.ts.map +1 -1
  43. package/build/types/carbonbox/shared/domain/exceptions/SecurityContextReconstructionError.d.ts +11 -0
  44. package/build/types/carbonbox/shared/domain/exceptions/SecurityContextReconstructionError.d.ts.map +1 -0
  45. package/build/types/carbonbox/shared/domain/repositories/IUserRepository.d.ts +101 -9
  46. package/build/types/carbonbox/shared/domain/repositories/IUserRepository.d.ts.map +1 -1
  47. package/build/types/carbonbox/shared/domain/types/PermissionSet.d.ts +5 -0
  48. package/build/types/carbonbox/shared/domain/types/PermissionSet.d.ts.map +1 -0
  49. package/build/types/carbonbox/shared/domain/types/PermissionSetPrimitives.d.ts +4 -0
  50. package/build/types/carbonbox/shared/domain/types/PermissionSetPrimitives.d.ts.map +1 -0
  51. package/build/types/carbonbox/shared/domain/types/SecurityContext.d.ts +11 -0
  52. package/build/types/carbonbox/shared/domain/types/SecurityContext.d.ts.map +1 -0
  53. package/build/types/carbonbox/shared/domain/types/SecurityContextPrimitives.d.ts +10 -0
  54. package/build/types/carbonbox/shared/domain/types/SecurityContextPrimitives.d.ts.map +1 -0
  55. package/build/types/carbonbox/shared/domain/types/StakeholderManagementPermissions.d.ts +1 -0
  56. package/build/types/carbonbox/shared/domain/types/StakeholderManagementPermissions.d.ts.map +1 -1
  57. package/build/types/carbonbox/shared/domain/types/StakeholderManagementPermissionsPrimitives.d.ts +1 -0
  58. package/build/types/carbonbox/shared/domain/types/StakeholderManagementPermissionsPrimitives.d.ts.map +1 -1
  59. package/build/types/carbonbox/shared/domain/types/UserPermissionsValue.d.ts +12 -0
  60. package/build/types/carbonbox/shared/domain/types/UserPermissionsValue.d.ts.map +1 -0
  61. package/build/types/carbonbox/shared/domain/types/UserPrimitives.d.ts +2 -0
  62. package/build/types/carbonbox/shared/domain/types/UserPrimitives.d.ts.map +1 -1
  63. package/build/types/carbonbox/shared/domain/types/UserProps.d.ts +2 -0
  64. package/build/types/carbonbox/shared/domain/types/UserProps.d.ts.map +1 -1
  65. package/build/types/carbonbox/shared/domain/value-objects/UserPermissions.d.ts +72 -0
  66. package/build/types/carbonbox/shared/domain/value-objects/UserPermissions.d.ts.map +1 -0
  67. package/build/types/carbonbox/stakeholders/carbon-clients/domain/entity/CarbonClient.d.ts +0 -2
  68. package/build/types/carbonbox/stakeholders/carbon-clients/domain/entity/CarbonClient.d.ts.map +1 -1
  69. package/build/types/carbonbox/stakeholders/carbon-clients/domain/entity/ICarbonClient.d.ts +0 -2
  70. package/build/types/carbonbox/stakeholders/carbon-clients/domain/entity/ICarbonClient.d.ts.map +1 -1
  71. package/build/types/carbonbox/stakeholders/carbon-clients/domain/repository/ICarbonClientRepository.d.ts +51 -6
  72. package/build/types/carbonbox/stakeholders/carbon-clients/domain/repository/ICarbonClientRepository.d.ts.map +1 -1
  73. package/build/types/carbonbox/stakeholders/carbon-clients/domain/types/CarbonClientPrimitives.d.ts +0 -2
  74. package/build/types/carbonbox/stakeholders/carbon-clients/domain/types/CarbonClientPrimitives.d.ts.map +1 -1
  75. package/build/types/carbonbox/stakeholders/carbon-clients/domain/types/CarbonClientProps.d.ts +0 -2
  76. package/build/types/carbonbox/stakeholders/carbon-clients/domain/types/CarbonClientProps.d.ts.map +1 -1
  77. package/build/types/carbonbox/stakeholders/carbon-clients/domain/value-objects/CarbonClientPermissions.d.ts +2 -50
  78. package/build/types/carbonbox/stakeholders/carbon-clients/domain/value-objects/CarbonClientPermissions.d.ts.map +1 -1
  79. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/entity/CarbonCoordinator.d.ts +0 -2
  80. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/entity/CarbonCoordinator.d.ts.map +1 -1
  81. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/entity/ICarbonCoordinator.d.ts +0 -2
  82. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/entity/ICarbonCoordinator.d.ts.map +1 -1
  83. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/repository/ICarbonCoordinatorRepository.d.ts +46 -6
  84. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/repository/ICarbonCoordinatorRepository.d.ts.map +1 -1
  85. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/types/CarbonCoordinatorPrimitives.d.ts +0 -2
  86. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/types/CarbonCoordinatorPrimitives.d.ts.map +1 -1
  87. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/types/CarbonCoordinatorProps.d.ts +0 -2
  88. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/types/CarbonCoordinatorProps.d.ts.map +1 -1
  89. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/value-objects/CarbonCoordinatorPermissions.d.ts +2 -11
  90. package/build/types/carbonbox/stakeholders/carbon-coordinators/domain/value-objects/CarbonCoordinatorPermissions.d.ts.map +1 -1
  91. package/build/types/carbonbox/stakeholders/carbon-host/domain/entity/CarbonHost.d.ts +0 -3
  92. package/build/types/carbonbox/stakeholders/carbon-host/domain/entity/CarbonHost.d.ts.map +1 -1
  93. package/build/types/carbonbox/stakeholders/carbon-host/domain/entity/ICarbonHost.d.ts +0 -2
  94. package/build/types/carbonbox/stakeholders/carbon-host/domain/entity/ICarbonHost.d.ts.map +1 -1
  95. package/build/types/carbonbox/stakeholders/carbon-host/domain/repository/ICarbonHostRepository.d.ts +31 -6
  96. package/build/types/carbonbox/stakeholders/carbon-host/domain/repository/ICarbonHostRepository.d.ts.map +1 -1
  97. package/build/types/carbonbox/stakeholders/carbon-host/domain/types/CarbonHostPrimitives.d.ts +1 -4
  98. package/build/types/carbonbox/stakeholders/carbon-host/domain/types/CarbonHostPrimitives.d.ts.map +1 -1
  99. package/build/types/carbonbox/stakeholders/carbon-host/domain/types/CarbonHostProps.d.ts +1 -4
  100. package/build/types/carbonbox/stakeholders/carbon-host/domain/types/CarbonHostProps.d.ts.map +1 -1
  101. package/build/types/carbonbox/stakeholders/carbon-host/domain/value-objects/CarbonHostPermissions.d.ts +2 -24
  102. package/build/types/carbonbox/stakeholders/carbon-host/domain/value-objects/CarbonHostPermissions.d.ts.map +1 -1
  103. package/build/types/carbonbox/stakeholders/carbon-managers/domain/entity/CarbonManager.d.ts +0 -2
  104. package/build/types/carbonbox/stakeholders/carbon-managers/domain/entity/CarbonManager.d.ts.map +1 -1
  105. package/build/types/carbonbox/stakeholders/carbon-managers/domain/entity/ICarbonManager.d.ts +0 -2
  106. package/build/types/carbonbox/stakeholders/carbon-managers/domain/entity/ICarbonManager.d.ts.map +1 -1
  107. package/build/types/carbonbox/stakeholders/carbon-managers/domain/repository/ICarbonManagerRepository.d.ts +26 -6
  108. package/build/types/carbonbox/stakeholders/carbon-managers/domain/repository/ICarbonManagerRepository.d.ts.map +1 -1
  109. package/build/types/carbonbox/stakeholders/carbon-managers/domain/types/CarbonManagerPrimitives.d.ts +0 -2
  110. package/build/types/carbonbox/stakeholders/carbon-managers/domain/types/CarbonManagerPrimitives.d.ts.map +1 -1
  111. package/build/types/carbonbox/stakeholders/carbon-managers/domain/types/CarbonManagerProps.d.ts +0 -2
  112. package/build/types/carbonbox/stakeholders/carbon-managers/domain/types/CarbonManagerProps.d.ts.map +1 -1
  113. package/build/types/carbonbox/stakeholders/carbon-managers/domain/value-objects/CarbonManagerPermissions.d.ts +2 -11
  114. package/build/types/carbonbox/stakeholders/carbon-managers/domain/value-objects/CarbonManagerPermissions.d.ts.map +1 -1
  115. package/build/types/carbonbox/stakeholders/shared/domain/entity/Stakeholder.d.ts.map +1 -1
  116. package/build/types/carbonbox/stakeholders/shared/domain/repository/IStakeholderRepository.d.ts +31 -10
  117. package/build/types/carbonbox/stakeholders/shared/domain/repository/IStakeholderRepository.d.ts.map +1 -1
  118. package/build/types/carbonbox/stakeholders/shared/domain/types/StakeholderPermissions.d.ts +10 -0
  119. package/build/types/carbonbox/stakeholders/shared/domain/types/StakeholderPermissions.d.ts.map +1 -0
  120. package/build/types/carbonbox/stakeholders/shared/domain/value-objects/StakeholderPermissions.d.ts +4 -0
  121. package/build/types/carbonbox/stakeholders/shared/domain/value-objects/StakeholderPermissions.d.ts.map +1 -0
  122. package/build/types/main/index.d.ts +14 -12
  123. package/build/types/main/index.d.ts.map +1 -1
  124. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthorizationDecision = void 0;
4
+ var AuthorizationDecision;
5
+ (function (AuthorizationDecision) {
6
+ AuthorizationDecision["PERMIT"] = "PERMIT";
7
+ AuthorizationDecision["DENY"] = "DENY";
8
+ AuthorizationDecision["NOT_APPLICABLE"] = "NOT_APPLICABLE";
9
+ })(AuthorizationDecision || (exports.AuthorizationDecision = AuthorizationDecision = {}));
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Permission = void 0;
4
+ var Permission;
5
+ (function (Permission) {
6
+ // System Administration
7
+ Permission["CAN_ACCESS_ALL_MODULES"] = "CAN_ACCESS_ALL_MODULES";
8
+ Permission["CAN_MANAGE_SYSTEM_CONFIGURATION"] = "CAN_MANAGE_SYSTEM_CONFIGURATION";
9
+ // User Management
10
+ Permission["CAN_MANAGE_ALL_USERS"] = "CAN_MANAGE_ALL_USERS";
11
+ Permission["CAN_MANAGE_COMPANIES"] = "CAN_MANAGE_COMPANIES";
12
+ Permission["CAN_ASSIGN_HOST_MANAGERS"] = "CAN_ASSIGN_HOST_MANAGERS";
13
+ Permission["CAN_ASSIGN_COORDINATORS"] = "CAN_ASSIGN_COORDINATORS";
14
+ Permission["CAN_ASSIGN_COMPANIES_TO_HOST_MANAGERS"] = "CAN_ASSIGN_COMPANIES_TO_HOST_MANAGERS";
15
+ Permission["CAN_ASSIGN_COMPANIES_TO_COORDINATORS"] = "CAN_ASSIGN_COMPANIES_TO_COORDINATORS";
16
+ // Carbon Footprint Configuration
17
+ Permission["CAN_MANAGE_CORPORATE_CARBON_FOOTPRINT_CONFIGURATIONS"] = "CAN_MANAGE_CORPORATE_CARBON_FOOTPRINT_CONFIGURATIONS";
18
+ Permission["CAN_MANAGE_CORPORATE_SEGMENT_CONFIGURATIONS"] = "CAN_MANAGE_CORPORATE_SEGMENT_CONFIGURATIONS";
19
+ Permission["CAN_MANAGE_EVENT_CARBON_FOOTPRINT_CONFIGURATIONS"] = "CAN_MANAGE_EVENT_CARBON_FOOTPRINT_CONFIGURATIONS";
20
+ Permission["CAN_MANAGE_EVENT_LIFECYCLE_STAGE_CONFIGURATIONS"] = "CAN_MANAGE_EVENT_LIFECYCLE_STAGE_CONFIGURATIONS";
21
+ Permission["CAN_MANAGE_PRODUCT_CARBON_FOOTPRINT_CONFIGURATIONS"] = "CAN_MANAGE_PRODUCT_CARBON_FOOTPRINT_CONFIGURATIONS";
22
+ Permission["CAN_MANAGE_PRODUCT_SEGMENT_CONFIGURATIONS"] = "CAN_MANAGE_PRODUCT_SEGMENT_CONFIGURATIONS";
23
+ Permission["CAN_MANAGE_PRODUCT_SYSTEM_BOUNDARIES"] = "CAN_MANAGE_PRODUCT_SYSTEM_BOUNDARIES";
24
+ Permission["CAN_MANAGE_INTENSITY_INDICATORS"] = "CAN_MANAGE_INTENSITY_INDICATORS";
25
+ // Activity Data Collection
26
+ Permission["CAN_MANAGE_COLLECTION_FIELDS"] = "CAN_MANAGE_COLLECTION_FIELDS";
27
+ Permission["CAN_MANAGE_DYNAMIC_FORMS"] = "CAN_MANAGE_DYNAMIC_FORMS";
28
+ Permission["CAN_MANAGE_CONDITIONAL_LOGIC"] = "CAN_MANAGE_CONDITIONAL_LOGIC";
29
+ Permission["CAN_MANAGE_CONTEXTUAL_LABELS"] = "CAN_MANAGE_CONTEXTUAL_LABELS";
30
+ Permission["CAN_MANAGE_STAKEHOLDER_ADAPTATIONS"] = "CAN_MANAGE_STAKEHOLDER_ADAPTATIONS";
31
+ Permission["CAN_MANAGE_ACTIVITY_DATA_SUBMISSIONS"] = "CAN_MANAGE_ACTIVITY_DATA_SUBMISSIONS";
32
+ Permission["CAN_APPROVE_ACTIVITY_DATA_SUBMISSIONS"] = "CAN_APPROVE_ACTIVITY_DATA_SUBMISSIONS";
33
+ Permission["CAN_REJECT_ACTIVITY_DATA_SUBMISSIONS"] = "CAN_REJECT_ACTIVITY_DATA_SUBMISSIONS";
34
+ // Emission Calculation Formula
35
+ Permission["CAN_MANAGE_FORMULAS"] = "CAN_MANAGE_FORMULAS";
36
+ Permission["CAN_MANAGE_EMISSION_FACTORS"] = "CAN_MANAGE_EMISSION_FACTORS";
37
+ Permission["CAN_MANAGE_CALCULATION_VARIABLES"] = "CAN_MANAGE_CALCULATION_VARIABLES";
38
+ Permission["CAN_MANAGE_CONSTANTS"] = "CAN_MANAGE_CONSTANTS";
39
+ Permission["CAN_MANAGE_GLOBAL_WARMING_POTENTIALS"] = "CAN_MANAGE_GLOBAL_WARMING_POTENTIALS";
40
+ // Emission Calculation Process
41
+ Permission["CAN_MANAGE_CALCULATION_PROCESSES"] = "CAN_MANAGE_CALCULATION_PROCESSES";
42
+ Permission["CAN_MANAGE_CALCULATION_WORKFLOWS"] = "CAN_MANAGE_CALCULATION_WORKFLOWS";
43
+ Permission["CAN_MANAGE_CALCULATION_JOBS"] = "CAN_MANAGE_CALCULATION_JOBS";
44
+ Permission["CAN_EXECUTE_CALCULATION_JOBS"] = "CAN_EXECUTE_CALCULATION_JOBS";
45
+ Permission["CAN_MONITOR_CALCULATION_PROCESSES"] = "CAN_MONITOR_CALCULATION_PROCESSES";
46
+ Permission["CAN_CANCEL_CALCULATION_JOBS"] = "CAN_CANCEL_CALCULATION_JOBS";
47
+ Permission["CAN_RETRY_FAILED_CALCULATIONS"] = "CAN_RETRY_FAILED_CALCULATIONS";
48
+ // Emission Calculation Results
49
+ Permission["CAN_VIEW_EMISSION_CALCULATION_RESULTS"] = "CAN_VIEW_EMISSION_CALCULATION_RESULTS";
50
+ Permission["CAN_MANAGE_EMISSION_CALCULATION_RESULTS"] = "CAN_MANAGE_EMISSION_CALCULATION_RESULTS";
51
+ Permission["CAN_VIEW_EMISSION_AGGREGATIONS"] = "CAN_VIEW_EMISSION_AGGREGATIONS";
52
+ Permission["CAN_MANAGE_EMISSION_AGGREGATIONS"] = "CAN_MANAGE_EMISSION_AGGREGATIONS";
53
+ Permission["CAN_VIEW_GHG_EMISSION_RESULTS"] = "CAN_VIEW_GHG_EMISSION_RESULTS";
54
+ Permission["CAN_MANAGE_GHG_EMISSION_RESULTS"] = "CAN_MANAGE_GHG_EMISSION_RESULTS";
55
+ Permission["CAN_EXPORT_CALCULATION_RESULTS"] = "CAN_EXPORT_CALCULATION_RESULTS";
56
+ Permission["CAN_GENERATE_EMISSION_REPORTS"] = "CAN_GENERATE_EMISSION_REPORTS";
57
+ // Company Resources
58
+ Permission["CAN_MANAGE_EVENTS"] = "CAN_MANAGE_EVENTS";
59
+ Permission["CAN_MANAGE_EVENT_EDITIONS"] = "CAN_MANAGE_EVENT_EDITIONS";
60
+ Permission["CAN_MANAGE_FACILITIES"] = "CAN_MANAGE_FACILITIES";
61
+ Permission["CAN_MANAGE_PRODUCTS"] = "CAN_MANAGE_PRODUCTS";
62
+ Permission["CAN_VIEW_COMPANY_RESOURCES"] = "CAN_VIEW_COMPANY_RESOURCES";
63
+ // Purchase Management
64
+ Permission["CAN_VIEW_PURCHASES"] = "CAN_VIEW_PURCHASES";
65
+ Permission["CAN_CREATE_PURCHASE_ORDERS"] = "CAN_CREATE_PURCHASE_ORDERS";
66
+ Permission["CAN_UPDATE_PURCHASE_ORDERS"] = "CAN_UPDATE_PURCHASE_ORDERS";
67
+ Permission["CAN_DELETE_PURCHASE_ORDERS"] = "CAN_DELETE_PURCHASE_ORDERS";
68
+ Permission["CAN_MANAGE_PURCHASE_CONTRACTS"] = "CAN_MANAGE_PURCHASE_CONTRACTS";
69
+ Permission["CAN_CONFIGURE_SERVICE_PRICING"] = "CAN_CONFIGURE_SERVICE_PRICING";
70
+ // Stakeholder Management
71
+ Permission["CAN_MANAGE_CARBON_CLIENTS"] = "CAN_MANAGE_CARBON_CLIENTS";
72
+ Permission["CAN_MANAGE_CARBON_COORDINATORS"] = "CAN_MANAGE_CARBON_COORDINATORS";
73
+ Permission["CAN_MANAGE_CARBON_MANAGERS"] = "CAN_MANAGE_CARBON_MANAGERS";
74
+ Permission["CAN_MANAGE_CARBON_HOSTS"] = "CAN_MANAGE_CARBON_HOSTS";
75
+ Permission["CAN_VIEW_STAKEHOLDER_HIERARCHY"] = "CAN_VIEW_STAKEHOLDER_HIERARCHY";
76
+ Permission["CAN_ASSIGN_STAKEHOLDER_ROLES"] = "CAN_ASSIGN_STAKEHOLDER_ROLES";
77
+ })(Permission || (exports.Permission = Permission = {}));
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var _PermissionSet_instances, _PermissionSet_permissions, _PermissionSet_guardAgainstInvalidPermissionSet, _PermissionSet_guardAgainstInvalidPermissions;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.PermissionSet = void 0;
16
+ const InvalidPropertyTypeError_1 = require("../../exceptions/InvalidPropertyTypeError");
17
+ const Permission_1 = require("../enums/Permission");
18
+ const ObjectValueObject_1 = require("../../value-objects/ObjectValueObject");
19
+ class PermissionSet extends ObjectValueObject_1.ObjectValueObject {
20
+ constructor(value, skipDomainValidation) {
21
+ super({ permissions: value.permissions }, skipDomainValidation, PermissionSet.PROPERTY_NAME, 'The provided value must be of type PermissionSet from the domain layer', {
22
+ allowNull: false,
23
+ allowUndefined: false,
24
+ });
25
+ _PermissionSet_instances.add(this);
26
+ _PermissionSet_permissions.set(this, void 0);
27
+ if (skipDomainValidation === false) {
28
+ __classPrivateFieldGet(this, _PermissionSet_instances, "m", _PermissionSet_guardAgainstInvalidPermissionSet).call(this, value);
29
+ }
30
+ __classPrivateFieldSet(this, _PermissionSet_permissions, value.permissions, "f");
31
+ }
32
+ static create(value) {
33
+ return new PermissionSet(value, false);
34
+ }
35
+ static fromPrimitives(primitive) {
36
+ const value = {
37
+ permissions: primitive.permissions,
38
+ };
39
+ return new PermissionSet(value, true);
40
+ }
41
+ static createFromArray(permissions) {
42
+ return PermissionSet.create({ permissions });
43
+ }
44
+ static empty() {
45
+ return PermissionSet.create({ permissions: [] });
46
+ }
47
+ toPrimitives() {
48
+ return {
49
+ permissions: __classPrivateFieldGet(this, _PermissionSet_permissions, "f"),
50
+ };
51
+ }
52
+ get permissions() {
53
+ return __classPrivateFieldGet(this, _PermissionSet_permissions, "f");
54
+ }
55
+ has(permission) {
56
+ return __classPrivateFieldGet(this, _PermissionSet_permissions, "f").includes(permission);
57
+ }
58
+ contains(permission) {
59
+ return this.has(permission);
60
+ }
61
+ hasAny(permissions) {
62
+ return permissions.some((permission) => this.has(permission));
63
+ }
64
+ hasAll(permissions) {
65
+ return permissions.every((permission) => this.has(permission));
66
+ }
67
+ add(permission) {
68
+ if (this.has(permission)) {
69
+ return this;
70
+ }
71
+ return PermissionSet.create({
72
+ permissions: [...__classPrivateFieldGet(this, _PermissionSet_permissions, "f"), permission],
73
+ });
74
+ }
75
+ addAll(permissions) {
76
+ const uniquePermissions = [...new Set([...__classPrivateFieldGet(this, _PermissionSet_permissions, "f"), ...permissions])];
77
+ return PermissionSet.create({ permissions: uniquePermissions });
78
+ }
79
+ remove(permission) {
80
+ return PermissionSet.create({
81
+ permissions: __classPrivateFieldGet(this, _PermissionSet_permissions, "f").filter((p) => p !== permission),
82
+ });
83
+ }
84
+ union(other) {
85
+ return this.addAll(other.permissions);
86
+ }
87
+ intersection(other) {
88
+ const intersectedPermissions = __classPrivateFieldGet(this, _PermissionSet_permissions, "f").filter((permission) => other.has(permission));
89
+ return PermissionSet.create({ permissions: intersectedPermissions });
90
+ }
91
+ difference(other) {
92
+ const diffPermissions = __classPrivateFieldGet(this, _PermissionSet_permissions, "f").filter((permission) => !other.has(permission));
93
+ return PermissionSet.create({ permissions: diffPermissions });
94
+ }
95
+ isEmpty() {
96
+ return __classPrivateFieldGet(this, _PermissionSet_permissions, "f").length === 0;
97
+ }
98
+ size() {
99
+ return __classPrivateFieldGet(this, _PermissionSet_permissions, "f").length;
100
+ }
101
+ toArray() {
102
+ return [...__classPrivateFieldGet(this, _PermissionSet_permissions, "f")];
103
+ }
104
+ equals(other) {
105
+ if (this.size() !== other.size()) {
106
+ return false;
107
+ }
108
+ return __classPrivateFieldGet(this, _PermissionSet_permissions, "f").every((permission) => other.has(permission));
109
+ }
110
+ toString() {
111
+ return `PermissionSet(${__classPrivateFieldGet(this, _PermissionSet_permissions, "f").join(', ')})`;
112
+ }
113
+ }
114
+ exports.PermissionSet = PermissionSet;
115
+ _PermissionSet_permissions = new WeakMap(), _PermissionSet_instances = new WeakSet(), _PermissionSet_guardAgainstInvalidPermissionSet = function _PermissionSet_guardAgainstInvalidPermissionSet(value) {
116
+ __classPrivateFieldGet(this, _PermissionSet_instances, "m", _PermissionSet_guardAgainstInvalidPermissions).call(this, value.permissions);
117
+ }, _PermissionSet_guardAgainstInvalidPermissions = function _PermissionSet_guardAgainstInvalidPermissions(permissions) {
118
+ if (!Array.isArray(permissions)) {
119
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create('permissionSet.permissions', 'Permission[]', typeof permissions);
120
+ }
121
+ permissions.forEach((permission, index) => {
122
+ if (!Object.values(Permission_1.Permission).includes(permission)) {
123
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create(`permissionSet.permissions[${index}]`, 'Permission', typeof permission);
124
+ }
125
+ });
126
+ };
127
+ PermissionSet.PROPERTY_NAME = 'permissionSet';
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var _SecurityContext_instances, _SecurityContext_user, _SecurityContext_resource, _SecurityContext_environment, _SecurityContext_guardAgainstInvalidSecurityContext, _SecurityContext_guardAgainstInvalidUser, _SecurityContext_guardAgainstInvalidEnvironment;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SecurityContext = void 0;
16
+ const InvalidPropertyTypeError_1 = require("../../exceptions/InvalidPropertyTypeError");
17
+ const SecurityContextReconstructionError_1 = require("../../exceptions/SecurityContextReconstructionError");
18
+ const ObjectValueObject_1 = require("../../value-objects/ObjectValueObject");
19
+ const DateTimeFormattingDomainService_1 = require("../../services/DateTimeFormattingDomainService");
20
+ class SecurityContext extends ObjectValueObject_1.ObjectValueObject {
21
+ constructor(value, skipDomainValidation) {
22
+ const primitives = {
23
+ user: value.user.toPrimitives,
24
+ resource: value.resource,
25
+ environment: value.environment,
26
+ };
27
+ super(primitives, skipDomainValidation, SecurityContext.PROPERTY_NAME, 'The provided value must be of type SecurityContext from the domain layer', {
28
+ allowNull: false,
29
+ allowUndefined: false,
30
+ });
31
+ _SecurityContext_instances.add(this);
32
+ _SecurityContext_user.set(this, void 0);
33
+ _SecurityContext_resource.set(this, void 0);
34
+ _SecurityContext_environment.set(this, void 0);
35
+ if (skipDomainValidation === false) {
36
+ __classPrivateFieldGet(this, _SecurityContext_instances, "m", _SecurityContext_guardAgainstInvalidSecurityContext).call(this, value);
37
+ }
38
+ __classPrivateFieldSet(this, _SecurityContext_user, value.user, "f");
39
+ __classPrivateFieldSet(this, _SecurityContext_resource, value.resource, "f");
40
+ __classPrivateFieldSet(this, _SecurityContext_environment, value.environment, "f");
41
+ }
42
+ static create(value) {
43
+ return new SecurityContext(value, false);
44
+ }
45
+ static fromPrimitives(primitive) {
46
+ throw SecurityContextReconstructionError_1.SecurityContextReconstructionError.create(primitive);
47
+ }
48
+ toPrimitives() {
49
+ return {
50
+ user: __classPrivateFieldGet(this, _SecurityContext_user, "f").toPrimitives,
51
+ resource: __classPrivateFieldGet(this, _SecurityContext_resource, "f"),
52
+ environment: __classPrivateFieldGet(this, _SecurityContext_environment, "f"),
53
+ };
54
+ }
55
+ get user() {
56
+ return __classPrivateFieldGet(this, _SecurityContext_user, "f");
57
+ }
58
+ get resource() {
59
+ return __classPrivateFieldGet(this, _SecurityContext_resource, "f");
60
+ }
61
+ get environment() {
62
+ return __classPrivateFieldGet(this, _SecurityContext_environment, "f");
63
+ }
64
+ static fromUser(user, resource = null) {
65
+ return SecurityContext.create({
66
+ user,
67
+ resource,
68
+ environment: {
69
+ timestamp: DateTimeFormattingDomainService_1.DateTimeFormattingDomainService.getCurrentDateTimeString(),
70
+ ipAddress: null,
71
+ },
72
+ });
73
+ }
74
+ withResource(resource) {
75
+ return SecurityContext.create({
76
+ user: __classPrivateFieldGet(this, _SecurityContext_user, "f"),
77
+ resource,
78
+ environment: __classPrivateFieldGet(this, _SecurityContext_environment, "f"),
79
+ });
80
+ }
81
+ equals(other) {
82
+ return (__classPrivateFieldGet(this, _SecurityContext_resource, "f") === __classPrivateFieldGet(other, _SecurityContext_resource, "f")
83
+ && __classPrivateFieldGet(this, _SecurityContext_environment, "f")?.timestamp === __classPrivateFieldGet(other, _SecurityContext_environment, "f")?.timestamp
84
+ && __classPrivateFieldGet(this, _SecurityContext_environment, "f")?.ipAddress === __classPrivateFieldGet(other, _SecurityContext_environment, "f")?.ipAddress);
85
+ }
86
+ }
87
+ exports.SecurityContext = SecurityContext;
88
+ _SecurityContext_user = new WeakMap(), _SecurityContext_resource = new WeakMap(), _SecurityContext_environment = new WeakMap(), _SecurityContext_instances = new WeakSet(), _SecurityContext_guardAgainstInvalidSecurityContext = function _SecurityContext_guardAgainstInvalidSecurityContext(value) {
89
+ __classPrivateFieldGet(this, _SecurityContext_instances, "m", _SecurityContext_guardAgainstInvalidUser).call(this, value.user);
90
+ if (value.environment) {
91
+ __classPrivateFieldGet(this, _SecurityContext_instances, "m", _SecurityContext_guardAgainstInvalidEnvironment).call(this, value.environment);
92
+ }
93
+ }, _SecurityContext_guardAgainstInvalidUser = function _SecurityContext_guardAgainstInvalidUser(user) {
94
+ if (user === null || user === undefined) {
95
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create('securityContext.user', 'User', typeof user);
96
+ }
97
+ }, _SecurityContext_guardAgainstInvalidEnvironment = function _SecurityContext_guardAgainstInvalidEnvironment(environment) {
98
+ if (typeof environment.timestamp !== 'string') {
99
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create('securityContext.environment.timestamp', 'string', typeof environment.timestamp);
100
+ }
101
+ if (!DateTimeFormattingDomainService_1.DateTimeFormattingDomainService.isValidDateTime(environment.timestamp)) {
102
+ throw InvalidPropertyTypeError_1.InvalidPropertyTypeError.create('securityContext.environment.timestamp', 'valid datetime format (DD/MM/YYYY HH:mm:ss)', environment.timestamp);
103
+ }
104
+ };
105
+ SecurityContext.PROPERTY_NAME = 'securityContext';
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
11
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
12
  };
13
- var _User_displayName, _User_avatar, _User_email, _User_password, _User_businessStatus, _User_userType, _User_lastAccessAt;
13
+ var _User_instances, _User_displayName, _User_avatar, _User_email, _User_password, _User_businessStatus, _User_userType, _User_lastAccessAt, _User_permissions, _User_mapPermissionToBoolean;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.User = void 0;
16
16
  const UserAvatar_1 = require("../value-objects/UserAvatar");
@@ -22,12 +22,15 @@ const UserLastAccessAt_1 = require("../value-objects/UserLastAccessAt");
22
22
  const UserPassword_1 = require("../value-objects/UserPassword");
23
23
  const UserType_1 = require("../value-objects/UserType");
24
24
  const AggregateRoot_1 = require("./AggregateRoot");
25
+ const Permission_1 = require("../authorization/enums/Permission");
26
+ const UserPermissions_1 = require("../value-objects/UserPermissions");
25
27
  class User extends AggregateRoot_1.AggregateRoot {
26
28
  constructor(props, skipDomainValidation) {
27
29
  const id = skipDomainValidation
28
30
  ? UserId_1.UserId.fromPrimitives(props.id).toPrimitives()
29
31
  : UserId_1.UserId.create(props.id).toPrimitives();
30
32
  super({ id }, skipDomainValidation);
33
+ _User_instances.add(this);
31
34
  _User_displayName.set(this, void 0);
32
35
  _User_avatar.set(this, void 0);
33
36
  _User_email.set(this, void 0);
@@ -35,6 +38,7 @@ class User extends AggregateRoot_1.AggregateRoot {
35
38
  _User_businessStatus.set(this, void 0);
36
39
  _User_userType.set(this, void 0);
37
40
  _User_lastAccessAt.set(this, void 0);
41
+ _User_permissions.set(this, void 0);
38
42
  if (skipDomainValidation === false) {
39
43
  // Initialize with domain validation
40
44
  __classPrivateFieldSet(this, _User_displayName, UserDisplayName_1.UserDisplayName.create(props.displayName), "f");
@@ -44,6 +48,7 @@ class User extends AggregateRoot_1.AggregateRoot {
44
48
  __classPrivateFieldSet(this, _User_businessStatus, UserBusinessStatus_1.UserBusinessStatus.create(props.businessStatus), "f");
45
49
  __classPrivateFieldSet(this, _User_userType, UserType_1.UserType.create(props.userType), "f");
46
50
  __classPrivateFieldSet(this, _User_lastAccessAt, UserLastAccessAt_1.UserLastAccessAt.create(props.lastAccessAt), "f");
51
+ __classPrivateFieldSet(this, _User_permissions, UserPermissions_1.UserPermissions.create(props.permissions), "f");
47
52
  }
48
53
  else {
49
54
  // Initialize from primitives (no domain validation)
@@ -54,6 +59,7 @@ class User extends AggregateRoot_1.AggregateRoot {
54
59
  __classPrivateFieldSet(this, _User_businessStatus, UserBusinessStatus_1.UserBusinessStatus.fromPrimitives(props.businessStatus), "f");
55
60
  __classPrivateFieldSet(this, _User_userType, UserType_1.UserType.fromPrimitives(props.userType), "f");
56
61
  __classPrivateFieldSet(this, _User_lastAccessAt, UserLastAccessAt_1.UserLastAccessAt.fromPrimitives(props.lastAccessAt), "f");
62
+ __classPrivateFieldSet(this, _User_permissions, UserPermissions_1.UserPermissions.fromPrimitives(props.permissions), "f");
57
63
  }
58
64
  }
59
65
  get displayName() {
@@ -77,6 +83,156 @@ class User extends AggregateRoot_1.AggregateRoot {
77
83
  get lastAccessAt() {
78
84
  return __classPrivateFieldGet(this, _User_lastAccessAt, "f");
79
85
  }
86
+ get permissions() {
87
+ return __classPrivateFieldGet(this, _User_permissions, "f");
88
+ }
89
+ /**
90
+ * Verifica si el usuario tiene un permiso específico.
91
+ * Mapea los enum Permission a las propiedades boolean del sistema existente.
92
+ * @param permission - El permiso a verificar
93
+ * @returns true si el usuario tiene el permiso, false en caso contrario
94
+ */
95
+ hasPermission(permission) {
96
+ return __classPrivateFieldGet(this, _User_instances, "m", _User_mapPermissionToBoolean).call(this, permission);
97
+ }
80
98
  }
81
99
  exports.User = User;
82
- _User_displayName = new WeakMap(), _User_avatar = new WeakMap(), _User_email = new WeakMap(), _User_password = new WeakMap(), _User_businessStatus = new WeakMap(), _User_userType = new WeakMap(), _User_lastAccessAt = new WeakMap();
100
+ _User_displayName = new WeakMap(), _User_avatar = new WeakMap(), _User_email = new WeakMap(), _User_password = new WeakMap(), _User_businessStatus = new WeakMap(), _User_userType = new WeakMap(), _User_lastAccessAt = new WeakMap(), _User_permissions = new WeakMap(), _User_instances = new WeakSet(), _User_mapPermissionToBoolean = function _User_mapPermissionToBoolean(permission) {
101
+ const permissions = __classPrivateFieldGet(this, _User_permissions, "f");
102
+ switch (permission) {
103
+ // System Administration
104
+ case Permission_1.Permission.CAN_ACCESS_ALL_MODULES:
105
+ return permissions.canAccessAllModules ?? false;
106
+ case Permission_1.Permission.CAN_MANAGE_SYSTEM_CONFIGURATION:
107
+ return permissions.canManageSystemConfiguration ?? false;
108
+ // User Management
109
+ case Permission_1.Permission.CAN_MANAGE_ALL_USERS:
110
+ return permissions.canManageAllUsers ?? false;
111
+ case Permission_1.Permission.CAN_MANAGE_COMPANIES:
112
+ return permissions.canManageCompanies ?? false;
113
+ case Permission_1.Permission.CAN_ASSIGN_HOST_MANAGERS:
114
+ return permissions.canAssignHostManagers ?? false;
115
+ case Permission_1.Permission.CAN_ASSIGN_COORDINATORS:
116
+ return permissions.canAssignCoordinators ?? false;
117
+ case Permission_1.Permission.CAN_ASSIGN_COMPANIES_TO_HOST_MANAGERS:
118
+ return permissions.canAssignCompaniesToHostManagers ?? false;
119
+ case Permission_1.Permission.CAN_ASSIGN_COMPANIES_TO_COORDINATORS:
120
+ return permissions.canAssignCompaniesToCoordinators ?? false;
121
+ // Carbon Footprint Configuration
122
+ case Permission_1.Permission.CAN_MANAGE_CORPORATE_CARBON_FOOTPRINT_CONFIGURATIONS:
123
+ return permissions.canManageCorporateCarbonFootprintConfigurations ?? false;
124
+ case Permission_1.Permission.CAN_MANAGE_CORPORATE_SEGMENT_CONFIGURATIONS:
125
+ return permissions.canManageCorporateSegmentConfigurations ?? false;
126
+ case Permission_1.Permission.CAN_MANAGE_EVENT_CARBON_FOOTPRINT_CONFIGURATIONS:
127
+ return permissions.canManageEventCarbonFootprintConfigurations ?? false;
128
+ case Permission_1.Permission.CAN_MANAGE_EVENT_LIFECYCLE_STAGE_CONFIGURATIONS:
129
+ return permissions.canManageEventLifecycleStageConfigurations ?? false;
130
+ case Permission_1.Permission.CAN_MANAGE_PRODUCT_CARBON_FOOTPRINT_CONFIGURATIONS:
131
+ return permissions.canManageProductCarbonFootprintConfigurations ?? false;
132
+ case Permission_1.Permission.CAN_MANAGE_PRODUCT_SEGMENT_CONFIGURATIONS:
133
+ return permissions.canManageProductSegmentConfigurations ?? false;
134
+ case Permission_1.Permission.CAN_MANAGE_PRODUCT_SYSTEM_BOUNDARIES:
135
+ return permissions.canManageProductSystemBoundaries ?? false;
136
+ case Permission_1.Permission.CAN_MANAGE_INTENSITY_INDICATORS:
137
+ return permissions.canManageIntensityIndicators ?? false;
138
+ // Activity Data Collection
139
+ case Permission_1.Permission.CAN_MANAGE_COLLECTION_FIELDS:
140
+ return permissions.canManageCollectionFields ?? false;
141
+ case Permission_1.Permission.CAN_MANAGE_DYNAMIC_FORMS:
142
+ return permissions.canManageDynamicForms ?? false;
143
+ case Permission_1.Permission.CAN_MANAGE_CONDITIONAL_LOGIC:
144
+ return permissions.canManageConditionalLogic ?? false;
145
+ case Permission_1.Permission.CAN_MANAGE_CONTEXTUAL_LABELS:
146
+ return permissions.canManageContextualLabels ?? false;
147
+ case Permission_1.Permission.CAN_MANAGE_STAKEHOLDER_ADAPTATIONS:
148
+ return permissions.canManageStakeholderAdaptations ?? false;
149
+ case Permission_1.Permission.CAN_MANAGE_ACTIVITY_DATA_SUBMISSIONS:
150
+ return permissions.canManageActivityDataSubmissions ?? false;
151
+ case Permission_1.Permission.CAN_APPROVE_ACTIVITY_DATA_SUBMISSIONS:
152
+ return permissions.canApproveActivityDataSubmissions ?? false;
153
+ case Permission_1.Permission.CAN_REJECT_ACTIVITY_DATA_SUBMISSIONS:
154
+ return permissions.canRejectActivityDataSubmissions ?? false;
155
+ // Emission Calculation Formula
156
+ case Permission_1.Permission.CAN_MANAGE_FORMULAS:
157
+ return permissions.canManageFormulas ?? false;
158
+ case Permission_1.Permission.CAN_MANAGE_EMISSION_FACTORS:
159
+ return permissions.canManageEmissionFactors ?? false;
160
+ case Permission_1.Permission.CAN_MANAGE_CALCULATION_VARIABLES:
161
+ return permissions.canManageCalculationVariables ?? false;
162
+ case Permission_1.Permission.CAN_MANAGE_CONSTANTS:
163
+ return permissions.canManageConstants ?? false;
164
+ case Permission_1.Permission.CAN_MANAGE_GLOBAL_WARMING_POTENTIALS:
165
+ return permissions.canManageGlobalWarmingPotentials ?? false;
166
+ // Emission Calculation Process
167
+ case Permission_1.Permission.CAN_MANAGE_CALCULATION_PROCESSES:
168
+ return permissions.canManageCalculationProcesses ?? false;
169
+ case Permission_1.Permission.CAN_MANAGE_CALCULATION_WORKFLOWS:
170
+ return permissions.canManageCalculationWorkflows ?? false;
171
+ case Permission_1.Permission.CAN_MANAGE_CALCULATION_JOBS:
172
+ return permissions.canManageCalculationJobs ?? false;
173
+ case Permission_1.Permission.CAN_EXECUTE_CALCULATION_JOBS:
174
+ return permissions.canExecuteCalculationJobs ?? false;
175
+ case Permission_1.Permission.CAN_MONITOR_CALCULATION_PROCESSES:
176
+ return permissions.canMonitorCalculationProcesses ?? false;
177
+ case Permission_1.Permission.CAN_CANCEL_CALCULATION_JOBS:
178
+ return permissions.canCancelCalculationJobs ?? false;
179
+ case Permission_1.Permission.CAN_RETRY_FAILED_CALCULATIONS:
180
+ return permissions.canRetryFailedCalculations ?? false;
181
+ // Emission Calculation Results
182
+ case Permission_1.Permission.CAN_VIEW_EMISSION_CALCULATION_RESULTS:
183
+ return permissions.canViewEmissionCalculationResults ?? false;
184
+ case Permission_1.Permission.CAN_MANAGE_EMISSION_CALCULATION_RESULTS:
185
+ return permissions.canManageEmissionCalculationResults ?? false;
186
+ case Permission_1.Permission.CAN_VIEW_EMISSION_AGGREGATIONS:
187
+ return permissions.canViewEmissionAggregations ?? false;
188
+ case Permission_1.Permission.CAN_MANAGE_EMISSION_AGGREGATIONS:
189
+ return permissions.canManageEmissionAggregations ?? false;
190
+ case Permission_1.Permission.CAN_VIEW_GHG_EMISSION_RESULTS:
191
+ return permissions.canViewGHGEmissionResults ?? false;
192
+ case Permission_1.Permission.CAN_MANAGE_GHG_EMISSION_RESULTS:
193
+ return permissions.canManageGHGEmissionResults ?? false;
194
+ case Permission_1.Permission.CAN_EXPORT_CALCULATION_RESULTS:
195
+ return permissions.canExportCalculationResults ?? false;
196
+ case Permission_1.Permission.CAN_GENERATE_EMISSION_REPORTS:
197
+ return permissions.canGenerateEmissionReports ?? false;
198
+ // Company Resources
199
+ case Permission_1.Permission.CAN_MANAGE_EVENTS:
200
+ return permissions.canManageEvents ?? false;
201
+ case Permission_1.Permission.CAN_MANAGE_EVENT_EDITIONS:
202
+ return permissions.canManageEventEditions ?? false;
203
+ case Permission_1.Permission.CAN_MANAGE_FACILITIES:
204
+ return permissions.canManageFacilities ?? false;
205
+ case Permission_1.Permission.CAN_MANAGE_PRODUCTS:
206
+ return permissions.canManageProducts ?? false;
207
+ case Permission_1.Permission.CAN_VIEW_COMPANY_RESOURCES:
208
+ return permissions.canViewCompanyResources ?? false;
209
+ // Purchase Management
210
+ case Permission_1.Permission.CAN_VIEW_PURCHASES:
211
+ return permissions.canViewPurchases ?? false;
212
+ case Permission_1.Permission.CAN_CREATE_PURCHASE_ORDERS:
213
+ return permissions.canCreatePurchaseOrders ?? false;
214
+ case Permission_1.Permission.CAN_UPDATE_PURCHASE_ORDERS:
215
+ return permissions.canUpdatePurchaseOrders ?? false;
216
+ case Permission_1.Permission.CAN_DELETE_PURCHASE_ORDERS:
217
+ return permissions.canDeletePurchaseOrders ?? false;
218
+ case Permission_1.Permission.CAN_MANAGE_PURCHASE_CONTRACTS:
219
+ return permissions.canManagePurchaseContracts ?? false;
220
+ case Permission_1.Permission.CAN_CONFIGURE_SERVICE_PRICING:
221
+ return permissions.canConfigureServicePricing ?? false;
222
+ // Stakeholder Management
223
+ case Permission_1.Permission.CAN_MANAGE_CARBON_CLIENTS:
224
+ return permissions.canManageCarbonClients ?? false;
225
+ case Permission_1.Permission.CAN_MANAGE_CARBON_COORDINATORS:
226
+ return permissions.canManageCarbonCoordinators ?? false;
227
+ case Permission_1.Permission.CAN_MANAGE_CARBON_MANAGERS:
228
+ return permissions.canManageCarbonManagers ?? false;
229
+ case Permission_1.Permission.CAN_MANAGE_CARBON_HOSTS:
230
+ return permissions.canManageCarbonHosts ?? false;
231
+ case Permission_1.Permission.CAN_VIEW_STAKEHOLDER_HIERARCHY:
232
+ return permissions.canViewStakeholderHierarchy ?? false;
233
+ case Permission_1.Permission.CAN_ASSIGN_STAKEHOLDER_ROLES:
234
+ return permissions.canAssignStakeholderRoles ?? false;
235
+ default:
236
+ return false;
237
+ }
238
+ };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SecurityContextReconstructionError = void 0;
4
+ const RootError_1 = require("./RootError");
5
+ class SecurityContextReconstructionError extends RootError_1.RootError {
6
+ constructor(primitives) {
7
+ const message = 'SecurityContext.fromPrimitives() is not supported. '
8
+ + 'User is an abstract class and cannot be reconstructed without knowing the specific User type '
9
+ + '(CarbonHost, CarbonManager, CarbonCoordinator, CarbonClient). '
10
+ + 'Use SecurityContext.create() or SecurityContext.fromUser() instead. '
11
+ + 'User entities must be constructed with their specific factory methods.';
12
+ super(message);
13
+ this.name = 'SecurityContextReconstructionError';
14
+ this.primitives = primitives;
15
+ }
16
+ static create(primitives) {
17
+ return new SecurityContextReconstructionError(primitives);
18
+ }
19
+ logError() {
20
+ const debugInfo = {
21
+ userType: this.primitives.user?.userType || 'unknown',
22
+ userId: this.primitives.user?.id || 'unknown',
23
+ userEmail: this.primitives.user?.email?.value || 'unknown',
24
+ hasResource: this.primitives.resource !== null && this.primitives.resource !== undefined,
25
+ hasEnvironment: this.primitives.environment !== null && this.primitives.environment !== undefined,
26
+ environmentTimestamp: this.primitives.environment?.timestamp || 'unknown',
27
+ environmentIpAddress: this.primitives.environment?.ipAddress || 'unknown',
28
+ };
29
+ return `${this.name}: ${this.message}\n`
30
+ + `Debug Info: ${JSON.stringify(debugInfo, null, 2)}\n`
31
+ + `Full primitives: ${JSON.stringify(this.primitives, null, 2)}`;
32
+ }
33
+ getReceivedPrimitives() {
34
+ return this.primitives;
35
+ }
36
+ getDebugInfo() {
37
+ return {
38
+ userType: this.primitives.user?.userType || 'unknown',
39
+ userId: this.primitives.user?.id || 'unknown',
40
+ userEmail: this.primitives.user?.email?.value || 'unknown',
41
+ hasResource: this.primitives.resource !== null && this.primitives.resource !== undefined,
42
+ hasEnvironment: this.primitives.environment !== null && this.primitives.environment !== undefined,
43
+ environmentTimestamp: this.primitives.environment?.timestamp || 'unknown',
44
+ environmentIpAddress: this.primitives.environment?.ipAddress || 'unknown',
45
+ };
46
+ }
47
+ }
48
+ exports.SecurityContextReconstructionError = SecurityContextReconstructionError;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });