@fdm-monster/server 1.5.0-rc1 → 1.5.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 (385) hide show
  1. package/.env.template +6 -3
  2. package/.gitattributes +1 -1
  3. package/.swcrc +0 -0
  4. package/CODE_OF_CONDUCT.md +0 -0
  5. package/CONTRIBUTING.md +0 -0
  6. package/LICENSE +0 -0
  7. package/README.md +0 -0
  8. package/SECURITY.md +0 -0
  9. package/dist/constants/authorization.constants.js +12 -0
  10. package/dist/constants/authorization.constants.js.map +1 -1
  11. package/dist/constants/event.constants.js +0 -0
  12. package/dist/constants/event.constants.js.map +0 -0
  13. package/dist/constants/http-status-codes.constants.js +0 -0
  14. package/dist/constants/http-status-codes.constants.js.map +0 -0
  15. package/dist/constants/server-settings.constants.js +0 -0
  16. package/dist/constants/server-settings.constants.js.map +1 -1
  17. package/dist/constants/service.constants.js +0 -0
  18. package/dist/constants/service.constants.js.map +0 -0
  19. package/dist/container.js +2 -1
  20. package/dist/container.js.map +1 -1
  21. package/dist/container.tokens.js +3 -1
  22. package/dist/container.tokens.js.map +1 -1
  23. package/dist/controllers/auth.controller.js +11 -6
  24. package/dist/controllers/auth.controller.js.map +1 -1
  25. package/dist/controllers/batch-call.controller.js +0 -0
  26. package/dist/controllers/batch-call.controller.js.map +0 -0
  27. package/dist/controllers/camera-stream.controller.js +0 -0
  28. package/dist/controllers/camera-stream.controller.js.map +0 -0
  29. package/dist/controllers/custom-gcode.controller.js +0 -0
  30. package/dist/controllers/custom-gcode.controller.js.map +0 -0
  31. package/dist/controllers/first-time-setup.controller.js +11 -4
  32. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  33. package/dist/controllers/floor.controller.js +0 -0
  34. package/dist/controllers/floor.controller.js.map +0 -0
  35. package/dist/controllers/plugin-firmware-update.controller.js +0 -0
  36. package/dist/controllers/plugin-firmware-update.controller.js.map +0 -0
  37. package/dist/controllers/print-completion.controller.js +0 -0
  38. package/dist/controllers/print-completion.controller.js.map +0 -0
  39. package/dist/controllers/printer-files.controller.js +0 -0
  40. package/dist/controllers/printer-files.controller.js.map +0 -0
  41. package/dist/controllers/printer-settings.controller.js +0 -0
  42. package/dist/controllers/printer-settings.controller.js.map +0 -0
  43. package/dist/controllers/printer.controller.js +0 -0
  44. package/dist/controllers/printer.controller.js.map +1 -1
  45. package/dist/controllers/server-private.controller.js +3 -1
  46. package/dist/controllers/server-private.controller.js.map +1 -1
  47. package/dist/controllers/server-public.controller.js +0 -0
  48. package/dist/controllers/server-public.controller.js.map +0 -0
  49. package/dist/controllers/settings.controller.js +91 -7
  50. package/dist/controllers/settings.controller.js.map +1 -1
  51. package/dist/controllers/user.controller.js +79 -20
  52. package/dist/controllers/user.controller.js.map +1 -1
  53. package/dist/controllers/validation/auth-controller.validation.js +0 -0
  54. package/dist/controllers/validation/auth-controller.validation.js.map +0 -0
  55. package/dist/controllers/validation/batch-controller.validation.js +0 -0
  56. package/dist/controllers/validation/batch-controller.validation.js.map +0 -0
  57. package/dist/controllers/validation/generic.validation.js +0 -0
  58. package/dist/controllers/validation/generic.validation.js.map +0 -0
  59. package/dist/controllers/validation/printer-controller.validation.js +0 -0
  60. package/dist/controllers/validation/printer-controller.validation.js.map +0 -0
  61. package/dist/controllers/validation/printer-files-controller.validation.js +0 -0
  62. package/dist/controllers/validation/printer-files-controller.validation.js.map +0 -0
  63. package/dist/controllers/validation/printer-settings-controller.validation.js +0 -0
  64. package/dist/controllers/validation/printer-settings-controller.validation.js.map +0 -0
  65. package/dist/controllers/validation/setting.validation.js +1 -1
  66. package/dist/controllers/validation/setting.validation.js.map +0 -0
  67. package/dist/controllers/validation/user-controller.validation.js +3 -2
  68. package/dist/controllers/validation/user-controller.validation.js.map +1 -1
  69. package/dist/exceptions/job.exceptions.js +0 -0
  70. package/dist/exceptions/job.exceptions.js.map +1 -1
  71. package/dist/exceptions/runtime.exceptions.js +10 -8
  72. package/dist/exceptions/runtime.exceptions.js.map +1 -1
  73. package/dist/handlers/cache-manager.js +0 -0
  74. package/dist/handlers/cache-manager.js.map +0 -0
  75. package/dist/handlers/event-emitter.js +0 -0
  76. package/dist/handlers/event-emitter.js.map +0 -0
  77. package/dist/handlers/logger-factory.js +0 -0
  78. package/dist/handlers/logger-factory.js.map +0 -0
  79. package/dist/handlers/logger.js +0 -0
  80. package/dist/handlers/logger.js.map +0 -0
  81. package/dist/handlers/validators.js +6 -1
  82. package/dist/handlers/validators.js.map +1 -1
  83. package/dist/index.js +0 -0
  84. package/dist/index.js.map +0 -0
  85. package/dist/middleware/authenticate.js +7 -4
  86. package/dist/middleware/authenticate.js.map +1 -1
  87. package/dist/middleware/database.js +0 -0
  88. package/dist/middleware/database.js.map +0 -0
  89. package/dist/middleware/demo.middleware.js +43 -0
  90. package/dist/middleware/demo.middleware.js.map +1 -0
  91. package/dist/middleware/{exception.handler.js → exception.filter.js} +9 -8
  92. package/dist/middleware/exception.filter.js.map +1 -0
  93. package/dist/middleware/global.middleware.js +27 -3
  94. package/dist/middleware/global.middleware.js.map +1 -1
  95. package/dist/middleware/passport.js +45 -16
  96. package/dist/middleware/passport.js.map +1 -1
  97. package/dist/middleware/printer.js +0 -0
  98. package/dist/middleware/printer.js.map +0 -0
  99. package/dist/models/Auth/Permission.js +0 -0
  100. package/dist/models/Auth/Permission.js.map +0 -0
  101. package/dist/models/Auth/RefreshToken.js +0 -0
  102. package/dist/models/Auth/RefreshToken.js.map +0 -0
  103. package/dist/models/Auth/Role.js +0 -0
  104. package/dist/models/Auth/Role.js.map +0 -0
  105. package/dist/models/Auth/User.js +0 -0
  106. package/dist/models/Auth/User.js.map +0 -0
  107. package/dist/models/CameraStream.js +5 -35
  108. package/dist/models/CameraStream.js.map +1 -1
  109. package/dist/models/CustomGcode.js +0 -0
  110. package/dist/models/CustomGcode.js.map +0 -0
  111. package/dist/models/Floor.js +0 -0
  112. package/dist/models/Floor.js.map +0 -0
  113. package/dist/models/FloorPrinter.js +0 -0
  114. package/dist/models/FloorPrinter.js.map +0 -0
  115. package/dist/models/PrintCompletion.js +0 -0
  116. package/dist/models/PrintCompletion.js.map +0 -0
  117. package/dist/models/Printer.js +0 -0
  118. package/dist/models/Printer.js.map +0 -0
  119. package/dist/models/Settings.js +0 -0
  120. package/dist/models/Settings.js.map +0 -0
  121. package/dist/models/index.js +0 -0
  122. package/dist/models/index.js.map +0 -0
  123. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js +0 -0
  124. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +0 -0
  125. package/dist/mongo-migrations/20210907173950-printers-enabled.js +0 -0
  126. package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +0 -0
  127. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js +0 -0
  128. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +0 -0
  129. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js +0 -0
  130. package/dist/mongo-migrations/20230414141005-floor-remove-groupinfloor.js.map +0 -0
  131. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js +0 -0
  132. package/dist/mongo-migrations/20230427202911-printer-remove-sortindex.js.map +0 -0
  133. package/dist/mongo-migrations/20230716065316-user-remove-name.js +0 -0
  134. package/dist/mongo-migrations/20230716065316-user-remove-name.js.map +0 -0
  135. package/dist/server.constants.js +14 -5
  136. package/dist/server.constants.js.map +1 -1
  137. package/dist/server.core.js +4 -2
  138. package/dist/server.core.js.map +1 -1
  139. package/dist/server.env.js +3 -1
  140. package/dist/server.env.js.map +1 -1
  141. package/dist/server.host.js +3 -3
  142. package/dist/server.host.js.map +1 -1
  143. package/dist/services/authentication/auth.service.js +29 -15
  144. package/dist/services/authentication/auth.service.js.map +1 -1
  145. package/dist/services/authentication/jwt.service.js +0 -0
  146. package/dist/services/authentication/jwt.service.js.map +0 -0
  147. package/dist/services/authentication/permission.service.js +0 -0
  148. package/dist/services/authentication/permission.service.js.map +0 -0
  149. package/dist/services/authentication/refresh-token.service.js +6 -5
  150. package/dist/services/authentication/refresh-token.service.js.map +1 -1
  151. package/dist/services/authentication/role.service.js +6 -0
  152. package/dist/services/authentication/role.service.js.map +1 -1
  153. package/dist/services/authentication/user.service.js +35 -13
  154. package/dist/services/authentication/user.service.js.map +1 -1
  155. package/dist/services/batch-call.service.js +0 -0
  156. package/dist/services/batch-call.service.js.map +0 -0
  157. package/dist/services/camera-stream.service.js +2 -15
  158. package/dist/services/camera-stream.service.js.map +1 -1
  159. package/dist/services/core/client-bundle.service.js +0 -0
  160. package/dist/services/core/client-bundle.service.js.map +0 -0
  161. package/dist/services/core/config.service.js +4 -0
  162. package/dist/services/core/config.service.js.map +1 -1
  163. package/dist/services/core/github.service.js +0 -0
  164. package/dist/services/core/github.service.js.map +0 -0
  165. package/dist/services/core/logs-manager.service.js +0 -0
  166. package/dist/services/core/logs-manager.service.js.map +0 -0
  167. package/dist/services/core/monsterpi.service.js +0 -0
  168. package/dist/services/core/monsterpi.service.js.map +0 -0
  169. package/dist/services/core/multer.service.js +0 -0
  170. package/dist/services/core/multer.service.js.map +0 -0
  171. package/dist/services/core/server-release.service.js +0 -0
  172. package/dist/services/core/server-release.service.js.map +0 -0
  173. package/dist/services/core/server-update.service.js +0 -0
  174. package/dist/services/core/server-update.service.js.map +0 -0
  175. package/dist/services/core/task-manager.service.js +0 -0
  176. package/dist/services/core/task-manager.service.js.map +0 -0
  177. package/dist/services/core/yaml.service.js +0 -0
  178. package/dist/services/core/yaml.service.js.map +1 -1
  179. package/dist/services/custom-gcode.service.js +0 -0
  180. package/dist/services/custom-gcode.service.js.map +0 -0
  181. package/dist/services/floor.service.js +0 -0
  182. package/dist/services/floor.service.js.map +0 -0
  183. package/dist/services/influxdb-v2/influx-db-v2-base.service.js +4 -8
  184. package/dist/services/influxdb-v2/influx-db-v2-base.service.js.map +1 -1
  185. package/dist/services/interfaces/auth.service.interface.js +0 -0
  186. package/dist/services/interfaces/auth.service.interface.js.map +0 -0
  187. package/dist/services/interfaces/camera-stream.dto.js +11 -47
  188. package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
  189. package/dist/services/interfaces/camera-stream.service.interface.js +0 -0
  190. package/dist/services/interfaces/camera-stream.service.interface.js.map +0 -0
  191. package/dist/services/interfaces/custom-gcode.dto.js +0 -0
  192. package/dist/services/interfaces/custom-gcode.dto.js.map +0 -0
  193. package/dist/services/interfaces/custom-gcode.service.interface.js +0 -0
  194. package/dist/services/interfaces/custom-gcode.service.interface.js.map +0 -0
  195. package/dist/services/interfaces/floor.dto.js +0 -0
  196. package/dist/services/interfaces/floor.dto.js.map +0 -0
  197. package/dist/services/interfaces/floor.service.interface.js +0 -0
  198. package/dist/services/interfaces/floor.service.interface.js.map +0 -0
  199. package/dist/services/interfaces/gcode-analysis.dto.js +0 -0
  200. package/dist/services/interfaces/gcode-analysis.dto.js.map +0 -0
  201. package/dist/services/interfaces/jwt.service.interface.js +0 -0
  202. package/dist/services/interfaces/jwt.service.interface.js.map +0 -0
  203. package/dist/services/interfaces/login.dto.js +0 -0
  204. package/dist/services/interfaces/login.dto.js.map +0 -0
  205. package/dist/services/interfaces/page.interface.js +0 -0
  206. package/dist/services/interfaces/page.interface.js.map +0 -0
  207. package/dist/services/interfaces/permission.dto.js +0 -0
  208. package/dist/services/interfaces/permission.dto.js.map +0 -0
  209. package/dist/services/interfaces/permission.service.interface.js +0 -0
  210. package/dist/services/interfaces/permission.service.interface.js.map +0 -0
  211. package/dist/services/interfaces/printer-file.dto.js +0 -0
  212. package/dist/services/interfaces/printer-file.dto.js.map +0 -0
  213. package/dist/services/interfaces/printer-files.service.interface.js +0 -0
  214. package/dist/services/interfaces/printer-files.service.interface.js.map +0 -0
  215. package/dist/services/interfaces/printer.dto.js +0 -0
  216. package/dist/services/interfaces/printer.dto.js.map +0 -0
  217. package/dist/services/interfaces/printer.service.interface.js +0 -0
  218. package/dist/services/interfaces/printer.service.interface.js.map +0 -0
  219. package/dist/services/interfaces/refresh-token.dto.js +20 -0
  220. package/dist/services/interfaces/refresh-token.dto.js.map +1 -0
  221. package/dist/services/{orm/printer.service.interface.js → interfaces/refresh-token.service.interface.js} +1 -1
  222. package/dist/services/interfaces/refresh-token.service.interface.js.map +1 -0
  223. package/dist/services/interfaces/role-service.interface.js +0 -0
  224. package/dist/services/interfaces/role-service.interface.js.map +0 -0
  225. package/dist/services/interfaces/role.dto.js +16 -0
  226. package/dist/services/interfaces/role.dto.js.map +1 -0
  227. package/dist/services/interfaces/settings.dto.js +2 -3
  228. package/dist/services/interfaces/settings.dto.js.map +1 -1
  229. package/dist/services/interfaces/settings.service.interface.js +0 -0
  230. package/dist/services/interfaces/settings.service.interface.js.map +0 -0
  231. package/dist/services/interfaces/user-service.interface.js +0 -0
  232. package/dist/services/interfaces/user-service.interface.js.map +0 -0
  233. package/dist/services/interfaces/user.dto.js +0 -0
  234. package/dist/services/interfaces/user.dto.js.map +0 -0
  235. package/dist/services/octoprint/constants/firmware-update-settings.constants.js +0 -0
  236. package/dist/services/octoprint/constants/firmware-update-settings.constants.js.map +0 -0
  237. package/dist/services/octoprint/constants/octoprint-service.constants.js +0 -0
  238. package/dist/services/octoprint/constants/octoprint-service.constants.js.map +0 -0
  239. package/dist/services/octoprint/constants/octoprint-websocket.constants.js +0 -0
  240. package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +0 -0
  241. package/dist/services/octoprint/octoprint-api.routes.js +0 -0
  242. package/dist/services/octoprint/octoprint-api.routes.js.map +0 -0
  243. package/dist/services/octoprint/octoprint-api.service.js +0 -0
  244. package/dist/services/octoprint/octoprint-api.service.js.map +0 -0
  245. package/dist/services/octoprint/octoprint-sockio.adapter.js +7 -11
  246. package/dist/services/octoprint/octoprint-sockio.adapter.js.map +1 -1
  247. package/dist/services/octoprint/plugin-base.service.js +0 -0
  248. package/dist/services/octoprint/plugin-base.service.js.map +0 -0
  249. package/dist/services/octoprint/plugin-firmware-update.service.js +0 -0
  250. package/dist/services/octoprint/plugin-firmware-update.service.js.map +0 -0
  251. package/dist/services/octoprint/plugin-repository.cache.js +0 -0
  252. package/dist/services/octoprint/plugin-repository.cache.js.map +0 -0
  253. package/dist/services/octoprint/socket.factory.js +0 -0
  254. package/dist/services/octoprint/socket.factory.js.map +0 -0
  255. package/dist/services/octoprint/utils/api.utils.js +0 -0
  256. package/dist/services/octoprint/utils/api.utils.js.map +0 -0
  257. package/dist/services/print-completion.service.js +0 -0
  258. package/dist/services/print-completion.service.js.map +0 -0
  259. package/dist/services/printer-files.service.js +0 -0
  260. package/dist/services/printer-files.service.js.map +0 -0
  261. package/dist/services/printer.service.js +0 -0
  262. package/dist/services/printer.service.js.map +0 -0
  263. package/dist/services/settings.service.js +40 -31
  264. package/dist/services/settings.service.js.map +1 -1
  265. package/dist/services/validators/floor-service.validation.js +0 -0
  266. package/dist/services/validators/floor-service.validation.js.map +0 -0
  267. package/dist/services/validators/print-completion-service.validation.js +0 -0
  268. package/dist/services/validators/print-completion-service.validation.js.map +0 -0
  269. package/dist/services/validators/printer-service.validation.js +1 -1
  270. package/dist/services/validators/printer-service.validation.js.map +1 -1
  271. package/dist/services/validators/settings-service.validation.js +18 -8
  272. package/dist/services/validators/settings-service.validation.js.map +1 -1
  273. package/dist/services/validators/user-service.validation.js +3 -2
  274. package/dist/services/validators/user-service.validation.js.map +1 -1
  275. package/dist/services/validators/yaml-service.validation.js +0 -0
  276. package/dist/services/validators/yaml-service.validation.js.map +0 -0
  277. package/dist/shared.constants.js +0 -0
  278. package/dist/shared.constants.js.map +0 -0
  279. package/dist/state/file-upload-tracker.cache.js +0 -0
  280. package/dist/state/file-upload-tracker.cache.js.map +0 -0
  281. package/dist/state/file.cache.js +0 -0
  282. package/dist/state/file.cache.js.map +0 -0
  283. package/dist/state/files.store.js +0 -0
  284. package/dist/state/files.store.js.map +0 -0
  285. package/dist/state/floor.store.js +0 -0
  286. package/dist/state/floor.store.js.map +0 -0
  287. package/dist/state/printer-events.cache.js +0 -0
  288. package/dist/state/printer-events.cache.js.map +0 -0
  289. package/dist/state/printer-socket.store.js +0 -0
  290. package/dist/state/printer-socket.store.js.map +0 -0
  291. package/dist/state/printer.cache.js +0 -0
  292. package/dist/state/printer.cache.js.map +0 -0
  293. package/dist/state/settings.store.js +28 -5
  294. package/dist/state/settings.store.js.map +1 -1
  295. package/dist/state/socket-io.gateway.js +30 -3
  296. package/dist/state/socket-io.gateway.js.map +1 -1
  297. package/dist/state/test-printer-socket.store.js +3 -0
  298. package/dist/state/test-printer-socket.store.js.map +1 -1
  299. package/dist/state/validation/create-test-printer.validation.js +0 -0
  300. package/dist/state/validation/create-test-printer.validation.js.map +0 -0
  301. package/dist/task.presets.js +0 -0
  302. package/dist/task.presets.js.map +0 -0
  303. package/dist/tasks/boot.task.js +18 -14
  304. package/dist/tasks/boot.task.js.map +1 -1
  305. package/dist/tasks/client-bundle.task.js +0 -0
  306. package/dist/tasks/client-bundle.task.js.map +0 -0
  307. package/dist/tasks/print-completion.socketio.task.js +0 -0
  308. package/dist/tasks/print-completion.socketio.task.js.map +0 -0
  309. package/dist/tasks/printer-file-clean.task.js +0 -0
  310. package/dist/tasks/printer-file-clean.task.js.map +0 -0
  311. package/dist/tasks/printer-websocket-restore.task.js +0 -0
  312. package/dist/tasks/printer-websocket-restore.task.js.map +0 -0
  313. package/dist/tasks/printer-websocket.task.js +0 -0
  314. package/dist/tasks/printer-websocket.task.js.map +0 -0
  315. package/dist/tasks/socketio.task.js +0 -0
  316. package/dist/tasks/socketio.task.js.map +0 -0
  317. package/dist/tasks/software-update.task.js +0 -0
  318. package/dist/tasks/software-update.task.js.map +0 -0
  319. package/dist/tasks.js +0 -0
  320. package/dist/tasks.js.map +0 -0
  321. package/dist/types/express/index.d.js +0 -0
  322. package/dist/types/express/index.d.js.map +0 -0
  323. package/dist/utils/array.util.js +0 -0
  324. package/dist/utils/array.util.js.map +0 -0
  325. package/dist/utils/benchmark.util.js +0 -0
  326. package/dist/utils/benchmark.util.js.map +0 -0
  327. package/dist/utils/cache/key-diff.cache.js +0 -0
  328. package/dist/utils/cache/key-diff.cache.js.map +0 -0
  329. package/dist/utils/correlation-token.util.js +0 -0
  330. package/dist/utils/correlation-token.util.js.map +0 -0
  331. package/dist/utils/crypto.utils.js +0 -0
  332. package/dist/utils/crypto.utils.js.map +0 -0
  333. package/dist/utils/env.utils.js +6 -0
  334. package/dist/utils/env.utils.js.map +1 -1
  335. package/dist/utils/error.utils.js +0 -0
  336. package/dist/utils/error.utils.js.map +0 -0
  337. package/dist/utils/find-predicate.utils.js +0 -0
  338. package/dist/utils/find-predicate.utils.js.map +0 -0
  339. package/dist/utils/fs.utils.js +0 -0
  340. package/dist/utils/fs.utils.js.map +0 -0
  341. package/dist/utils/is-docker.js +0 -0
  342. package/dist/utils/is-docker.js.map +0 -0
  343. package/dist/utils/mapper.utils.js +0 -0
  344. package/dist/utils/mapper.utils.js.map +0 -0
  345. package/dist/utils/metric.utils.js +0 -0
  346. package/dist/utils/metric.utils.js.map +0 -0
  347. package/dist/utils/normalize-url.js +0 -0
  348. package/dist/utils/normalize-url.js.map +0 -0
  349. package/dist/utils/semver.utils.js +0 -0
  350. package/dist/utils/semver.utils.js.map +0 -0
  351. package/dist/utils/time.utils.js +0 -0
  352. package/dist/utils/time.utils.js.map +0 -0
  353. package/dist/utils/url.utils.js +0 -0
  354. package/dist/utils/url.utils.js.map +0 -0
  355. package/dist/utils/websocket.adapter.js +0 -0
  356. package/dist/utils/websocket.adapter.js.map +0 -0
  357. package/migrate-mongo-config.js +0 -0
  358. package/package.json +21 -16
  359. package/src/index.ts +0 -0
  360. package/tsconfig.json +0 -0
  361. package/.env +0 -19
  362. package/.idea/codeStyles/Project.xml +0 -85
  363. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  364. package/.idea/dbnavigator.xml +0 -574
  365. package/.idea/fdm-monster.iml +0 -16
  366. package/.idea/inspectionProfiles/Project_Default.xml +0 -22
  367. package/.idea/jsLibraryMappings.xml +0 -6
  368. package/.idea/modules.xml +0 -12
  369. package/.idea/prettier.xml +0 -6
  370. package/.idea/vcs.xml +0 -17
  371. package/dist/@type/express/index.d.js +0 -7
  372. package/dist/@type/express/index.d.js.map +0 -1
  373. package/dist/middleware/exception.handler.js.map +0 -1
  374. package/dist/migrations/1696187882312-PrinterFile.js +0 -40
  375. package/dist/migrations/1696187882312-PrinterFile.js.map +0 -1
  376. package/dist/models/ServerSettings.js +0 -168
  377. package/dist/models/ServerSettings.js.map +0 -1
  378. package/dist/nodemon_restart_trigger.js +0 -4
  379. package/dist/nodemon_restart_trigger.js.map +0 -1
  380. package/dist/services/orm/floor.service.interface.js +0 -73
  381. package/dist/services/orm/floor.service.interface.js.map +0 -1
  382. package/dist/services/orm/printer.service.interface.js.map +0 -1
  383. package/dist/services/yaml.service.js +0 -278
  384. package/dist/services/yaml.service.js.map +0 -1
  385. package/nodemon_restart_trigger.js +0 -1
