@rockster/core 0.0.4 → 0.1.1

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 (318) hide show
  1. package/access/access.module.js +3 -7
  2. package/access/access.module.js.map +1 -1
  3. package/access/constants.d.ts +2 -0
  4. package/access/constants.js +6 -0
  5. package/access/constants.js.map +1 -0
  6. package/access/controllers/controllers.d.ts +2 -1
  7. package/access/controllers/controllers.js +3 -1
  8. package/access/controllers/controllers.js.map +1 -1
  9. package/access/controllers/scope-access-profile.controller.d.ts +17 -0
  10. package/access/controllers/scope-access-profile.controller.js +111 -0
  11. package/access/controllers/scope-access-profile.controller.js.map +1 -0
  12. package/access/controllers/scope-group-user.controller.d.ts +11 -4
  13. package/access/controllers/scope-group-user.controller.js +57 -9
  14. package/access/controllers/scope-group-user.controller.js.map +1 -1
  15. package/access/controllers/scope-group.controller.d.ts +8 -5
  16. package/access/controllers/scope-group.controller.js +66 -12
  17. package/access/controllers/scope-group.controller.js.map +1 -1
  18. package/access/controllers/scope-owner.controller.d.ts +3 -2
  19. package/access/controllers/scope-owner.controller.js +18 -4
  20. package/access/controllers/scope-owner.controller.js.map +1 -1
  21. package/access/controllers/scope-user.controller.d.ts +2 -2
  22. package/access/controllers/scope-user.controller.js +19 -5
  23. package/access/controllers/scope-user.controller.js.map +1 -1
  24. package/access/decorators/context-params.decorator.d.ts +2 -0
  25. package/access/decorators/context-params.decorator.js +13 -0
  26. package/access/decorators/context-params.decorator.js.map +1 -0
  27. package/access/decorators/index.d.ts +2 -0
  28. package/access/decorators/index.js +19 -0
  29. package/access/decorators/index.js.map +1 -0
  30. package/access/decorators/scope-context-id-resolver.decorator.d.ts +10 -0
  31. package/access/decorators/scope-context-id-resolver.decorator.js +22 -0
  32. package/access/decorators/scope-context-id-resolver.decorator.js.map +1 -0
  33. package/access/entities/entities.d.ts +3 -1
  34. package/access/entities/entities.js +4 -0
  35. package/access/entities/entities.js.map +1 -1
  36. package/access/entities/index.d.ts +2 -0
  37. package/access/entities/index.js +2 -0
  38. package/access/entities/index.js.map +1 -1
  39. package/access/entities/scope-access-profile-key.d.ts +6 -0
  40. package/access/entities/scope-access-profile-key.js +40 -0
  41. package/access/entities/scope-access-profile-key.js.map +1 -0
  42. package/access/entities/scope-access-profile.d.ts +6 -0
  43. package/access/entities/scope-access-profile.js +37 -0
  44. package/access/entities/scope-access-profile.js.map +1 -0
  45. package/access/entities/scope-group.d.ts +3 -0
  46. package/access/entities/scope-group.js +16 -0
  47. package/access/entities/scope-group.js.map +1 -1
  48. package/access/functions/assert-context-admin-access.d.ts +15 -0
  49. package/access/functions/assert-context-admin-access.js +62 -0
  50. package/access/functions/assert-context-admin-access.js.map +1 -0
  51. package/access/functions/assert-master-or-owner.d.ts +9 -0
  52. package/access/functions/assert-master-or-owner.js +40 -0
  53. package/access/functions/assert-master-or-owner.js.map +1 -0
  54. package/access/functions/assert-scope-action-access.d.ts +32 -0
  55. package/access/functions/assert-scope-action-access.js +189 -0
  56. package/access/functions/assert-scope-action-access.js.map +1 -0
  57. package/access/functions/build-scope-resolver-initial-data.d.ts +4 -0
  58. package/access/functions/build-scope-resolver-initial-data.js +17 -0
  59. package/access/functions/build-scope-resolver-initial-data.js.map +1 -0
  60. package/access/functions/describe-action-scope.d.ts +9 -0
  61. package/access/functions/describe-action-scope.js +27 -0
  62. package/access/functions/describe-action-scope.js.map +1 -0
  63. package/access/functions/index.d.ts +5 -0
  64. package/access/functions/index.js +5 -0
  65. package/access/functions/index.js.map +1 -1
  66. package/access/functions/init-scope-service-executors.d.ts +3 -0
  67. package/access/functions/init-scope-service-executors.js +38 -0
  68. package/access/functions/init-scope-service-executors.js.map +1 -0
  69. package/access/functions/normalize-scope-keys.d.ts +4 -0
  70. package/access/functions/normalize-scope-keys.js +17 -0
  71. package/access/functions/normalize-scope-keys.js.map +1 -0
  72. package/access/functions/register-scope.d.ts +16 -5
  73. package/access/functions/register-scope.js +57 -45
  74. package/access/functions/register-scope.js.map +1 -1
  75. package/access/functions/resolve-scope-context-id.d.ts +9 -0
  76. package/access/functions/resolve-scope-context-id.js +71 -0
  77. package/access/functions/resolve-scope-context-id.js.map +1 -0
  78. package/access/functions/warn-if-public.d.ts +12 -0
  79. package/access/functions/warn-if-public.js +20 -0
  80. package/access/functions/warn-if-public.js.map +1 -0
  81. package/access/index.d.ts +2 -0
  82. package/access/index.js +2 -0
  83. package/access/index.js.map +1 -1
  84. package/access/interfaces/index.d.ts +1 -0
  85. package/access/interfaces/index.js +1 -0
  86. package/access/interfaces/index.js.map +1 -1
  87. package/access/interfaces/resolve-scope-context-id.d.ts +21 -0
  88. package/access/interfaces/resolve-scope-context-id.js +3 -0
  89. package/access/interfaces/resolve-scope-context-id.js.map +1 -0
  90. package/access/interfaces/scope-service-registry.d.ts +16 -1
  91. package/access/interfaces/scope-service.d.ts +6 -7
  92. package/access/models/scope-access-profile-keys-update.d.ts +5 -0
  93. package/access/models/scope-access-profile-keys-update.js +27 -0
  94. package/access/models/scope-access-profile-keys-update.js.map +1 -0
  95. package/access/models/scope-group-apply-access-profile.d.ts +6 -0
  96. package/access/models/scope-group-apply-access-profile.js +32 -0
  97. package/access/models/scope-group-apply-access-profile.js.map +1 -0
  98. package/access/models/scope-user-mapped.d.ts +1 -0
  99. package/access/models/scope-user-mapped.js +6 -0
  100. package/access/models/scope-user-mapped.js.map +1 -1
  101. package/access/models/scope-user.js +4 -2
  102. package/access/models/scope-user.js.map +1 -1
  103. package/access/queries/scope-access-profile.query.d.ts +1 -0
  104. package/access/queries/scope-access-profile.query.js +10 -0
  105. package/access/queries/scope-access-profile.query.js.map +1 -0
  106. package/access/queries/scope-group.query.js +9 -2
  107. package/access/queries/scope-group.query.js.map +1 -1
  108. package/access/services/index.d.ts +1 -0
  109. package/access/services/index.js +1 -0
  110. package/access/services/index.js.map +1 -1
  111. package/access/services/scope-access-profile.service.d.ts +13 -0
  112. package/access/services/scope-access-profile.service.js +75 -0
  113. package/access/services/scope-access-profile.service.js.map +1 -0
  114. package/access/services/scope-access.service.js +4 -2
  115. package/access/services/scope-access.service.js.map +1 -1
  116. package/access/services/scope-group-user.service.js +2 -2
  117. package/access/services/scope-group-user.service.js.map +1 -1
  118. package/access/services/scope-group.service.d.ts +10 -0
  119. package/access/services/scope-group.service.js +38 -1
  120. package/access/services/scope-group.service.js.map +1 -1
  121. package/access/services/scope-owner.service.d.ts +3 -0
  122. package/access/services/scope-owner.service.js +26 -1
  123. package/access/services/scope-owner.service.js.map +1 -1
  124. package/command/services/post-action-builder.js +19 -17
  125. package/command/services/post-action-builder.js.map +1 -1
  126. package/command/services/remove-action-builder.js +30 -22
  127. package/command/services/remove-action-builder.js.map +1 -1
  128. package/controllers/interfaces/controller-property.d.ts +7 -1
  129. package/controllers/services/default-action-builder.js +12 -30
  130. package/controllers/services/default-action-builder.js.map +1 -1
  131. package/controllers/services/restful-action-builder.js +25 -1
  132. package/controllers/services/restful-action-builder.js.map +1 -1
  133. package/core/contexts/request-context.d.ts +5 -0
  134. package/core/contexts/request-context.js +6 -0
  135. package/core/contexts/request-context.js.map +1 -0
  136. package/core/core.controller.js +6 -1
  137. package/core/core.controller.js.map +1 -1
  138. package/core/interfaces/action-docs.d.ts +15 -0
  139. package/core/interfaces/request-context.d.ts +5 -0
  140. package/core/services/request-router.js +2 -1
  141. package/core/services/request-router.js.map +1 -1
  142. package/database/database.controller.d.ts +1 -3
  143. package/database/database.controller.js +1 -5
  144. package/database/database.controller.js.map +1 -1
  145. package/database/decorators/protect-entity.decorator.d.ts +1 -0
  146. package/database/decorators/protect-entity.decorator.js +2 -3
  147. package/database/decorators/protect-entity.decorator.js.map +1 -1
  148. package/database/decorators/protected-entity.decorator.d.ts +1 -0
  149. package/database/decorators/protected-entity.decorator.js +2 -16
  150. package/database/decorators/protected-entity.decorator.js.map +1 -1
  151. package/database/functions/inject-repository-handle.js +4 -3
  152. package/database/functions/inject-repository-handle.js.map +1 -1
  153. package/database/interfaces/entity-object.d.ts +0 -6
  154. package/database/interfaces/index.d.ts +0 -1
  155. package/database/interfaces/index.js +0 -1
  156. package/database/interfaces/index.js.map +1 -1
  157. package/database/interfaces/repository.d.ts +8 -8
  158. package/docs/docs.module.js +3 -1
  159. package/docs/docs.module.js.map +1 -1
  160. package/docs/migrations/1747584000000-CreateDocsTables.d.ts +5 -0
  161. package/docs/migrations/1747584000000-CreateDocsTables.js +90 -0
  162. package/docs/migrations/1747584000000-CreateDocsTables.js.map +1 -0
  163. package/docs/migrations/migrations.d.ts +2 -0
  164. package/docs/migrations/migrations.js +8 -0
  165. package/docs/migrations/migrations.js.map +1 -0
  166. package/global.d.ts +2 -0
  167. package/global.js +1 -0
  168. package/global.js.map +1 -1
  169. package/index.d.ts +2 -1
  170. package/index.js +2 -1
  171. package/index.js.map +1 -1
  172. package/jobs/jobs.controller.d.ts +2 -0
  173. package/jobs/jobs.controller.js +20 -16
  174. package/jobs/jobs.controller.js.map +1 -1
  175. package/package.json +70 -70
  176. package/query/functions/add-join.js +2 -13
  177. package/query/functions/add-join.js.map +1 -1
  178. package/query/functions/create-query-builder.js +0 -10
  179. package/query/functions/create-query-builder.js.map +1 -1
  180. package/query/functions/execute-query.js +34 -0
  181. package/query/functions/execute-query.js.map +1 -1
  182. package/query/functions/load-properties.js +73 -5
  183. package/query/functions/load-properties.js.map +1 -1
  184. package/query/services/query-action-builder.js +12 -18
  185. package/query/services/query-action-builder.js.map +1 -1
  186. package/remote-logs/dtos/index.d.ts +2 -0
  187. package/remote-logs/dtos/index.js +19 -0
  188. package/remote-logs/dtos/index.js.map +1 -0
  189. package/remote-logs/dtos/remote-log-hooks.dto.d.ts +72 -0
  190. package/remote-logs/dtos/remote-log-hooks.dto.js +280 -0
  191. package/remote-logs/dtos/remote-log-hooks.dto.js.map +1 -0
  192. package/remote-logs/dtos/remote-log-search.dto.d.ts +34 -0
  193. package/remote-logs/dtos/remote-log-search.dto.js +146 -0
  194. package/remote-logs/dtos/remote-log-search.dto.js.map +1 -0
  195. package/remote-logs/environment.d.ts +4 -0
  196. package/remote-logs/environment.js +5 -0
  197. package/remote-logs/environment.js.map +1 -0
  198. package/remote-logs/index.d.ts +3 -0
  199. package/remote-logs/index.js +20 -0
  200. package/remote-logs/index.js.map +1 -0
  201. package/remote-logs/interfaces/index.d.ts +1 -0
  202. package/remote-logs/interfaces/index.js +18 -0
  203. package/remote-logs/interfaces/index.js.map +1 -0
  204. package/remote-logs/interfaces/remote-logs-module-options.d.ts +8 -0
  205. package/remote-logs/interfaces/remote-logs-module-options.js +3 -0
  206. package/remote-logs/interfaces/remote-logs-module-options.js.map +1 -0
  207. package/remote-logs/remote-logs-hooks.controller.d.ts +60 -0
  208. package/remote-logs/remote-logs-hooks.controller.js +331 -0
  209. package/remote-logs/remote-logs-hooks.controller.js.map +1 -0
  210. package/remote-logs/remote-logs.controller.d.ts +8 -0
  211. package/remote-logs/remote-logs.controller.js +41 -0
  212. package/remote-logs/remote-logs.controller.js.map +1 -0
  213. package/remote-logs/remote-logs.module.d.ts +12 -0
  214. package/remote-logs/remote-logs.module.js +107 -0
  215. package/remote-logs/remote-logs.module.js.map +1 -0
  216. package/remote-logs/services/opensearch.service.d.ts +13 -0
  217. package/remote-logs/services/opensearch.service.js +167 -0
  218. package/remote-logs/services/opensearch.service.js.map +1 -0
  219. package/security/auth.controller.js +4 -4
  220. package/security/auth.controller.js.map +1 -1
  221. package/security/functions/add-protected.d.ts +2 -2
  222. package/security/functions/add-protected.js +8 -5
  223. package/security/functions/add-protected.js.map +1 -1
  224. package/security/functions/create-authentication-interceptor.d.ts +44 -0
  225. package/security/functions/create-authentication-interceptor.js +114 -0
  226. package/security/functions/create-authentication-interceptor.js.map +1 -0
  227. package/security/functions/find-auth-context.d.ts +1 -2
  228. package/security/functions/find-auth-context.js +6 -11
  229. package/security/functions/find-auth-context.js.map +1 -1
  230. package/security/index.d.ts +1 -0
  231. package/security/index.js +1 -0
  232. package/security/index.js.map +1 -1
  233. package/security/interfaces/authorization-schema.d.ts +3 -1
  234. package/security/services/authorization.service.d.ts +5 -3
  235. package/security/services/authorization.service.js +56 -37
  236. package/security/services/authorization.service.js.map +1 -1
  237. package/storage/services/routes.service.js +1 -1
  238. package/storage/services/routes.service.js.map +1 -1
  239. package/tasks/constants.d.ts +3 -0
  240. package/tasks/constants.js +2 -1
  241. package/tasks/constants.js.map +1 -1
  242. package/tasks/controllers/task.controller.d.ts +3 -2
  243. package/tasks/controllers/task.controller.js +11 -40
  244. package/tasks/controllers/task.controller.js.map +1 -1
  245. package/tasks/decorators/index.d.ts +1 -0
  246. package/tasks/decorators/index.js +1 -0
  247. package/tasks/decorators/index.js.map +1 -1
  248. package/tasks/decorators/task-payload.decorator.d.ts +1 -0
  249. package/tasks/decorators/task-payload.decorator.js +12 -0
  250. package/tasks/decorators/task-payload.decorator.js.map +1 -0
  251. package/tasks/decorators/task.decorator.js +3 -0
  252. package/tasks/decorators/task.decorator.js.map +1 -1
  253. package/tasks/functions/compile-all-task-post-hooks.d.ts +1 -0
  254. package/tasks/functions/compile-all-task-post-hooks.js +27 -0
  255. package/tasks/functions/compile-all-task-post-hooks.js.map +1 -0
  256. package/tasks/functions/compile-task-hook-handle.d.ts +6 -0
  257. package/tasks/functions/compile-task-hook-handle.js +67 -0
  258. package/tasks/functions/compile-task-hook-handle.js.map +1 -0
  259. package/tasks/functions/create-task-hook.d.ts +9 -0
  260. package/tasks/functions/create-task-hook.js +13 -0
  261. package/tasks/functions/create-task-hook.js.map +1 -0
  262. package/tasks/functions/create-task-message-post.js +2 -0
  263. package/tasks/functions/create-task-message-post.js.map +1 -1
  264. package/tasks/functions/register-task-post-hook-interceptors.d.ts +3 -0
  265. package/tasks/functions/register-task-post-hook-interceptors.js +86 -0
  266. package/tasks/functions/register-task-post-hook-interceptors.js.map +1 -0
  267. package/tasks/functions/run-task-post-hooks.d.ts +11 -0
  268. package/tasks/functions/run-task-post-hooks.js +18 -0
  269. package/tasks/functions/run-task-post-hooks.js.map +1 -0
  270. package/tasks/functions/task-message-operations.d.ts +18 -0
  271. package/tasks/functions/task-message-operations.js +100 -0
  272. package/tasks/functions/task-message-operations.js.map +1 -0
  273. package/tasks/functions/validate-task-payload.d.ts +2 -0
  274. package/tasks/functions/validate-task-payload.js +19 -0
  275. package/tasks/functions/validate-task-payload.js.map +1 -0
  276. package/tasks/hook-constants.d.ts +2 -0
  277. package/tasks/hook-constants.js +6 -0
  278. package/tasks/hook-constants.js.map +1 -0
  279. package/tasks/index.d.ts +3 -0
  280. package/tasks/index.js +3 -0
  281. package/tasks/index.js.map +1 -1
  282. package/tasks/interfaces/compiled-task-post-hooks.d.ts +17 -0
  283. package/tasks/interfaces/compiled-task-post-hooks.js +3 -0
  284. package/tasks/interfaces/compiled-task-post-hooks.js.map +1 -0
  285. package/tasks/interfaces/index.d.ts +3 -0
  286. package/tasks/interfaces/index.js +3 -0
  287. package/tasks/interfaces/index.js.map +1 -1
  288. package/tasks/interfaces/task-hook.d.ts +16 -0
  289. package/tasks/interfaces/task-hook.js +8 -0
  290. package/tasks/interfaces/task-hook.js.map +1 -0
  291. package/tasks/interfaces/task-object.d.ts +4 -0
  292. package/tasks/interfaces/task-post-hook.d.ts +2 -0
  293. package/{database/interfaces/protector.js → tasks/interfaces/task-post-hook.js} +1 -1
  294. package/tasks/interfaces/task-post-hook.js.map +1 -0
  295. package/tasks/interfaces/task-settings.d.ts +5 -0
  296. package/tasks/services/task-runner.service.d.ts +24 -3
  297. package/tasks/services/task-runner.service.js +66 -28
  298. package/tasks/services/task-runner.service.js.map +1 -1
  299. package/translations/controllers/translation.controller.d.ts +3 -1
  300. package/translations/controllers/translation.controller.js +17 -3
  301. package/translations/controllers/translation.controller.js.map +1 -1
  302. package/translations/services/translations.service.d.ts +1 -0
  303. package/translations/services/translations.service.js +25 -6
  304. package/translations/services/translations.service.js.map +1 -1
  305. package/translations/services/translator.service.d.ts +1 -0
  306. package/translations/services/translator.service.js +6 -0
  307. package/translations/services/translator.service.js.map +1 -1
  308. package/database/functions/use-protector.d.ts +0 -2
  309. package/database/functions/use-protector.js +0 -11
  310. package/database/functions/use-protector.js.map +0 -1
  311. package/database/interfaces/protector.d.ts +0 -51
  312. package/database/interfaces/protector.js.map +0 -1
  313. package/database/services/protect-builder.d.ts +0 -60
  314. package/database/services/protect-builder.js +0 -524
  315. package/database/services/protect-builder.js.map +0 -1
  316. package/security/functions/add-protect.d.ts +0 -2
  317. package/security/functions/add-protect.js +0 -11
  318. package/security/functions/add-protect.js.map +0 -1
