@social-mail/social-mail-web-server 1.8.404 → 1.8.405
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/dist/WebServer.d.ts +1 -0
- package/dist/WebServer.d.ts.map +1 -1
- package/dist/WebServer.js +3 -2
- package/dist/WebServer.js.map +1 -1
- package/dist/common/BaseDiskCache.d.ts +1 -0
- package/dist/common/BaseDiskCache.d.ts.map +1 -1
- package/dist/common/BaseDiskCache.js +4 -0
- package/dist/common/BaseDiskCache.js.map +1 -1
- package/dist/server/model/events/AppFileAccessEvents.d.ts +1 -1
- package/dist/server/model/events/AppFileAccessEvents.d.ts.map +1 -1
- package/dist/server/model/events/AppFileAccessEvents.js +6 -6
- package/dist/server/model/events/AppFileAccessEvents.js.map +1 -1
- package/dist/server/model/events/LoginSessionEvents.d.ts.map +1 -1
- package/dist/server/model/events/LoginSessionEvents.js +5 -11
- package/dist/server/model/events/LoginSessionEvents.js.map +1 -1
- package/dist/server/model/events/VerificationTokenEvents.d.ts.map +1 -1
- package/dist/server/model/events/VerificationTokenEvents.js +1 -3
- package/dist/server/model/events/VerificationTokenEvents.js.map +1 -1
- package/dist/server/services/AppKeyProvider.d.ts +2 -2
- package/dist/server/services/AppKeyProvider.d.ts.map +1 -1
- package/dist/server/services/AppKeyProvider.js +9 -7
- package/dist/server/services/AppKeyProvider.js.map +1 -1
- package/dist/server/services/CryptoService.d.ts +4 -2
- package/dist/server/services/CryptoService.d.ts.map +1 -1
- package/dist/server/services/CryptoService.js.map +1 -1
- package/dist/server/services/UserAuthorizationService.d.ts +25 -0
- package/dist/server/services/UserAuthorizationService.d.ts.map +1 -0
- package/dist/server/services/{UserInfoProvider.js → UserAuthorizationService.js} +79 -14
- package/dist/server/services/UserAuthorizationService.js.map +1 -0
- package/dist/server/services/encryption/TokenService.d.ts +6 -0
- package/dist/server/services/encryption/TokenService.d.ts.map +1 -0
- package/dist/server/services/encryption/TokenService.js +26 -0
- package/dist/server/services/encryption/TokenService.js.map +1 -0
- package/dist/server/services/message-events/MessagingService.d.ts +3 -0
- package/dist/server/services/message-events/MessagingService.d.ts.map +1 -1
- package/dist/server/services/message-events/MessagingService.js +1 -0
- package/dist/server/services/message-events/MessagingService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wwwroot/routes/callback/smtp/data/index.d.ts +1 -1
- package/dist/wwwroot/routes/callback/smtp/data/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/callback/smtp/data/index.js +5 -5
- package/dist/wwwroot/routes/callback/smtp/data/index.js.map +1 -1
- package/dist/wwwroot/routes/callback/smtp/rcpt/index.d.ts +1 -1
- package/dist/wwwroot/routes/callback/smtp/rcpt/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/callback/smtp/rcpt/index.js +5 -5
- package/dist/wwwroot/routes/callback/smtp/rcpt/index.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/site/signup/post.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/site/signup/post.js +1 -3
- package/dist/wwwroot/routes/social-mail/site/signup/post.js.map +1 -1
- package/dist/wwwroot/routes/social-mail/user/signup/post.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/user/signup/post.js +1 -3
- package/dist/wwwroot/routes/social-mail/user/signup/post.js.map +1 -1
- package/package.json +2 -2
- package/src/WebServer.ts +4 -2
- package/src/common/BaseDiskCache.ts +5 -0
- package/src/server/model/events/AppFileAccessEvents.ts +4 -4
- package/src/server/model/events/LoginSessionEvents.ts +5 -11
- package/src/server/model/events/VerificationTokenEvents.ts +1 -3
- package/src/server/services/AppKeyProvider.ts +9 -7
- package/src/server/services/CryptoService.ts +1 -2
- package/src/server/services/UserAuthorizationService.ts +111 -0
- package/src/server/services/encryption/TokenService.ts +17 -0
- package/src/server/services/message-events/MessagingService.ts +3 -0
- package/src/wwwroot/routes/callback/smtp/data/index.ts +4 -3
- package/src/wwwroot/routes/callback/smtp/rcpt/index.ts +3 -4
- package/src/wwwroot/routes/social-mail/site/signup/post.tsx +1 -3
- package/src/wwwroot/routes/social-mail/user/signup/post.tsx +1 -3
- package/dist/server/services/UserInfoProvider.d.ts +0 -17
- package/dist/server/services/UserInfoProvider.d.ts.map +0 -1
- package/dist/server/services/UserInfoProvider.js.map +0 -1
- package/src/server/services/UserInfoProvider.ts +0 -46
|
@@ -4,9 +4,9 @@ import { SmtpStatusCodes } from "../../../../../server/smtp/client/SmtpStatusCod
|
|
|
4
4
|
import { createPublicKey } from "node:crypto";
|
|
5
5
|
import Content from "@entity-access/server-pages/dist/Content.js";
|
|
6
6
|
import Page from "@entity-access/server-pages/dist/Page.js";
|
|
7
|
-
import TokenService from "@entity-access/server-pages/dist/services/TokenService.js";
|
|
8
7
|
import { Prepare } from "@entity-access/server-pages/dist/decorators/Prepare.js";
|
|
9
8
|
import { globalEnv } from "../../../../../common/globalEnv.js";
|
|
9
|
+
import TokenService from "../../../../../server/services/encryption/TokenService.js";
|
|
10
10
|
|
|
11
11
|
let publicKey:any;
|
|
12
12
|
|
|
@@ -15,12 +15,11 @@ export default class extends Page {
|
|
|
15
15
|
|
|
16
16
|
maxUploadSize = 50*1024*1024;
|
|
17
17
|
|
|
18
|
-
@Inject
|
|
19
|
-
private tokenService: TokenService;
|
|
20
|
-
|
|
21
18
|
@Inject
|
|
22
19
|
private mailReceiverService: MailReceiverService;
|
|
23
20
|
|
|
21
|
+
@Inject
|
|
22
|
+
private tokenService: TokenService;
|
|
24
23
|
|
|
25
24
|
async run() {
|
|
26
25
|
|
|
@@ -237,10 +237,8 @@ export default class ExternalSignup extends Page {
|
|
|
237
237
|
|
|
238
238
|
await this.sessionUser.setAuthCookie({
|
|
239
239
|
userID: loginSession.userID,
|
|
240
|
-
|
|
240
|
+
sessionID: loginSession.sessionID,
|
|
241
241
|
expiry: expiry.asJSDate,
|
|
242
|
-
version: "1.1",
|
|
243
|
-
active: true
|
|
244
242
|
});
|
|
245
243
|
|
|
246
244
|
return this.json(model);
|
|
@@ -217,10 +217,8 @@ export default class extends Page {
|
|
|
217
217
|
});
|
|
218
218
|
await this.sessionUser.setAuthCookie({
|
|
219
219
|
userID: session.userID,
|
|
220
|
-
|
|
220
|
+
sessionID: session.sessionID,
|
|
221
221
|
expiry: session.expiry.asJSDate,
|
|
222
|
-
version: "1.1",
|
|
223
|
-
active: true
|
|
224
222
|
});
|
|
225
223
|
|
|
226
224
|
return this.json(model);
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { IAuthCookie } from "@entity-access/server-pages/dist/services/TokenService.js";
|
|
2
|
-
import USP from "@entity-access/server-pages/dist/services/UserSessionProvider.js";
|
|
3
|
-
export default class UserSessionProvider extends USP {
|
|
4
|
-
getUserSession({ userID, id: sessionID, expiry }: IAuthCookie): Promise<{
|
|
5
|
-
userID: number;
|
|
6
|
-
sessionID: number;
|
|
7
|
-
userName: string;
|
|
8
|
-
expiry: Date;
|
|
9
|
-
roles: string[];
|
|
10
|
-
fileAccessList: {
|
|
11
|
-
type: "create" | "read" | "write" | "delegate";
|
|
12
|
-
path: string;
|
|
13
|
-
}[];
|
|
14
|
-
invalid: boolean;
|
|
15
|
-
}>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=UserInfoProvider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserInfoProvider.d.ts","sourceRoot":"","sources":["../../../src/server/services/UserInfoProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2DAA2D,CAAC;AACxF,OAAO,GAAG,MAAM,kEAAkE,CAAC;AAKnF,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,GAAG;IAE1C,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,WAAW;;;;;;;;;;;;CAoCtE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserInfoProvider.js","sourceRoot":"","sources":["../../../src/server/services/UserInfoProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAEhG,OAAO,GAAG,MAAM,kEAAkE,CAAC;AACnF,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAC9D,OAAO,GAAG,MAAM,8CAA8C,CAAC;AAGhD,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,GAAG;IAEhD,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAe;;;YAE/D,mFAAmF;YAEnF,MAAM,KAAK,kCAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAA,CAAC;YAChD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAE5C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;mBAChG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC;iBACrD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACZ,CAAC,CAAC,IAAI,CAAC,KAAK;gBACZ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5C,gFAAgF;aACnF,CAAC;iBACD,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,oBAAoB;YACpB,MAAM,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC;iBAChF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aACxC,CAAC,CAAC,CAAC;YAER,OAAO;gBACH,MAAM;gBACN,SAAS;gBACT,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;gBAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;gBAC/B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACvD,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/F,OAAO,EAAE,KAAK;aACjB,CAAC;;;;;;;;;KACL;CAEJ,CAAA;AAtCoB,mBAAmB;IADvC,iBAAiB;GACG,mBAAmB,CAsCvC;eAtCoB,mBAAmB"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { RegisterSingleton, ServiceProvider } from "@entity-access/entity-access/dist/di/di.js";
|
|
2
|
-
import { IAuthCookie } from "@entity-access/server-pages/dist/services/TokenService.js";
|
|
3
|
-
import USP from "@entity-access/server-pages/dist/services/UserSessionProvider.js";
|
|
4
|
-
import SocialMailContext from "../model/SocialMailContext.js";
|
|
5
|
-
import Sql from "@entity-access/entity-access/dist/sql/Sql.js";
|
|
6
|
-
|
|
7
|
-
@RegisterSingleton
|
|
8
|
-
export default class UserSessionProvider extends USP {
|
|
9
|
-
|
|
10
|
-
async getUserSession({ userID, id: sessionID, expiry }: IAuthCookie) {
|
|
11
|
-
|
|
12
|
-
/** The new scope will not interfere with existing DbContext for current request */
|
|
13
|
-
|
|
14
|
-
using scope = ServiceProvider.createScope(this);
|
|
15
|
-
const db = scope.resolve(SocialMailContext);
|
|
16
|
-
|
|
17
|
-
const session = await db.loginSessions.where({ userID, sessionID }, (p) => (x) => x.userID === p.userID
|
|
18
|
-
&& x.sessionID === p.sessionID && x.invalid === false)
|
|
19
|
-
.include((x) => [
|
|
20
|
-
x.user.roles,
|
|
21
|
-
x.user.fileAccessList.forEach((f) => f.file),
|
|
22
|
-
// x.user.groups.forEach((g) => g.group.fileAccessList.forEach((gf) => gf.file))
|
|
23
|
-
])
|
|
24
|
-
.first();
|
|
25
|
-
if (!session?.user) {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// extend session...
|
|
30
|
-
await db.loginSessions.where({ sessionID }, (p) => (x)=> x.sessionID === p.sessionID)
|
|
31
|
-
.update(void 0, (p) => (x) => ({
|
|
32
|
-
expiry: Sql.date.addDays(x.expiry, 7)
|
|
33
|
-
}));
|
|
34
|
-
|
|
35
|
-
return {
|
|
36
|
-
userID,
|
|
37
|
-
sessionID,
|
|
38
|
-
userName: session.user.userName,
|
|
39
|
-
expiry: session.expiry.asJSDate,
|
|
40
|
-
roles: session.user.roles?.map((x) => x.roleName) ?? [],
|
|
41
|
-
fileAccessList: session.user.fileAccessList?.map(({ type, file: { path }}) => ({ type, path })),
|
|
42
|
-
invalid: false
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
}
|