@@ -23,13 +23,37 @@ const _serverconstants = require("../server.constants");
23
23
  const _authorizationconstants = require("../constants/authorization.constants");
24
24
  const _validators = require("../handlers/validators");
25
25
  const _settingsservicevalidation = require("../services/validators/settings-service.validation");
26
+ const _ip = require("ip");
27
+ const _packagejson = require("../../package.json");
28
+ const _demomiddleware = require("../middleware/demo.middleware");
26
29
  class SettingsController {
27
30
  settingsStore;
28
- constructor({ settingsStore }){
31
+ logger;
32
+ constructor({ settingsStore, loggerFactory }){
29
33
  this.settingsStore = settingsStore;
34
+ this.logger = loggerFactory(SettingsController.name);
30
35
  }
31
36
  getSettings(req, res) {
37
+ // Safely get IP address
38
+ let connection;
39
+ try {
40
+ const serverIp = (0, _ip.address)();
41
+ connection = {
42
+ clientIp: req.socket?.remoteAddress,
43
+ ip: serverIp,
44
+ version: _packagejson.version
45
+ };
46
+ } catch (e) {
47
+ this.logger.warn("Could not fetch server IP address");
48
+ }
32
49
  const settings = this.settingsStore.getSettings();
50
+ res.send({
51
+ ...settings,
52
+ connection
53
+ });
54
+ }
55
+ async getSettingsSensitive(req, res) {
56
+ const settings = this.settingsStore.getSettingsSensitive();
33
57
  res.send(settings);
34
58
  }
35
59
  async updateSentryDiagnosticsEnabled(req, res) {
@@ -42,8 +66,8 @@ class SettingsController {
42
66
  if (!whitelistedIpAddresses.includes("127.0.0.1")) {
43
67
  whitelistedIpAddresses.push("127.0.0.1");
44
68
  }
45
- const result = await this.settingsStore.setWhitelist(whitelistEnabled, whitelistedIpAddresses);
46
- res.send(result);
69
+ await this.settingsStore.setWhitelist(whitelistEnabled, whitelistedIpAddresses);
70
+ res.send();
47
71
  }
48
72
  async updateFrontendSettings(req, res) {
49
73
  const result = await this.settingsStore.updateFrontendSettings(req.body);
@@ -53,30 +77,83 @@ class SettingsController {
53
77
  const result = await this.settingsStore.updateServerSettings(req.body);
54
78
  res.send(result);
55
79
  }
80
+ async updateLoginRequiredSettings(req, res) {
81
+ const { loginRequired } = await (0, _validators.validateInput)(req.body, {
82
+ loginRequired: "required|boolean"
83
+ });
84
+ const result = await this.settingsStore.setLoginRequired(loginRequired);
85
+ res.send(result);
86
+ }
87
+ async updateRegistrationEnabledSettings(req, res) {
88
+ const { registrationEnabled } = await (0, _validators.validateInput)(req.body, {
89
+ registrationEnabled: "required|boolean"
90
+ });
91
+ const result = await this.settingsStore.setRegistrationEnabled(registrationEnabled);
92
+ res.send(result);
93
+ }
94
+ async updateCredentialSettings(req, res) {
95
+ await this.settingsStore.updateCredentialSettings(req.body);
96
+ res.send();
97
+ }
56
98
  async updateFileCleanSettings(req, res) {
57
99
  const result = await this.settingsStore.patchFileCleanSettings(req.body);
58
100
  res.send(result);
59
101
  }
102
+ async updateTimeoutSettings(req, res) {
103
+ const result = await this.settingsStore.updateTimeoutSettings(req.body);
104
+ res.send(result);
105
+ }
60
106
  }
61
107
  const _default = (0, _awilixexpress.createController)(SettingsController).prefix(_serverconstants.AppConstants.apiRoute + "/settings").before([
62
108
  (0, _authenticate.authenticate)()
63
- ]).get("/", "getSettings").patch("/sentry-diagnostics", "updateSentryDiagnosticsEnabled").put("/server", "updateServerSettings", {
109
+ ]).get("/", "getSettings").get("/sensitive", "getSettingsSensitive", {
64
110
  before: [
65
111
  (0, _authenticate.authorizeRoles)([
66
112
  _authorizationconstants.ROLES.ADMIN
67
- ])
113
+ ]),
114
+ _demomiddleware.demoUserNotAllowed
115
+ ]
116
+ }).patch("/sentry-diagnostics", "updateSentryDiagnosticsEnabled", _demomiddleware.demoUserNotAllowedInterceptor).put("/server", "updateServerSettings", {
117
+ before: [
118
+ (0, _authenticate.authorizeRoles)([
119
+ _authorizationconstants.ROLES.ADMIN
120
+ ]),
121
+ _demomiddleware.demoUserNotAllowed
122
+ ]
123
+ }).put("/login-required", "updateLoginRequiredSettings", {
124
+ before: [
125
+ (0, _authenticate.authorizeRoles)([
126
+ _authorizationconstants.ROLES.ADMIN
127
+ ]),
128
+ _demomiddleware.demoUserNotAllowed
129
+ ]
130
+ }).put("/registration-enabled", "updateRegistrationEnabledSettings", {
131
+ before: [
132
+ (0, _authenticate.authorizeRoles)([
133
+ _authorizationconstants.ROLES.ADMIN
134
+ ]),
135
+ _demomiddleware.demoUserNotAllowed
136
+ ]
137
+ }).put("/credential", "updateCredentialSettings", {
138
+ before: [
139
+ (0, _authenticate.authorizeRoles)([
140
+ _authorizationconstants.ROLES.ADMIN
141
+ ]),
142
+ _demomiddleware.demoUserNotAllowed
68
143
  ]
69
144
  }).put("/file-clean", "updateFileCleanSettings", {
70
145
  before: [
71
146
  (0, _authenticate.authorizeRoles)([
72
147
  _authorizationconstants.ROLES.ADMIN
73
- ])
148
+ ]),
149
+ _demomiddleware.demoUserNotAllowed
74
150
  ]
75
151
  }).put("/whitelist", "updateWhitelistSettings", {
76
152
  before: [
77
153
  (0, _authenticate.authorizeRoles)([
78
154
  _authorizationconstants.ROLES.ADMIN
79
- ])
155
+ ]),
156
+ _demomiddleware.demoUserNotAllowed
80
157
  ]
