@alanszp/access-list 12.0.2 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/package.json +4 -7
  2. package/.gitignore +0 -3
  3. package/.npmignore +0 -3
  4. package/node_modules/@types/node/LICENSE +0 -21
  5. package/node_modules/@types/node/README.md +0 -15
  6. package/node_modules/@types/node/assert/strict.d.ts +0 -8
  7. package/node_modules/@types/node/assert.d.ts +0 -996
  8. package/node_modules/@types/node/async_hooks.d.ts +0 -539
  9. package/node_modules/@types/node/buffer.d.ts +0 -2362
  10. package/node_modules/@types/node/child_process.d.ts +0 -1540
  11. package/node_modules/@types/node/cluster.d.ts +0 -432
  12. package/node_modules/@types/node/console.d.ts +0 -415
  13. package/node_modules/@types/node/constants.d.ts +0 -19
  14. package/node_modules/@types/node/crypto.d.ts +0 -4487
  15. package/node_modules/@types/node/dgram.d.ts +0 -596
  16. package/node_modules/@types/node/diagnostics_channel.d.ts +0 -545
  17. package/node_modules/@types/node/dns/promises.d.ts +0 -425
  18. package/node_modules/@types/node/dns.d.ts +0 -809
  19. package/node_modules/@types/node/dom-events.d.ts +0 -122
  20. package/node_modules/@types/node/domain.d.ts +0 -170
  21. package/node_modules/@types/node/events.d.ts +0 -879
  22. package/node_modules/@types/node/fs/promises.d.ts +0 -1239
  23. package/node_modules/@types/node/fs.d.ts +0 -4311
  24. package/node_modules/@types/node/globals.d.ts +0 -411
  25. package/node_modules/@types/node/globals.global.d.ts +0 -1
  26. package/node_modules/@types/node/http.d.ts +0 -1887
  27. package/node_modules/@types/node/http2.d.ts +0 -2382
  28. package/node_modules/@types/node/https.d.ts +0 -550
  29. package/node_modules/@types/node/index.d.ts +0 -88
  30. package/node_modules/@types/node/inspector.d.ts +0 -2747
  31. package/node_modules/@types/node/module.d.ts +0 -315
  32. package/node_modules/@types/node/net.d.ts +0 -949
  33. package/node_modules/@types/node/os.d.ts +0 -478
  34. package/node_modules/@types/node/package.json +0 -229
  35. package/node_modules/@types/node/path.d.ts +0 -191
  36. package/node_modules/@types/node/perf_hooks.d.ts +0 -645
  37. package/node_modules/@types/node/process.d.ts +0 -1561
  38. package/node_modules/@types/node/punycode.d.ts +0 -117
  39. package/node_modules/@types/node/querystring.d.ts +0 -141
  40. package/node_modules/@types/node/readline/promises.d.ts +0 -150
  41. package/node_modules/@types/node/readline.d.ts +0 -539
  42. package/node_modules/@types/node/repl.d.ts +0 -430
  43. package/node_modules/@types/node/stream/consumers.d.ts +0 -12
  44. package/node_modules/@types/node/stream/promises.d.ts +0 -83
  45. package/node_modules/@types/node/stream/web.d.ts +0 -366
  46. package/node_modules/@types/node/stream.d.ts +0 -1701
  47. package/node_modules/@types/node/string_decoder.d.ts +0 -67
  48. package/node_modules/@types/node/test.d.ts +0 -1465
  49. package/node_modules/@types/node/timers/promises.d.ts +0 -93
  50. package/node_modules/@types/node/timers.d.ts +0 -240
  51. package/node_modules/@types/node/tls.d.ts +0 -1210
  52. package/node_modules/@types/node/trace_events.d.ts +0 -182
  53. package/node_modules/@types/node/ts4.8/assert/strict.d.ts +0 -8
  54. package/node_modules/@types/node/ts4.8/assert.d.ts +0 -996
  55. package/node_modules/@types/node/ts4.8/async_hooks.d.ts +0 -539
  56. package/node_modules/@types/node/ts4.8/buffer.d.ts +0 -2362
  57. package/node_modules/@types/node/ts4.8/child_process.d.ts +0 -1540
  58. package/node_modules/@types/node/ts4.8/cluster.d.ts +0 -432
  59. package/node_modules/@types/node/ts4.8/console.d.ts +0 -415
  60. package/node_modules/@types/node/ts4.8/constants.d.ts +0 -19
  61. package/node_modules/@types/node/ts4.8/crypto.d.ts +0 -4487
  62. package/node_modules/@types/node/ts4.8/dgram.d.ts +0 -596
  63. package/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +0 -545
  64. package/node_modules/@types/node/ts4.8/dns/promises.d.ts +0 -425
  65. package/node_modules/@types/node/ts4.8/dns.d.ts +0 -809
  66. package/node_modules/@types/node/ts4.8/dom-events.d.ts +0 -122
  67. package/node_modules/@types/node/ts4.8/domain.d.ts +0 -170
  68. package/node_modules/@types/node/ts4.8/events.d.ts +0 -879
  69. package/node_modules/@types/node/ts4.8/fs/promises.d.ts +0 -1239
  70. package/node_modules/@types/node/ts4.8/fs.d.ts +0 -4311
  71. package/node_modules/@types/node/ts4.8/globals.d.ts +0 -411
  72. package/node_modules/@types/node/ts4.8/globals.global.d.ts +0 -1
  73. package/node_modules/@types/node/ts4.8/http.d.ts +0 -1887
  74. package/node_modules/@types/node/ts4.8/http2.d.ts +0 -2382
  75. package/node_modules/@types/node/ts4.8/https.d.ts +0 -550
  76. package/node_modules/@types/node/ts4.8/index.d.ts +0 -88
  77. package/node_modules/@types/node/ts4.8/inspector.d.ts +0 -2747
  78. package/node_modules/@types/node/ts4.8/module.d.ts +0 -315
  79. package/node_modules/@types/node/ts4.8/net.d.ts +0 -949
  80. package/node_modules/@types/node/ts4.8/os.d.ts +0 -478
  81. package/node_modules/@types/node/ts4.8/path.d.ts +0 -191
  82. package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +0 -645
  83. package/node_modules/@types/node/ts4.8/process.d.ts +0 -1561
  84. package/node_modules/@types/node/ts4.8/punycode.d.ts +0 -117
  85. package/node_modules/@types/node/ts4.8/querystring.d.ts +0 -141
  86. package/node_modules/@types/node/ts4.8/readline/promises.d.ts +0 -150
  87. package/node_modules/@types/node/ts4.8/readline.d.ts +0 -539
  88. package/node_modules/@types/node/ts4.8/repl.d.ts +0 -430
  89. package/node_modules/@types/node/ts4.8/stream/consumers.d.ts +0 -12
  90. package/node_modules/@types/node/ts4.8/stream/promises.d.ts +0 -83
  91. package/node_modules/@types/node/ts4.8/stream/web.d.ts +0 -366
  92. package/node_modules/@types/node/ts4.8/stream.d.ts +0 -1701
  93. package/node_modules/@types/node/ts4.8/string_decoder.d.ts +0 -67
  94. package/node_modules/@types/node/ts4.8/test.d.ts +0 -1465
  95. package/node_modules/@types/node/ts4.8/timers/promises.d.ts +0 -93
  96. package/node_modules/@types/node/ts4.8/timers.d.ts +0 -240
  97. package/node_modules/@types/node/ts4.8/tls.d.ts +0 -1210
  98. package/node_modules/@types/node/ts4.8/trace_events.d.ts +0 -182
  99. package/node_modules/@types/node/ts4.8/tty.d.ts +0 -208
  100. package/node_modules/@types/node/ts4.8/url.d.ts +0 -927
  101. package/node_modules/@types/node/ts4.8/util.d.ts +0 -2183
  102. package/node_modules/@types/node/ts4.8/v8.d.ts +0 -764
  103. package/node_modules/@types/node/ts4.8/vm.d.ts +0 -903
  104. package/node_modules/@types/node/ts4.8/wasi.d.ts +0 -179
  105. package/node_modules/@types/node/ts4.8/worker_threads.d.ts +0 -691
  106. package/node_modules/@types/node/ts4.8/zlib.d.ts +0 -517
  107. package/node_modules/@types/node/tty.d.ts +0 -208
  108. package/node_modules/@types/node/url.d.ts +0 -927
  109. package/node_modules/@types/node/util.d.ts +0 -2183
  110. package/node_modules/@types/node/v8.d.ts +0 -764
  111. package/node_modules/@types/node/vm.d.ts +0 -903
  112. package/node_modules/@types/node/wasi.d.ts +0 -179
  113. package/node_modules/@types/node/worker_threads.d.ts +0 -691
  114. package/node_modules/@types/node/zlib.d.ts +0 -517
  115. package/src/clients/AccessListClient.ts +0 -104
  116. package/src/errors/NoPermissionError.ts +0 -23
  117. package/src/index.ts +0 -4
  118. package/src/inputs/AccessListInput.ts +0 -18
  119. package/src/repositories/accessListRepository.ts +0 -94
