@fdm-monster/server 1.7.5 → 1.7.6
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.
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/{yarn-4.5.2.cjs → yarn-4.5.3.cjs} +80 -80
- package/.yarnrc.yml +1 -1
- package/README.md +3 -2
- package/RELEASE_NOTES.MD +8 -0
- package/dist/container.js +4 -4
- package/dist/controllers/camera-stream.controller.js +79 -15
- package/dist/controllers/camera-stream.controller.js.map +1 -1
- package/dist/services/mongoose/permission.service.js.map +1 -0
- package/dist/services/mongoose/refresh-token.service.js.map +1 -0
- package/dist/services/mongoose/role.service.js.map +1 -0
- package/dist/services/{authentication → mongoose}/user.service.js +2 -2
- package/dist/services/mongoose/user.service.js.map +1 -0
- package/dist/services/orm/user.service.js +38 -3
- package/dist/services/orm/user.service.js.map +1 -1
- package/dist/services/validators/yaml-service.validation.js +1 -1
- package/dist/services/validators/yaml-service.validation.js.map +1 -1
- package/package.json +4 -4
- package/dist/services/authentication/permission.service.js.map +0 -1
- package/dist/services/authentication/refresh-token.service.js.map +0 -1
- package/dist/services/authentication/role.service.js.map +0 -1
- package/dist/services/authentication/user.service.js.map +0 -1
- /package/dist/services/{authentication → mongoose}/permission.service.js +0 -0
- /package/dist/services/{authentication → mongoose}/refresh-token.service.js +0 -0
- /package/dist/services/{authentication → mongoose}/role.service.js +0 -0
package/.yarnrc.yml
CHANGED
package/README.md
CHANGED
|
@@ -76,7 +76,7 @@ Please join the discord, but stay professional and proactive!
|
|
|
76
76
|
These are the people involved in the project. Find the meaning of the emoji keys [here](https://allcontributors.org/docs/en/emoji-key).
|
|
77
77
|
|
|
78
78
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
79
|
-
[](#contributors-)
|
|
80
80
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
81
81
|
|
|
82
82
|
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
@@ -87,7 +87,7 @@ These are the people involved in the project. Find the meaning of the emoji keys
|
|
|
87
87
|
<tr>
|
|
88
88
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/davidzwa"><img src="https://avatars.githubusercontent.com/u/6005355?v=4?s=80" width="80px;" alt="David Zwart"/><br /><sub><b>David Zwart</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Adavidzwa" title="Bug reports">🐛</a> <a href="https://github.com/fdm-monster/fdm-monster/commits?author=davidzwa" title="Code">💻</a> <a href="#maintenance-davidzwa" title="Maintenance">🚧</a> <a href="#userTesting-davidzwa" title="User Testing">📓</a></td>
|
|
89
89
|
<td align="center" valign="top" width="14.28%"><a href="https://kevenaar.name"><img src="https://avatars.githubusercontent.com/u/834643?v=4?s=80" width="80px;" alt="Maurice Kevenaar"/><br /><sub><b>Maurice Kevenaar</b></sub></a><br /><a href="#security-mkevenaar" title="Security">🛡️</a> <a href="#maintenance-mkevenaar" title="Maintenance">🚧</a> <a href="#ideas-mkevenaar" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Amkevenaar" title="Bug reports">🐛</a> <a href="https://github.com/fdm-monster/fdm-monster/pulls?q=is%3Apr+reviewed-by%3Amkevenaar" title="Reviewed Pull Requests">👀</a> <a href="#infra-mkevenaar" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
90
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tobikisss"><img src="https://avatars.githubusercontent.com/u/45754890?v=4?s=80" width="80px;" alt="Tobias"/><br /><sub><b>Tobias</b></sub></a><br /><a href="#ideas-Tobikisss" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-Tobikisss" title="Maintenance">🚧</a></td>
|
|
90
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tobikisss"><img src="https://avatars.githubusercontent.com/u/45754890?v=4?s=80" width="80px;" alt="Tobias"/><br /><sub><b>Tobias</b></sub></a><br /><a href="#ideas-Tobikisss" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-Tobikisss" title="Maintenance">🚧</a> <a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3ATobikisss" title="Bug reports">🐛</a></td>
|
|
91
91
|
<td align="center" valign="top" width="14.28%"><a href="https://tideline3d.com"><img src="https://avatars.githubusercontent.com/u/12903320?v=4?s=80" width="80px;" alt="tideline3d"/><br /><sub><b>tideline3d</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Atideline3d" title="Bug reports">🐛</a> <a href="#ideas-tideline3d" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
92
92
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/windarrow3d"><img src="https://avatars.githubusercontent.com/u/91099282?v=4?s=80" width="80px;" alt="WindArrow3d"/><br /><sub><b>WindArrow3d</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Awindarrow3d" title="Bug reports">🐛</a> <a href="#financial-windarrow3d" title="Financial">💵</a> <a href="#ideas-windarrow3d" title="Ideas, Planning, & Feedback">🤔</a> <a href="#userTesting-windarrow3d" title="User Testing">📓</a> <a href="#platform-windarrow3d" title="Packaging/porting to new platform">📦</a></td>
|
|
93
93
|
<td align="center" valign="top" width="14.28%"><a href="http://lucianchapar.com"><img src="https://avatars.githubusercontent.com/u/33263520?v=4?s=80" width="80px;" alt="Lucian Chapar"/><br /><sub><b>Lucian Chapar</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Alucian151" title="Bug reports">🐛</a></td>
|
|
@@ -107,6 +107,7 @@ These are the people involved in the project. Find the meaning of the emoji keys
|
|
|
107
107
|
<td align="center" valign="top" width="14.28%"><a href="http://insanityautomation.com/"><img src="https://avatars.githubusercontent.com/u/38436470?v=4?s=80" width="80px;" alt="InsanityAutomation"/><br /><sub><b>InsanityAutomation</b></sub></a><br /><a href="#ideas-InsanityAutomation" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3AInsanityAutomation" title="Bug reports">🐛</a></td>
|
|
108
108
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/LyfeOnEdge"><img src="https://avatars.githubusercontent.com/u/26140376?v=4?s=80" width="80px;" alt="Andrew (LyfeOnEdge) (ArcticGentoo)"/><br /><sub><b>Andrew (LyfeOnEdge) (ArcticGentoo)</b></sub></a><br /><a href="#ideas-LyfeOnEdge" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
109
109
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/callanova"><img src="https://avatars.githubusercontent.com/u/175639705?v=4?s=80" width="80px;" alt="callanova"/><br /><sub><b>callanova</b></sub></a><br /><a href="https://github.com/fdm-monster/fdm-monster/issues?q=author%3Acallanova" title="Bug reports">🐛</a></td>
|
|
110
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/thatguymendel"><img src="https://avatars.githubusercontent.com/u/67444998?v=4?s=80" width="80px;" alt="thatguymendel"/><br /><sub><b>thatguymendel</b></sub></a><br /><a href="#ideas-thatguymendel" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
110
111
|
</tr>
|
|
111
112
|
</tbody>
|
|
112
113
|
</table>
|
package/RELEASE_NOTES.MD
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Develop
|
|
2
2
|
|
|
3
|
+
# FDM Monster 25/11/2024 1.7.6
|
|
4
|
+
|
|
5
|
+
## Fixes
|
|
6
|
+
|
|
7
|
+
- UserService: MongoDB had incorrect root user checks and SQLite user service missed the check altogether. Now root user checks are robust.
|
|
8
|
+
- Camera API: GUEST should not have access to change cameras
|
|
9
|
+
- YAML import validation: new API keys are not accepted by outdated YAML validation
|
|
10
|
+
|
|
3
11
|
# FDM Monster 23/11/2024 1.7.5
|
|
4
12
|
|
|
5
13
|
## Fixes
|
package/dist/container.js
CHANGED
|
@@ -43,12 +43,12 @@ const _multerservice = require("./services/core/multer.service");
|
|
|
43
43
|
const _fileuploadtrackercache = require("./state/file-upload-tracker.cache");
|
|
44
44
|
const _serverhost = require("./server.host");
|
|
45
45
|
const _boottask = require("./tasks/boot.task");
|
|
46
|
-
const _userservice = require("./services/
|
|
46
|
+
const _userservice = require("./services/mongoose/user.service");
|
|
47
47
|
const _userservice1 = require("./services/orm/user.service");
|
|
48
|
-
const _roleservice = require("./services/
|
|
48
|
+
const _roleservice = require("./services/mongoose/role.service");
|
|
49
49
|
const _roleservice1 = require("./services/orm/role.service");
|
|
50
50
|
const _tasks = require("./tasks");
|
|
51
|
-
const _permissionservice = require("./services/
|
|
51
|
+
const _permissionservice = require("./services/mongoose/permission.service");
|
|
52
52
|
const _permissionservice1 = require("./services/orm/permission.service");
|
|
53
53
|
const _printerfilecleantask = require("./tasks/printer-file-clean.task");
|
|
54
54
|
const _authorizationconstants = require("./constants/authorization.constants");
|
|
@@ -81,7 +81,7 @@ const _camerastreamservice = require("./services/mongoose/camera-stream.service"
|
|
|
81
81
|
const _camerastreamservice1 = require("./services/orm/camera-stream.service");
|
|
82
82
|
const _jwtservice = require("./services/authentication/jwt.service");
|
|
83
83
|
const _authservice = require("./services/authentication/auth.service");
|
|
84
|
-
const _refreshtokenservice = require("./services/
|
|
84
|
+
const _refreshtokenservice = require("./services/mongoose/refresh-token.service");
|
|
85
85
|
const _pluginthrottling = require("@octokit/plugin-throttling");
|
|
86
86
|
const _refreshtokenservice1 = require("./services/orm/refresh-token.service");
|
|
87
87
|
const _settingsservice1 = require("./services/orm/settings.service");
|
|
@@ -2,25 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
CameraStreamController: function() {
|
|
5
|
+
Object.defineProperty(exports, "CameraStreamController", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
13
8
|
return CameraStreamController;
|
|
14
|
-
},
|
|
15
|
-
default: function() {
|
|
16
|
-
return _default;
|
|
17
9
|
}
|
|
18
10
|
});
|
|
19
|
-
const
|
|
11
|
+
const _awilixroutercore = require("awilix-router-core");
|
|
20
12
|
const _serverconstants = require("../server.constants");
|
|
21
13
|
const _validators = require("../handlers/validators");
|
|
22
14
|
const _genericvalidation = require("./validation/generic.validation");
|
|
23
15
|
const _authenticate = require("../middleware/authenticate");
|
|
16
|
+
const _express = require("express");
|
|
17
|
+
const _authorizationconstants = require("../constants/authorization.constants");
|
|
18
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
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;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
}
|
|
24
|
+
function _ts_metadata(k, v) {
|
|
25
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
26
|
+
}
|
|
24
27
|
class CameraStreamController {
|
|
25
28
|
cameraStreamService;
|
|
26
29
|
isTypeormMode;
|
|
@@ -52,8 +55,69 @@ class CameraStreamController {
|
|
|
52
55
|
res.send();
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
|
-
|
|
56
|
-
(0,
|
|
57
|
-
|
|
58
|
+
_ts_decorate([
|
|
59
|
+
(0, _awilixroutercore.GET)(),
|
|
60
|
+
(0, _awilixroutercore.route)("/"),
|
|
61
|
+
_ts_metadata("design:type", Function),
|
|
62
|
+
_ts_metadata("design:paramtypes", [
|
|
63
|
+
typeof _express.Request === "undefined" ? Object : _express.Request,
|
|
64
|
+
typeof _express.Response === "undefined" ? Object : _express.Response
|
|
65
|
+
]),
|
|
66
|
+
_ts_metadata("design:returntype", Promise)
|
|
67
|
+
], CameraStreamController.prototype, "list", null);
|
|
68
|
+
_ts_decorate([
|
|
69
|
+
(0, _awilixroutercore.GET)(),
|
|
70
|
+
(0, _awilixroutercore.route)("/:id"),
|
|
71
|
+
_ts_metadata("design:type", Function),
|
|
72
|
+
_ts_metadata("design:paramtypes", [
|
|
73
|
+
typeof _express.Request === "undefined" ? Object : _express.Request,
|
|
74
|
+
typeof _express.Response === "undefined" ? Object : _express.Response
|
|
75
|
+
]),
|
|
76
|
+
_ts_metadata("design:returntype", Promise)
|
|
77
|
+
], CameraStreamController.prototype, "get", null);
|
|
78
|
+
_ts_decorate([
|
|
79
|
+
(0, _awilixroutercore.POST)(),
|
|
80
|
+
(0, _awilixroutercore.route)("/"),
|
|
81
|
+
_ts_metadata("design:type", Function),
|
|
82
|
+
_ts_metadata("design:paramtypes", [
|
|
83
|
+
typeof _express.Request === "undefined" ? Object : _express.Request,
|
|
84
|
+
typeof _express.Response === "undefined" ? Object : _express.Response
|
|
85
|
+
]),
|
|
86
|
+
_ts_metadata("design:returntype", Promise)
|
|
87
|
+
], CameraStreamController.prototype, "create", null);
|
|
88
|
+
_ts_decorate([
|
|
89
|
+
(0, _awilixroutercore.PUT)(),
|
|
90
|
+
(0, _awilixroutercore.route)("/:id"),
|
|
91
|
+
_ts_metadata("design:type", Function),
|
|
92
|
+
_ts_metadata("design:paramtypes", [
|
|
93
|
+
typeof _express.Request === "undefined" ? Object : _express.Request,
|
|
94
|
+
typeof _express.Response === "undefined" ? Object : _express.Response
|
|
95
|
+
]),
|
|
96
|
+
_ts_metadata("design:returntype", Promise)
|
|
97
|
+
], CameraStreamController.prototype, "update", null);
|
|
98
|
+
_ts_decorate([
|
|
99
|
+
(0, _awilixroutercore.DELETE)(),
|
|
100
|
+
(0, _awilixroutercore.route)("/:id"),
|
|
101
|
+
_ts_metadata("design:type", Function),
|
|
102
|
+
_ts_metadata("design:paramtypes", [
|
|
103
|
+
typeof _express.Request === "undefined" ? Object : _express.Request,
|
|
104
|
+
typeof _express.Response === "undefined" ? Object : _express.Response
|
|
105
|
+
]),
|
|
106
|
+
_ts_metadata("design:returntype", Promise)
|
|
107
|
+
], CameraStreamController.prototype, "delete", null);
|
|
108
|
+
CameraStreamController = _ts_decorate([
|
|
109
|
+
(0, _awilixroutercore.route)(`${_serverconstants.AppConstants.apiRoute}/camera-stream`),
|
|
110
|
+
(0, _awilixroutercore.before)([
|
|
111
|
+
(0, _authenticate.authenticate)(),
|
|
112
|
+
(0, _authenticate.authorizeRoles)([
|
|
113
|
+
_authorizationconstants.ROLES.OPERATOR,
|
|
114
|
+
_authorizationconstants.ROLES.ADMIN
|
|
115
|
+
])
|
|
116
|
+
]),
|
|
117
|
+
_ts_metadata("design:type", Function),
|
|
118
|
+
_ts_metadata("design:paramtypes", [
|
|
119
|
+
Object
|
|
120
|
+
])
|
|
121
|
+
], CameraStreamController);
|
|
58
122
|
|
|
59
123
|
//# sourceMappingURL=camera-stream.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/controllers/camera-stream.controller.ts"],"names":["CameraStreamController","cameraStreamService","isTypeormMode","constructor","list","req","res","result","send","map","item","toDto","get","id","validateInput","params","idRulesV2","create","body","update","delete","
|
|
1
|
+
{"version":3,"sources":["../../src/controllers/camera-stream.controller.ts"],"names":["CameraStreamController","cameraStreamService","isTypeormMode","constructor","list","req","res","result","send","map","item","toDto","get","id","validateInput","params","idRulesV2","create","body","update","delete","AppConstants","apiRoute","authenticate","authorizeRoles","ROLES","OPERATOR","ADMIN"],"mappings":";;;;+BAWaA;;;eAAAA;;;kCAXyC;iCACzB;4BACC;mCACJ;8BACmB;yBACX;wCAEZ;;;;;;;;;;AAIf,MAAMA;IACMC,oBAA0C;IAC1CC,cAAuB;IAExCC,YAAY,EAAEF,mBAAmB,EAAEC,aAAa,EAAyE,CAAE;QACzH,IAAI,CAACD,mBAAmB,GAAGA;QAC3B,IAAI,CAACC,aAAa,GAAGA;IACvB;IAEA,MAEME,KAAKC,GAAY,EAAEC,GAAa,EAAE;QACtC,MAAMC,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACG,IAAI;QAClDE,IAAIE,IAAI,CAACD,OAAOE,GAAG,CAAC,CAACC,OAAS,IAAI,CAACT,mBAAmB,CAACU,KAAK,CAACD;IAC/D;IAEA,MAEME,IAAIP,GAAY,EAAEC,GAAa,EAAE;QACrC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,IAAAA,4BAAS,EAAC,IAAI,CAACd,aAAa;QAC3E,MAAMK,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACW,GAAG,CAACC;QAClDP,IAAIE,IAAI,CAAC,IAAI,CAACP,mBAAmB,CAACU,KAAK,CAACJ;IAC1C;IAEA,MAEMU,OAAOZ,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAMC,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACgB,MAAM,CAACZ,IAAIa,IAAI;QAC7DZ,IAAIE,IAAI,CAAC,IAAI,CAACP,mBAAmB,CAACU,KAAK,CAACJ;IAC1C;IAEA,MAEMY,OAAOd,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,IAAAA,4BAAS,EAAC,IAAI,CAACd,aAAa;QAC3E,MAAMK,SAAS,MAAM,IAAI,CAACN,mBAAmB,CAACkB,MAAM,CAACN,IAAIR,IAAIa,IAAI;QACjEZ,IAAIE,IAAI,CAAC,IAAI,CAACP,mBAAmB,CAACU,KAAK,CAACJ;IAC1C;IAEA,MAEMa,OAAOf,GAAY,EAAEC,GAAa,EAAE;QACxC,MAAM,EAAEO,EAAE,EAAE,GAAG,MAAMC,IAAAA,yBAAa,EAACT,IAAIU,MAAM,EAAEC,IAAAA,4BAAS,EAAC,IAAI,CAACd,aAAa;QAC3E,MAAM,IAAI,CAACD,mBAAmB,CAACmB,MAAM,CAACP;QACtCP,IAAIE,IAAI;IACV;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAhDUa,6BAAY,CAACC,QAAQ,CAAC,cAAc;;QACrCC,IAAAA,0BAAY;QAAIC,IAAAA,4BAAc,EAAC;YAACC,6BAAK,CAACC,QAAQ;YAAED,6BAAK,CAACE,KAAK;SAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/permission.service.ts"],"names":["PermissionService","logger","constructor","loggerFactory","name","_permissions","permissions","toDto","permission","id","authorizePermission","requiredPermission","assignedPermissions","find","assignedPermission","normalizePermission","getPermissionByName","permissionName","r","NotFoundException","getPermission","permissionId","syncPermissions","permissionDefinition","flattenPermissionDefinition","storedPermission","Permission","findOne","newPermission","create","push","permissionInstance","warn"],"mappings":";;;;+BASaA;;;eAAAA;;;wBATc;wCACiB;mCACV;AAO3B,MAAMA;IACHC,OAAsB;IAE9BC,YAAY,EAAEC,aAAa,EAAqC,CAAE;QAChE,IAAI,CAACF,MAAM,GAAGE,cAAcH,kBAAkBI,IAAI;IACpD;IAEQC,eAA8B,EAAE,CAAC;IAEzC,IAAIC,cAAc;QAChB,OAAO,IAAI,CAACD,YAAY;IAC1B;IAEAE,MAAMC,UAAuB,EAAE;QAC7B,OAAO;YACLC,IAAID,WAAWC,EAAE;YACjBL,MAAMI,WAAWJ,IAAI;QACvB;IACF;IAEAM,oBAAoBC,kBAA0B,EAAEC,mBAA6B,EAAE;QAC7E,OAAO,CAAC,CAACA,oBAAoBC,IAAI,CAAC,CAACC;YACjC,MAAMC,sBAAsB,IAAI,CAACA,mBAAmB,CAACD;YACrD,IAAI,CAACC,qBAAqB,OAAO;YACjC,OAAOA,wBAAwBJ;QACjC;IACF;IAEA,MAAMK,oBAAoBC,cAAsB,EAAE;QAChD,MAAMT,aAAa,IAAI,CAACF,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAEd,IAAI,KAAKa;QAC3D,IAAI,CAACT,YAAY,MAAM,IAAIW,oCAAiB,CAAC;QAC7C,OAAOX;IACT;IAEA,MAAMY,cAAcC,YAAyB,EAAE;QAC7C,MAAMb,aAAa,IAAI,CAACF,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAET,EAAE,KAAKY;QACzD,IAAI,CAACb,YAAY,MAAM,IAAIW,oCAAiB,CAAC,CAAC,mCAAmC,CAAC;QAElF,OAAOX;IACT;IAEA,MAAMc,kBAAkB;QACtB,IAAI,CAACjB,YAAY,GAAG,EAAE;QAEtB,MAAMkB,uBAAuBC,IAAAA,mDAA2B;QACxD,KAAK,IAAIhB,cAAce,qBAAsB;YAC3C,MAAME,mBAAmB,MAAMC,kBAAU,CAACC,OAAO,CAAC;gBAAEvB,MAAMI;YAAW;YACrE,IAAI,CAACiB,kBAAkB;gBACrB,MAAMG,gBAAgB,MAAMF,kBAAU,CAACG,MAAM,CAAC;oBAC5CzB,MAAMI;gBACR;gBACA,IAAI,CAACH,YAAY,CAACyB,IAAI,CAACF;YACzB,OAAO;gBACL,IAAI,CAACvB,YAAY,CAACyB,IAAI,CAACL;YACzB;QACF;IACF;IAEAV,oBAAoBD,kBAA0B,EAAE;QAC9C,MAAMiB,qBAAqB,IAAI,CAACzB,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAET,EAAE,KAAKK,sBAAsBI,EAAEd,IAAI,KAAKU;QAClG,IAAI,CAACiB,oBAAoB;YACvB,IAAI,CAAC9B,MAAM,CAAC+B,IAAI,CAAC;YACjB;QACF;QACA,OAAOD,mBAAmB3B,IAAI;IAChC;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/refresh-token.service.ts"],"names":["RefreshTokenService","settingsStore","logger","constructor","loggerFactory","name","toDto","entity","id","userId","toString","expiresAt","refreshAttemptsUsed","getRefreshToken","refreshToken","throwNotFoundError","userRefreshToken","RefreshToken","findOne","AuthenticationError","AUTH_ERROR_REASON","InvalidOrExpiredRefreshToken","createRefreshTokenForUserId","refreshTokenExpiry","getCredentialSettings","uuidv4","timespan","AppConstants","DEFAULT_REFRESH_TOKEN_EXPIRY","warn","create","Date","now","updateRefreshTokenAttempts","updateOne","new","purgeOutdatedRefreshTokensByUserId","result","deleteMany","$lt","deletedCount","debug","purgeAllOutdatedRefreshTokens","deleteRefreshTokenByUserId","deleteRefreshToken","deleteOne"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/role.service.ts"],"names":["RoleService","settingsStore","appDefaultRole","appDefaultRoleNoLogin","constructor","_roles","roles","toDto","role","id","name","getAppDefaultRole","getLoginRequired","getRolesPermissions","permissions","length","normalizedRole","normalizeRoleIdOrName","rolePermissions","getRolePermissions","union","ROLE_PERMS","getAppDefaultRoleIds","syncRoles","guestRole","getRoleByName","getSynchronizedRoleByName","roleName","authorizeRole","requiredRole","assignedRoles","find","ar","authorizeRoles","requiredRoles","subset","isAuthorized","forEach","rr","result","r","NotFoundException","getManyRoles","roleIds","map","roleId","getRole","Object","values","ROLES","storedRole","Role","findOne","newRole","create","push","assignedRole","roleInstance","console","warn"],"mappings":"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"}
|
|
@@ -91,7 +91,7 @@ class UserService {
|
|
|
91
91
|
const role = this.roleService.getRoleByName(_authorizationconstants.ROLES.ADMIN);
|
|
92
92
|
if (user.roles.includes(role.id)) {
|
|
93
93
|
const administrators = await this.findUsersByRoleId(role.id);
|
|
94
|
-
if (administrators?.length === 1) {
|
|
94
|
+
if (administrators?.length === 1 && administrators[0].id === userId) {
|
|
95
95
|
throw new _runtimeexceptions.InternalServerException("Cannot delete the last user with ADMIN role");
|
|
96
96
|
}
|
|
97
97
|
}
|
|
@@ -132,7 +132,7 @@ class UserService {
|
|
|
132
132
|
if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
|
|
133
133
|
if (!isRootUser) {
|
|
134
134
|
const rootUsers = await this.findRootUsers();
|
|
135
|
-
if (rootUsers.length === 1) {
|
|
135
|
+
if (rootUsers.length === 1 && rootUsers[0].id === userId) {
|
|
136
136
|
throw new _runtimeexceptions.InternalServerException("Cannot set the last root user to non-root user");
|
|
137
137
|
}
|
|
138
138
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/mongoose/user.service.ts"],"names":["UserService","roleService","constructor","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","toString","listUsers","limit","User","find","findUsersByRoleId","roleId","$in","findVerifiedUsers","isUserRootUser","userId","findById","findRootUsers","getDemoUserId","findOne","findRawByUsername","getUser","throwNotFoundError","NotFoundException","getUserRoleIds","setUserRoleIds","roleIds","getManyRoles","Array","from","Set","save","deleteUser","InternalServerException","role","getRoleByName","ROLES","ADMIN","includes","administrators","length","findByIdAndDelete","updateUsernameById","newUsername","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","password","validateInput","newPasswordRules","hashPassword","updatePasswordUnsafeByUsername","setIsRootUserById","rootUsers","setVerifiedById","verifiedUsers","register","input","registerUserRules","create"],"mappings":"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"}
|
|
@@ -16,14 +16,17 @@ const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
|
|
|
16
16
|
const _validators = require("../../handlers/validators");
|
|
17
17
|
const _userservicevalidation = require("../validators/user-service.validation");
|
|
18
18
|
const _cryptoutils = require("../../utils/crypto.utils");
|
|
19
|
+
const _authorizationconstants = require("../../constants/authorization.constants");
|
|
19
20
|
class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto.UserDto) {
|
|
20
21
|
typeormService;
|
|
21
22
|
userRoleService;
|
|
22
|
-
|
|
23
|
+
roleService;
|
|
24
|
+
constructor({ typeormService, userRoleService, roleService }){
|
|
23
25
|
super({
|
|
24
26
|
typeormService
|
|
25
27
|
});
|
|
26
28
|
this.userRoleService = userRoleService;
|
|
29
|
+
this.roleService = roleService;
|
|
27
30
|
}
|
|
28
31
|
toDto(user) {
|
|
29
32
|
return {
|
|
@@ -70,8 +73,19 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
70
73
|
const entity = await this.get(userId);
|
|
71
74
|
return entity.isRootUser;
|
|
72
75
|
}
|
|
73
|
-
deleteUser(userId) {
|
|
74
|
-
|
|
76
|
+
async deleteUser(userId) {
|
|
77
|
+
const user = await this.getUser(userId);
|
|
78
|
+
if (user.isRootUser) {
|
|
79
|
+
throw new _runtimeexceptions.InternalServerException("Cannot delete a root user");
|
|
80
|
+
}
|
|
81
|
+
const role = this.roleService.getRoleByName(_authorizationconstants.ROLES.ADMIN);
|
|
82
|
+
if (user.roles.find((r)=>r.roleId == role.id)) {
|
|
83
|
+
const administrators = await this.findUsersByRoleId(role.id);
|
|
84
|
+
if (administrators?.length === 1 && administrators[0].id === userId) {
|
|
85
|
+
throw new _runtimeexceptions.InternalServerException("Cannot delete the last user with ADMIN role");
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return await this.delete(userId);
|
|
75
89
|
}
|
|
76
90
|
findRawByUsername(username) {
|
|
77
91
|
return this.repository.findOneBy({
|
|
@@ -84,6 +98,14 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
84
98
|
}))?.id;
|
|
85
99
|
}
|
|
86
100
|
async setIsRootUserById(userId, isRootUser) {
|
|
101
|
+
const user = await this.getUser(userId);
|
|
102
|
+
if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
|
|
103
|
+
if (!isRootUser) {
|
|
104
|
+
const rootUsers = await this.findRootUsers();
|
|
105
|
+
if (rootUsers.length === 1 && rootUsers[0].id === userId) {
|
|
106
|
+
throw new _runtimeexceptions.InternalServerException("Cannot set the last root user to non-root user");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
87
109
|
await this.update(userId, {
|
|
88
110
|
isRootUser
|
|
89
111
|
});
|
|
@@ -93,12 +115,24 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
93
115
|
return await this.get(userId, true);
|
|
94
116
|
}
|
|
95
117
|
async setVerifiedById(userId, isVerified) {
|
|
118
|
+
const user = await this.getUser(userId);
|
|
119
|
+
if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
|
|
120
|
+
if (!isVerified) {
|
|
121
|
+
if (user.isRootUser) {
|
|
122
|
+
throw new _runtimeexceptions.InternalServerException("Cannot set a owner (root user) to unverified");
|
|
123
|
+
}
|
|
124
|
+
const verifiedUsers = await this.findVerifiedUsers();
|
|
125
|
+
if (verifiedUsers.length === 1) {
|
|
126
|
+
throw new _runtimeexceptions.InternalServerException("Cannot set the last user to unverified");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
96
129
|
await this.update(userId, {
|
|
97
130
|
isVerified
|
|
98
131
|
});
|
|
99
132
|
}
|
|
100
133
|
async updatePasswordById(userId, oldPassword, newPassword) {
|
|
101
134
|
const user = await this.getUser(userId);
|
|
135
|
+
if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
|
|
102
136
|
if (!(0, _cryptoutils.comparePasswordHash)(oldPassword, user.passwordHash)) {
|
|
103
137
|
throw new _runtimeexceptions.NotFoundException("User old password incorrect");
|
|
104
138
|
}
|
|
@@ -117,6 +151,7 @@ class UserService extends (0, _baseservice.BaseService)(_entities.User, _userdto
|
|
|
117
151
|
}, _userservicevalidation.newPasswordRules);
|
|
118
152
|
const passwordHash = (0, _cryptoutils.hashPassword)(password);
|
|
119
153
|
const user = await this.findRawByUsername(username);
|
|
154
|
+
if (!user) throw new _runtimeexceptions.NotFoundException("User not found");
|
|
120
155
|
return await this.update(user.id, {
|
|
121
156
|
passwordHash,
|
|
122
157
|
needsPasswordChange: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/orm/user.service.ts"],"names":["UserService","BaseService","User","UserDto","typeormService","userRoleService","constructor","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","roleId","listUsers","limit","list","take","getUser","userId","get","getUserRoleIds","userRoles","listUserRoles","ur","findRootUsers","repository","findBy","findUsersByRoleId","listByRoleId","ids","u","In","findVerifiedUsers","isUserRootUser","entity","deleteUser","delete","findRawByUsername","findOneBy","getDemoUserId","setIsRootUserById","update","setUserRoleIds","roleIds","setUserRoles","setVerifiedById","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orm/user.service.ts"],"names":["UserService","BaseService","User","UserDto","typeormService","userRoleService","roleService","constructor","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","roleId","listUsers","limit","list","take","getUser","userId","get","getUserRoleIds","userRoles","listUserRoles","ur","findRootUsers","repository","findBy","findUsersByRoleId","listByRoleId","ids","u","In","findVerifiedUsers","isUserRootUser","entity","deleteUser","InternalServerException","role","getRoleByName","ROLES","ADMIN","find","administrators","length","delete","findRawByUsername","findOneBy","getDemoUserId","setIsRootUserById","NotFoundException","rootUsers","update","setUserRoleIds","roleIds","setUserRoles","setVerifiedById","verifiedUsers","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","password","validateInput","newPasswordRules","hashPassword","updatePasswordUnsafeByUsername","updateUsernameById","newUsername","register","input","registerUserRules","result","create"],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ const importPrintersFloorsYamlRules = (importPrinters, importFloorGrid, importFl
|
|
|
44
44
|
"config.floorComparisonStrategiesByPriority": "required|string|in:name,floor,id",
|
|
45
45
|
printers: `${!!importPrinters ? "array|minLength:0" : "not"}`,
|
|
46
46
|
"printers.*.id": "required",
|
|
47
|
-
"printers.*.apiKey": `required|length:${_serviceconstants.apiKeyLengthMaxDefault},${_serviceconstants.apiKeyLengthMinDefault}|
|
|
47
|
+
"printers.*.apiKey": `required|length:${_serviceconstants.apiKeyLengthMaxDefault},${_serviceconstants.apiKeyLengthMinDefault}|alphaDash`,
|
|
48
48
|
"printers.*.printerURL": "required|httpurl",
|
|
49
49
|
"printers.*.enabled": "boolean",
|
|
50
50
|
"printers.*.printerType": `integer|in:${_printerapiinterface.OctoprintType},${_printerapiinterface.MoonrakerType}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/validators/yaml-service.validation.ts"],"names":["exportPrintersFloorsYamlRules","importPrinterPositionsRules","importPrintersFloorsYamlRules","exportPrinters","exportFloorGrid","exportFloors","exportGroups","printerComparisonStrategiesByPriority","floorComparisonStrategiesByPriority","notes","importPrinters","importFloorGrid","importFloors","importGroups","version","config","printers","apiKeyLengthMaxDefault","apiKeyLengthMinDefault","OctoprintType","MoonrakerType","floors","groups","isTypeormMode"],"mappings":";;;;;;;;;;;IAGaA,6BAA6B;eAA7BA;;IAsDAC,2BAA2B;eAA3BA;;IApCAC,6BAA6B;eAA7BA;;;kCArBkD;qCAClB;AAEtC,MAAMF,gCAAgC;IAE3CG,gBAAgB;IAChBC,iBAAiB;IACjBC,cAAc;IAEdC,cAAc;IAEdC,uCAAuC;IACvC,2CAA2C;IAC3CC,qCAAqC;IAErCC,OAAO;AAIT;AAEO,MAAMP,gCAAgC,CAC3CQ,gBACAC,iBACAC,cACAC;IAEA,OAAO;QACLC,SAAS;QACTC,QAAQ;QACR,yBAAyB;QACzB,0BAA0B;QAC1B,uBAAuB;QACvB,uBAAuB;QACvB,gDAAgD;QAChD,kDAAkD;QAClD,8CAA8C;QAC9CC,UAAU,GAAG,CAAC,CAACN,iBAAiB,sBAAsB,OAAO;QAC7D,iBAAiB;QACjB,qBAAqB,CAAC,gBAAgB,EAAEO,wCAAsB,CAAC,CAAC,EAAEC,wCAAsB,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/yaml-service.validation.ts"],"names":["exportPrintersFloorsYamlRules","importPrinterPositionsRules","importPrintersFloorsYamlRules","exportPrinters","exportFloorGrid","exportFloors","exportGroups","printerComparisonStrategiesByPriority","floorComparisonStrategiesByPriority","notes","importPrinters","importFloorGrid","importFloors","importGroups","version","config","printers","apiKeyLengthMaxDefault","apiKeyLengthMinDefault","OctoprintType","MoonrakerType","floors","groups","isTypeormMode"],"mappings":";;;;;;;;;;;IAGaA,6BAA6B;eAA7BA;;IAsDAC,2BAA2B;eAA3BA;;IApCAC,6BAA6B;eAA7BA;;;kCArBkD;qCAClB;AAEtC,MAAMF,gCAAgC;IAE3CG,gBAAgB;IAChBC,iBAAiB;IACjBC,cAAc;IAEdC,cAAc;IAEdC,uCAAuC;IACvC,2CAA2C;IAC3CC,qCAAqC;IAErCC,OAAO;AAIT;AAEO,MAAMP,gCAAgC,CAC3CQ,gBACAC,iBACAC,cACAC;IAEA,OAAO;QACLC,SAAS;QACTC,QAAQ;QACR,yBAAyB;QACzB,0BAA0B;QAC1B,uBAAuB;QACvB,uBAAuB;QACvB,gDAAgD;QAChD,kDAAkD;QAClD,8CAA8C;QAC9CC,UAAU,GAAG,CAAC,CAACN,iBAAiB,sBAAsB,OAAO;QAC7D,iBAAiB;QACjB,qBAAqB,CAAC,gBAAgB,EAAEO,wCAAsB,CAAC,CAAC,EAAEC,wCAAsB,CAAC,UAAU,CAAC;QACpG,yBAAyB;QACzB,sBAAsB;QACtB,0BAA0B,CAAC,WAAW,EAAEC,kCAAa,CAAC,CAAC,EAAEC,kCAAa,EAAE;QACxE,mBAAmB;QACnBC,QAAQ,GAAG,CAAC,CAACT,eAAe,sBAAsB,OAAO;QACzD,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QAEjBU,QAAQ,GAAG,CAAC,CAACT,eAAe,sBAAsB,OAAO;QACzD,eAAe;QACf,iBAAiB;IAGnB;AACF;AAEO,MAAMZ,8BAA8B,CAACsB,gBAA4B,CAAA;QACtEP,UAAU;QACV,wBAAwB;QAExB,gBAAgB;QAChB,gBAAgB;IAClB,CAAA"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"author": "David Zwart",
|
|
8
8
|
"license": "AGPL-3.0-or-later",
|
|
9
|
-
"version": "1.7.
|
|
9
|
+
"version": "1.7.6",
|
|
10
10
|
"bin": {
|
|
11
11
|
"fdm-monster": "dist/index.js",
|
|
12
12
|
"fdmm": "dist/index.js"
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"axios": "1.7.7",
|
|
65
65
|
"bcryptjs": "2.4.3",
|
|
66
66
|
"better-sqlite3": "11.5.0",
|
|
67
|
-
"cache-manager": "6.
|
|
67
|
+
"cache-manager": "6.2.0",
|
|
68
68
|
"class-validator": "0.14.1",
|
|
69
69
|
"connect-history-api-fallback": "2.0.0",
|
|
70
70
|
"cookie-parser": "1.4.7",
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
"eslint-plugin-import": "2.31.0",
|
|
134
134
|
"eslint-plugin-n": "17.14.0",
|
|
135
135
|
"eslint-plugin-prettier": "4.2.1",
|
|
136
|
-
"eslint-plugin-promise": "7.
|
|
136
|
+
"eslint-plugin-promise": "7.2.0",
|
|
137
137
|
"express-list-routes": "1.2.4",
|
|
138
138
|
"jest": "29.7.0",
|
|
139
139
|
"jest-27-expect-message": "1.1.0",
|
|
@@ -164,5 +164,5 @@
|
|
|
164
164
|
],
|
|
165
165
|
"delay": 100
|
|
166
166
|
},
|
|
167
|
-
"packageManager": "yarn@4.5.
|
|
167
|
+
"packageManager": "yarn@4.5.3"
|
|
168
168
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/authentication/permission.service.ts"],"names":["PermissionService","logger","constructor","loggerFactory","name","_permissions","permissions","toDto","permission","id","authorizePermission","requiredPermission","assignedPermissions","find","assignedPermission","normalizePermission","getPermissionByName","permissionName","r","NotFoundException","getPermission","permissionId","syncPermissions","permissionDefinition","flattenPermissionDefinition","storedPermission","Permission","findOne","newPermission","create","push","permissionInstance","warn"],"mappings":";;;;+BASaA;;;eAAAA;;;wBATc;wCACiB;mCACV;AAO3B,MAAMA;IACHC,OAAsB;IAE9BC,YAAY,EAAEC,aAAa,EAAqC,CAAE;QAChE,IAAI,CAACF,MAAM,GAAGE,cAAcH,kBAAkBI,IAAI;IACpD;IAEQC,eAA8B,EAAE,CAAC;IAEzC,IAAIC,cAAc;QAChB,OAAO,IAAI,CAACD,YAAY;IAC1B;IAEAE,MAAMC,UAAuB,EAAE;QAC7B,OAAO;YACLC,IAAID,WAAWC,EAAE;YACjBL,MAAMI,WAAWJ,IAAI;QACvB;IACF;IAEAM,oBAAoBC,kBAA0B,EAAEC,mBAA6B,EAAE;QAC7E,OAAO,CAAC,CAACA,oBAAoBC,IAAI,CAAC,CAACC;YACjC,MAAMC,sBAAsB,IAAI,CAACA,mBAAmB,CAACD;YACrD,IAAI,CAACC,qBAAqB,OAAO;YACjC,OAAOA,wBAAwBJ;QACjC;IACF;IAEA,MAAMK,oBAAoBC,cAAsB,EAAE;QAChD,MAAMT,aAAa,IAAI,CAACF,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAEd,IAAI,KAAKa;QAC3D,IAAI,CAACT,YAAY,MAAM,IAAIW,oCAAiB,CAAC;QAC7C,OAAOX;IACT;IAEA,MAAMY,cAAcC,YAAyB,EAAE;QAC7C,MAAMb,aAAa,IAAI,CAACF,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAET,EAAE,KAAKY;QACzD,IAAI,CAACb,YAAY,MAAM,IAAIW,oCAAiB,CAAC,CAAC,mCAAmC,CAAC;QAElF,OAAOX;IACT;IAEA,MAAMc,kBAAkB;QACtB,IAAI,CAACjB,YAAY,GAAG,EAAE;QAEtB,MAAMkB,uBAAuBC,IAAAA,mDAA2B;QACxD,KAAK,IAAIhB,cAAce,qBAAsB;YAC3C,MAAME,mBAAmB,MAAMC,kBAAU,CAACC,OAAO,CAAC;gBAAEvB,MAAMI;YAAW;YACrE,IAAI,CAACiB,kBAAkB;gBACrB,MAAMG,gBAAgB,MAAMF,kBAAU,CAACG,MAAM,CAAC;oBAC5CzB,MAAMI;gBACR;gBACA,IAAI,CAACH,YAAY,CAACyB,IAAI,CAACF;YACzB,OAAO;gBACL,IAAI,CAACvB,YAAY,CAACyB,IAAI,CAACL;YACzB;QACF;IACF;IAEAV,oBAAoBD,kBAA0B,EAAE;QAC9C,MAAMiB,qBAAqB,IAAI,CAACzB,WAAW,CAACO,IAAI,CAAC,CAACK,IAAMA,EAAET,EAAE,KAAKK,sBAAsBI,EAAEd,IAAI,KAAKU;QAClG,IAAI,CAACiB,oBAAoB;YACvB,IAAI,CAAC9B,MAAM,CAAC+B,IAAI,CAAC;YACjB;QACF;QACA,OAAOD,mBAAmB3B,IAAI;IAChC;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/authentication/refresh-token.service.ts"],"names":["RefreshTokenService","settingsStore","logger","constructor","loggerFactory","name","toDto","entity","id","userId","toString","expiresAt","refreshAttemptsUsed","getRefreshToken","refreshToken","throwNotFoundError","userRefreshToken","RefreshToken","findOne","AuthenticationError","AUTH_ERROR_REASON","InvalidOrExpiredRefreshToken","createRefreshTokenForUserId","refreshTokenExpiry","getCredentialSettings","uuidv4","timespan","AppConstants","DEFAULT_REFRESH_TOKEN_EXPIRY","warn","create","Date","now","updateRefreshTokenAttempts","updateOne","new","purgeOutdatedRefreshTokensByUserId","result","deleteMany","$lt","deletedCount","debug","purgeAllOutdatedRefreshTokens","deleteRefreshTokenByUserId","deleteRefreshToken","deleteOne"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/authentication/role.service.ts"],"names":["RoleService","settingsStore","appDefaultRole","appDefaultRoleNoLogin","constructor","_roles","roles","toDto","role","id","name","getAppDefaultRole","getLoginRequired","getRolesPermissions","permissions","length","normalizedRole","normalizeRoleIdOrName","rolePermissions","getRolePermissions","union","ROLE_PERMS","getAppDefaultRoleIds","syncRoles","guestRole","getRoleByName","getSynchronizedRoleByName","roleName","authorizeRole","requiredRole","assignedRoles","find","ar","authorizeRoles","requiredRoles","subset","isAuthorized","forEach","rr","result","r","NotFoundException","getManyRoles","roleIds","map","roleId","getRole","Object","values","ROLES","storedRole","Role","findOne","newRole","create","push","assignedRole","roleInstance","console","warn"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/authentication/user.service.ts"],"names":["UserService","roleService","constructor","toDto","user","id","createdAt","isVerified","isDemoUser","isRootUser","username","needsPasswordChange","roles","map","r","toString","listUsers","limit","User","find","findUsersByRoleId","roleId","$in","findVerifiedUsers","isUserRootUser","userId","findById","findRootUsers","getDemoUserId","findOne","findRawByUsername","getUser","throwNotFoundError","NotFoundException","getUserRoleIds","setUserRoleIds","roleIds","getManyRoles","Array","from","Set","save","deleteUser","InternalServerException","role","getRoleByName","ROLES","ADMIN","includes","administrators","length","findByIdAndDelete","updateUsernameById","newUsername","updatePasswordById","oldPassword","newPassword","comparePasswordHash","passwordHash","password","validateInput","newPasswordRules","hashPassword","updatePasswordUnsafeByUsername","setIsRootUserById","rootUsers","setVerifiedById","verifiedUsers","register","input","registerUserRules","create"],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|