81
158
  }).put("/frontend", "updateFrontendSettings", {
82
159
  before: [
@@ -84,6 +161,13 @@ const _default = (0, _awilixexpress.createController)(SettingsController).prefix
84
161
  _authorizationconstants.ROLES.ADMIN
85
162
  ])
86
163
  ]
164
+ }).put("/timeout", "updateTimeoutSettings", {
165
+ before: [
166
+ (0, _authenticate.authorizeRoles)([
167
+ _authorizationconstants.ROLES.ADMIN
168
+ ]),
169
+ _demomiddleware.demoUserNotAllowed
170
+ ]
87
171
  });
88
172
 
89
173
  //# sourceMappingURL=settings.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/settings.controller.ts"],"names":["SettingsController","settingsStore","constructor","getSettings","req","res","settings","send","updateSentryDiagnosticsEnabled","enabled","validateInput","body","sentryDiagnosticsEnabledRules","result","setSentryDiagnosticsEnabled","updateWhitelistSettings","whitelistEnabled","whitelistedIpAddresses","whitelistSettingUpdateRules","includes","push","setWhitelist","updateFrontendSettings","updateServerSettings","updateFileCleanSettings","patchFileCleanSettings","createController","prefix","AppConstants","apiRoute","before","authenticate","get","patch","put","authorizeRoles","ROLES","ADMIN"],"mappings":";;;;;;;;;;;IAUaA,kBAAkB;eAAlBA;;IA8Cb,kBAAkB;IAClB,OAQ2F;eAR3F;;;+BAzDiC;8BACY;iCAChB;wCACP;4BACQ;2CAC6C;AAKpE,MAAMA;IACXC,cAA6B;IAE7BC,YAAY,EAAED,aAAa,EAAoC,CAAE;QAC/D,IAAI,CAACA,aAAa,GAAGA;IACvB;IAEAE,YAAYC,GAAY,EAAEC,GAAa,EAAE;QACvC,MAAMC,WAAW,IAAI,CAACL,aAAa,CAACE,WAAW;QAC/CE,IAAIE,IAAI,CAACD;IACX;IAEA,MAAME,+BAA+BJ,GAAY,EAAEC,GAAa,EAAE;QAChE,MAAM,EAAEI,OAAO,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACN,IAAIO,IAAI,EAAEC,wDAA6B;QAC/E,MAAMC,SAAS,IAAI,CAACZ,aAAa,CAACa,2BAA2B,CAACL;QAC9DJ,IAAIE,IAAI,CAACM;IACX;IAEA,MAAME,wBAAwBX,GAAY,EAAEC,GAAa,EAAE;QACzD,MAAM,EAAEW,gBAAgB,EAAEC,sBAAsB,EAAE,GAAG,MAAMP,IAAAA,yBAAa,EACtEN,IAAIO,IAAI,EACRO,sDAA2B;QAE7B,IAAI,CAACD,uBAAuBE,QAAQ,CAAC,cAAc;YACjDF,uBAAuBG,IAAI,CAAC;QAC9B;QACA,MAAMP,SAAS,MAAM,IAAI,CAACZ,aAAa,CAACoB,YAAY,CAACL,kBAAkBC;QACvEZ,IAAIE,IAAI,CAACM;IACX;IAEA,MAAMS,uBAAuBlB,GAAY,EAAEC,GAAa,EAAE;QACxD,MAAMQ,SAAS,MAAM,IAAI,CAACZ,aAAa,CAACqB,sBAAsB,CAAClB,IAAIO,IAAI;QACvEN,IAAIE,IAAI,CAACM;IACX;IAEA,MAAMU,qBAAqBnB,GAAY,EAAEC,GAAa,EAAE;QACtD,MAAMQ,SAAS,MAAM,IAAI,CAACZ,aAAa,CAACsB,oBAAoB,CAACnB,IAAIO,IAAI;QACrEN,IAAIE,IAAI,CAACM;IACX;IAEA,MAAMW,wBAAwBpB,GAAY,EAAEC,GAAa,EAAE;QACzD,MAAMQ,SAAS,MAAM,IAAI,CAACZ,aAAa,CAACwB,sBAAsB,CAACrB,IAAIO,IAAI;QACvEN,IAAIE,IAAI,CAACM;IACX;AACF;MAGA,WAAea,IAAAA,+BAAgB,EAAC1B,oBAC7B2B,MAAM,CAACC,6BAAY,CAACC,QAAQ,GAAG,aAC/BC,MAAM,CAAC;IAACC,IAAAA,0BAAY;CAAG,EACvBC,GAAG,CAAC,KAAK,eACTC,KAAK,CAAC,uBAAuB,kCAC7BC,GAAG,CAAC,WAAW,wBAAwB;IAAEJ,QAAQ;QAACK,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;KAAE;AAAC,GACjFH,GAAG,CAAC,eAAe,2BAA2B;IAAEJ,QAAQ;QAACK,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;KAAE;AAAC,GACxFH,GAAG,CAAC,cAAc,2BAA2B;IAAEJ,QAAQ;QAACK,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;KAAE;AAAC,GACvFH,GAAG,CAAC,aAAa,0BAA0B;IAAEJ,QAAQ;QAACK,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;KAAE;AAAC"}
