@steedos/accounts 3.0.0-beta.8 → 3.0.0-beta.80
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/lib/core/index.js +66 -26
- package/lib/core/index.js.map +1 -1
- package/lib/rest-express/endpoints/logout.js +79 -72
- package/lib/rest-express/endpoints/logout.js.map +1 -1
- package/lib/rest-express/endpoints/password/change-password.js +94 -89
- package/lib/rest-express/endpoints/password/change-password.js.map +1 -1
- package/lib/rest-express/endpoints/steedos/get-tenant.js +62 -39
- package/lib/rest-express/endpoints/steedos/get-tenant.js.map +1 -1
- package/lib/rest-express/endpoints/steedos/settings.js +119 -88
- package/lib/rest-express/endpoints/steedos/settings.js.map +1 -1
- package/lib/rest-express/user-loader.js +82 -67
- package/lib/rest-express/user-loader.js.map +1 -1
- package/package.json +5 -5
- package/src/core/index.ts +201 -141
- package/src/rest-express/endpoints/logout.ts +74 -72
- package/src/rest-express/endpoints/password/change-password.ts +92 -81
- package/src/rest-express/endpoints/steedos/get-tenant.ts +56 -38
- package/src/rest-express/endpoints/steedos/settings.ts +117 -88
- package/src/rest-express/user-loader.ts +68 -58
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-password.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/password/change-password.ts"],"names":[],"mappings":";;;;AASA,qDAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"change-password.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/password/change-password.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,47 +5,70 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var send_error_1 = require("../../utils/send-error");
|
|
6
6
|
var db_1 = require("../../../db");
|
|
7
7
|
var core_1 = require("../../../core");
|
|
8
|
-
var getTenant = function (accountsServer) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
var getTenant = function (accountsServer) {
|
|
9
|
+
return function (req, res) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
10
|
+
var spaceId, spaceDoc, steedosService, err_1;
|
|
11
|
+
return tslib_1.__generator(this, function (_a) {
|
|
12
|
+
switch (_a.label) {
|
|
13
|
+
case 0:
|
|
14
|
+
_a.trys.push([0, 2, , 3]);
|
|
15
|
+
spaceId = req.params.id;
|
|
16
|
+
if (!spaceId)
|
|
17
|
+
throw new Error("accounts.tenant_id_required");
|
|
18
|
+
return [4, db_1.db.findOne("spaces", spaceId, {
|
|
19
|
+
fields: [
|
|
20
|
+
"name",
|
|
21
|
+
"avatar",
|
|
22
|
+
"avatar_dark",
|
|
23
|
+
"background",
|
|
24
|
+
"enable_register",
|
|
25
|
+
"account_logo",
|
|
26
|
+
],
|
|
23
27
|
})];
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
case 1:
|
|
29
|
+
spaceDoc = _a.sent();
|
|
30
|
+
if (!spaceDoc) {
|
|
31
|
+
return [2, res.send({
|
|
32
|
+
exists: false,
|
|
33
|
+
})];
|
|
29
34
|
}
|
|
30
|
-
|
|
31
|
-
|
|
35
|
+
steedosService = (0, core_1.getSteedosService)();
|
|
36
|
+
if (steedosService) {
|
|
37
|
+
if (spaceDoc.account_logo) {
|
|
38
|
+
spaceDoc.logo_url =
|
|
39
|
+
steedosService +
|
|
40
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
41
|
+
spaceDoc.account_logo;
|
|
42
|
+
}
|
|
43
|
+
else if (spaceDoc.avatar_dark) {
|
|
44
|
+
spaceDoc.logo_url =
|
|
45
|
+
steedosService +
|
|
46
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
47
|
+
spaceDoc.avatar_dark;
|
|
48
|
+
}
|
|
49
|
+
else if (spaceDoc.avatar) {
|
|
50
|
+
spaceDoc.logo_url =
|
|
51
|
+
steedosService +
|
|
52
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
53
|
+
spaceDoc.avatar;
|
|
54
|
+
}
|
|
55
|
+
if (spaceDoc.background) {
|
|
56
|
+
spaceDoc.background_url =
|
|
57
|
+
steedosService +
|
|
58
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
59
|
+
spaceDoc.background;
|
|
60
|
+
}
|
|
32
61
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
(0, send_error_1.sendError)(res, err_1);
|
|
45
|
-
return [3, 3];
|
|
46
|
-
case 3: return [2];
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}); }; };
|
|
62
|
+
res.json(spaceDoc);
|
|
63
|
+
return [3, 3];
|
|
64
|
+
case 2:
|
|
65
|
+
err_1 = _a.sent();
|
|
66
|
+
(0, send_error_1.sendError)(res, err_1);
|
|
67
|
+
return [3, 3];
|
|
68
|
+
case 3: return [2];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}); };
|
|
72
|
+
};
|
|
50
73
|
exports.getTenant = getTenant;
|
|
51
74
|
//# sourceMappingURL=get-tenant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tenant.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/steedos/get-tenant.ts"],"names":[],"mappings":";;;;AAEA,qDAAmD;AAEnD,kCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"get-tenant.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/steedos/get-tenant.ts"],"names":[],"mappings":";;;;AAEA,qDAAmD;AAEnD,kCAAiC;AACjC,sCAAkD;AAE3C,IAAM,SAAS,GACpB,UAAC,cAA8B;IAC/B,OAAA,UAAO,GAAoB,EAAE,GAAqB;;;;;;oBAExC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBAE5C,WAAM,OAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE;4BACnD,MAAM,EAAE;gCACN,MAAM;gCACN,QAAQ;gCACR,aAAa;gCACb,YAAY;gCACZ,iBAAiB;gCACjB,cAAc;6BACf;yBACF,CAAC,EAAA;;oBATI,QAAQ,GAAG,SASf;oBAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,WAAO,GAAG,CAAC,IAAI,CAAC;gCACd,MAAM,EAAE,KAAK;6BACd,CAAC,EAAC;oBACL,CAAC;oBAEG,cAAc,GAAG,IAAA,wBAAiB,GAAE,CAAC;oBAEzC,IAAI,cAAc,EAAE,CAAC;wBACnB,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;4BAC1B,QAAQ,CAAC,QAAQ;gCACf,cAAc;oCACd,sCAAsC;oCACtC,QAAQ,CAAC,YAAY,CAAC;wBAC1B,CAAC;6BAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;4BAChC,QAAQ,CAAC,QAAQ;gCACf,cAAc;oCACd,sCAAsC;oCACtC,QAAQ,CAAC,WAAW,CAAC;wBACzB,CAAC;6BAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;4BAC3B,QAAQ,CAAC,QAAQ;gCACf,cAAc;oCACd,sCAAsC;oCACtC,QAAQ,CAAC,MAAM,CAAC;wBACpB,CAAC;wBACD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;4BACxB,QAAQ,CAAC,cAAc;gCACrB,cAAc;oCACd,sCAAsC;oCACtC,QAAQ,CAAC,UAAU,CAAC;wBACxB,CAAC;oBACH,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;;;oBAEnB,IAAA,sBAAS,EAAC,GAAG,EAAE,KAAG,CAAC,CAAC;;;;;SAEvB;AApDD,CAoDC,CAAC;AAtDS,QAAA,SAAS,aAsDlB"}
|
|
@@ -6,98 +6,129 @@ var _ = require("lodash");
|
|
|
6
6
|
var objectql_1 = require("@steedos/objectql");
|
|
7
7
|
var db_1 = require("../../../db");
|
|
8
8
|
var core_1 = require("../../../core");
|
|
9
|
-
var validator = require(
|
|
10
|
-
var util = require(
|
|
11
|
-
var clone = require(
|
|
9
|
+
var validator = require("validator");
|
|
10
|
+
var util = require("@steedos/utils");
|
|
11
|
+
var clone = require("clone");
|
|
12
12
|
var config = (0, objectql_1.getSteedosConfig)();
|
|
13
|
-
var getSettings = function (accountsServer) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (!tenant._id) {
|
|
40
|
-
tenant._id = process.env.STEEDOS_TENANT_ID;
|
|
41
|
-
}
|
|
42
|
-
platform = ((_a = global.Steedos.settings.public) === null || _a === void 0 ? void 0 : _a.platform) || {};
|
|
43
|
-
if (!tenant._id) return [3, 2];
|
|
44
|
-
return [4, db_1.db.findOne("spaces", tenant._id, { fields: ["name", "avatar", "avatar_dark", "background", "enable_register", "account_logo", "favicon"] })];
|
|
45
|
-
case 1:
|
|
46
|
-
spaceDoc = _d.sent();
|
|
47
|
-
steedosService = (0, core_1.getSteedosService)();
|
|
48
|
-
if (steedosService && spaceDoc) {
|
|
49
|
-
_.assignIn(tenant, spaceDoc);
|
|
50
|
-
if (spaceDoc.account_logo) {
|
|
51
|
-
tenant.logo_url = steedosService + "api/files/avatars/" + spaceDoc.account_logo;
|
|
13
|
+
var getSettings = function (accountsServer) {
|
|
14
|
+
return function (req, res) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
15
|
+
var tenant, platform, spaceDoc, steedosService, already_mail_service, already_sms_service, broker, serverInitInfo, _tenant, settings;
|
|
16
|
+
var _a, _b, _c;
|
|
17
|
+
return tslib_1.__generator(this, function (_d) {
|
|
18
|
+
switch (_d.label) {
|
|
19
|
+
case 0:
|
|
20
|
+
tenant = {
|
|
21
|
+
name: "Steedos",
|
|
22
|
+
logo_url: undefined,
|
|
23
|
+
background_url: undefined,
|
|
24
|
+
enable_create_tenant: true,
|
|
25
|
+
enable_register: true,
|
|
26
|
+
enable_forget_password: true,
|
|
27
|
+
enable_password_login: true,
|
|
28
|
+
enable_mobile_code_login: false,
|
|
29
|
+
enable_email_code_login: false,
|
|
30
|
+
enable_bind_mobile: false,
|
|
31
|
+
enable_bind_email: false,
|
|
32
|
+
enable_saas: validator.toBoolean(process.env.STEEDOS_TENANT_ENABLE_SAAS || "false", true),
|
|
33
|
+
enable_open_geetest: validator.toBoolean(process.env.STEEDOS_CAPTCHA_GEETEST_ENABLED || "false"),
|
|
34
|
+
page_login: process.env.STEEDOS_TENANT_PAGE_LOGIN,
|
|
35
|
+
page_logout: process.env.STEEDOS_TENANT_PAGE_LOGOUT,
|
|
36
|
+
};
|
|
37
|
+
if (config.tenant) {
|
|
38
|
+
_.assignIn(tenant, config.tenant);
|
|
52
39
|
}
|
|
53
|
-
|
|
54
|
-
tenant.
|
|
40
|
+
if (!tenant._id) {
|
|
41
|
+
tenant._id = process.env.STEEDOS_TENANT_ID;
|
|
55
42
|
}
|
|
56
|
-
|
|
57
|
-
|
|
43
|
+
platform = ((_a = global.Steedos.settings.public) === null || _a === void 0 ? void 0 : _a.platform) || {};
|
|
44
|
+
if (!tenant._id) return [3, 2];
|
|
45
|
+
return [4, db_1.db.findOne("spaces", tenant._id, {
|
|
46
|
+
fields: [
|
|
47
|
+
"name",
|
|
48
|
+
"avatar",
|
|
49
|
+
"avatar_dark",
|
|
50
|
+
"background",
|
|
51
|
+
"enable_register",
|
|
52
|
+
"account_logo",
|
|
53
|
+
"favicon",
|
|
54
|
+
],
|
|
55
|
+
})];
|
|
56
|
+
case 1:
|
|
57
|
+
spaceDoc = _d.sent();
|
|
58
|
+
steedosService = (0, core_1.getSteedosService)();
|
|
59
|
+
if (steedosService && spaceDoc) {
|
|
60
|
+
_.assignIn(tenant, spaceDoc);
|
|
61
|
+
if (spaceDoc.account_logo) {
|
|
62
|
+
tenant.logo_url =
|
|
63
|
+
steedosService +
|
|
64
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
65
|
+
spaceDoc.account_logo;
|
|
66
|
+
}
|
|
67
|
+
else if (spaceDoc.avatar_dark) {
|
|
68
|
+
tenant.logo_url =
|
|
69
|
+
steedosService +
|
|
70
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
71
|
+
spaceDoc.avatar_dark;
|
|
72
|
+
}
|
|
73
|
+
else if (spaceDoc.avatar) {
|
|
74
|
+
tenant.logo_url =
|
|
75
|
+
steedosService +
|
|
76
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
77
|
+
spaceDoc.avatar;
|
|
78
|
+
}
|
|
79
|
+
if (spaceDoc.background) {
|
|
80
|
+
tenant.background_url =
|
|
81
|
+
steedosService +
|
|
82
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
83
|
+
spaceDoc.background;
|
|
84
|
+
}
|
|
85
|
+
if ((platform === null || platform === void 0 ? void 0 : platform.is_oem) && spaceDoc.favicon) {
|
|
86
|
+
tenant.favicon_url =
|
|
87
|
+
steedosService +
|
|
88
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
89
|
+
spaceDoc.favicon;
|
|
90
|
+
}
|
|
58
91
|
}
|
|
59
|
-
|
|
60
|
-
|
|
92
|
+
_d.label = 2;
|
|
93
|
+
case 2:
|
|
94
|
+
already_mail_service = (0, core_1.canSendEmail)();
|
|
95
|
+
already_sms_service = true || (0, core_1.canSendSMS)();
|
|
96
|
+
broker = (0, objectql_1.getSteedosSchema)().broker;
|
|
97
|
+
serverInitInfo = {};
|
|
98
|
+
_tenant = clone(tenant);
|
|
99
|
+
delete _tenant["tokenSecret"];
|
|
100
|
+
delete _tenant["accessTokenExpiresIn"];
|
|
101
|
+
delete _tenant["refreshTokenExpiresIn"];
|
|
102
|
+
if (tenant.enable_saas) {
|
|
103
|
+
delete _tenant._id;
|
|
61
104
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
already_mail_service: already_mail_service,
|
|
91
|
-
already_sms_service: already_sms_service,
|
|
92
|
-
serverInitInfo: serverInitInfo,
|
|
93
|
-
redirect_url_whitelist: process.env.REDIRECT_URL_WHITELIST,
|
|
94
|
-
platform: platform,
|
|
95
|
-
public: global.Steedos.settings.public || {},
|
|
96
|
-
settings: settings
|
|
97
|
-
});
|
|
98
|
-
return [2];
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}); }; };
|
|
105
|
+
settings = {};
|
|
106
|
+
if (!tenant._id) return [3, 4];
|
|
107
|
+
return [4, util.getSettings(tenant._id, true)];
|
|
108
|
+
case 3:
|
|
109
|
+
settings = _d.sent();
|
|
110
|
+
_d.label = 4;
|
|
111
|
+
case 4:
|
|
112
|
+
res.json({
|
|
113
|
+
tenant: _tenant,
|
|
114
|
+
password: config.password
|
|
115
|
+
? config.password
|
|
116
|
+
: ((_b = config.public) === null || _b === void 0 ? void 0 : _b.password)
|
|
117
|
+
? (_c = config.public) === null || _c === void 0 ? void 0 : _c.password
|
|
118
|
+
: {},
|
|
119
|
+
root_url: process.env.ROOT_URL,
|
|
120
|
+
already_mail_service: already_mail_service,
|
|
121
|
+
already_sms_service: already_sms_service,
|
|
122
|
+
serverInitInfo: serverInitInfo,
|
|
123
|
+
redirect_url_whitelist: process.env.REDIRECT_URL_WHITELIST,
|
|
124
|
+
platform: platform,
|
|
125
|
+
public: global.Steedos.settings.public || {},
|
|
126
|
+
settings: settings,
|
|
127
|
+
});
|
|
128
|
+
return [2];
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}); };
|
|
132
|
+
};
|
|
102
133
|
exports.getSettings = getSettings;
|
|
103
134
|
//# sourceMappingURL=settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/steedos/settings.ts"],"names":[],"mappings":";;;;AAQA,0BAA4B;AAE5B,
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/steedos/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,74 +7,89 @@ var db_1 = require("../db");
|
|
|
7
7
|
var objectql_1 = require("@steedos/objectql");
|
|
8
8
|
var core_1 = require("../core");
|
|
9
9
|
var config = (0, objectql_1.getSteedosConfig)();
|
|
10
|
-
var userLoader = function (accountsServer) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
(0, lodash_1.get)(req.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
10
|
+
var userLoader = function (accountsServer) {
|
|
11
|
+
return function (req, res, next) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
12
|
+
var authToken, user, spaces, userSpaces, steedosService, dbSpaces, _i, dbSpaces_1, space, logo_url, e_1;
|
|
13
|
+
return tslib_1.__generator(this, function (_a) {
|
|
14
|
+
switch (_a.label) {
|
|
15
|
+
case 0:
|
|
16
|
+
authToken = (0, lodash_1.get)(req.cookies, "X-Auth-Token") ||
|
|
17
|
+
(0, lodash_1.get)(req.headers, "Authorization") ||
|
|
18
|
+
(0, lodash_1.get)(req.headers, "authorization");
|
|
19
|
+
authToken =
|
|
20
|
+
authToken && authToken.replace("Bearer ", "").replace("BEARER ", "");
|
|
21
|
+
authToken =
|
|
22
|
+
authToken && authToken.split(",").length > 1
|
|
23
|
+
? authToken.split(",")[0]
|
|
24
|
+
: authToken;
|
|
25
|
+
if (!!(0, lodash_1.isEmpty)(authToken)) return [3, 7];
|
|
26
|
+
_a.label = 1;
|
|
27
|
+
case 1:
|
|
28
|
+
_a.trys.push([1, 6, , 7]);
|
|
29
|
+
req.authToken = authToken;
|
|
30
|
+
return [4, accountsServer.resumeSession(authToken)];
|
|
31
|
+
case 2:
|
|
32
|
+
user = _a.sent();
|
|
33
|
+
user.id = user._id;
|
|
34
|
+
user.userId = user._id;
|
|
35
|
+
if (user.emails && user.emails.length > 0) {
|
|
36
|
+
user.email = user.emails[0].address;
|
|
37
|
+
}
|
|
38
|
+
req.user = user;
|
|
39
|
+
req.userId = user.id;
|
|
40
|
+
spaces = [];
|
|
41
|
+
return [4, db_1.db.find("space_users", {
|
|
42
|
+
filters: [
|
|
43
|
+
["user", "=", user.id],
|
|
44
|
+
["user_accepted", "=", true],
|
|
45
|
+
],
|
|
46
|
+
fields: ["space"],
|
|
47
|
+
})];
|
|
48
|
+
case 3:
|
|
49
|
+
userSpaces = _a.sent();
|
|
50
|
+
steedosService = (0, core_1.getSteedosService)();
|
|
51
|
+
if (!(userSpaces && userSpaces.length > 0)) return [3, 5];
|
|
52
|
+
return [4, db_1.db.find("spaces", {
|
|
53
|
+
filters: [["_id", "in", (0, lodash_1.map)(userSpaces, "space")]],
|
|
54
|
+
fields: ["_id", "name", "avatar", "avatar_dark"],
|
|
55
|
+
})];
|
|
56
|
+
case 4:
|
|
57
|
+
dbSpaces = _a.sent();
|
|
58
|
+
for (_i = 0, dbSpaces_1 = dbSpaces; _i < dbSpaces_1.length; _i++) {
|
|
59
|
+
space = dbSpaces_1[_i];
|
|
60
|
+
logo_url = "";
|
|
61
|
+
if (steedosService) {
|
|
62
|
+
if (space.avatar_dark) {
|
|
63
|
+
logo_url =
|
|
64
|
+
steedosService +
|
|
65
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
66
|
+
space.avatar_dark;
|
|
67
|
+
}
|
|
68
|
+
else if (space.avatar) {
|
|
69
|
+
logo_url =
|
|
70
|
+
steedosService +
|
|
71
|
+
"api/v6/files/cfs.avatars.filerecord/" +
|
|
72
|
+
space.avatar;
|
|
73
|
+
}
|
|
59
74
|
}
|
|
75
|
+
spaces.push({
|
|
76
|
+
_id: space._id,
|
|
77
|
+
name: space.name,
|
|
78
|
+
logo_url: logo_url,
|
|
79
|
+
});
|
|
60
80
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return [3, 7];
|
|
75
|
-
case 7: return [2, next()];
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}); }; };
|
|
81
|
+
_a.label = 5;
|
|
82
|
+
case 5:
|
|
83
|
+
req.user.spaces = spaces;
|
|
84
|
+
return [3, 7];
|
|
85
|
+
case 6:
|
|
86
|
+
e_1 = _a.sent();
|
|
87
|
+
console.log(e_1);
|
|
88
|
+
return [3, 7];
|
|
89
|
+
case 7: return [2, next()];
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}); };
|
|
93
|
+
};
|
|
79
94
|
exports.userLoader = userLoader;
|
|
80
95
|
//# sourceMappingURL=user-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-loader.js","sourceRoot":"","sources":["../../src/rest-express/user-loader.ts"],"names":[],"mappings":";;;;AACA,iCAA2C;AAE3C,4BAA2B;AAC3B,8CAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"user-loader.js","sourceRoot":"","sources":["../../src/rest-express/user-loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/accounts",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "3.0.0-beta.
|
|
4
|
+
"version": "3.0.0-beta.80",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"files": [
|
|
7
7
|
"/package.json",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"@accounts/two-factor": "^0.20.1",
|
|
30
30
|
"@accounts/types": "0.20.1",
|
|
31
31
|
"@babel/runtime": "^7.12.18",
|
|
32
|
-
"@steedos/auth": "3.0.0-beta.
|
|
33
|
-
"@steedos/objectql": "3.0.0-beta.
|
|
34
|
-
"@steedos/utils": "3.0.0-beta.
|
|
32
|
+
"@steedos/auth": "3.0.0-beta.80",
|
|
33
|
+
"@steedos/objectql": "3.0.0-beta.80",
|
|
34
|
+
"@steedos/utils": "3.0.0-beta.80",
|
|
35
35
|
"app-root-path": "^2.2.1",
|
|
36
36
|
"bcryptjs": "^2.4.3",
|
|
37
37
|
"body-parser": "1.19.0",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"publishConfig": {
|
|
61
61
|
"access": "public"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "32e451dcb9225c8968200081644d507bb67ebe17"
|
|
64
64
|
}
|