@social-mail/social-mail-web-server 1.7.455 → 1.7.456
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/server/services/files/AtomicFolderService.d.ts +1 -0
- package/dist/server/services/files/AtomicFolderService.d.ts.map +1 -1
- package/dist/server/services/files/AtomicFolderService.js +13 -0
- package/dist/server/services/files/AtomicFolderService.js.map +1 -1
- package/dist/server/services/files/FileAccessService.d.ts +9 -12
- package/dist/server/services/files/FileAccessService.d.ts.map +1 -1
- package/dist/server/services/files/FileAccessService.js +23 -28
- package/dist/server/services/files/FileAccessService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wwwroot/routes/api/upload/index.d.ts +2 -1
- package/dist/wwwroot/routes/api/upload/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/api/upload/index.js +12 -14
- package/dist/wwwroot/routes/api/upload/index.js.map +1 -1
- package/package.json +1 -1
- package/src/server/services/files/AtomicFolderService.ts +15 -0
- package/src/server/services/files/FileAccessService.ts +25 -29
- package/src/wwwroot/routes/api/upload/index.tsx +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicFolderService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/files/AtomicFolderService.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"AtomicFolderService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/files/AtomicFolderService.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,MAAM,iCAAiC,CAAC;AAMtD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAGpC,OAAO,CAAC,EAAE,CAAoB;IAG9B,OAAO,CAAC,GAAG,CAAoB;IAEzB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CA0C9C"}
|
|
@@ -11,10 +11,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
import Inject, { RegisterTransient } from "@entity-access/entity-access/dist/di/di.js";
|
|
12
12
|
import SocialMailContext from "../../model/SocialMailContext.js";
|
|
13
13
|
import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
|
|
14
|
+
import FileAccessService from "./FileAccessService.js";
|
|
14
15
|
let AtomicFolderService = class AtomicFolderService {
|
|
15
16
|
async create(parentID, name) {
|
|
16
17
|
const dateCreated = DateTime.now;
|
|
17
18
|
const dateUpdated = dateCreated;
|
|
19
|
+
// check access.
|
|
20
|
+
// check write access...
|
|
21
|
+
const existing = await this.fas.getFile({ parentID, name }, "read");
|
|
22
|
+
if (existing) {
|
|
23
|
+
return existing;
|
|
24
|
+
}
|
|
25
|
+
// since it doesn't exist, we should verify if folder is writable
|
|
26
|
+
await this.fas.getFile({ fileID: parentID }, "modify");
|
|
18
27
|
const folder = await this.db.appFiles.statements.selectOrInsert({
|
|
19
28
|
parentID,
|
|
20
29
|
name,
|
|
@@ -44,6 +53,10 @@ __decorate([
|
|
|
44
53
|
Inject,
|
|
45
54
|
__metadata("design:type", SocialMailContext)
|
|
46
55
|
], AtomicFolderService.prototype, "db", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
Inject,
|
|
58
|
+
__metadata("design:type", FileAccessService)
|
|
59
|
+
], AtomicFolderService.prototype, "fas", void 0);
|
|
47
60
|
AtomicFolderService = __decorate([
|
|
48
61
|
RegisterTransient
|
|
49
62
|
], AtomicFolderService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomicFolderService.js","sourceRoot":"","sources":["../../../../src/server/services/files/AtomicFolderService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAA+B;AAC/B,OAAO,MAAM,EAAE,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAGjE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"AtomicFolderService.js","sourceRoot":"","sources":["../../../../src/server/services/files/AtomicFolderService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAA+B;AAC/B,OAAO,MAAM,EAAE,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAGjE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAE3E,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAGxC,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAQpC,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,IAAY;QACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;QACjC,MAAM,WAAW,GAAG,WAAW,CAAC;QAEhC,gBAAgB;QAChB,wBAAwB;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,iEAAiE;QACjE,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;YACxD,QAAQ;YACR,IAAI;YACJ,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,QAAQ;YACrB,WAAW;YACX,WAAW;SAClB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAE1B,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,EAAG,KAAK,EAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAC,CAAC,CAAC;QACnG,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAC5G,MAAM,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC;YACnD,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBACrC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CAEJ,CAAA;AA/CW;IADP,MAAM;8BACK,iBAAiB;+CAAC;AAGtB;IADP,MAAM;8BACM,iBAAiB;gDAAC;AANd,mBAAmB;IADvC,iBAAiB;GACG,mBAAmB,CAkDvC;eAlDoB,mBAAmB"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
import { ExternalUser } from "../../model/entities/AppFile.js";
|
|
2
|
-
import
|
|
3
|
-
export default class FileAccessService
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
type: "create" | "read" | "write" | "delegate";
|
|
11
|
-
path: string;
|
|
12
|
-
}[]>;
|
|
1
|
+
import AppFile, { ExternalUser } from "../../model/entities/AppFile.js";
|
|
2
|
+
import SocialMailContext from "../../model/SocialMailContext.js";
|
|
3
|
+
export default class FileAccessService {
|
|
4
|
+
db: SocialMailContext;
|
|
5
|
+
getFile({ fileID, parentID, name }: {
|
|
6
|
+
fileID?: number;
|
|
7
|
+
parentID?: any;
|
|
8
|
+
name?: any;
|
|
9
|
+
}, mode: "read" | "modify"): Promise<AppFile>;
|
|
13
10
|
createExternalUser(externalUser: ExternalUser): Promise<number>;
|
|
14
11
|
}
|
|
15
12
|
//# sourceMappingURL=FileAccessService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileAccessService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/files/FileAccessService.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"FileAccessService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/files/FileAccessService.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,EAAE,EAAiB,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEvF,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAQjE,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAGlC,EAAE,EAAE,iBAAiB,CAAC;IAET,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAC;QAAC,IAAI,CAAC,MAAA;KAAG,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ;IAuBpG,kBAAkB,CAAC,YAAY,EAAE,YAAY;CA2C7D"}
|
|
@@ -7,37 +7,34 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import Inject, { RegisterScoped } from "@entity-access/entity-access/dist/di/di.js";
|
|
11
11
|
import { globalServices } from "../../../globalServices.js";
|
|
12
12
|
import SocialMailContext from "../../model/SocialMailContext.js";
|
|
13
|
-
import { cacheFor } from "../../../common/cacheFor.js";
|
|
14
13
|
import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
|
|
15
14
|
import CryptoService from "../CryptoService.js";
|
|
16
15
|
import { randomUUID } from "crypto";
|
|
17
16
|
import EntityAccessError from "@entity-access/entity-access/dist/common/EntityAccessError.js";
|
|
18
17
|
let FileAccessService = class FileAccessService {
|
|
19
|
-
async
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
.include((x) => x.file)
|
|
32
|
-
.toArray();
|
|
33
|
-
return list.map((x) => ({
|
|
34
|
-
type: x.type,
|
|
35
|
-
path: x.file.path
|
|
36
|
-
}));
|
|
18
|
+
async getFile({ fileID, parentID, name }, mode) {
|
|
19
|
+
if (fileID) {
|
|
20
|
+
const appFile = await this.db.appFiles.filtered(mode)
|
|
21
|
+
.where({ fileID }, (p) => (x) => x.appFileID === p.fileID)
|
|
22
|
+
.first();
|
|
23
|
+
if (!appFile) {
|
|
24
|
+
throw new EntityAccessError(`Cannot access file/folder ${fileID} for ${mode} access`);
|
|
25
|
+
}
|
|
26
|
+
return appFile;
|
|
27
|
+
}
|
|
28
|
+
if (!parentID) {
|
|
29
|
+
throw new EntityAccessError(`Invalid access`);
|
|
37
30
|
}
|
|
38
|
-
|
|
39
|
-
|
|
31
|
+
const childFile = await this.db.appFiles.filtered(mode)
|
|
32
|
+
.where({ parentID, name }, (p) => (x) => x.parentID === p.parentID && x.name === p.name)
|
|
33
|
+
.first();
|
|
34
|
+
if (!childFile) {
|
|
35
|
+
throw new EntityAccessError(`Cannot access file/folder ${name} in ${parentID} for ${mode} access`);
|
|
40
36
|
}
|
|
37
|
+
return childFile;
|
|
41
38
|
}
|
|
42
39
|
async createExternalUser(externalUser) {
|
|
43
40
|
let tries = 3;
|
|
@@ -84,13 +81,11 @@ let FileAccessService = class FileAccessService {
|
|
|
84
81
|
}
|
|
85
82
|
};
|
|
86
83
|
__decorate([
|
|
87
|
-
|
|
88
|
-
__metadata("design:type",
|
|
89
|
-
|
|
90
|
-
__metadata("design:returntype", Promise)
|
|
91
|
-
], FileAccessService.prototype, "getList", null);
|
|
84
|
+
Inject,
|
|
85
|
+
__metadata("design:type", SocialMailContext)
|
|
86
|
+
], FileAccessService.prototype, "db", void 0);
|
|
92
87
|
FileAccessService = __decorate([
|
|
93
|
-
|
|
88
|
+
RegisterScoped
|
|
94
89
|
], FileAccessService);
|
|
95
90
|
export default FileAccessService;
|
|
96
91
|
//# sourceMappingURL=FileAccessService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileAccessService.js","sourceRoot":"","sources":["../../../../src/server/services/files/FileAccessService.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"FileAccessService.js","sourceRoot":"","sources":["../../../../src/server/services/files/FileAccessService.ts"],"names":[],"mappings":"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"}
|