1
+ {"version":3,"sources":["../../src/controllers/settings.controller.ts"],"names":["SettingsController","settingsStore","logger","constructor","loggerFactory","name","getSettings","req","res","connection","serverIp","address","clientIp","socket","remoteAddress","ip","version","e","warn","settings","send","getSettingsSensitive","updateSentryDiagnosticsEnabled","enabled","validateInput","body","sentryDiagnosticsEnabledRules","result","setSentryDiagnosticsEnabled","updateWhitelistSettings","whitelistEnabled","whitelistedIpAddresses","whitelistSettingUpdateRules","includes","push","setWhitelist","updateFrontendSettings","updateServerSettings","updateLoginRequiredSettings","loginRequired","setLoginRequired","updateRegistrationEnabledSettings","registrationEnabled","setRegistrationEnabled","updateCredentialSettings","updateFileCleanSettings","patchFileCleanSettings","updateTimeoutSettings","createController","prefix","AppConstants","apiRoute","before","authenticate","get","authorizeRoles","ROLES","ADMIN","demoUserNotAllowed","patch","demoUserNotAllowedInterceptor","put"],"mappings":";;;;;;;;;;;IAeaA,kBAAkB;eAAlBA;;IAuFb,kBAAkB;IAClB,OAa+G;eAb/G;;;+BAvGiC;8BACY;iCAChB;wCACP;4BACQ;2CAC6C;oBAGnD;6BACA;gCAI0C;AAE3D,MAAMA;IACXC,cAA6B;IAC7BC,OAAsB;IAEtBC,YAAY,EAAEF,aAAa,EAAEG,aAAa,EAAmE,CAAE;QAC7G,IAAI,CAACH,aAAa,GAAGA;QACrB,IAAI,CAACC,MAAM,GAAGE,cAAcJ,mBAAmBK,IAAI;IACrD;IAEAC,YAAYC,GAAY,EAAEC,GAAa,EAAE;QACvC,wBAAwB;QACxB,IAAIC;QACJ,IAAI;YACF,MAAMC,WAAWC,IAAAA,WAAO;YACxBF,aAAa;gBACXG,UAAUL,IAAIM,MAAM,EAAEC;gBACtBC,IAAIL;gBACJM,SAAAA,oBAAO;YACT;QACF,EAAE,OAAOC,GAAG;YACV,IAAI,CAACf,MAAM,CAACgB,IAAI,CAAC;QACnB;QACA,MAAMC,WAAW,IAAI,CAAClB,aAAa,CAACK,WAAW;QAC/CE,IAAIY,IAAI,CAAC;YAAE,GAAGD,QAAQ;YAAEV;QAAW;IACrC;IAEA,MAAMY,qBAAqBd,GAAY,EAAEC,GAAa,EAAE;QACtD,MAAMW,WAAW,IAAI,CAAClB,aAAa,CAACoB,oBAAoB;QACxDb,IAAIY,IAAI,CAACD;IACX;IAEA,MAAMG,+BAA+Bf,GAAY,EAAEC,GAAa,EAAE;QAChE,MAAM,EAAEe,OAAO,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACjB,IAAIkB,IAAI,EAAEC,wDAA6B;QAC/E,MAAMC,SAAS,IAAI,CAAC1B,aAAa,CAAC2B,2BAA2B,CAACL;QAC9Df,IAAIY,IAAI,CAACO;IACX;IAEA,MAAME,wBAAwBtB,GAAY,EAAEC,GAAa,EAAE;QACzD,MAAM,EAAEsB,gBAAgB,EAAEC,sBAAsB,EAAE,GAAG,MAAMP,IAAAA,yBAAa,EACtEjB,IAAIkB,IAAI,EACRO,sDAA2B;QAE7B,IAAI,CAACD,uBAAuBE,QAAQ,CAAC,cAAc;YACjDF,uBAAuBG,IAAI,CAAC;QAC9B;QACA,MAAM,IAAI,CAACjC,aAAa,CAACkC,YAAY,CAACL,kBAAkBC;QACxDvB,IAAIY,IAAI;IACV;IAEA,MAAMgB,uBAAuB7B,GAAY,EAAEC,GAAa,EAAE;QACxD,MAAMmB,SAAS,MAAM,IAAI,CAAC1B,aAAa,CAACmC,sBAAsB,CAAC7B,IAAIkB,IAAI;QACvEjB,IAAIY,IAAI,CAACO;IACX;IAEA,MAAMU,qBAAqB9B,GAAY,EAAEC,GAAa,EAAE;QACtD,MAAMmB,SAAS,MAAM,IAAI,CAAC1B,aAAa,CAACoC,oBAAoB,CAAC9B,IAAIkB,IAAI;QACrEjB,IAAIY,IAAI,CAACO;IACX;IAEA,MAAMW,4BAA4B/B,GAAY,EAAEC,GAAa,EAAE;QAC7D,MAAM,EAAE+B,aAAa,EAAE,GAAG,MAAMf,IAAAA,yBAAa,EAACjB,IAAIkB,IAAI,EAAE;YAAEc,eAAe;QAAmB;QAC5F,MAAMZ,SAAS,MAAM,IAAI,CAAC1B,aAAa,CAACuC,gBAAgB,CAACD;QACzD/B,IAAIY,IAAI,CAACO;IACX;IAEA,MAAMc,kCAAkClC,GAAY,EAAEC,GAAa,EAAE;QACnE,MAAM,EAAEkC,mBAAmB,EAAE,GAAG,MAAMlB,IAAAA,yBAAa,EAACjB,IAAIkB,IAAI,EAAE;YAAEiB,qBAAqB;QAAmB;QACxG,MAAMf,SAAS,MAAM,IAAI,CAAC1B,aAAa,CAAC0C,sBAAsB,CAACD;QAC/DlC,IAAIY,IAAI,CAACO;IACX;IAEA,MAAMiB,yBAAyBrC,GAAY,EAAEC,GAAa,EAAE;QAC1D,MAAM,IAAI,CAACP,aAAa,CAAC2C,wBAAwB,CAACrC,IAAIkB,IAAI;QAC1DjB,IAAIY,IAAI;IACV;IAEA,MAAMyB,wBAAwBtC,GAAY,EAAEC,GAAa,EAAE;QACzD,MAAMmB,SAAS,MAAM,IAAI,CAAC1B,aAAa,CAAC6C,sBAAsB,CAACvC,IAAIkB,IAAI;QACvEjB,IAAIY,IAAI,CAACO;IACX;IAEA,MAAMoB,sBAAsBxC,GAAY,EAAEC,GAAa,EAAE;QACvD,MAAMmB,SAAS,MAAM,IAAI,CAAC1B,aAAa,CAAC8C,qBAAqB,CAACxC,IAAIkB,IAAI;QACtEjB,IAAIY,IAAI,CAACO;IACX;AACF;MAGA,WAAeqB,IAAAA,+BAAgB,EAAChD,oBAC3BiD,MAAM,CAACC,6BAAY,CAACC,QAAQ,GAAG,aAC/BC,MAAM,CAAC;IAACC,IAAAA,0BAAY;CAAG,EACvBC,GAAG,CAAC,KAAK,eACTA,GAAG,CAAC,cAAc,wBAAwB;IAAEF,QAAQ;QAACG,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;QAAGC,kCAAkB;KAAC;AAAC,GACxGC,KAAK,CAAC,uBAAuB,kCAAkCC,6CAA6B,EAC5FC,GAAG,CAAC,WAAW,wBAAwB;IAAET,QAAQ;QAACG,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;QAAGC,kCAAkB;KAAC;AAAC,GACrGG,GAAG,CAAC,mBAAmB,+BAA+B;IAAET,QAAQ;QAACG,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;QAAGC,kCAAkB;KAAC;AAAC,GACpHG,GAAG,CAAC,yBAAyB,qCAAqC;IAAET,QAAQ;QAACG,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;QAAGC,kCAAkB;KAAC;AAAC,GAChIG,GAAG,CAAC,eAAe,4BAA4B;IAAET,QAAQ;QAACG,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;QAAGC,kCAAkB;KAAC;AAAC,GAC7GG,GAAG,CAAC,eAAe,2BAA2B;IAAET,QAAQ;QAACG,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;QAAGC,kCAAkB;KAAC;AAAC,GAC5GG,GAAG,CAAC,cAAc,2BAA2B;IAAET,QAAQ;QAACG,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;QAAGC,kCAAkB;KAAC;AAAC,GAC3GG,GAAG,CAAC,aAAa,0BAA0B;IAAET,QAAQ;QAACG,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;KAAE;AAAC,GACrFI,GAAG,CAAC,YAAY,yBAAyB;IAAET,QAAQ;QAACG,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,KAAK;SAAC;QAAGC,kCAAkB;KAAC;AAAC"}
@@ -23,12 +23,22 @@ const _authorizationconstants = require("../constants/authorization.constants");
23
23
  const _validators = require("../handlers/validators");
