@proteinjs/user-server 1.22.2 → 1.22.3
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/CHANGELOG.md +15 -0
- package/dist/generated/index.js +1 -1
- package/dist/generated/index.js.map +1 -1
- package/dist/src/authentication/SocketIOSessionWatcher.d.ts +5 -0
- package/dist/src/authentication/SocketIOSessionWatcher.d.ts.map +1 -1
- package/dist/src/authentication/SocketIOSessionWatcher.js +13 -2
- package/dist/src/authentication/SocketIOSessionWatcher.js.map +1 -1
- package/dist/src/authentication/UserStatusTableWatcher.d.ts.map +1 -1
- package/dist/src/authentication/UserStatusTableWatcher.js +2 -1
- package/dist/src/authentication/UserStatusTableWatcher.js.map +1 -1
- package/dist/src/authentication/authenticate.js +2 -2
- package/dist/src/authentication/authenticate.js.map +1 -1
- package/dist/src/authorization/userCache.d.ts.map +1 -1
- package/dist/src/authorization/userCache.js +3 -2
- package/dist/src/authorization/userCache.js.map +1 -1
- package/dist/src/routes/devLogin.d.ts.map +1 -1
- package/dist/src/routes/devLogin.js +29 -14
- package/dist/src/routes/devLogin.js.map +1 -1
- package/dist/src/routes/executePasswordReset.d.ts.map +1 -1
- package/dist/src/routes/executePasswordReset.js +7 -6
- package/dist/src/routes/executePasswordReset.js.map +1 -1
- package/dist/src/routes/initiatePasswordReset.js +2 -2
- package/dist/src/routes/initiatePasswordReset.js.map +1 -1
- package/dist/src/routes/signup.d.ts.map +1 -1
- package/dist/src/routes/signup.js +5 -2
- package/dist/src/routes/signup.js.map +1 -1
- package/dist/src/routes/validateResetPasswordToken.d.ts.map +1 -1
- package/dist/src/routes/validateResetPasswordToken.js +5 -1
- package/dist/src/routes/validateResetPasswordToken.js.map +1 -1
- package/dist/src/services/MachineCredentials.d.ts +10 -1
- package/dist/src/services/MachineCredentials.d.ts.map +1 -1
- package/dist/src/services/MachineCredentials.js +46 -15
- package/dist/src/services/MachineCredentials.js.map +1 -1
- package/dist/src/services/Roles.d.ts.map +1 -1
- package/dist/src/services/Roles.js +6 -2
- package/dist/src/services/Roles.js.map +1 -1
- package/dist/src/services/Signup.d.ts +5 -0
- package/dist/src/services/Signup.d.ts.map +1 -1
- package/dist/src/services/Signup.js +28 -6
- package/dist/src/services/Signup.js.map +1 -1
- package/dist/test/DevLogin.test.js +68 -0
- package/dist/test/DevLogin.test.js.map +1 -1
- package/dist/test/LogCapture.d.ts +10 -0
- package/dist/test/LogCapture.d.ts.map +1 -1
- package/dist/test/LogCapture.js +19 -0
- package/dist/test/LogCapture.js.map +1 -1
- package/dist/test/LogCapture.test.d.ts +2 -0
- package/dist/test/LogCapture.test.d.ts.map +1 -0
- package/dist/test/LogCapture.test.js +86 -0
- package/dist/test/LogCapture.test.js.map +1 -0
- package/dist/test/MachineAccounts.integration.test.js +156 -28
- package/dist/test/MachineAccounts.integration.test.js.map +1 -1
- package/dist/test/NoAddressesInLogs.integration.test.d.ts +2 -0
- package/dist/test/NoAddressesInLogs.integration.test.d.ts.map +1 -0
- package/dist/test/NoAddressesInLogs.integration.test.js +717 -0
- package/dist/test/NoAddressesInLogs.integration.test.js.map +1 -0
- package/dist/test/SignupRoute.test.js +80 -1
- package/dist/test/SignupRoute.test.js.map +1 -1
- package/dist/test/SocketIOSessionWatcher.test.d.ts +2 -0
- package/dist/test/SocketIOSessionWatcher.test.d.ts.map +1 -0
- package/dist/test/SocketIOSessionWatcher.test.js +144 -0
- package/dist/test/SocketIOSessionWatcher.test.js.map +1 -0
- package/generated/index.ts +1 -1
- package/package.json +6 -5
- package/src/authentication/SocketIOSessionWatcher.ts +13 -1
- package/src/authentication/UserStatusTableWatcher.ts +2 -1
- package/src/authentication/authenticate.ts +1 -1
- package/src/authorization/userCache.ts +3 -2
- package/src/routes/devLogin.ts +22 -10
- package/src/routes/executePasswordReset.ts +6 -5
- package/src/routes/initiatePasswordReset.ts +1 -1
- package/src/routes/signup.ts +5 -2
- package/src/routes/validateResetPasswordToken.ts +5 -1
- package/src/services/MachineCredentials.ts +44 -9
- package/src/services/Roles.ts +6 -2
- package/src/services/Signup.ts +30 -4
- package/test/DevLogin.test.ts +35 -1
- package/test/LogCapture.test.ts +29 -0
- package/test/LogCapture.ts +16 -0
- package/test/MachineAccounts.integration.test.ts +97 -22
- package/test/NoAddressesInLogs.integration.test.ts +409 -0
- package/test/SignupRoute.test.ts +54 -1
- package/test/SocketIOSessionWatcher.test.ts +86 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserStatusTableWatcher.js","sourceRoot":"","sources":["../../../src/authentication/UserStatusTableWatcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAiF;AACjF,wCAA+C;AAC/C,4CAA2C;
|
|
1
|
+
{"version":3,"file":"UserStatusTableWatcher.js","sourceRoot":"","sources":["../../../src/authentication/UserStatusTableWatcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAiF;AACjF,wCAA+C;AAC/C,4CAA2C;AAC3C,kDAAsD;AAEtD;;;;;;;;;GASG;AACH;IAAA;QACU,WAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAwC/D,CAAC;IAtCC,qCAAI,GAAJ;QACE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,sCAAK,GAAL;QACE,OAAO,aAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAEK,4CAAW,GAAjB,UAAkC,iBAAyB,EAAE,MAAkB,EAAE,EAAmB;;;;;;;wBAClG,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,IAAI,iBAAiB,KAAK,CAAC,EAAE;4BAC9D,sBAAO;yBACR;wBAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;4BACd,yFAAyF;4BACzF,sFAAsF;4BACtF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gCAChB,OAAO,EAAE,kIAA6H;6BACvI,CAAC,CAAC;4BACH,sBAAO;yBACR;wBAEK,EAAE,GAAG,IAAA,kBAAa,GAAE,CAAC;wBAC3B,qBAAM,EAAE,CAAC,cAAc,CAAC;;;;gDACT,qBAAM,EAAE,CAAC,GAAG,CAAC,aAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,EAAA;;4CAAnD,IAAI,GAAG,SAA4C;4CACzD,IAAI,CAAC,IAAI,EAAE;gDACT,sBAAO,CAAC,mEAAmE;6CAC5E;4CAEuB,qBAAM,EAAE,CAAC,MAAM,CAAC,aAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAA;;4CAA5E,eAAe,GAAG,SAA0D;4CAClF,IAAI,eAAe,GAAG,CAAC,EAAE;gDACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oDACf,OAAO,EAAE,8BAA8B;oDACvC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,0BAAc,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE;iDACtF,CAAC,CAAC;6CACJ;;;;iCACF,CAAC,EAAA;;wBAbF,SAaE,CAAC;;;;;KACJ;IACH,6BAAC;AAAD,CAAC,AAzCD,IAyCC;AAzCY,wDAAsB"}
|
|
@@ -40,7 +40,7 @@ exports.checkPassword = exports.authenticate = exports.createAuthentication = vo
|
|
|
40
40
|
var db_1 = require("@proteinjs/db");
|
|
41
41
|
var user_1 = require("@proteinjs/user");
|
|
42
42
|
var logger_1 = require("@proteinjs/logger");
|
|
43
|
-
var
|
|
43
|
+
var util_node_1 = require("@proteinjs/util-node");
|
|
44
44
|
var DefaultAdminCredentials_1 = require("./DefaultAdminCredentials");
|
|
45
45
|
var PasswordHasher_1 = require("./PasswordHasher");
|
|
46
46
|
function createAuthentication(defaultAdminCredentials) {
|
|
@@ -96,7 +96,7 @@ function authenticate(email, password) {
|
|
|
96
96
|
}
|
|
97
97
|
logger.warn({
|
|
98
98
|
message: 'Refused login for deactivated account',
|
|
99
|
-
obj: { account: new
|
|
99
|
+
obj: { account: new util_node_1.RequestDigests().account(email) },
|
|
100
100
|
});
|
|
101
101
|
return [2 /*return*/, 'This account has been deactivated'];
|
|
102
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../src/authentication/authenticate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA8C;AAC9C,wCAA+C;AAC/C,4CAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../src/authentication/authenticate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCache.d.ts","sourceRoot":"","sources":["../../../src/authorization/userCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"userCache.d.ts","sourceRoot":"","sources":["../../../src/authorization/userCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,IAAI,EAA6C,MAAM,iBAAiB,CAAC;AAKlF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,IAAI,CA8C5C,CAAC"}
|
|
@@ -43,6 +43,7 @@ exports.userCache = void 0;
|
|
|
43
43
|
var moment_1 = __importDefault(require("moment"));
|
|
44
44
|
var db_1 = require("@proteinjs/db");
|
|
45
45
|
var logger_1 = require("@proteinjs/logger");
|
|
46
|
+
var util_node_1 = require("@proteinjs/util-node");
|
|
46
47
|
var user_1 = require("@proteinjs/user");
|
|
47
48
|
var DefaultAdminCredentials_1 = require("../authentication/DefaultAdminCredentials");
|
|
48
49
|
var logger = new logger_1.Logger({ name: 'userCache' });
|
|
@@ -87,7 +88,7 @@ exports.userCache = {
|
|
|
87
88
|
// account is deactivated — every request runs as the unauthenticated guest.
|
|
88
89
|
logger.warn({
|
|
89
90
|
message: "Session references a deactivated account; resolving as unauthenticated",
|
|
90
|
-
obj: { sessionId: sessionId,
|
|
91
|
+
obj: { sessionId: sessionId, account: new util_node_1.RequestDigests().account(userEmail) },
|
|
91
92
|
});
|
|
92
93
|
}
|
|
93
94
|
else if (accountUser) {
|
|
@@ -101,7 +102,7 @@ exports.userCache = {
|
|
|
101
102
|
// build as an unhandled rejection and downs the process.
|
|
102
103
|
logger.warn({
|
|
103
104
|
message: "Session references an account that does not exist; resolving as unauthenticated",
|
|
104
|
-
obj: { sessionId: sessionId,
|
|
105
|
+
obj: { sessionId: sessionId, account: new util_node_1.RequestDigests().account(userEmail) },
|
|
105
106
|
});
|
|
106
107
|
}
|
|
107
108
|
_a.label = 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCache.js","sourceRoot":"","sources":["../../../src/authorization/userCache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAE5B,oCAA8C;AAC9C,4CAA2C;AAC3C,wCAAkF;AAClF,qFAAoF;AAEpF,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAEjD;;;;;;;;GAQG;AACU,QAAA,SAAS,GAA2B;IAC/C,GAAG,EAAE,6BAAsB;IAC3B,MAAM,EAAE,UAAO,SAAiB,EAAE,SAAiB;;;;;oBAC7C,IAAI,GAAG,gBAAS,CAAC;yBACjB,SAAS,EAAT,wBAAS;oBACL,gBAAgB,GAAG,iDAAuB,CAAC,cAAc,EAAE,CAAC;yBAC9D,CAAA,gBAAgB,IAAI,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAA,EAA1D,wBAA0D;oBACtD,SAAS,GAAS;wBACtB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,gBAAgB,CAAC,QAAQ;wBAChC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;wBACnC,aAAa,EAAE,IAAI;wBACnB,KAAK,EAAE,CAAC,OAAO,CAAC;wBAChB,OAAO,EAAE,IAAA,gBAAM,GAAE;wBACjB,OAAO,EAAE,IAAA,gBAAM,GAAE;wBACjB,EAAE,EAAE,OAAO;qBACZ,CAAC;oBACF,IAAI,GAAG,SAAS,CAAC;;wBAEG,qBAAM,IAAA,kBAAa,GAAE,CAAC,GAAG,CAAC,aAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,EAAA;;oBAAxF,WAAW,GAAG,SAA0E;oBAC9F,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,aAAa,EAAE;wBACvD,sFAAsF;wBACtF,iFAAiF;wBACjF,4EAA4E;wBAC5E,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO,EAAE,wEAAwE;4BACjF,GAAG,EAAE,EAAE,SAAS,WAAA,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"userCache.js","sourceRoot":"","sources":["../../../src/authorization/userCache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAE5B,oCAA8C;AAC9C,4CAA2C;AAC3C,kDAAsD;AACtD,wCAAkF;AAClF,qFAAoF;AAEpF,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAEjD;;;;;;;;GAQG;AACU,QAAA,SAAS,GAA2B;IAC/C,GAAG,EAAE,6BAAsB;IAC3B,MAAM,EAAE,UAAO,SAAiB,EAAE,SAAiB;;;;;oBAC7C,IAAI,GAAG,gBAAS,CAAC;yBACjB,SAAS,EAAT,wBAAS;oBACL,gBAAgB,GAAG,iDAAuB,CAAC,cAAc,EAAE,CAAC;yBAC9D,CAAA,gBAAgB,IAAI,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAA,EAA1D,wBAA0D;oBACtD,SAAS,GAAS;wBACtB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,gBAAgB,CAAC,QAAQ;wBAChC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;wBACnC,aAAa,EAAE,IAAI;wBACnB,KAAK,EAAE,CAAC,OAAO,CAAC;wBAChB,OAAO,EAAE,IAAA,gBAAM,GAAE;wBACjB,OAAO,EAAE,IAAA,gBAAM,GAAE;wBACjB,EAAE,EAAE,OAAO;qBACZ,CAAC;oBACF,IAAI,GAAG,SAAS,CAAC;;wBAEG,qBAAM,IAAA,kBAAa,GAAE,CAAC,GAAG,CAAC,aAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,EAAA;;oBAAxF,WAAW,GAAG,SAA0E;oBAC9F,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,aAAa,EAAE;wBACvD,sFAAsF;wBACtF,iFAAiF;wBACjF,4EAA4E;wBAC5E,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO,EAAE,wEAAwE;4BACjF,GAAG,EAAE,EAAE,SAAS,WAAA,EAAE,OAAO,EAAE,IAAI,0BAAc,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;yBACrE,CAAC,CAAC;qBACJ;yBAAM,IAAI,WAAW,EAAE;wBACtB,OAAQ,WAAmB,CAAC,UAAU,CAAC,CAAC;wBACxC,IAAI,GAAG,WAAW,CAAC;qBACpB;yBAAM;wBACL,0FAA0F;wBAC1F,+EAA+E;wBAC/E,sFAAsF;wBACtF,yDAAyD;wBACzD,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO,EAAE,iFAAiF;4BAC1F,GAAG,EAAE,EAAE,SAAS,WAAA,EAAE,OAAO,EAAE,IAAI,0BAAc,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;yBACrE,CAAC,CAAC;qBACJ;;wBAIL,sBAAO,IAAI,EAAC;;;SACb;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devLogin.d.ts","sourceRoot":"","sources":["../../../src/routes/devLogin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"devLogin.d.ts","sourceRoot":"","sources":["../../../src/routes/devLogin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAe9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,QAAQ,EAAE,KAuEtB,CAAC"}
|
|
@@ -38,6 +38,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.devLogin = void 0;
|
|
40
40
|
var logger_1 = require("@proteinjs/logger");
|
|
41
|
+
var util_node_1 = require("@proteinjs/util-node");
|
|
41
42
|
var util_1 = require("@proteinjs/util");
|
|
42
43
|
var establishSession_1 = require("../authentication/establishSession");
|
|
43
44
|
var Roles_1 = require("../services/Roles");
|
|
@@ -97,7 +98,7 @@ exports.devLogin = {
|
|
|
97
98
|
path: '/dev/login',
|
|
98
99
|
method: 'get',
|
|
99
100
|
onRequest: function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
|
|
100
|
-
var envEmail, email, emailParam, requested, creation, bootstrapEmail, outcome, bootstrapRoles, outcome;
|
|
101
|
+
var envEmail, email, emailParam, requested, digests, creation, error_1, bootstrapEmail, outcome, bootstrapRoles, outcome;
|
|
101
102
|
var _a, _b, _c;
|
|
102
103
|
return __generator(this, function (_d) {
|
|
103
104
|
switch (_d.label) {
|
|
@@ -125,6 +126,10 @@ exports.devLogin = {
|
|
|
125
126
|
email = requested;
|
|
126
127
|
}
|
|
127
128
|
email = email.toLowerCase();
|
|
129
|
+
digests = new util_node_1.RequestDigests();
|
|
130
|
+
_d.label = 1;
|
|
131
|
+
case 1:
|
|
132
|
+
_d.trys.push([1, 3, , 4]);
|
|
128
133
|
return [4 /*yield*/, new Signup_1.Signup().createAccount({
|
|
129
134
|
name: email.slice(0, email.indexOf('@')),
|
|
130
135
|
email: email,
|
|
@@ -132,35 +137,45 @@ exports.devLogin = {
|
|
|
132
137
|
emailVerified: false,
|
|
133
138
|
invitedBy: null,
|
|
134
139
|
})];
|
|
135
|
-
case
|
|
140
|
+
case 2:
|
|
136
141
|
creation = _d.sent();
|
|
142
|
+
return [3 /*break*/, 4];
|
|
143
|
+
case 3:
|
|
144
|
+
error_1 = _d.sent();
|
|
145
|
+
// createAccount refuses in plain words (an address a machine-account declaration owns); the
|
|
146
|
+
// dev door answers the way its other refusals do — the words, no session, no row.
|
|
147
|
+
response
|
|
148
|
+
.status(400)
|
|
149
|
+
.send("/dev/login: ".concat(error_1 instanceof Error ? error_1.message : 'the account could not be created'));
|
|
150
|
+
return [2 /*return*/];
|
|
151
|
+
case 4:
|
|
137
152
|
if (creation === 'created') {
|
|
138
|
-
logger.info({ message: 'Dev auto-login created missing test account', obj: {
|
|
153
|
+
logger.info({ message: 'Dev auto-login created missing test account', obj: { account: digests.account(email) } });
|
|
139
154
|
}
|
|
140
155
|
bootstrapEmail = ((_c = process.env.DEV_BOOTSTRAP_ADMIN_EMAIL) !== null && _c !== void 0 ? _c : '').trim().toLowerCase();
|
|
141
|
-
if (!(bootstrapEmail && email === bootstrapEmail)) return [3 /*break*/,
|
|
156
|
+
if (!(bootstrapEmail && email === bootstrapEmail)) return [3 /*break*/, 6];
|
|
142
157
|
return [4 /*yield*/, new Roles_1.Roles().bootstrapAdmin(email)];
|
|
143
|
-
case
|
|
158
|
+
case 5:
|
|
144
159
|
outcome = _d.sent();
|
|
145
|
-
logger.info({ message: "Dev bootstrap admin door: ".concat(outcome), obj: {
|
|
146
|
-
_d.label =
|
|
147
|
-
case
|
|
160
|
+
logger.info({ message: "Dev bootstrap admin door: ".concat(outcome), obj: { account: digests.account(email) } });
|
|
161
|
+
_d.label = 6;
|
|
162
|
+
case 6:
|
|
148
163
|
bootstrapRoles = DevBootstrapRoles_1.DevBootstrapRoles.rolesFor(email);
|
|
149
|
-
if (!(bootstrapRoles.length > 0)) return [3 /*break*/,
|
|
164
|
+
if (!(bootstrapRoles.length > 0)) return [3 /*break*/, 8];
|
|
150
165
|
return [4 /*yield*/, new Roles_1.Roles().bootstrapRoles(email, bootstrapRoles)];
|
|
151
|
-
case
|
|
166
|
+
case 7:
|
|
152
167
|
outcome = _d.sent();
|
|
153
168
|
logger.info({ message: DevBootstrapRoles_1.DevBootstrapRoles.markerLine(email, outcome) });
|
|
154
|
-
_d.label =
|
|
155
|
-
case
|
|
169
|
+
_d.label = 8;
|
|
170
|
+
case 8:
|
|
156
171
|
// establishSession commits the session row before the redirect — the redirected GET / must
|
|
157
172
|
// never read the store ahead of the write (observed: first /dev/login load landed on /login).
|
|
158
173
|
return [4 /*yield*/, (0, establishSession_1.establishSession)(request, email)];
|
|
159
|
-
case
|
|
174
|
+
case 9:
|
|
160
175
|
// establishSession commits the session row before the redirect — the redirected GET / must
|
|
161
176
|
// never read the store ahead of the write (observed: first /dev/login load landed on /login).
|
|
162
177
|
_d.sent();
|
|
163
|
-
logger.info({ message: 'Dev auto-login session established', obj: {
|
|
178
|
+
logger.info({ message: 'Dev auto-login session established', obj: { account: digests.account(email) } });
|
|
164
179
|
response.redirect('/');
|
|
165
180
|
return [2 /*return*/];
|
|
166
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devLogin.js","sourceRoot":"","sources":["../../../src/routes/devLogin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,wCAA6C;AAC7C,uEAAsE;AACtE,2CAA0C;AAC1C,6CAA4C;AAC5C,yDAAwD;AAExD,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AAEhD;kFACkF;AAClF,IAAM,WAAW,GAAG,UAAC,OAAe,IAAK,OAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,EAAzD,CAAyD,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACU,QAAA,QAAQ,GAAU;IAC7B,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAO,OAAY,EAAE,QAAQ;;;;;;oBAChC,QAAQ,GAAG,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE;wBACzC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC5B,sBAAO;qBACR;oBAEG,KAAK,GAAG,QAAQ,CAAC;oBACf,UAAU,GAAG,MAAA,OAAO,CAAC,KAAK,0CAAE,KAAK,CAAC;oBACxC,IAAI,UAAU,KAAK,SAAS,EAAE;wBACtB,SAAS,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1E,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC,EAAE;4BACpD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mDAA4C,WAAW,CAAC,QAAQ,CAAC,YAAS,CAAC,CAAC;4BACtG,sBAAO;yBACR;wBACD,IAAI,CAAC,iBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;4BAC/B,QAAQ;iCACL,MAAM,CAAC,GAAG,CAAC;iCACX,IAAI,CACH,wBAAgB,SAAS,4EAAiE;gCACxF,uEAAgE,WAAW,CAAC,QAAQ,CAAC,MAAG,CAC3F,CAAC;4BACJ,sBAAO;yBACR;wBACD,KAAK,GAAG,SAAS,CAAC;qBACnB;oBACD,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"devLogin.js","sourceRoot":"","sources":["../../../src/routes/devLogin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,kDAAsD;AACtD,wCAA6C;AAC7C,uEAAsE;AACtE,2CAA0C;AAC1C,6CAA4C;AAC5C,yDAAwD;AAExD,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AAEhD;kFACkF;AAClF,IAAM,WAAW,GAAG,UAAC,OAAe,IAAK,OAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,EAAzD,CAAyD,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACU,QAAA,QAAQ,GAAU;IAC7B,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAO,OAAY,EAAE,QAAQ;;;;;;oBAChC,QAAQ,GAAG,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE;wBACzC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC5B,sBAAO;qBACR;oBAEG,KAAK,GAAG,QAAQ,CAAC;oBACf,UAAU,GAAG,MAAA,OAAO,CAAC,KAAK,0CAAE,KAAK,CAAC;oBACxC,IAAI,UAAU,KAAK,SAAS,EAAE;wBACtB,SAAS,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1E,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC,EAAE;4BACpD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mDAA4C,WAAW,CAAC,QAAQ,CAAC,YAAS,CAAC,CAAC;4BACtG,sBAAO;yBACR;wBACD,IAAI,CAAC,iBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;4BAC/B,QAAQ;iCACL,MAAM,CAAC,GAAG,CAAC;iCACX,IAAI,CACH,wBAAgB,SAAS,4EAAiE;gCACxF,uEAAgE,WAAW,CAAC,QAAQ,CAAC,MAAG,CAC3F,CAAC;4BACJ,sBAAO;yBACR;wBACD,KAAK,GAAG,SAAS,CAAC;qBACnB;oBACD,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtB,OAAO,GAAG,IAAI,0BAAc,EAAE,CAAC;;;;oBAIxB,qBAAM,IAAI,eAAM,EAAE,CAAC,aAAa,CAAC;4BAC1C,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;4BACxC,KAAK,OAAA;4BACL,QAAQ,EAAE,MAAM;4BAChB,aAAa,EAAE,KAAK;4BACpB,SAAS,EAAE,IAAI;yBAChB,CAAC,EAAA;;oBANF,QAAQ,GAAG,SAMT,CAAC;;;;oBAEH,4FAA4F;oBAC5F,kFAAkF;oBAClF,QAAQ;yBACL,MAAM,CAAC,GAAG,CAAC;yBACX,IAAI,CAAC,sBAAe,OAAK,YAAY,KAAK,CAAC,CAAC,CAAC,OAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC,CAAE,CAAC,CAAC;oBACtG,sBAAO;;oBAET,IAAI,QAAQ,KAAK,SAAS,EAAE;wBAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,6CAA6C,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;qBACnH;oBAEK,cAAc,GAAG,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;yBACtF,CAAA,cAAc,IAAI,KAAK,KAAK,cAAc,CAAA,EAA1C,wBAA0C;oBAC5B,qBAAM,IAAI,aAAK,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAA;;oBAAjD,OAAO,GAAG,SAAuC;oBACvD,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oCAA6B,OAAO,CAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;;;oBAGvG,cAAc,GAAG,qCAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;yBACrD,CAAA,cAAc,CAAC,MAAM,GAAG,CAAC,CAAA,EAAzB,wBAAyB;oBACX,qBAAM,IAAI,aAAK,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,EAAA;;oBAAjE,OAAO,GAAG,SAAuD;oBACvE,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,qCAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;;;gBAGzE,2FAA2F;gBAC3F,8FAA8F;gBAC9F,qBAAM,IAAA,mCAAgB,EAAC,OAAO,EAAE,KAAK,CAAC,EAAA;;oBAFtC,2FAA2F;oBAC3F,8FAA8F;oBAC9F,SAAsC,CAAC;oBACvC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;;;;SACxB;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executePasswordReset.d.ts","sourceRoot":"","sources":["../../../src/routes/executePasswordReset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAQ9C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"executePasswordReset.d.ts","sourceRoot":"","sources":["../../../src/routes/executePasswordReset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAQ9C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAyClC,CAAC"}
|
|
@@ -39,9 +39,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.executePasswordReset = void 0;
|
|
40
40
|
var user_1 = require("@proteinjs/user");
|
|
41
41
|
var logger_1 = require("@proteinjs/logger");
|
|
42
|
+
var util_node_1 = require("@proteinjs/util-node");
|
|
42
43
|
var PasswordHasher_1 = require("../authentication/PasswordHasher");
|
|
43
44
|
var PasswordResetToken_1 = require("../authentication/PasswordResetToken");
|
|
44
|
-
var RequestDigests_1 = require("../throttle/RequestDigests");
|
|
45
45
|
var SignInThrottle_1 = require("../throttle/SignInThrottle");
|
|
46
46
|
/**
|
|
47
47
|
* Route handler for executing a password reset.
|
|
@@ -63,12 +63,13 @@ exports.executePasswordReset = {
|
|
|
63
63
|
path: user_1.routes.executePasswordReset.path,
|
|
64
64
|
method: user_1.routes.executePasswordReset.method,
|
|
65
65
|
onRequest: function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
|
|
66
|
-
var logger, _a, token, newPassword, resetToken, resolution, user, hashedPassword;
|
|
66
|
+
var logger, digests, _a, token, newPassword, resetToken, resolution, user, hashedPassword;
|
|
67
67
|
var _b;
|
|
68
68
|
return __generator(this, function (_c) {
|
|
69
69
|
switch (_c.label) {
|
|
70
70
|
case 0:
|
|
71
71
|
logger = new logger_1.Logger({ name: 'executePasswordReset' });
|
|
72
|
+
digests = new util_node_1.RequestDigests();
|
|
72
73
|
_a = (_b = request.body) !== null && _b !== void 0 ? _b : {}, token = _a.token, newPassword = _a.newPassword;
|
|
73
74
|
if (typeof newPassword !== 'string' || newPassword.length === 0) {
|
|
74
75
|
response.status(400).send({ error: 'New password cannot be blank' });
|
|
@@ -87,7 +88,7 @@ exports.executePasswordReset = {
|
|
|
87
88
|
return [2 /*return*/];
|
|
88
89
|
}
|
|
89
90
|
if (resolution.status === 'expired') {
|
|
90
|
-
logger.info({ message: "Expired reset token used", obj: {
|
|
91
|
+
logger.info({ message: "Expired reset token used", obj: { account: digests.account(resolution.user.email) } });
|
|
91
92
|
response.status(400).send({ error: 'Reset token has expired' });
|
|
92
93
|
return [2 /*return*/];
|
|
93
94
|
}
|
|
@@ -98,12 +99,12 @@ exports.executePasswordReset = {
|
|
|
98
99
|
return [4 /*yield*/, resetToken.redeem(user, resolution.token, hashedPassword)];
|
|
99
100
|
case 3:
|
|
100
101
|
if (!(_c.sent())) {
|
|
101
|
-
logger.info({ message: "Reset token already redeemed", obj: {
|
|
102
|
+
logger.info({ message: "Reset token already redeemed", obj: { account: digests.account(user.email) } });
|
|
102
103
|
response.status(400).send({ error: 'Invalid or expired reset token' });
|
|
103
104
|
return [2 /*return*/];
|
|
104
105
|
}
|
|
105
|
-
SignInThrottle_1.signInThrottle.recordSuccess(
|
|
106
|
-
logger.info({ message: "Password successfully reset", obj: {
|
|
106
|
+
SignInThrottle_1.signInThrottle.recordSuccess(digests.account(user.email));
|
|
107
|
+
logger.info({ message: "Password successfully reset", obj: { account: digests.account(user.email) } });
|
|
107
108
|
response.send({ message: 'Password has been successfully reset' });
|
|
108
109
|
return [2 /*return*/];
|
|
109
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executePasswordReset.js","sourceRoot":"","sources":["../../../src/routes/executePasswordReset.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wCAAyC;AACzC,4CAA2C;AAC3C,mEAAkE;AAClE,2EAA0E;AAC1E,6DAA4D;
|
|
1
|
+
{"version":3,"file":"executePasswordReset.js","sourceRoot":"","sources":["../../../src/routes/executePasswordReset.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,11 +54,11 @@ exports.initiatePasswordReset = void 0;
|
|
|
54
54
|
var db_1 = require("@proteinjs/db");
|
|
55
55
|
var user_1 = require("@proteinjs/user");
|
|
56
56
|
var logger_1 = require("@proteinjs/logger");
|
|
57
|
+
var util_node_1 = require("@proteinjs/util-node");
|
|
57
58
|
var moment_1 = __importDefault(require("moment"));
|
|
58
59
|
var email_server_1 = require("@proteinjs/email-server");
|
|
59
60
|
var PasswordResetToken_1 = require("../authentication/PasswordResetToken");
|
|
60
61
|
var ClientAddress_1 = require("../throttle/ClientAddress");
|
|
61
|
-
var RequestDigests_1 = require("../throttle/RequestDigests");
|
|
62
62
|
var PasswordResetThrottle_1 = require("../throttle/PasswordResetThrottle");
|
|
63
63
|
/**
|
|
64
64
|
* The door's one answer: the same words for an address with an account or without, inside or
|
|
@@ -101,7 +101,7 @@ exports.initiatePasswordReset = {
|
|
|
101
101
|
response.status(400).send({ error: 'Email cannot be blank' });
|
|
102
102
|
return [2 /*return*/];
|
|
103
103
|
}
|
|
104
|
-
digests = new
|
|
104
|
+
digests = new util_node_1.RequestDigests();
|
|
105
105
|
fields = { account: digests.account(requestedEmail), ip: digests.coarseIp(new ClientAddress_1.ClientAddress().of(request)) };
|
|
106
106
|
window = PasswordResetThrottle_1.passwordResetThrottle.admit(fields.ip, fields.account);
|
|
107
107
|
response.send(ONE_ANSWER);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initiatePasswordReset.js","sourceRoot":"","sources":["../../../src/routes/initiatePasswordReset.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oCAA8C;AAC9C,wCAA2D;AAC3D,4CAA2C;AAC3C,kDAA4B;AAC5B,wDAGiC;AACjC,2EAA0E;AAC1E,2DAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"initiatePasswordReset.js","sourceRoot":"","sources":["../../../src/routes/initiatePasswordReset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../../src/routes/signup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../../src/routes/signup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAS9C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM,EAAE,KAgCpB,CAAC"}
|
|
@@ -38,6 +38,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.signup = void 0;
|
|
40
40
|
var logger_1 = require("@proteinjs/logger");
|
|
41
|
+
var util_node_1 = require("@proteinjs/util-node");
|
|
41
42
|
var user_1 = require("@proteinjs/user");
|
|
42
43
|
var establishSession_1 = require("../authentication/establishSession");
|
|
43
44
|
var Signup_1 = require("../services/Signup");
|
|
@@ -82,8 +83,10 @@ exports.signup = {
|
|
|
82
83
|
case 3:
|
|
83
84
|
error_1 = _b.sent();
|
|
84
85
|
// createUser throws plain-words errors deliberately (invite expired / invite required /
|
|
85
|
-
// email missing); the message is the user-facing contract, same as the RPC layer's.
|
|
86
|
-
|
|
86
|
+
// email missing); the message is the user-facing contract, same as the RPC layer's. The log
|
|
87
|
+
// gets the error through the digest door: a concurrent double sign-up's unique-index refusal
|
|
88
|
+
// names the address in the database's own words.
|
|
89
|
+
logger.error({ message: 'Signup failed', error: new util_node_1.RequestDigests().redactError(error_1) });
|
|
87
90
|
response.send({ error: error_1 instanceof Error ? error_1.message : 'Sign up failed.' });
|
|
88
91
|
return [2 /*return*/];
|
|
89
92
|
case 4:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../src/routes/signup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,wCAAqD;AACrD,uEAAsE;AACtE,6CAA4C;AAE5C,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE9C;;;;;;;;;;;;;;;GAeG;AACU,QAAA,MAAM,GAAU;IAC3B,IAAI,EAAE,aAAM,CAAC,MAAM,CAAC,IAAI;IACxB,MAAM,EAAE,aAAM,CAAC,MAAM,CAAC,MAAM;IAC5B,SAAS,EAAE,UAAO,OAAY,EAAE,QAAQ;;;;;;oBAChC,IAAI,GAA6C,MAAA,OAAO,CAAC,IAAI,mCAAI,EAAE,CAAC;oBAC1E,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;wBAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;wBAC9D,sBAAO;qBACR;;;;oBAIU,qBAAM,IAAI,eAAM,EAAE,CAAC,UAAU,CACpC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAC/D,IAAI,CAAC,KAAK,CACX,EAAA;;oBAHD,MAAM,GAAG,SAGR,CAAC;;;;oBAEF,wFAAwF;oBACxF,
|
|
1
|
+
{"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../src/routes/signup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,kDAAsD;AACtD,wCAAqD;AACrD,uEAAsE;AACtE,6CAA4C;AAE5C,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE9C;;;;;;;;;;;;;;;GAeG;AACU,QAAA,MAAM,GAAU;IAC3B,IAAI,EAAE,aAAM,CAAC,MAAM,CAAC,IAAI;IACxB,MAAM,EAAE,aAAM,CAAC,MAAM,CAAC,MAAM;IAC5B,SAAS,EAAE,UAAO,OAAY,EAAE,QAAQ;;;;;;oBAChC,IAAI,GAA6C,MAAA,OAAO,CAAC,IAAI,mCAAI,EAAE,CAAC;oBAC1E,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;wBAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;wBAC9D,sBAAO;qBACR;;;;oBAIU,qBAAM,IAAI,eAAM,EAAE,CAAC,UAAU,CACpC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAC/D,IAAI,CAAC,KAAK,CACX,EAAA;;oBAHD,MAAM,GAAG,SAGR,CAAC;;;;oBAEF,wFAAwF;oBACxF,4FAA4F;oBAC5F,6FAA6F;oBAC7F,iDAAiD;oBACjD,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,0BAAc,EAAE,CAAC,WAAW,CAAC,OAAK,CAAC,EAAE,CAAC,CAAC;oBAC3F,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAK,YAAY,KAAK,CAAC,CAAC,CAAC,OAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;oBACrF,sBAAO;;yBAGL,CAAA,MAAM,CAAC,OAAO,KAAK,SAAS,CAAA,EAA5B,wBAA4B;oBAC9B,qBAAM,IAAA,mCAAgB,EAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAA;;oBAA7C,SAA6C,CAAC;;;oBAGhD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;;;SACnB;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateResetPasswordToken.d.ts","sourceRoot":"","sources":["../../../src/routes/validateResetPasswordToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"validateResetPasswordToken.d.ts","sourceRoot":"","sources":["../../../src/routes/validateResetPasswordToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAM9C,eAAO,MAAM,0BAA0B,EAAE,KAqCxC,CAAC"}
|
|
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.validateResetPasswordToken = void 0;
|
|
40
40
|
var user_1 = require("@proteinjs/user");
|
|
41
41
|
var logger_1 = require("@proteinjs/logger");
|
|
42
|
+
var util_node_1 = require("@proteinjs/util-node");
|
|
42
43
|
var PasswordResetToken_1 = require("../authentication/PasswordResetToken");
|
|
43
44
|
exports.validateResetPasswordToken = {
|
|
44
45
|
path: user_1.routes.validateResetToken.path,
|
|
@@ -67,7 +68,10 @@ exports.validateResetPasswordToken = {
|
|
|
67
68
|
return [2 /*return*/];
|
|
68
69
|
}
|
|
69
70
|
if (resolution.status === 'expired') {
|
|
70
|
-
logger.info({
|
|
71
|
+
logger.info({
|
|
72
|
+
message: "Expired reset token used",
|
|
73
|
+
obj: { account: new util_node_1.RequestDigests().account(resolution.user.email) },
|
|
74
|
+
});
|
|
71
75
|
response.status(200).send({ isValid: false, message: 'Token has expired' });
|
|
72
76
|
return [2 /*return*/];
|
|
73
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateResetPasswordToken.js","sourceRoot":"","sources":["../../../src/routes/validateResetPasswordToken.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wCAAyC;AACzC,4CAA2C;AAC3C,2EAA0E;AAE7D,QAAA,0BAA0B,GAAU;IAC/C,IAAI,EAAE,aAAM,CAAC,kBAAkB,CAAC,IAAI;IACpC,MAAM,EAAE,aAAM,CAAC,kBAAkB,CAAC,MAAM;IACxC,SAAS,EAAE,UAAO,OAAO,EAAE,QAAQ;;;;;oBAC3B,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;oBAClD,KAAK,GAAK,OAAO,CAAC,KAAK,MAAlB,CAAmB;oBAChC,IAAI,CAAC,KAAK,EAAE;wBACV,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;wBAC5E,sBAAO;qBACR;oBAEK,UAAU,GAAG,IAAI,uCAAkB,EAAE,CAAC;oBACzB,qBAAM,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA;;oBAA5C,UAAU,GAAG,SAA+B;oBAClD,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE;wBACxE,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO,EAAE,0BAA0B;4BACnC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;yBACzE,CAAC,CAAC;wBACH,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;wBACxE,sBAAO;qBACR;oBAED,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE;wBACnC,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"validateResetPasswordToken.js","sourceRoot":"","sources":["../../../src/routes/validateResetPasswordToken.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wCAAyC;AACzC,4CAA2C;AAC3C,kDAAsD;AACtD,2EAA0E;AAE7D,QAAA,0BAA0B,GAAU;IAC/C,IAAI,EAAE,aAAM,CAAC,kBAAkB,CAAC,IAAI;IACpC,MAAM,EAAE,aAAM,CAAC,kBAAkB,CAAC,MAAM;IACxC,SAAS,EAAE,UAAO,OAAO,EAAE,QAAQ;;;;;oBAC3B,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;oBAClD,KAAK,GAAK,OAAO,CAAC,KAAK,MAAlB,CAAmB;oBAChC,IAAI,CAAC,KAAK,EAAE;wBACV,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;wBAC5E,sBAAO;qBACR;oBAEK,UAAU,GAAG,IAAI,uCAAkB,EAAE,CAAC;oBACzB,qBAAM,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA;;oBAA5C,UAAU,GAAG,SAA+B;oBAClD,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE;wBACxE,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO,EAAE,0BAA0B;4BACnC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;yBACzE,CAAC,CAAC;wBACH,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;wBACxE,sBAAO;qBACR;oBAED,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE;wBACnC,MAAM,CAAC,IAAI,CAAC;4BACV,OAAO,EAAE,0BAA0B;4BACnC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,0BAAc,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;yBACtE,CAAC,CAAC;wBACH,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;wBAC5E,sBAAO;qBACR;oBAED,oFAAoF;oBACpF,uFAAuF;oBACvF,wFAAwF;oBACxF,mFAAmF;oBACnF,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;;;;SAC5E;CACF,CAAC"}
|
|
@@ -11,11 +11,20 @@ import { Service } from '@proteinjs/service';
|
|
|
11
11
|
* account's existing sessions (the old
|
|
12
12
|
* credential dies with them), and returns the plaintext ONCE for pasting into the declaration's
|
|
13
13
|
* Secret Manager secret. The same call rotates. Machine rows only (`is_loaded_from_source`);
|
|
14
|
-
* human credentials go through the password-reset flow.
|
|
14
|
+
* human credentials go through the password-reset flow. A declared address held by a row the
|
|
15
|
+
* boot sync does not own (a person's signup, a hand-made row) has no machine account at all —
|
|
16
|
+
* the sync refused the declaration — and both the list and the mint say so.
|
|
15
17
|
*/
|
|
16
18
|
export declare class MachineCredentials implements MachineCredentialsService {
|
|
17
19
|
serviceMetadata: Service['serviceMetadata'];
|
|
18
20
|
listMachineAccounts(): Promise<MachineAccountView[]>;
|
|
19
21
|
mintCredential(email: string): Promise<MintedMachineCredential>;
|
|
22
|
+
/**
|
|
23
|
+
* Why the boot sync refused a declaration whose address this row holds — undefined for the
|
|
24
|
+
* account's own row. The sync owns a row only when it created it (`isLoadedFromSource`); any
|
|
25
|
+
* other row under a declared address is never taken over (@proteinjs/db's natural-key refusal),
|
|
26
|
+
* and the one machine marker says whose row it is.
|
|
27
|
+
*/
|
|
28
|
+
private refusal;
|
|
20
29
|
}
|
|
21
30
|
//# sourceMappingURL=MachineCredentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MachineCredentials.d.ts","sourceRoot":"","sources":["../../../src/services/MachineCredentials.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"MachineCredentials.d.ts","sourceRoot":"","sources":["../../../src/services/MachineCredentials.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EAKxB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,kBAAmB,YAAW,yBAAyB;IAC3D,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAIhD;IAEI,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA0BpD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAkDrE;;;;;OAKG;IACH,OAAO,CAAC,OAAO;CAOhB"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -50,6 +61,7 @@ var crypto_1 = require("crypto");
|
|
|
50
61
|
var db_1 = require("@proteinjs/db");
|
|
51
62
|
var user_1 = require("@proteinjs/user");
|
|
52
63
|
var logger_1 = require("@proteinjs/logger");
|
|
64
|
+
var util_node_1 = require("@proteinjs/util-node");
|
|
53
65
|
var PasswordHasher_1 = require("../authentication/PasswordHasher");
|
|
54
66
|
/**
|
|
55
67
|
* Credential minting for code-declared machine accounts — the ONLY manual step in a machine
|
|
@@ -62,7 +74,9 @@ var PasswordHasher_1 = require("../authentication/PasswordHasher");
|
|
|
62
74
|
* account's existing sessions (the old
|
|
63
75
|
* credential dies with them), and returns the plaintext ONCE for pasting into the declaration's
|
|
64
76
|
* Secret Manager secret. The same call rotates. Machine rows only (`is_loaded_from_source`);
|
|
65
|
-
* human credentials go through the password-reset flow.
|
|
77
|
+
* human credentials go through the password-reset flow. A declared address held by a row the
|
|
78
|
+
* boot sync does not own (a person's signup, a hand-made row) has no machine account at all —
|
|
79
|
+
* the sync refused the declaration — and both the list and the mint say so.
|
|
66
80
|
*/
|
|
67
81
|
var MachineCredentials = /** @class */ (function () {
|
|
68
82
|
function MachineCredentials() {
|
|
@@ -74,7 +88,7 @@ var MachineCredentials = /** @class */ (function () {
|
|
|
74
88
|
}
|
|
75
89
|
MachineCredentials.prototype.listMachineAccounts = function () {
|
|
76
90
|
return __awaiter(this, void 0, void 0, function () {
|
|
77
|
-
var db, views, _i, _a, declaration, row,
|
|
91
|
+
var db, views, _i, _a, declaration, row, refusal;
|
|
78
92
|
return __generator(this, function (_b) {
|
|
79
93
|
switch (_b.label) {
|
|
80
94
|
case 0:
|
|
@@ -88,15 +102,14 @@ var MachineCredentials = /** @class */ (function () {
|
|
|
88
102
|
return [4 /*yield*/, db.get(user_1.tables.User, { email: declaration.email })];
|
|
89
103
|
case 2:
|
|
90
104
|
row = _b.sent();
|
|
91
|
-
|
|
92
|
-
views.push({
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
});
|
|
105
|
+
refusal = row && this.refusal(row);
|
|
106
|
+
views.push(__assign(__assign({ email: declaration.email, accountName: declaration.accountName, roles: __spreadArray([], declaration.roles, true), secretName: declaration.secretName, status: !row
|
|
107
|
+
? 'pending first boot'
|
|
108
|
+
: refusal
|
|
109
|
+
? 'declaration refused'
|
|
110
|
+
: row.status === 'deactivated'
|
|
111
|
+
? 'deactivated'
|
|
112
|
+
: 'active' }, (refusal ? { refusal: refusal } : {})), { hasCredential: !!row && !refusal && !!row.password }));
|
|
100
113
|
_b.label = 3;
|
|
101
114
|
case 3:
|
|
102
115
|
_i++;
|
|
@@ -108,7 +121,7 @@ var MachineCredentials = /** @class */ (function () {
|
|
|
108
121
|
};
|
|
109
122
|
MachineCredentials.prototype.mintCredential = function (email) {
|
|
110
123
|
return __awaiter(this, void 0, void 0, function () {
|
|
111
|
-
var logger, normalizedEmail, declaration, db, user, password, _a, _b, _c;
|
|
124
|
+
var logger, normalizedEmail, declaration, db, user, refusal, password, _a, _b, _c;
|
|
112
125
|
var _d;
|
|
113
126
|
return __generator(this, function (_e) {
|
|
114
127
|
switch (_e.label) {
|
|
@@ -124,9 +137,15 @@ var MachineCredentials = /** @class */ (function () {
|
|
|
124
137
|
return [4 /*yield*/, db.get(user_1.tables.User, { email: normalizedEmail })];
|
|
125
138
|
case 1:
|
|
126
139
|
user = _e.sent();
|
|
127
|
-
if (!user
|
|
140
|
+
if (!user) {
|
|
128
141
|
throw new Error("The machine account row for '".concat(normalizedEmail, "' has not been loaded from source yet \u2014 ") +
|
|
129
|
-
"the boot sync creates
|
|
142
|
+
"the boot sync creates it. Boot the server with the declaration, then mint.");
|
|
143
|
+
}
|
|
144
|
+
refusal = this.refusal(user);
|
|
145
|
+
if (refusal) {
|
|
146
|
+
throw new Error("The declaration for '".concat(normalizedEmail, "' was refused at boot: ").concat(refusal, " \u2014 the boot sync ") +
|
|
147
|
+
"never takes over a row it does not own, so there is no machine account to mint for. The " +
|
|
148
|
+
"first boot after that row is gone creates it.");
|
|
130
149
|
}
|
|
131
150
|
password = (0, crypto_1.randomBytes)(32).toString('hex');
|
|
132
151
|
_b = (_a = db).update;
|
|
@@ -145,7 +164,7 @@ var MachineCredentials = /** @class */ (function () {
|
|
|
145
164
|
_e.sent();
|
|
146
165
|
logger.info({
|
|
147
166
|
message: "Minted machine credential",
|
|
148
|
-
obj: {
|
|
167
|
+
obj: { account: new util_node_1.RequestDigests().account(normalizedEmail), secretName: declaration.secretName },
|
|
149
168
|
});
|
|
150
169
|
return [2 /*return*/, {
|
|
151
170
|
email: normalizedEmail,
|
|
@@ -158,6 +177,18 @@ var MachineCredentials = /** @class */ (function () {
|
|
|
158
177
|
});
|
|
159
178
|
});
|
|
160
179
|
};
|
|
180
|
+
/**
|
|
181
|
+
* Why the boot sync refused a declaration whose address this row holds — undefined for the
|
|
182
|
+
* account's own row. The sync owns a row only when it created it (`isLoadedFromSource`); any
|
|
183
|
+
* other row under a declared address is never taken over (@proteinjs/db's natural-key refusal),
|
|
184
|
+
* and the one machine marker says whose row it is.
|
|
185
|
+
*/
|
|
186
|
+
MachineCredentials.prototype.refusal = function (row) {
|
|
187
|
+
if (row.isLoadedFromSource === true) {
|
|
188
|
+
return undefined;
|
|
189
|
+
}
|
|
190
|
+
return row.machine === true ? 'a hand-made machine row holds this address' : 'a person holds this address';
|
|
191
|
+
};
|
|
161
192
|
return MachineCredentials;
|
|
162
193
|
}());
|
|
163
194
|
exports.MachineCredentials = MachineCredentials;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MachineCredentials.js","sourceRoot":"","sources":["../../../src/services/MachineCredentials.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MachineCredentials.js","sourceRoot":"","sources":["../../../src/services/MachineCredentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Roles.d.ts","sourceRoot":"","sources":["../../../src/services/Roles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAA8D,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Roles.d.ts","sourceRoot":"","sources":["../../../src/services/Roles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAA8D,MAAM,iBAAiB,CAAC;AAG3G,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;;;;;;;;;;;;;GAcG;AACH,iHAAiH;AACjH,MAAM,MAAM,qBAAqB,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC;AAEpH,qBAAa,KAAM,YAAW,YAAY;IACjC,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAIhD;IAEI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D;;;;;;;;;;;;;OAaG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;IAwBvF;;;;;;;;;;;;;;;;OAgBG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;YAuCtE,UAAU;IA8ExB,+GAA+G;YACjG,WAAW;CAK1B"}
|
|
@@ -49,6 +49,7 @@ exports.Roles = void 0;
|
|
|
49
49
|
var db_1 = require("@proteinjs/db");
|
|
50
50
|
var user_1 = require("@proteinjs/user");
|
|
51
51
|
var logger_1 = require("@proteinjs/logger");
|
|
52
|
+
var util_node_1 = require("@proteinjs/util-node");
|
|
52
53
|
var Roles = /** @class */ (function () {
|
|
53
54
|
function Roles() {
|
|
54
55
|
this.serviceMetadata = {
|
|
@@ -132,7 +133,10 @@ var Roles = /** @class */ (function () {
|
|
|
132
133
|
}); })];
|
|
133
134
|
case 3:
|
|
134
135
|
_b.sent();
|
|
135
|
-
logger.info({
|
|
136
|
+
logger.info({
|
|
137
|
+
message: 'Break-glass admin granted by the dev first-admin door',
|
|
138
|
+
obj: { target: user.id, account: new util_node_1.RequestDigests().account(email) },
|
|
139
|
+
});
|
|
136
140
|
return [2 /*return*/, 'granted'];
|
|
137
141
|
}
|
|
138
142
|
});
|
|
@@ -219,7 +223,7 @@ var Roles = /** @class */ (function () {
|
|
|
219
223
|
_c.sent();
|
|
220
224
|
logger.info({
|
|
221
225
|
message: 'Roles granted by the dev role-bootstrap door',
|
|
222
|
-
obj: { target: user.id,
|
|
226
|
+
obj: { target: user.id, account: new util_node_1.RequestDigests().account(email), granted: outcome.granted },
|
|
223
227
|
});
|
|
224
228
|
return [2 /*return*/, outcome];
|
|
225
229
|
}
|