@@ -1,94 +0,0 @@
1
- import { getManager, SelectQueryBuilder } from "typeorm";
2
- import { AccessListClient } from "..";
3
-
4
- /**
5
- * Check access to list of employees
6
- * @param segmentReference the segment which wants to know if it has access to the employee
7
- * @param employeeReference list of employees
8
- * @param addFormerEmployees consider left employees
9
- * @returns true if segment reference can access to any of the employees on the list
10
- */
11
- export async function hasAccessToSomeEmployees(
12
- segmentReference: string,
13
- employeeReference: string[],
14
- addFormerEmployees: boolean,
15
- ): Promise<boolean> {
16
- const query = `SELECT bool_or(true) as granted
17
- FROM segments_employee_relation_with_attrition ser
18
- WHERE ser.segment_id = $2 AND ser.employee_id::text = ANY($1)
19
- ${addFormerEmployees ? "" : " AND left_organization_at IS NULL"};`;
20
-
21
- const response = (await getManager().query(query, [
22
- employeeReference,
23
- segmentReference,
24
- ])) as { granted?: boolean }[];
25
-
26
- return response[0]?.granted ?? false;
27
- }
28
-
29
- /**
30
- * Adds accessList filters to a given queryBuilder. Should be called at the end, or at least
31
- * after the first where is set to the queryBuilder.
32
- * @param queryBuilder The query to be filtered with accessList
33
- * @param segmentId The segment from which the accessList is calculated.
34
- * @param fullEmployeeReferenceFieldName The alias and name of the field that has the employee reference
35
- * @returns a query builder with accessList filters
36
- */
37
- export function addFiltersToSelectQuery<T>(
38
- queryBuilder: SelectQueryBuilder<T>,
39
- accessList: AccessListClient,
40
- fullEmployeeReferenceFieldName: string,
41
- segmentParamAlias = "segmentId",
42
- subTableAlias?: string,
43
- segmentReference?: string,
44
- ): SelectQueryBuilder<T> {
45
- if (accessList.hasAccessToAll() && !segmentReference) return queryBuilder;
46
-
47
- let segmentReferenceParam = segmentReference;
48
- if (!segmentReferenceParam) {
49
- segmentReferenceParam = accessList.getSegmentReferenceOrFail();
50
- }
51
-
52
- const subTable = subTableAlias ?? "ser";
53
-
54
- const query = `(SELECT employee_id
55
- FROM public.segments_employee_relation_with_attrition
56
- WHERE segment_id = :${segmentParamAlias}
57
- ${
58
- accessList.shouldAddFormerEmployees()
59
- ? ""
60
- : "AND left_organization_at IS NULL"
61
- })`;
62
-
63
- return queryBuilder.innerJoin(
64
- query,
65
- subTable,
66
- `${subTable}.employee_id::text = ${fullEmployeeReferenceFieldName}`,
67
- {
68
- [segmentParamAlias]: segmentReferenceParam,
69
- },
70
- );
71
- }
72
-
73
- export function getSQLJoinFilters(
74
- accessList: AccessListClient,
75
- fullEmployeeReferenceFieldName: string,
76
- segmentReferenceIndex: string,
77
- subTableAlias?: string,
78
- ): string {
79
- if (!segmentReferenceIndex.includes("$")) {
80
- throw new Error(
81
- "getSQLJoinFilters#segmentReferenceIndex param should be an index",
82
- );
83
- }
84
- const subTable = subTableAlias ?? "ser";
85
-
86
- return `JOIN (SELECT employee_id
87
- FROM public.segments_employee_relation_with_attrition
88
- WHERE segment_id = ${segmentReferenceIndex}
89
- ${
90
- accessList.shouldAddFormerEmployees()
91
- ? ""
92
- : "AND left_organization_at IS NULL"
93
- }) ${subTable} on ${subTable}.employee_id = ${fullEmployeeReferenceFieldName}`;
94
- }