24
24
  const _genericvalidation = require("./validation/generic.validation");
25
25
  const _runtimeexceptions = require("../exceptions/runtime.exceptions");
26
+ const _demomiddleware = require("../middleware/demo.middleware");
27
+ const _errorutils = require("../utils/error.utils");
26
28
  class UserController {
27
29
  userService;
30
+ roleService;
28
31
  configService;
29
- constructor({ userService, configService }){
32
+ authService;
33
+ settingsStore;
34
+ logger;
35
+ constructor({ userService, configService, roleService, settingsStore, authService, loggerFactory }){
30
36
  this.userService = userService;
31
37
  this.configService = configService;
38
+ this.roleService = roleService;
39
+ this.authService = authService;
40
+ this.settingsStore = settingsStore;
41
+ this.logger = loggerFactory(UserController.name);
32
42
  }
33
43
  async profile(req, res) {
34
44
  if (!req.user?.id) {
@@ -42,19 +52,34 @@ class UserController {
42
52
  const users = await this.userService.listUsers();
43
53
  res.send(users.map((u)=>this.userService.toDto(u)));
44
54
  }
55
+ async listRoles(req, res) {
56
+ const roleDtos = this.roleService.roles.map((r)=>this.roleService.toDto(r));
57
+ res.send(roleDtos);
58
+ }
45
59
  async delete(req, res) {
46
- this.throwIfDemoMode();
47
60
  const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
48
- if (req.user?.id === id) {
49
- throw new _runtimeexceptions.InternalServerException("Not allowed to delete your own account");
61
+ const ownUserId = req.user?.id;
62
+ if (ownUserId) {
63
+ if (ownUserId === id) {
64
+ throw new _runtimeexceptions.ForbiddenError("Not allowed to delete own account");
65
+ }
50
66
  }
51
- if (this.isDemoMode()) {
67
+ const isRootUser = await this.userService.isUserRootUser(id);
68
+ if (isRootUser) {
69
+ throw new _runtimeexceptions.ForbiddenError("Not allowed to delete root user");
70
+ }
71
+ if (this.configService.isDemoMode()) {
52
72
  const demoUserId = await this.userService.getDemoUserId();
53
73
  if (id === demoUserId) {
54
74
  this.throwIfDemoMode();
55
75
  }
56
76
  }
57
77
  await this.userService.deleteUser(id);
78
+ try {
79
+ await this.authService.logoutUserId(id);
80
+ } catch (e) {
81
+ this.logger.error((0, _errorutils.errorSummary)(e));
82
+ }
58
83
  res.send();
59
84
  }
60
85
  async get(req, res) {
@@ -63,10 +88,9 @@ class UserController {
63
88
  res.send(this.userService.toDto(user));
64
89
  }
65
90
  async changeUsername(req, res) {
66
- this.throwIfDemoMode();
67
91
  const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
68
- if (req.user?.id !== id) {
69
- throw new _runtimeexceptions.InternalServerException("Not allowed to change username of other users");
92
+ if (req.user?.id !== id && await this.settingsStore.getLoginRequired()) {
93
+ throw new _runtimeexceptions.ForbiddenError("Not allowed to change username of other users");
70
94
  }
71
95
  const { username } = await (0, _validators.validateInput)(req.body, {
72
96
  username: "required|string"
@@ -75,10 +99,9 @@ class UserController {
75
99
  res.send();
76
100
  }
77
101
  async changePassword(req, res) {
78
- this.throwIfDemoMode();
79
102
  const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
80
- if (req.user?.id !== id) {
81
- throw new _runtimeexceptions.InternalServerException("Not allowed to change password of other users");
103
+ if (req.user?.id !== id && await this.settingsStore.getLoginRequired()) {
104
+ throw new _runtimeexceptions.ForbiddenError("Not allowed to change password of other users");
82
105
  }
83
106
  const { oldPassword, newPassword } = await (0, _validators.validateInput)(req.body, {
84
107
  oldPassword: "required|string",
@@ -88,21 +111,50 @@ class UserController {
88
111
  res.send();
89
112
  }
90
113
  async setVerified(req, res) {
91
- this.throwIfDemoMode();
92
114
  const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
115
+ const ownUserId = req.user?.id;
116
+ if (ownUserId) {
117
+ if (ownUserId === id) {
118
+ throw new _runtimeexceptions.ForbiddenError("Not allowed to change own verified status");
119
+ }
120
+ }
121
+ const isRootUser = await this.userService.isUserRootUser(id);
122
+ if (isRootUser) {
123
+ throw new _runtimeexceptions.ForbiddenError("Not allowed to change root user to unverified");
124
+ }
93
125
  const { isVerified } = await (0, _validators.validateInput)(req.body, {
94
126
  isVerified: "required|boolean"
95
127
  });
96
128
  await this.userService.setVerifiedById(id, isVerified);
129
+ // Note: this makes it impossible for the UI to determine if the user is verified or not
130
+ // if (!isVerified) {
131
+ // try {
132
+ // await this.authService.logoutUserId(id);
133
+ // } catch (e) {
134
+ // this.logger.error(errorSummary(e));
135
+ // }
136
+ // }
97
137
  res.send();
98
138
  }
99
- isDemoMode() {
100
- return this.configService.get(_serverconstants.AppConstants.OVERRIDE_IS_DEMO_MODE, "false") === "true";
139
+ async setRootUser(req, res) {
140
+ const { id } = await (0, _validators.validateInput)(req.params, _genericvalidation.idRules);
141
+ const userId = req.user?.id;
142
+ if (req.user?.id) {
143
+ const isRootUser = await this.userService.isUserRootUser(userId);
144
+ if (!isRootUser) {
145
+ throw new _runtimeexceptions.ForbiddenError("Not allowed to change owner (root user) without being owner yourself");
146
+ }
147
+ }
148
+ const { isRootUser } = await (0, _validators.validateInput)(req.body, {
149
+ isRootUser: "required|boolean"
150
+ });
151
+ await this.userService.setIsRootUserById(id, isRootUser);
152
+ res.send();
101
153
  }
102
154
  throwIfDemoMode() {
103
- const isDemoMode = this.isDemoMode();
155
+ const isDemoMode = this.configService.isDemoMode();
104
156
  if (isDemoMode) {
105
- throw new _runtimeexceptions.InternalServerException("Not allowed in demo mode");
157
+ throw new _runtimeexceptions.ForbiddenError("Not allowed in demo mode");
106
158
  }
107
159
  }
108
160
  }
@@ -114,7 +166,7 @@ const _default = (0, _awilixexpress.createController)(UserController).prefix(_se
114
166
  _authorizationconstants.ROLES.ADMIN
115
167
  ])
116
168
  ]
117
- }).get("/profile", "profile").get("/:id", "get", {
169
+ }).get("/roles", "listRoles", {}).get("/profile", "profile").get("/:id", "get", {
118
170
  before: [
119
171
  (0, _authenticate.authorizeRoles)([
120
172
  _authorizationconstants.ROLES.ADMIN
@@ -124,14 +176,21 @@ const _default = (0, _awilixexpress.createController)(UserController).prefix(_se
124
176
  before: [
125
177
  (0, _authenticate.authorizeRoles)([
126
178
  _authorizationconstants.ROLES.ADMIN
127
- ])
179
+ ]),
180
+ _demomiddleware.demoUserNotAllowed
181
+ ]
182
+ })// Has root user validation
183
+ .post("/:id/set-root-user", "setRootUser", {
184
+ before: [
185
+ _demomiddleware.demoUserNotAllowed
128
186
  ]
129
187
  }).post("/:id/set-verified", "setVerified", {
130
188
  before: [
131
189
  (0, _authenticate.authorizeRoles)([
132
190
  _authorizationconstants.ROLES.ADMIN
133
- ])
191
+ ]),
192
+ _demomiddleware.demoUserNotAllowed
134
193
  ]
135
- }).post("/:id/change-username", "changeUsername").post("/:id/change-password", "changePassword");
194
+ }).post("/:id/change-username", "changeUsername", _demomiddleware.demoUserNotAllowedInterceptor).post("/:id/change-password", "changePassword", _demomiddleware.demoUserNotAllowedInterceptor);
136
195
 
137
196
  //# sourceMappingURL=user.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/user.controller.ts"],"names":["UserController","userService","configService","constructor","profile","req","res","user","id","send","getUser","toDto","list","users","listUsers","map","u","delete","throwIfDemoMode","validateInput","params","idRules","InternalServerException","isDemoMode","demoUserId","getDemoUserId","deleteUser","get","changeUsername","username","body","updateUsernameById","changePassword","oldPassword","newPassword","updatePasswordById","setVerified","isVerified","setVerifiedById","AppConstants","OVERRIDE_IS_DEMO_MODE","createController","prefix","apiRoute","before","authenticate","authorizeRoles","ROLES","ADMIN","post"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/controllers/user.controller.ts"],"names":["UserController","userService","roleService","configService","authService","settingsStore","logger","constructor","loggerFactory","name","profile","req","res","user","id","send","getUser","toDto","list","users","listUsers","map","u","listRoles","roleDtos","roles","r","delete","validateInput","params","idRules","ownUserId","ForbiddenError","isRootUser","isUserRootUser","isDemoMode","demoUserId","getDemoUserId","throwIfDemoMode","deleteUser","logoutUserId","e","error","errorSummary","get","changeUsername","getLoginRequired","username","body","updateUsernameById","changePassword","oldPassword","newPassword","updatePasswordById","setVerified","isVerified","setVerifiedById","setRootUser","userId","setIsRootUserById","createController","prefix","AppConstants","apiRoute","before","authenticate","authorizeRoles","ROLES","ADMIN","demoUserNotAllowed","post","demoUserNotAllowedInterceptor"],"mappings":"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"}
File without changes
@@ -13,7 +13,7 @@ const wizardSettingsRules = {
13
13
  loginRequired: "required|boolean",
14
14
  registration: "required|boolean",
15
15
  rootUsername: "required|string",
16
- rootPassword: "required|string"
16
+ rootPassword: "required|string|minLength:8"
17
17
  };
18
18
 
19
19
  //# sourceMappingURL=setting.validation.js.map
@@ -8,9 +8,10 @@ Object.defineProperty(exports, "registerUserRules", {
8
8
  return registerUserRules;
9
9
  }
10
10
  });
11
+ const _serverconstants = require("../../server.constants");
11
12
  const registerUserRules = {
12
- username: "required|string",
13
- password: "required|string"
13
+ username: `required|string|minLength:${_serverconstants.AppConstants.DEFAULT_USERNAME_MINLEN}`,
14
+ password: `required|string|minLength:${_serverconstants.AppConstants.DEFAULT_PASSWORD_MINLEN}`
14
15
  };
15
16
 
16
17
  //# sourceMappingURL=user-controller.validation.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controllers/validation/user-controller.validation.ts"],"names":["registerUserRules","username","password"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,oBAAoB;IAC/BC,UAAU;IACVC,UAAU;AACZ"}
1
+ {"version":3,"sources":["../../../src/controllers/validation/user-controller.validation.ts"],"names":["registerUserRules","username","AppConstants","DEFAULT_USERNAME_MINLEN","password","DEFAULT_PASSWORD_MINLEN"],"mappings":";;;;+BAEaA;;;eAAAA;;;iCAFgB;AAEtB,MAAMA,oBAAoB;IAC/BC,UAAU,CAAC,0BAA0B,EAAEC,6BAAY,CAACC,uBAAuB,CAAC,CAAC;IAC7EC,UAAU,CAAC,0BAA0B,EAAEF,6BAAY,CAACG,uBAAuB,CAAC,CAAC;AAC/E"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/exceptions/job.exceptions.ts"],"names":["JobValidationException","Error","constructor","message","taskId","name"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,+BAA+BC;IAC1CC,YAAYC,OAAO,EAAEC,MAAM,CAAE;QAC3B,KAAK,CAACD;QACN,IAAI,CAACE,IAAI,GAAG,CAAC,oBAAoB,EAAED,UAAU,YAAY,CAAC,CAAC;IAC7D;AACF"}
1
+ {"version":3,"sources":["../../src/exceptions/job.exceptions.ts"],"names":["JobValidationException","Error","constructor","message","taskId","name"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,+BAA+BC;IAC1CC,YAAYC,OAAe,EAAEC,MAAc,CAAE;QAC3C,KAAK,CAACD;QACN,IAAI,CAACE,IAAI,GAAG,CAAC,oBAAoB,EAAED,UAAU,YAAY,CAAC,CAAC;IAC7D;AACF"}
@@ -21,6 +21,9 @@ _export(exports, {
21
21
  ExternalServiceError: function() {
22
22
  return ExternalServiceError;
23
23
  },
24
+ ForbiddenError: function() {
25
+ return ForbiddenError;
26
+ },
24
27
  InternalServerException: function() {
25
28
  return InternalServerException;
26
29
  },
@@ -30,9 +33,6 @@ _export(exports, {
30
33
  NotImplementedException: function() {
31
34
  return NotImplementedException;
32
35
  },
33
- PasswordChangeRequiredError: function() {
34
- return PasswordChangeRequiredError;
35
- },
36
36
  ValidationException: function() {
37
37
  return ValidationException;
38
38
  }
@@ -44,15 +44,17 @@ class NotImplementedException extends Error {
44
44
  }
45
45
  }
46
46
  class AuthenticationError extends Error {
47
- constructor(error){
47
+ reasonCode;
48
+ constructor(error, reasonCode = ""){
48
49
  super(error);
49
50
  this.name = AuthenticationError.name;
51
+ this.reasonCode = reasonCode;
50
52
  }
51
53
  }
52
- class PasswordChangeRequiredError extends Error {
53
- constructor(){
54
- super("Password change required");
55
- this.name = PasswordChangeRequiredError.name;
54
+ class ForbiddenError extends Error {
55
+ constructor(error){
56
+ super(error);
57
+ this.name = ForbiddenError.name;
56
58
  }
57
59
  }
58
60
  class AuthorizationError extends Error {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/exceptions/runtime.exceptions.ts"],"names":["AuthenticationError","AuthorizationError","BadRequestException","ExternalServiceError","InternalServerException","NotFoundException","NotImplementedException","PasswordChangeRequiredError","ValidationException","Error","constructor","message","name","error","permissions","roles","reason","path","errors","validationObject","JSON","stringify","responseObject","stack"],"mappings":";;;;;;;;;;;IAOaA,mBAAmB;eAAnBA;;IAcAC,kBAAkB;eAAlBA;;IAcAC,mBAAmB;eAAnBA;;IA2BAC,oBAAoB;eAApBA;;IAUAC,uBAAuB;eAAvBA;;IA9BAC,iBAAiB;eAAjBA;;IA1CAC,uBAAuB;eAAvBA;;IAcAC,2BAA2B;eAA3BA;;IAsCAC,mBAAmB;eAAnBA;;;AApDN,MAAMF,gCAAgCG;IAC3CC,YAAYC,OAAgB,CAAE;QAC5B,KAAK,CAACA;QACN,IAAI,CAACC,IAAI,GAAGN,wBAAwBM,IAAI;IAC1C;AACF;AAEO,MAAMZ,4BAA4BS;IACvCC,YAAYG,KAAc,CAAE;QAC1B,KAAK,CAACA;QACN,IAAI,CAACD,IAAI,GAAGZ,oBAAoBY,IAAI;IACtC;AACF;AAEO,MAAML,oCAAoCE;IAC/CC,aAAc;QACZ,KAAK,CAAC;QACN,IAAI,CAACE,IAAI,GAAGL,4BAA4BK,IAAI;IAC9C;AACF;AAEO,MAAMX,2BAA2BQ;IACtCK,cAAyB,EAAE,CAAC;IAC5BC,QAAmB,EAAE,CAAC;IACtBC,OAAgB;IAEhBN,YAAY,EAAEI,WAAW,EAAEC,KAAK,EAAEC,MAAM,EAAiE,CAAE;QACzG,KAAK,CAAC;QACN,IAAI,CAACJ,IAAI,GAAGX,mBAAmBW,IAAI;QACnC,IAAI,CAACI,MAAM,GAAGA;QACd,IAAI,CAACF,WAAW,GAAGA;QACnB,IAAI,CAACC,KAAK,GAAGA;IACf;AACF;AAEO,MAAMb,4BAA4BO;IACvCC,YAAYC,OAAe,CAAE;QAC3B,KAAK,CAACA;QACN,IAAI,CAACC,IAAI,GAAGV,oBAAoBU,IAAI;IACtC;AACF;AAEO,MAAMP,0BAA0BI;IACrCQ,KAAc;IAEdP,YAAYC,OAAe,EAAEM,IAAa,CAAE;QAC1C,KAAK,CAACN;QACN,IAAI,CAACC,IAAI,GAAGP,kBAAkBO,IAAI;QAClC,IAAI,CAACK,IAAI,GAAGA;IACd;AACF;AAEO,MAAMT,4BAA4BC;IACvCS,OAAY;IAEZR,YAAYS,gBAAqB,CAAE;QACjC,KAAK,CAACC,KAAKC,SAAS,CAACF;QACrB,IAAI,CAACP,IAAI,GAAGJ,oBAAoBI,IAAI;QACpC,IAAI,CAACM,MAAM,GAAGC;IAChB;AACF;AAEO,MAAMhB,6BAA6BM;IACxCI,MAAW;IAEXH,YAAYY,cAAmB,CAAE;QAC/B,KAAK,CAACF,KAAKC,SAAS,CAACC;QACrB,IAAI,CAACV,IAAI,GAAGT,qBAAqBS,IAAI;QACrC,IAAI,CAACC,KAAK,GAAGS;IACf;AACF;AAEO,MAAMlB,gCAAgCK;IAC3CC,YAAYC,OAAe,EAAEY,KAAW,CAAE;QACxC,KAAK,CAACZ;QACN,IAAI,CAACC,IAAI,GAAGR,wBAAwBQ,IAAI;QACxC,IAAI,CAACW,KAAK,GAAGA;IACf;AACF"}
1
+ {"version":3,"sources":["../../src/exceptions/runtime.exceptions.ts"],"names":["AuthenticationError","AuthorizationError","BadRequestException","ExternalServiceError","ForbiddenError","InternalServerException","NotFoundException","NotImplementedException","ValidationException","Error","constructor","message","name","reasonCode","error","permissions","roles","reason","path","errors","validationObject","JSON","stringify","responseObject","stack"],"mappings":";;;;;;;;;;;IAOaA,mBAAmB;eAAnBA;;IAgBAC,kBAAkB;eAAlBA;;IAcAC,mBAAmB;eAAnBA;;IA2BAC,oBAAoB;eAApBA;;IAhDAC,cAAc;eAAdA;;IA0DAC,uBAAuB;eAAvBA;;IA9BAC,iBAAiB;eAAjBA;;IA5CAC,uBAAuB;eAAvBA;;IAsDAC,mBAAmB;eAAnBA;;;AAtDN,MAAMD,gCAAgCE;IAC3CC,YAAYC,OAAgB,CAAE;QAC5B,KAAK,CAACA;QACN,IAAI,CAACC,IAAI,GAAGL,wBAAwBK,IAAI;IAC1C;AACF;AAEO,MAAMZ,4BAA4BS;IACvCI,WAAmB;IACnBH,YAAYI,KAAc,EAAED,aAAa,EAAE,CAAE;QAC3C,KAAK,CAACC;QACN,IAAI,CAACF,IAAI,GAAGZ,oBAAoBY,IAAI;QACpC,IAAI,CAACC,UAAU,GAAGA;IACpB;AACF;AAEO,MAAMT,uBAAuBK;IAClCC,YAAYI,KAAc,CAAE;QAC1B,KAAK,CAACA;QACN,IAAI,CAACF,IAAI,GAAGR,eAAeQ,IAAI;IACjC;AACF;AAEO,MAAMX,2BAA2BQ;IACtCM,cAAyB,EAAE,CAAC;IAC5BC,QAAmB,EAAE,CAAC;IACtBC,OAAgB;IAEhBP,YAAY,EAAEK,WAAW,EAAEC,KAAK,EAAEC,MAAM,EAAiE,CAAE;QACzG,KAAK,CAAC;QACN,IAAI,CAACL,IAAI,GAAGX,mBAAmBW,IAAI;QACnC,IAAI,CAACK,MAAM,GAAGA;QACd,IAAI,CAACF,WAAW,GAAGA;QACnB,IAAI,CAACC,KAAK,GAAGA;IACf;AACF;AAEO,MAAMd,4BAA4BO;IACvCC,YAAYC,OAAe,CAAE;QAC3B,KAAK,CAACA;QACN,IAAI,CAACC,IAAI,GAAGV,oBAAoBU,IAAI;IACtC;AACF;AAEO,MAAMN,0BAA0BG;IACrCS,KAAc;IAEdR,YAAYC,OAAe,EAAEO,IAAa,CAAE;QAC1C,KAAK,CAACP;QACN,IAAI,CAACC,IAAI,GAAGN,kBAAkBM,IAAI;QAClC,IAAI,CAACM,IAAI,GAAGA;IACd;AACF;AAEO,MAAMV,4BAA4BC;IACvCU,OAAY;IAEZT,YAAYU,gBAAqB,CAAE;QACjC,KAAK,CAACC,KAAKC,SAAS,CAACF;QACrB,IAAI,CAACR,IAAI,GAAGJ,oBAAoBI,IAAI;QACpC,IAAI,CAACO,MAAM,GAAGC;IAChB;AACF;AAEO,MAAMjB,6BAA6BM;IACxCK,MAAW;IAEXJ,YAAYa,cAAmB,CAAE;QAC/B,KAAK,CAACF,KAAKC,SAAS,CAACC;QACrB,IAAI,CAACX,IAAI,GAAGT,qBAAqBS,IAAI;QACrC,IAAI,CAACE,KAAK,GAAGS;IACf;AACF;AAEO,MAAMlB,gCAAgCI;IAC3CC,YAAYC,OAAe,EAAEa,KAAW,CAAE;QACxC,KAAK,CAACb;QACN,IAAI,CAACC,IAAI,GAAGP,wBAAwBO,IAAI;QACxC,IAAI,CAACY,KAAK,GAAGA;IACf;AACF"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -47,7 +47,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
47
47
  if (cache && cache.has(obj)) {
48
48
  return cache.get(obj);
49
49
  }
50
- var newObj = {};
50
+ var newObj = {
51
+ __proto__: null
52
+ };
51
53
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
52
54
  for(var key in obj){
53
55
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -89,6 +91,9 @@ function getExtendedValidator() {
89
91
  (0, _nodeinputvalidator.extend)("not", ({ value, args }, validator)=>{
90
92
  return !value && value !== false;
91
93
  });
94
+ (0, _nodeinputvalidator.extendMessages)({
95
+ not: "The :attribute field may not be present."
96
+ });
92
97
  return _nodeinputvalidator.default;
93
98
  }
94
99
  function getScopedPrinter(req) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/handlers/validators.ts"],"names":["getExtendedValidator","getScopedPrinter","validateInput","validateMiddleware","extend","value","args","validator","url","normalizeUrl","startsWith","e","URL","nodeInputValidator","req","tokens","printerLoginToken","currentPrinterToken","printerIdToken","resolvedDependencies","errors","forEach","t","dependency","container","resolve","push","InternalServerException","length","ValidationException","data","rules","localNIV","v","Validator","matched","check","inputs","body"],"mappings":";;;;;;;;;;;IAQgBA,oBAAoB;eAApBA;;IA4BAC,gBAAgB;eAAhBA;;IA4BMC,aAAa;eAAbA;;IAeAC,kBAAkB;eAAlBA;;;mCA9EuC;yBACU;8BAC1C;4EACc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIpC,SAASH;IACdI,IAAAA,0BAAM,EAAC,SAAS,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAE,EAAEC;QAChC,IAAI,CAACF,OAAO,OAAO;QACnB,IAAI;YACF,MAAMG,MAAMC,IAAAA,0BAAY,EAACJ;YACzB,OAAOG,IAAIE,UAAU,CAAC,YAAYF,IAAIE,UAAU,CAAC;QACnD,EAAE,OAAOC,GAAG;YACV,OAAO;QACT;IACF;IACAP,IAAAA,0BAAM,EAAC,WAAW,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAE,EAAEC;QAClC,IAAI,CAACF,OAAO,OAAO;QAEnB,IAAI;YACF,IAAI,CAACA,MAAMK,UAAU,CAAC,cAAc,CAACL,MAAMK,UAAU,CAAC,aAAa;gBACjE,OAAO;YACT;YACA,OAAO,IAAIE,IAAIH,IAAAA,0BAAY,EAACJ;QAC9B,EAAE,OAAOM,GAAG;YACV,OAAO;QACT;IACF;IACAP,IAAAA,0BAAM,EAAC,OAAO,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAE,EAAEC;QAC9B,OAAO,CAACF,SAASA,UAAU;IAC7B;IACA,OAAOQ,2BAAkB;AAC3B;AAEO,SAASZ,iBAAiBa,GAAY;IAC3C,MAAMC,SAAS;QAACC,0BAAiB;QAAEC,4BAAmB;QAAEC,uBAAc;KAAC;IACvE,IAAIC,uBAAgH,CAAC;IACrH,IAAIC,SAAgB,EAAE;IACtBL,OAAOM,OAAO,CAAC,CAACC;QACd,IAAI;YACF,MAAMC,aAAaT,IAAIU,SAAS,CAACC,OAAO,CAACH;YACzC,IAAI,CAACC,YAAY;gBACfH,OAAOM,IAAI,CACT,CAAC,mBAAmB,EAAEJ,EAAE,gGAAgG,CAAC;YAE7H;YACAH,oBAAoB,CAACG,EAAE,GAAGC;QAC5B,EAAE,OAAOZ,GAAG;YACV,MAAM,IAAIgB,0CAAuB,CAAC,CAAC,WAAW,EAAEL,EAAE,wCAAwC,CAAC;QAC7F;IACF;IAEA,IAAIF,OAAOQ,MAAM,GAAG,GAAG;QACrB,MAAM,IAAIC,sCAAmB,CAACT;IAChC;IAEA,OAAOD;AACT;AAKO,eAAejB,cAAiB4B,IAAS,EAAEC,KAAQ;IACxD,MAAMC,WAAWhC;IAEjB,MAAMiC,IAAI,IAAID,SAASE,SAAS,CAACJ,MAAMC;IAEvC,MAAMI,UAAU,MAAMF,EAAEG,KAAK;IAC7B,IAAI,CAACD,SAAS;QACZ,MAAM,IAAIN,sCAAmB,CAACI,EAAEb,MAAM;IACxC;IACA,OAAOa,EAAEI,MAAM;AACjB;AAKO,eAAelC,mBAAsBW,GAAY,EAAEiB,KAAQ;IAChE,OAAO7B,cAAcY,IAAIwB,IAAI,EAAEP;AACjC"}
1
+ {"version":3,"sources":["../../src/handlers/validators.ts"],"names":["getExtendedValidator","getScopedPrinter","validateInput","validateMiddleware","extend","value","args","validator","url","normalizeUrl","startsWith","e","URL","extendMessages","not","nodeInputValidator","req","tokens","printerLoginToken","currentPrinterToken","printerIdToken","resolvedDependencies","errors","forEach","t","dependency","container","resolve","push","InternalServerException","length","ValidationException","data","rules","localNIV","v","Validator","matched","check","inputs","body"],"mappings":";;;;;;;;;;;IAQgBA,oBAAoB;eAApBA;;IA+BAC,gBAAgB;eAAhBA;;IA4BMC,aAAa;eAAbA;;IAeAC,kBAAkB;eAAlBA;;;mCAjFuC;yBACU;8BAC1C;4EAC8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIpD,SAASH;IACdI,IAAAA,0BAAM,EAAC,SAAS,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAE,EAAEC;QAChC,IAAI,CAACF,OAAO,OAAO;QACnB,IAAI;YACF,MAAMG,MAAMC,IAAAA,0BAAY,EAACJ;YACzB,OAAOG,IAAIE,UAAU,CAAC,YAAYF,IAAIE,UAAU,CAAC;QACnD,EAAE,OAAOC,GAAG;YACV,OAAO;QACT;IACF;IACAP,IAAAA,0BAAM,EAAC,WAAW,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAE,EAAEC;QAClC,IAAI,CAACF,OAAO,OAAO;QAEnB,IAAI;YACF,IAAI,CAACA,MAAMK,UAAU,CAAC,cAAc,CAACL,MAAMK,UAAU,CAAC,aAAa;gBACjE,OAAO;YACT;YACA,OAAO,IAAIE,IAAIH,IAAAA,0BAAY,EAACJ;QAC9B,EAAE,OAAOM,GAAG;YACV,OAAO;QACT;IACF;IACAP,IAAAA,0BAAM,EAAC,OAAO,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAE,EAAEC;QAC9B,OAAO,CAACF,SAASA,UAAU;IAC7B;IACAQ,IAAAA,kCAAc,EAAC;QACbC,KAAK;IACP;IACA,OAAOC,2BAAkB;AAC3B;AAEO,SAASd,iBAAiBe,GAAY;IAC3C,MAAMC,SAAS;QAACC,0BAAiB;QAAEC,4BAAmB;QAAEC,uBAAc;KAAC;IACvE,IAAIC,uBAAgH,CAAC;IACrH,IAAIC,SAAgB,EAAE;IACtBL,OAAOM,OAAO,CAAC,CAACC;QACd,IAAI;YACF,MAAMC,aAAaT,IAAIU,SAAS,CAACC,OAAO,CAACH;YACzC,IAAI,CAACC,YAAY;gBACfH,OAAOM,IAAI,CACT,CAAC,mBAAmB,EAAEJ,EAAE,gGAAgG,CAAC;YAE7H;YACAH,oBAAoB,CAACG,EAAE,GAAGC;QAC5B,EAAE,OAAOd,GAAG;YACV,MAAM,IAAIkB,0CAAuB,CAAC,CAAC,WAAW,EAAEL,EAAE,wCAAwC,CAAC;QAC7F;IACF;IAEA,IAAIF,OAAOQ,MAAM,GAAG,GAAG;QACrB,MAAM,IAAIC,sCAAmB,CAACT;IAChC;IAEA,OAAOD;AACT;AAKO,eAAenB,cAAiB8B,IAAS,EAAEC,KAAQ;IACxD,MAAMC,WAAWlC;IAEjB,MAAMmC,IAAI,IAAID,SAASE,SAAS,CAACJ,MAAMC;IAEvC,MAAMI,UAAU,MAAMF,EAAEG,KAAK;IAC7B,IAAI,CAACD,SAAS;QACZ,MAAM,IAAIN,sCAAmB,CAACI,EAAEb,MAAM;IACxC;IACA,OAAOa,EAAEI,MAAM;AACjB;AAKO,eAAepC,mBAAsBa,GAAY,EAAEiB,KAAQ;IAChE,OAAO/B,cAAcc,IAAIwB,IAAI,EAAEP;AACjC"}
package/dist/index.js CHANGED
File without changes
package/dist/index.js.map CHANGED
File without changes
@@ -24,6 +24,7 @@ _export(exports, {
24
24
  });
25
25
  const _awilixexpress = require("awilix-express");
26
26
  const _runtimeexceptions = require("../exceptions/runtime.exceptions");
27
+ const _authorizationconstants = require("../constants/authorization.constants");
27
28
  function authorizePermission(permission) {
28
29
  return (0, _awilixexpress.inject)(({ permissionService, roleService })=>async (req, res, next)=>{
29
30
  if (!req.roles?.length) {
@@ -44,25 +45,27 @@ function authorizePermission(permission) {
44
45
  next();
45
46
  });
46
47
  }
47
- const authenticate = ()=>(0, _awilixexpress.inject)(({ settingsStore, authService })=>async (req, res, next)=>{
48
+ const authenticate = ()=>(0, _awilixexpress.inject)(({ settingsStore, authService, loggerFactory })=>async (req, res, next)=>{
49
+ const logger = loggerFactory("Middleware:authenticate");
48
50
  const isLoginRequired = await settingsStore.getLoginRequired();
49
51
  if (!isLoginRequired) {
50
52
  return next();
51
53
  }
52
54
  // Check if a password change is required
53
55
  if (req.user?.needsPasswordChange) {
54
- throw new _runtimeexceptions.PasswordChangeRequiredError();
56
+ throw new _runtimeexceptions.AuthenticationError("Password change required", _authorizationconstants.AUTH_ERROR_REASON.PasswordChangeRequired);
55
57
  }
56
58
  // Check if a logout was called
57
59
  const bearer = req.headers.authorization?.replace("Bearer ", "") || undefined;
58
60
  const isJwtBlacklisted = authService.isJwtTokenBlacklisted(bearer);
59
61
  if (!!bearer?.length && isJwtBlacklisted) {
60
- throw new _runtimeexceptions.AuthenticationError("Not authenticated");
62
+ throw new _runtimeexceptions.AuthenticationError("Not authenticated", _authorizationconstants.AUTH_ERROR_REASON.LoginRequired);
61
63
  }
62
64
  if (req.isAuthenticated()) {
63
65
  return next();
64
66
  }
65
- throw new _runtimeexceptions.AuthenticationError("Not authenticated");
67
+ logger.log(`Not authenticated for route: ${req.originalUrl}`);
68
+ throw new _runtimeexceptions.AuthenticationError("Not authenticated", _authorizationconstants.AUTH_ERROR_REASON.InvalidOrExpiredAuthToken);
66
69
  });
67
70
  const authorizeRoles = (roles, subset = true)=>(0, _awilixexpress.inject)(({ roleService })=>async (req, res, next)=>{
68
71
  if (!roleService.authorizeRoles(roles, req.roles, subset)) {