@@ -1,524 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ProtectBuilder = void 0;
10
- const class_injector_1 = require("@rockster/class-injector");
11
- const common_1 = require("@rockster/common");
12
- const use_repository_1 = require("../functions/use-repository");
13
- const find_auth_context_1 = require("../../security/functions/find-auth-context");
14
- const get_id_property_1 = require("../functions/get-id-property");
15
- let ProtectBuilder = class ProtectBuilder {
16
- async build(object) {
17
- if (object.protected) {
18
- core.isAuthRequired = true;
19
- await this.buildProtectedConfig(object);
20
- }
21
- if (object.isProtect) {
22
- await this.buildProtectorConfig(object);
23
- }
24
- }
25
- buildProtectorConfig(object) {
26
- const protectorData = this
27
- .getProtectorData(object.objectClass);
28
- object.protector = {
29
- isAuthorized: ({ keys, userId, context, contextId, entityManager }) => {
30
- return this.checkIsAuthorized({
31
- context,
32
- contextId,
33
- data: protectorData,
34
- keys,
35
- userId,
36
- entityManager
37
- });
38
- },
39
- getUserPermissions: this.getGetUserPermissions(protectorData),
40
- setUserPermissions: this.getSetUserPermissions(protectorData)
41
- };
42
- }
43
- getRepository(target, entityManager) {
44
- return entityManager
45
- ? entityManager.getRepository(target)
46
- : (0, use_repository_1.useRepository)(target);
47
- }
48
- createQueryBuilder({ authKeys, data, protectorData, userId, displayContext, entityManager, protectedData }) {
49
- let contextSQL = '';
50
- let keySQL = '';
51
- let contextName = protectedData
52
- ? protectedData.object.objectKey
53
- : displayContext;
54
- const repository = this
55
- .getRepository(protectorData.object.objectClass, entityManager);
56
- const userIdValue = Number.isInteger(userId)
57
- ? userId
58
- : `'${userId}'`;
59
- if (protectorData.context) {
60
- const contextId = protectedData
61
- ? data[protectedData.context.propertyKey]
62
- : data[protectorData.context.propertyKey];
63
- if (!contextId) {
64
- throw new common_1.ForbiddenError({
65
- message: `Context value not found for [${contextName}]`
66
- });
67
- }
68
- const contextIdValue = Number.isInteger(contextId)
69
- ? contextId
70
- : `'${contextId}'`;
71
- contextSQL = ` AND "${protectorData.object.alias}"."${protectorData.context.propertyKey}" = ${contextIdValue}`;
72
- }
73
- if (protectorData.key && authKeys?.length > 0) {
74
- const keysFilter = this
75
- .buildFilterKeys(protectorData.object.alias, protectorData.key.propertyKey, authKeys);
76
- keySQL = ` AND (${keysFilter})`;
77
- }
78
- const queryBuilder = repository
79
- .createQueryBuilder(protectorData.object.alias)
80
- .where(`
81
- "${protectorData.object.alias}"."${protectorData.target.propertyKey}" = ${userIdValue}
82
- ${contextSQL}
83
- ${keySQL}
84
- `);
85
- return queryBuilder;
86
- }
87
- buildFilterKeys(protectorAlias, protectorKey, keys) {
88
- let keysFilter = '';
89
- for (const key of keys) {
90
- if (keysFilter) {
91
- keysFilter += ' OR ';
92
- }
93
- ;
94
- keysFilter += `"${protectorAlias}"."${protectorKey}" = '${key}'`;
95
- }
96
- return keysFilter;
97
- }
98
- getQueryContextAndKeyCondition(protectorData, protectedData, protectorAlias, alias, contextParams, rootPath) {
99
- let context = '';
100
- let key = '';
101
- if (protectorData.context) {
102
- const protectorContext = protectorData.context.propertyKey;
103
- const protectedContext = protectedData.context.propertyKey;
104
- context = ` AND "${alias}"."${protectedContext}" = "${protectorAlias}"."${protectorContext}"`;
105
- if (!protectedData.isContext) {
106
- if (rootPath && rootPath !== protectorData.context.getRelationType()) {
107
- const contextId = contextParams[`$${protectorContext}`];
108
- if (!contextId) {
109
- throw new common_1.ValidationError({
110
- properties: [{
111
- message: `Context value is required to this query`,
112
- property: `$${protectorContext}`,
113
- value: contextId
114
- }]
115
- });
116
- }
117
- const contextIdValue = Number.isInteger(contextId)
118
- ? contextId
119
- : `'${contextId}'`;
120
- context = `${context} AND "${alias}"."${protectedContext}" = ${contextIdValue}`;
121
- }
122
- }
123
- }
124
- if (protectorData.key
125
- && protectedData.options?.keys?.read) {
126
- const authContext = (0, find_auth_context_1.findAuthContext)(protectorData.object.objectClass);
127
- const keysFilter = this
128
- .buildFilterKeys(protectorAlias, protectorData.key.propertyKey, [
129
- protectedData.options.keys.read.name,
130
- authContext.adminKey.name,
131
- authContext.ownerKey.name
132
- ]);
133
- key = ` AND (${keysFilter})`;
134
- }
135
- return {
136
- context,
137
- key
138
- };
139
- }
140
- buildProtectedConfig(object) {
141
- const protectorData = this
142
- .getProtectorData(object.protected.type());
143
- const protectedData = this
144
- .getProtectedData(protectorData, object);
145
- const overrideData = {
146
- canCreateProtector: null,
147
- canCreateProtected: null,
148
- canRemoveProtector: null,
149
- canRemoveProtected: null,
150
- canModifyProtector: null,
151
- canModifyProtected: null,
152
- canReadProtector: null,
153
- canReadProtected: null
154
- };
155
- if (protectedData.options?.keys?.create?.protector) {
156
- overrideData.canCreateProtector = this.getProtectorData(protectedData.options.keys.create.protector());
157
- overrideData.canCreateProtected = this.getProtectedData(overrideData.canCreateProtector, object);
158
- }
159
- if (protectedData.options?.keys?.modify?.protector) {
160
- overrideData.canModifyProtector = this.getProtectorData(protectedData.options.keys.modify.protector());
161
- overrideData.canModifyProtected = this.getProtectedData(overrideData.canModifyProtector, object);
162
- }
163
- if (protectedData.options?.keys?.read?.protector) {
164
- overrideData.canReadProtector = this.getProtectorData(protectedData.options.keys.read.protector());
165
- overrideData.canReadProtected = this.getProtectedData(overrideData.canReadProtector, object);
166
- }
167
- if (protectedData.options?.keys?.remove?.protector) {
168
- overrideData.canRemoveProtector = this.getProtectorData(protectedData.options.keys.remove.protector());
169
- overrideData.canRemoveProtected = this.getProtectedData(overrideData.canRemoveProtector, object);
170
- }
171
- object.protector = {
172
- target: protectorData.object.objectClass,
173
- relationCondition: ({ userId, contextParams, alias, rootPath }) => {
174
- const protectorAlias = `${protectorData.object.alias}_${protectedData.object.alias}`;
175
- const protectorTarget = protectorData.target.propertyKey;
176
- const userIdValue = Number.isInteger(userId)
177
- ? userId
178
- : `'${userId}'`;
179
- const { context, key } = this
180
- .getQueryContextAndKeyCondition(protectorData, protectedData, protectorAlias, alias, contextParams, rootPath);
181
- let condition = `
182
- AND EXISTS (
183
- SELECT * FROM "${protectorData.object.tableName}" "${protectorAlias}"
184
- WHERE "${protectorAlias}"."${protectorTarget}" = ${userIdValue}
185
- ${context}${key}
186
- )
187
- `;
188
- return condition;
189
- },
190
- rootCondition: ({ userId, contextParams, queryBuilder, rootAlias }) => {
191
- const protectorAlias = `${protectorData.object.alias}_${protectedData.object.alias}`;
192
- const protectorTarget = protectorData.target.propertyKey;
193
- const userIdValue = Number.isInteger(userId)
194
- ? userId
195
- : `'${userId}'`;
196
- const { context, key } = this
197
- .getQueryContextAndKeyCondition(protectorData, protectedData, protectorAlias, rootAlias, contextParams);
198
- queryBuilder.innerJoin(protectorData.object.objectClass, protectorAlias, `"${protectorAlias}"."${protectorTarget}" = ${userIdValue}${context}${key}`);
199
- return queryBuilder;
200
- },
201
- canCreate: async (userId, data, entityManager) => {
202
- const canCreateProtectorData = overrideData.canCreateProtector || protectorData;
203
- const canCreateProtectedData = overrideData.canCreateProtected || protectedData;
204
- const key = canCreateProtectedData.options?.keys?.create?.name;
205
- if (!key) {
206
- return;
207
- }
208
- const forbiddenError = new common_1.ForbiddenError({
209
- message: `Current user [${userId}] cannot create [${canCreateProtectedData.object.objectClass.name}]`,
210
- requirements: [key]
211
- });
212
- const authContext = (0, find_auth_context_1.findAuthContext)(canCreateProtectorData.object.objectClass);
213
- const exists = await this
214
- .createQueryBuilder({
215
- protectorData: canCreateProtectorData,
216
- userId,
217
- data,
218
- authKeys: key
219
- ? [
220
- key,
221
- authContext.adminKey.name,
222
- authContext.ownerKey.name
223
- ]
224
- : [],
225
- protectedData: canCreateProtectedData,
226
- entityManager
227
- })
228
- .getOne();
229
- if (!exists) {
230
- throw forbiddenError;
231
- }
232
- },
233
- canRemove: async (userId, entityId, entityManager) => {
234
- const canRemoveProtectorData = overrideData.canRemoveProtector || protectorData;
235
- const canRemoveProtectedData = overrideData.canRemoveProtected || protectedData;
236
- const key = canRemoveProtectedData.options?.keys?.remove?.name;
237
- if (!key) {
238
- return;
239
- }
240
- const forbiddenError = new common_1.ForbiddenError({
241
- message: `Current user [${userId}] cannot remove [${canRemoveProtectedData.object.objectClass.name}]`,
242
- requirements: [key]
243
- });
244
- let storedValue;
245
- const repository = this
246
- .getRepository(canRemoveProtectedData.object.objectClass, entityManager);
247
- const invalidError = new common_1.BadRequestError({
248
- message: `invalid id value [${entityId}]`
249
- });
250
- try {
251
- storedValue = await repository
252
- .findOneBy({
253
- [canRemoveProtectedData.object.idProperty]: entityId
254
- });
255
- if (!storedValue) {
256
- throw invalidError;
257
- }
258
- }
259
- catch (error) {
260
- throw invalidError;
261
- }
262
- const authContext = (0, find_auth_context_1.findAuthContext)(canRemoveProtectorData.object.objectClass);
263
- const exists = await this
264
- .createQueryBuilder({
265
- protectorData: canRemoveProtectorData,
266
- userId,
267
- data: storedValue,
268
- authKeys: key
269
- ? [
270
- key,
271
- authContext.adminKey.name,
272
- authContext.ownerKey.name
273
- ]
274
- : [],
275
- protectedData: canRemoveProtectedData,
276
- entityManager
277
- })
278
- .getOne();
279
- if (!exists) {
280
- throw forbiddenError;
281
- }
282
- },
283
- canModify: async (userId, data, entityManager) => {
284
- const canModifyProtectorData = overrideData.canModifyProtector || protectorData;
285
- const canModifyProtectedData = overrideData.canModifyProtected || protectedData;
286
- const key = canModifyProtectedData.options?.keys?.modify?.name;
287
- if (!key) {
288
- return;
289
- }
290
- const forbiddenError = new common_1.ForbiddenError({
291
- message: `Current user [${userId}] cannot modify [${canModifyProtectedData.object.objectClass.name}]`,
292
- requirements: [key]
293
- });
294
- const repository = this
295
- .getRepository(canModifyProtectedData.object.objectClass, entityManager);
296
- const storedId = data[canModifyProtectedData.object.idProperty];
297
- if (!storedId) {
298
- throw new common_1.ForbiddenError({
299
- message: `Context value not found for [${canModifyProtectedData.object.objectClass.name}]`
300
- });
301
- }
302
- if (canModifyProtectorData.context) {
303
- try {
304
- const storedValue = await repository
305
- .findOneBy({
306
- [canModifyProtectedData.object.idProperty]: storedId
307
- });
308
- data[canModifyProtectedData.context.propertyKey] = storedValue[canModifyProtectedData.context.propertyKey];
309
- }
310
- catch (error) {
311
- throw new common_1.BadRequestError({
312
- message: `invalid id value [${storedId}]`
313
- });
314
- }
315
- }
316
- const authContext = (0, find_auth_context_1.findAuthContext)(canModifyProtectorData.object.objectClass);
317
- const exists = await this
318
- .createQueryBuilder({
319
- protectorData: canModifyProtectorData,
320
- userId,
321
- data,
322
- authKeys: key
323
- ? [
324
- key,
325
- authContext.adminKey.name,
326
- authContext.ownerKey.name
327
- ]
328
- : [],
329
- protectedData: canModifyProtectedData,
330
- entityManager
331
- })
332
- .getOne();
333
- if (!exists) {
334
- throw forbiddenError;
335
- }
336
- }
337
- };
338
- }
339
- getSetUserPermissions(data) {
340
- return async ({ contextId, userId, entityManager, context, targetUserId, accessKeys }) => {
341
- const authContext = (0, find_auth_context_1.findAuthContext)(context);
342
- await this.checkIsAuthorized({
343
- data,
344
- context,
345
- contextId,
346
- keys: [
347
- authContext.adminKey.name,
348
- authContext.ownerKey.name
349
- ],
350
- userId,
351
- entityManager
352
- });
353
- if (targetUserId === userId
354
- && !accessKeys.find((accessKey) => accessKey === authContext.ownerKey.name)
355
- && !accessKeys.find((accessKey) => accessKey === authContext.adminKey.name)) {
356
- throw new common_1.ForbiddenError({
357
- message: `User cannot revoke their own permissions`
358
- });
359
- }
360
- const repository = entityManager
361
- .getRepository(data.object.objectClass);
362
- const { keyProperty, contextProperty, targetProperty, where } = this.getAuthContextFilter(targetUserId, data, contextId);
363
- const newAccessKeys = accessKeys.map((accessKey, i) => {
364
- const isKey = authContext
365
- .keys
366
- ?.find((key) => {
367
- return key.name === accessKey;
368
- });
369
- if (!isKey
370
- && accessKey !== authContext.adminKey.name
371
- && accessKey !== authContext.ownerKey.name) {
372
- throw new common_1.BadRequestError({
373
- message: `accessKeys[${i}] is not valid`
374
- });
375
- }
376
- const newAccessKey = {
377
- [targetProperty.propertyKey]: targetUserId,
378
- [keyProperty.propertyKey]: accessKey
379
- };
380
- if (contextProperty) {
381
- newAccessKey[contextProperty.propertyKey] = contextId;
382
- }
383
- return newAccessKey;
384
- });
385
- await repository.delete(where);
386
- await repository.save(newAccessKeys);
387
- };
388
- }
389
- getGetUserPermissions(data) {
390
- return async ({ contextId, userId, targetUserId, entityManager, context }) => {
391
- const authContext = (0, find_auth_context_1.findAuthContext)(context);
392
- if (userId !== targetUserId) {
393
- await this.checkIsAuthorized({
394
- data,
395
- context,
396
- contextId,
397
- keys: [
398
- authContext.adminKey.name,
399
- authContext.ownerKey.name
400
- ],
401
- userId,
402
- entityManager
403
- });
404
- }
405
- const repository = entityManager
406
- .getRepository(data.object.objectClass);
407
- const { keyProperty, where } = this.getAuthContextFilter(targetUserId, data, contextId);
408
- const accessKeys = await repository.findBy(where);
409
- return accessKeys.map((accessKey) => {
410
- return accessKey[keyProperty.propertyKey];
411
- });
412
- };
413
- }
414
- getAuthContextFilter(targetUserId, data, contextId) {
415
- const properties = core
416
- .storage
417
- .getProperties(data.object.objectClass);
418
- const contextProperty = properties
419
- .find((property) => {
420
- return property.isProtectContext;
421
- });
422
- const keyProperty = properties
423
- .find((property) => {
424
- return property.isProtectKey;
425
- });
426
- const targetProperty = properties
427
- .find((property) => {
428
- return property.isProtectTarget;
429
- });
430
- const where = {
431
- [targetProperty.propertyKey]: targetUserId
432
- };
433
- if (contextProperty) {
434
- where[contextProperty.propertyKey] = contextId;
435
- }
436
- return {
437
- where,
438
- keyProperty,
439
- contextProperty,
440
- targetProperty
441
- };
442
- }
443
- async checkIsAuthorized({ data, userId, entityManager, keys, context, contextId }) {
444
- const forbiddenError = new common_1.ForbiddenError({
445
- message: `[${userId}] cannot execute action on [${context || data.object.objectKey}]`,
446
- requirements: [keys.join(',')]
447
- });
448
- const exists = await this
449
- .createQueryBuilder({
450
- protectorData: data,
451
- userId,
452
- data: data.context
453
- ? { [data.context.propertyKey]: contextId }
454
- : {},
455
- authKeys: keys,
456
- displayContext: context,
457
- entityManager
458
- })
459
- .getOne();
460
- if (!exists) {
461
- throw forbiddenError;
462
- }
463
- }
464
- getProtectedData(protector, object) {
465
- let context;
466
- let options = object.protected;
467
- let isContext = false;
468
- if (protector.context) {
469
- isContext = object.objectClass === protector.context.getRelationType();
470
- context = isContext
471
- ? (0, get_id_property_1.getIdProperty)(object.objectClass)
472
- : core
473
- .storage
474
- .getProperties(object.objectClass)
475
- .find((property) => {
476
- return property.isRelation
477
- && property.getRelationType() === protector.context.getRelationType();
478
- });
479
- if (!context) {
480
- throw new Error(`[${protector.object.objectClass.name}] Context property not found on protected entity [${object.objectClass.name}]`);
481
- }
482
- }
483
- return {
484
- object,
485
- options,
486
- context: context,
487
- isContext
488
- };
489
- }
490
- getProtectorData(protector) {
491
- const object = core
492
- .storage
493
- .findObject(protector);
494
- const target = core
495
- .storage
496
- .getProperties(protector)
497
- .find((property) => {
498
- return property.isProtectTarget;
499
- });
500
- const context = core
501
- .storage
502
- .getProperties(protector)
503
- .find((property) => {
504
- return property.isProtectContext;
505
- });
506
- const key = core
507
- .storage
508
- .getProperties(protector)
509
- .find((property) => {
510
- return property.isProtectKey;
511
- });
512
- return {
513
- object,
514
- target: target,
515
- context: context,
516
- key: key
517
- };
518
- }
519
- };
520
- exports.ProtectBuilder = ProtectBuilder;
521
- exports.ProtectBuilder = ProtectBuilder = __decorate([
522
- (0, class_injector_1.Injectable)()
523
- ], ProtectBuilder);
524
- //# sourceMappingURL=protect-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protect-builder.js","sourceRoot":"./","sources":["database/services/protect-builder.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Instantiable } from "@rockster/common";
2
- export declare const addProtect: (target: Instantiable) => void;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addProtect = void 0;
4
- const env_1 = require("../env");
5
- const addProtect = (target) => {
6
- env_1.env.preSchema.contexts.push({
7
- protector: () => target
8
- });
9
- };
10
- exports.addProtect = addProtect;
11
- //# sourceMappingURL=add-protect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-protect.js","sourceRoot":"./","sources":["security/functions/add-protect.ts"],"names":[],"mappings":";;;AAAA,gCAA6B;AAItB,MAAM,UAAU,GAAG,CAAC,MAAoB,EAAE,EAAE;IAChD,SAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QACzB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;KACA,CAAC,CAAC;AAC/B,CAAC,CAAA;AAJY,QAAA,UAAU,cAItB"}