@webiny/api-file-manager 0.0.0-unstable.c2780f51fe → 0.0.0-unstable.c7dec08bb0
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/FileManagerContextSetup.d.ts +13 -0
- package/FileManagerContextSetup.js +113 -0
- package/FileManagerContextSetup.js.map +1 -0
- package/cmsFileStorage/CmsFilesStorage.d.ts +27 -0
- package/cmsFileStorage/CmsFilesStorage.js +173 -0
- package/cmsFileStorage/CmsFilesStorage.js.map +1 -0
- package/cmsFileStorage/ListFilesWhereProcessor.d.ts +7 -0
- package/cmsFileStorage/ListFilesWhereProcessor.js +35 -0
- package/cmsFileStorage/ListFilesWhereProcessor.js.map +1 -0
- package/cmsFileStorage/ListTagsWhereProcessor.d.ts +7 -0
- package/cmsFileStorage/ListTagsWhereProcessor.js +35 -0
- package/cmsFileStorage/ListTagsWhereProcessor.js.map +1 -0
- package/cmsFileStorage/createFileManagerPlugins.d.ts +5 -0
- package/cmsFileStorage/createFileManagerPlugins.js +34 -0
- package/cmsFileStorage/createFileManagerPlugins.js.map +1 -0
- package/cmsFileStorage/createModelField.d.ts +5 -0
- package/cmsFileStorage/createModelField.js +37 -0
- package/cmsFileStorage/createModelField.js.map +1 -0
- package/cmsFileStorage/file.model.d.ts +4 -0
- package/cmsFileStorage/file.model.js +118 -0
- package/cmsFileStorage/file.model.js.map +1 -0
- package/cmsFileStorage/isInstallationPending.d.ts +4 -0
- package/cmsFileStorage/isInstallationPending.js +21 -0
- package/cmsFileStorage/isInstallationPending.js.map +1 -0
- package/contants.d.ts +1 -0
- package/contants.js +8 -0
- package/contants.js.map +1 -0
- package/createFileManager/files.crud.js +51 -76
- package/createFileManager/files.crud.js.map +1 -1
- package/createFileManager/index.d.ts +4 -2
- package/createFileManager/index.js.map +1 -1
- package/createFileManager/permissions/FilesPermissions.d.ts +4 -0
- package/createFileManager/permissions/FilesPermissions.js +9 -0
- package/createFileManager/permissions/FilesPermissions.js.map +1 -0
- package/createFileManager/settings.crud.js +1 -1
- package/createFileManager/settings.crud.js.map +1 -1
- package/graphql/baseSchema.d.ts +3 -0
- package/graphql/baseSchema.js +117 -0
- package/graphql/baseSchema.js.map +1 -0
- package/graphql/createFilesTypeDefs.d.ts +7 -0
- package/graphql/createFilesTypeDefs.js +162 -0
- package/graphql/createFilesTypeDefs.js.map +1 -0
- package/graphql/filesSchema.d.ts +4 -0
- package/graphql/filesSchema.js +83 -0
- package/graphql/filesSchema.js.map +1 -0
- package/graphql/index.d.ts +2 -2
- package/graphql/index.js +23 -267
- package/graphql/index.js.map +1 -1
- package/graphql/utils.d.ts +11 -0
- package/graphql/utils.js +22 -0
- package/graphql/utils.js.map +1 -0
- package/handlers/download/byAlias.js +9 -9
- package/handlers/download/byAlias.js.map +1 -1
- package/handlers/download/byExactKey.js +9 -9
- package/handlers/download/byExactKey.js.map +1 -1
- package/handlers/download/getS3Object.d.ts +2 -0
- package/handlers/download/getS3Object.js +39 -24
- package/handlers/download/getS3Object.js.map +1 -1
- package/handlers/transform/index.js +5 -2
- package/handlers/transform/index.js.map +1 -1
- package/handlers/transform/transformImage.d.ts +5 -2
- package/handlers/transform/transformImage.js +7 -4
- package/handlers/transform/transformImage.js.map +1 -1
- package/handlers/transform/utils.js +2 -2
- package/handlers/transform/utils.js.map +1 -1
- package/index.d.ts +3 -2
- package/index.js +20 -36
- package/index.js.map +1 -1
- package/modelModifier/CmsModelModifier.d.ts +24 -0
- package/modelModifier/CmsModelModifier.js +59 -0
- package/modelModifier/CmsModelModifier.js.map +1 -0
- package/package.json +28 -27
- package/types/file.d.ts +5 -1
- package/types/file.js.map +1 -1
- package/types/file.lifecycle.d.ts +4 -0
- package/types/file.lifecycle.js.map +1 -1
- package/types.d.ts +28 -34
- package/types.js.map +1 -1
- package/createFileManager/checkBasePermissions.d.ts +0 -5
- package/createFileManager/checkBasePermissions.js +0 -24
- package/createFileManager/checkBasePermissions.js.map +0 -1
- package/plugins/crud/files/validation.d.ts +0 -3
- package/plugins/crud/files/validation.js +0 -41
- package/plugins/crud/files/validation.js.map +0 -1
- package/plugins/crud/files.crud.d.ts +0 -4
- package/plugins/crud/files.crud.js +0 -431
- package/plugins/crud/files.crud.js.map +0 -1
- package/plugins/crud/settings.crud.d.ts +0 -5
- package/plugins/crud/settings.crud.js +0 -116
- package/plugins/crud/settings.crud.js.map +0 -1
- package/plugins/crud/system.crud.d.ts +0 -4
- package/plugins/crud/system.crud.js +0 -153
- package/plugins/crud/system.crud.js.map +0 -1
- package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
- package/plugins/crud/utils/checkBasePermissions.js +0 -33
- package/plugins/crud/utils/checkBasePermissions.js.map +0 -1
- package/plugins/crud/utils/createFileModel.d.ts +0 -5
- package/plugins/crud/utils/createFileModel.js +0 -77
- package/plugins/crud/utils/createFileModel.js.map +0 -1
- package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
- package/plugins/crud/utils/lifecycleEvents.js +0 -38
- package/plugins/crud/utils/lifecycleEvents.js.map +0 -1
- package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -21
- package/plugins/definitions/FilePhysicalStoragePlugin.js +0 -42
- package/plugins/definitions/FilePhysicalStoragePlugin.js.map +0 -1
- package/plugins/definitions/FilePlugin.d.ts +0 -136
- package/plugins/definitions/FilePlugin.js +0 -70
- package/plugins/definitions/FilePlugin.js.map +0 -1
- package/plugins/definitions/FileStorageTransformPlugin.d.ts +0 -34
- package/plugins/definitions/FileStorageTransformPlugin.js +0 -51
- package/plugins/definitions/FileStorageTransformPlugin.js.map +0 -1
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +0 -1
- package/plugins/definitions/InstallationPlugin.d.ts +0 -19
- package/plugins/definitions/InstallationPlugin.js +0 -42
- package/plugins/definitions/InstallationPlugin.js.map +0 -1
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +0 -1
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +0 -1
- package/plugins/graphql.d.ts +0 -4
- package/plugins/graphql.js +0 -290
- package/plugins/graphql.js.map +0 -1
- package/plugins/storage/FileStorage.d.ts +0 -30
- package/plugins/storage/FileStorage.js +0 -103
- package/plugins/storage/FileStorage.js.map +0 -1
- package/plugins/storage/index.d.ts +0 -4
- package/plugins/storage/index.js +0 -26
- package/plugins/storage/index.js.map +0 -1
- package/utils.d.ts +0 -4
- package/utils.js +0 -16
- package/utils.js.map +0 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createFileModelDefinition = exports.FILE_MODEL_ID = void 0;
|
|
7
|
+
var _createModelField = require("./createModelField");
|
|
8
|
+
const required = () => {
|
|
9
|
+
return {
|
|
10
|
+
name: "required",
|
|
11
|
+
message: "Value is required."
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
const nameField = () => {
|
|
15
|
+
return (0, _createModelField.createModelField)({
|
|
16
|
+
label: "Name",
|
|
17
|
+
type: "text",
|
|
18
|
+
validation: [required()]
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
const keyField = () => {
|
|
22
|
+
return (0, _createModelField.createModelField)({
|
|
23
|
+
label: "Key",
|
|
24
|
+
type: "text",
|
|
25
|
+
validation: [required()]
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const typeField = () => {
|
|
29
|
+
return (0, _createModelField.createModelField)({
|
|
30
|
+
label: "Type",
|
|
31
|
+
type: "text",
|
|
32
|
+
validation: [required()]
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
const sizeField = () => {
|
|
36
|
+
return (0, _createModelField.createModelField)({
|
|
37
|
+
label: "Size",
|
|
38
|
+
type: "number",
|
|
39
|
+
validation: [required()]
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
const metaWidthField = () => {
|
|
43
|
+
return (0, _createModelField.createModelField)({
|
|
44
|
+
label: "Width",
|
|
45
|
+
type: "number"
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
const metaHeightField = () => {
|
|
49
|
+
return (0, _createModelField.createModelField)({
|
|
50
|
+
label: "Height",
|
|
51
|
+
type: "number"
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
const metaPrivateField = () => {
|
|
55
|
+
return (0, _createModelField.createModelField)({
|
|
56
|
+
label: "Private",
|
|
57
|
+
type: "boolean"
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
const metaField = () => {
|
|
61
|
+
return (0, _createModelField.createModelField)({
|
|
62
|
+
label: "Meta",
|
|
63
|
+
type: "object",
|
|
64
|
+
settings: {
|
|
65
|
+
fields: [metaPrivateField(), metaWidthField(), metaHeightField()]
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
const tagsField = () => {
|
|
70
|
+
return (0, _createModelField.createModelField)({
|
|
71
|
+
label: "Tags",
|
|
72
|
+
type: "text",
|
|
73
|
+
multipleValues: true,
|
|
74
|
+
validation: [required()]
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
const aliasesField = () => {
|
|
78
|
+
return (0, _createModelField.createModelField)({
|
|
79
|
+
label: "Aliases",
|
|
80
|
+
type: "text",
|
|
81
|
+
multipleValues: true,
|
|
82
|
+
validation: [required()]
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
const FILE_MODEL_ID = "fmFile";
|
|
86
|
+
exports.FILE_MODEL_ID = FILE_MODEL_ID;
|
|
87
|
+
const createFileModelDefinition = group => {
|
|
88
|
+
return {
|
|
89
|
+
name: "FmFile",
|
|
90
|
+
modelId: FILE_MODEL_ID,
|
|
91
|
+
titleFieldId: "name",
|
|
92
|
+
layout: [["location"], ["name"], ["key"], ["type"], ["size"], ["meta"], ["tags"], ["aliases"]],
|
|
93
|
+
fields: [{
|
|
94
|
+
id: "location",
|
|
95
|
+
type: "object",
|
|
96
|
+
storageId: "object@location",
|
|
97
|
+
label: "Location",
|
|
98
|
+
fieldId: "location",
|
|
99
|
+
settings: {
|
|
100
|
+
fields: [{
|
|
101
|
+
id: "folderId",
|
|
102
|
+
type: "text",
|
|
103
|
+
fieldId: "folderId",
|
|
104
|
+
label: "Folder ID",
|
|
105
|
+
storageId: "text@folderId",
|
|
106
|
+
settings: {
|
|
107
|
+
path: "location.folderId"
|
|
108
|
+
}
|
|
109
|
+
}]
|
|
110
|
+
}
|
|
111
|
+
}, nameField(), keyField(), typeField(), sizeField(), metaField(), tagsField(), aliasesField()],
|
|
112
|
+
description: "File Manager - File content model",
|
|
113
|
+
isPrivate: true,
|
|
114
|
+
group,
|
|
115
|
+
noValidate: true
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
exports.createFileModelDefinition = createFileModelDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["required","name","message","nameField","createModelField","label","type","validation","keyField","typeField","sizeField","metaWidthField","metaHeightField","metaPrivateField","metaField","settings","fields","tagsField","multipleValues","aliasesField","FILE_MODEL_ID","createFileModelDefinition","group","modelId","titleFieldId","layout","id","storageId","fieldId","path","description","isPrivate","noValidate"],"sources":["file.model.ts"],"sourcesContent":["import { CmsPrivateModelFull } from \"@webiny/api-headless-cms\";\nimport { createModelField } from \"./createModelField\";\nimport { CmsModelGroup } from \"@webiny/api-headless-cms/types\";\n\nconst required = () => {\n return {\n name: \"required\",\n message: \"Value is required.\"\n };\n};\n\nconst nameField = () => {\n return createModelField({\n label: \"Name\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst keyField = () => {\n return createModelField({\n label: \"Key\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst typeField = () => {\n return createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [required()]\n });\n};\n\nconst sizeField = () => {\n return createModelField({\n label: \"Size\",\n type: \"number\",\n validation: [required()]\n });\n};\n\nconst metaWidthField = () => {\n return createModelField({\n label: \"Width\",\n type: \"number\"\n });\n};\n\nconst metaHeightField = () => {\n return createModelField({\n label: \"Height\",\n type: \"number\"\n });\n};\n\nconst metaPrivateField = () => {\n return createModelField({\n label: \"Private\",\n type: \"boolean\"\n });\n};\n\nconst metaField = () => {\n return createModelField({\n label: \"Meta\",\n type: \"object\",\n settings: {\n fields: [metaPrivateField(), metaWidthField(), metaHeightField()]\n }\n });\n};\n\nconst tagsField = () => {\n return createModelField({\n label: \"Tags\",\n type: \"text\",\n multipleValues: true,\n validation: [required()]\n });\n};\n\nconst aliasesField = () => {\n return createModelField({\n label: \"Aliases\",\n type: \"text\",\n multipleValues: true,\n validation: [required()]\n });\n};\n\nexport const FILE_MODEL_ID = \"fmFile\";\n\nexport const createFileModelDefinition = (group: CmsModelGroup): CmsPrivateModelFull => {\n return {\n name: \"FmFile\",\n modelId: FILE_MODEL_ID,\n titleFieldId: \"name\",\n layout: [\n [\"location\"],\n [\"name\"],\n [\"key\"],\n [\"type\"],\n [\"size\"],\n [\"meta\"],\n [\"tags\"],\n [\"aliases\"]\n ],\n fields: [\n {\n id: \"location\",\n type: \"object\",\n storageId: \"object@location\",\n label: \"Location\",\n fieldId: \"location\",\n settings: {\n fields: [\n {\n id: \"folderId\",\n type: \"text\",\n fieldId: \"folderId\",\n label: \"Folder ID\",\n storageId: \"text@folderId\",\n settings: {\n path: \"location.folderId\"\n }\n }\n ]\n }\n },\n nameField(),\n keyField(),\n typeField(),\n sizeField(),\n metaField(),\n tagsField(),\n aliasesField()\n ],\n description: \"File Manager - File content model\",\n isPrivate: true,\n group,\n noValidate: true\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isInstallationPending = void 0;
|
|
7
|
+
const isInstallationPending = ({
|
|
8
|
+
tenancy,
|
|
9
|
+
i18n
|
|
10
|
+
}) => {
|
|
11
|
+
/**
|
|
12
|
+
* In case of a fresh webiny project "tenant" and "locale" won't be there until
|
|
13
|
+
* installation is completed. So, we need to skip "storage" creation till then.
|
|
14
|
+
*/
|
|
15
|
+
const tenant = tenancy.getCurrentTenant();
|
|
16
|
+
if (!tenant) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return !i18n.getContentLocale();
|
|
20
|
+
};
|
|
21
|
+
exports.isInstallationPending = isInstallationPending;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isInstallationPending","tenancy","i18n","tenant","getCurrentTenant","getContentLocale"],"sources":["isInstallationPending.ts"],"sourcesContent":["import { FileManagerContext } from \"~/types\";\n\ntype CheckInstallationParams = Pick<FileManagerContext, \"tenancy\" | \"i18n\">;\nexport const isInstallationPending = ({ tenancy, i18n }: CheckInstallationParams): boolean => {\n /**\n * In case of a fresh webiny project \"tenant\" and \"locale\" won't be there until\n * installation is completed. So, we need to skip \"storage\" creation till then.\n */\n const tenant = tenancy.getCurrentTenant();\n if (!tenant) {\n return true;\n }\n\n return !i18n.getContentLocale();\n};\n"],"mappings":";;;;;;AAGO,MAAMA,qBAAqB,GAAG,CAAC;EAAEC,OAAO;EAAEC;AAA8B,CAAC,KAAc;EAC1F;AACJ;AACA;AACA;EACI,MAAMC,MAAM,GAAGF,OAAO,CAACG,gBAAgB,EAAE;EACzC,IAAI,CAACD,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,OAAO,CAACD,IAAI,CAACG,gBAAgB,EAAE;AACnC,CAAC;AAAC"}
|
package/contants.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ROOT_FOLDER = "root";
|
package/contants.js
ADDED
package/contants.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ROOT_FOLDER"],"sources":["contants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAG,MAAM;AAAC"}
|
|
@@ -7,27 +7,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.createFilesCrud = void 0;
|
|
8
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
9
|
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
10
|
-
var _apiSecurity = require("@webiny/api-security");
|
|
11
10
|
var _pubsub = require("@webiny/pubsub");
|
|
12
11
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
|
-
var
|
|
14
|
-
/**
|
|
15
|
-
* If permission is limited to "own" files only, check that current identity owns the file.
|
|
16
|
-
*/
|
|
17
|
-
const checkOwnership = (file, permission, identity) => {
|
|
18
|
-
if ((permission === null || permission === void 0 ? void 0 : permission.own) === true) {
|
|
19
|
-
if (file.createdBy.id !== identity.id) {
|
|
20
|
-
throw new _apiSecurity.NotAuthorizedError();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
};
|
|
12
|
+
var _contants = require("../contants");
|
|
24
13
|
const createFilesCrud = config => {
|
|
25
14
|
const {
|
|
26
15
|
storageOperations,
|
|
16
|
+
filesPermissions,
|
|
27
17
|
getLocaleCode,
|
|
28
18
|
getTenantId,
|
|
29
19
|
getIdentity,
|
|
30
|
-
getPermission,
|
|
31
20
|
WEBINY_VERSION
|
|
32
21
|
} = config;
|
|
33
22
|
return {
|
|
@@ -40,7 +29,7 @@ const createFilesCrud = config => {
|
|
|
40
29
|
onFileBeforeDelete: (0, _pubsub.createTopic)("fileManager.onFileBeforeDelete"),
|
|
41
30
|
onFileAfterDelete: (0, _pubsub.createTopic)("fileManager.onFileAfterDelete"),
|
|
42
31
|
async getFile(id) {
|
|
43
|
-
|
|
32
|
+
await filesPermissions.ensure({
|
|
44
33
|
rwd: "r"
|
|
45
34
|
});
|
|
46
35
|
const file = await storageOperations.files.get({
|
|
@@ -53,11 +42,14 @@ const createFilesCrud = config => {
|
|
|
53
42
|
if (!file) {
|
|
54
43
|
throw new _handlerGraphql.NotFoundError(`File with id "${id}" does not exists.`);
|
|
55
44
|
}
|
|
56
|
-
|
|
45
|
+
await filesPermissions.ensure({
|
|
46
|
+
owns: file.createdBy
|
|
47
|
+
});
|
|
57
48
|
return file;
|
|
58
49
|
},
|
|
59
|
-
async createFile(input) {
|
|
60
|
-
|
|
50
|
+
async createFile(input, meta) {
|
|
51
|
+
var _input$location;
|
|
52
|
+
await filesPermissions.ensure({
|
|
61
53
|
rwd: "w"
|
|
62
54
|
});
|
|
63
55
|
const identity = getIdentity();
|
|
@@ -68,11 +60,15 @@ const createFilesCrud = config => {
|
|
|
68
60
|
tags: Array.isArray(input.tags) ? input.tags : [],
|
|
69
61
|
aliases: Array.isArray(input.aliases) ? input.aliases : [],
|
|
70
62
|
id: input.id || id,
|
|
63
|
+
location: {
|
|
64
|
+
folderId: ((_input$location = input.location) === null || _input$location === void 0 ? void 0 : _input$location.folderId) ?? _contants.ROOT_FOLDER
|
|
65
|
+
},
|
|
71
66
|
meta: (0, _objectSpread2.default)({
|
|
72
67
|
private: false
|
|
73
68
|
}, input.meta || {}),
|
|
74
69
|
tenant: getTenantId(),
|
|
75
70
|
createdOn: new Date().toISOString(),
|
|
71
|
+
savedOn: new Date().toISOString(),
|
|
76
72
|
createdBy: {
|
|
77
73
|
id: identity.id,
|
|
78
74
|
displayName: identity.displayName,
|
|
@@ -83,13 +79,15 @@ const createFilesCrud = config => {
|
|
|
83
79
|
});
|
|
84
80
|
try {
|
|
85
81
|
await this.onFileBeforeCreate.publish({
|
|
86
|
-
file
|
|
82
|
+
file,
|
|
83
|
+
meta
|
|
87
84
|
});
|
|
88
85
|
const result = await storageOperations.files.create({
|
|
89
86
|
file
|
|
90
87
|
});
|
|
91
88
|
await this.onFileAfterCreate.publish({
|
|
92
|
-
file
|
|
89
|
+
file,
|
|
90
|
+
meta
|
|
93
91
|
});
|
|
94
92
|
return result;
|
|
95
93
|
} catch (ex) {
|
|
@@ -99,7 +97,7 @@ const createFilesCrud = config => {
|
|
|
99
97
|
}
|
|
100
98
|
},
|
|
101
99
|
async updateFile(id, input) {
|
|
102
|
-
|
|
100
|
+
await filesPermissions.ensure({
|
|
103
101
|
rwd: "w"
|
|
104
102
|
});
|
|
105
103
|
const original = await storageOperations.files.get({
|
|
@@ -112,7 +110,9 @@ const createFilesCrud = config => {
|
|
|
112
110
|
if (!original) {
|
|
113
111
|
throw new _handlerGraphql.NotFoundError(`File with id "${id}" does not exists.`);
|
|
114
112
|
}
|
|
115
|
-
|
|
113
|
+
await filesPermissions.ensure({
|
|
114
|
+
owns: original.createdBy
|
|
115
|
+
});
|
|
116
116
|
const file = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), input), {}, {
|
|
117
117
|
tags: Array.isArray(input.tags) ? input.tags : Array.isArray(original.tags) ? original.tags : [],
|
|
118
118
|
aliases: Array.isArray(input.aliases) ? input.aliases : Array.isArray(original.aliases) ? original.aliases : [],
|
|
@@ -143,7 +143,7 @@ const createFilesCrud = config => {
|
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
145
|
async deleteFile(id) {
|
|
146
|
-
|
|
146
|
+
await filesPermissions.ensure({
|
|
147
147
|
rwd: "d"
|
|
148
148
|
});
|
|
149
149
|
const file = await storageOperations.files.get({
|
|
@@ -156,7 +156,9 @@ const createFilesCrud = config => {
|
|
|
156
156
|
if (!file) {
|
|
157
157
|
throw new _handlerGraphql.NotFoundError(`File with id "${id}" does not exists.`);
|
|
158
158
|
}
|
|
159
|
-
|
|
159
|
+
await filesPermissions.ensure({
|
|
160
|
+
owns: file.createdBy
|
|
161
|
+
});
|
|
160
162
|
try {
|
|
161
163
|
await this.onFileBeforeDelete.publish({
|
|
162
164
|
file
|
|
@@ -175,8 +177,8 @@ const createFilesCrud = config => {
|
|
|
175
177
|
}
|
|
176
178
|
return true;
|
|
177
179
|
},
|
|
178
|
-
async createFilesInBatch(inputs) {
|
|
179
|
-
await
|
|
180
|
+
async createFilesInBatch(inputs, meta) {
|
|
181
|
+
await filesPermissions.ensure({
|
|
180
182
|
rwd: "w"
|
|
181
183
|
});
|
|
182
184
|
const identity = getIdentity();
|
|
@@ -188,14 +190,19 @@ const createFilesCrud = config => {
|
|
|
188
190
|
type: identity.type
|
|
189
191
|
};
|
|
190
192
|
const files = inputs.map(input => {
|
|
193
|
+
var _input$location2;
|
|
191
194
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
|
|
192
195
|
tags: Array.isArray(input.tags) ? input.tags : [],
|
|
193
196
|
aliases: Array.isArray(input.aliases) ? input.aliases : [],
|
|
194
197
|
meta: (0, _objectSpread2.default)({
|
|
195
198
|
private: false
|
|
196
199
|
}, input.meta || {}),
|
|
200
|
+
location: {
|
|
201
|
+
folderId: ((_input$location2 = input.location) === null || _input$location2 === void 0 ? void 0 : _input$location2.folderId) ?? _contants.ROOT_FOLDER
|
|
202
|
+
},
|
|
197
203
|
tenant,
|
|
198
204
|
createdOn: new Date().toISOString(),
|
|
205
|
+
savedOn: new Date().toISOString(),
|
|
199
206
|
createdBy,
|
|
200
207
|
locale,
|
|
201
208
|
webinyVersion: WEBINY_VERSION
|
|
@@ -203,13 +210,15 @@ const createFilesCrud = config => {
|
|
|
203
210
|
});
|
|
204
211
|
try {
|
|
205
212
|
await this.onFileBeforeBatchCreate.publish({
|
|
206
|
-
files
|
|
213
|
+
files,
|
|
214
|
+
meta
|
|
207
215
|
});
|
|
208
216
|
const results = await storageOperations.files.createBatch({
|
|
209
217
|
files
|
|
210
218
|
});
|
|
211
219
|
await this.onFileAfterBatchCreate.publish({
|
|
212
|
-
files
|
|
220
|
+
files,
|
|
221
|
+
meta
|
|
213
222
|
});
|
|
214
223
|
return results;
|
|
215
224
|
} catch (ex) {
|
|
@@ -219,67 +228,40 @@ const createFilesCrud = config => {
|
|
|
219
228
|
}
|
|
220
229
|
},
|
|
221
230
|
async listFiles(params = {}) {
|
|
222
|
-
|
|
231
|
+
await filesPermissions.ensure({
|
|
223
232
|
rwd: "r"
|
|
224
233
|
});
|
|
225
234
|
const {
|
|
226
235
|
limit = 40,
|
|
227
|
-
search = "",
|
|
228
|
-
types = [],
|
|
229
|
-
tags = [],
|
|
230
|
-
ids = [],
|
|
231
236
|
after = null,
|
|
232
237
|
where: initialWhere,
|
|
233
|
-
sort: initialSort
|
|
238
|
+
sort: initialSort,
|
|
239
|
+
search
|
|
234
240
|
} = params;
|
|
235
|
-
const where = (0, _objectSpread2.default)((0, _objectSpread2.default)({},
|
|
236
|
-
|
|
241
|
+
const where = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _objectSpread2.default)({
|
|
242
|
+
meta: {
|
|
243
|
+
private_not: true
|
|
244
|
+
}
|
|
245
|
+
}, initialWhere)), {}, {
|
|
237
246
|
locale: getLocaleCode(),
|
|
238
247
|
tenant: getTenantId()
|
|
239
248
|
});
|
|
249
|
+
|
|
240
250
|
/**
|
|
241
251
|
* Always override the createdBy received from the user, if any.
|
|
242
252
|
*/
|
|
243
|
-
if (
|
|
253
|
+
if (await filesPermissions.canAccessOnlyOwnRecords()) {
|
|
244
254
|
const identity = getIdentity();
|
|
245
255
|
where.createdBy = identity.id;
|
|
246
256
|
}
|
|
247
|
-
/**
|
|
248
|
-
* We need to map the old GraphQL definition to the new one.
|
|
249
|
-
* That GQL definition is marked as deprecated.
|
|
250
|
-
*/
|
|
251
|
-
/**
|
|
252
|
-
* To have standardized where objects across the applications, we transform the types into type_in.
|
|
253
|
-
*/
|
|
254
|
-
if (Array.isArray(types) && types.length > 0 && !where.type_in) {
|
|
255
|
-
where.type_in = types;
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* We are assigning search to tag and name search.
|
|
259
|
-
* This should be treated as OR condition in the storage operations.
|
|
260
|
-
*/
|
|
261
|
-
if (search && !where.search) {
|
|
262
|
-
where.search = search;
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Same as on types/type_in.
|
|
266
|
-
*/
|
|
267
|
-
if (Array.isArray(tags) && tags.length > 0 && !where.tag_in) {
|
|
268
|
-
where.tag_in = tags.map(tag => tag.toLowerCase());
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Same as on types/type_in.
|
|
272
|
-
*/
|
|
273
|
-
if (Array.isArray(ids) && ids.length > 0 && !where.id_in) {
|
|
274
|
-
where.id_in = ids;
|
|
275
|
-
}
|
|
276
257
|
const sort = Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : ["id_DESC"];
|
|
277
258
|
try {
|
|
278
259
|
return await storageOperations.files.list({
|
|
279
260
|
where,
|
|
280
261
|
after,
|
|
281
262
|
limit,
|
|
282
|
-
sort
|
|
263
|
+
sort,
|
|
264
|
+
search
|
|
283
265
|
});
|
|
284
266
|
} catch (ex) {
|
|
285
267
|
throw new _error.default(ex.message || "Could not list files by given parameters.", ex.code || "FILE_TAG_SEARCH_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
@@ -295,25 +277,18 @@ const createFilesCrud = config => {
|
|
|
295
277
|
after,
|
|
296
278
|
limit
|
|
297
279
|
}) {
|
|
298
|
-
await
|
|
280
|
+
await filesPermissions.ensure();
|
|
299
281
|
const where = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, initialWhere), {}, {
|
|
300
282
|
tenant: getTenantId(),
|
|
301
283
|
locale: getLocaleCode()
|
|
302
284
|
});
|
|
303
285
|
const params = {
|
|
304
286
|
where,
|
|
305
|
-
limit: limit ||
|
|
287
|
+
limit: limit || 1000000,
|
|
306
288
|
after
|
|
307
289
|
};
|
|
308
290
|
try {
|
|
309
|
-
|
|
310
|
-
if (Array.isArray(tags) === false) {
|
|
311
|
-
return [];
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* just to keep it standardized, sort by the tag ASC
|
|
315
|
-
*/
|
|
316
|
-
return tags.sort();
|
|
291
|
+
return await storageOperations.files.tags(params);
|
|
317
292
|
} catch (ex) {
|
|
318
293
|
throw new _error.default(ex.message || "Could not search for tags.", ex.code || "FILE_TAG_SEARCH_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
319
294
|
params
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["checkOwnership","file","permission","identity","own","createdBy","id","NotAuthorizedError","createFilesCrud","config","storageOperations","getLocaleCode","getTenantId","getIdentity","getPermission","WEBINY_VERSION","onFileBeforeCreate","createTopic","onFileAfterCreate","onFileBeforeBatchCreate","onFileAfterBatchCreate","onFileBeforeUpdate","onFileAfterUpdate","onFileBeforeDelete","onFileAfterDelete","getFile","checkBasePermissions","rwd","files","get","where","tenant","locale","NotFoundError","createFile","input","key","split","tags","Array","isArray","aliases","meta","private","createdOn","Date","toISOString","displayName","type","webinyVersion","publish","result","create","ex","WebinyError","message","code","data","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","map","results","createBatch","listFiles","params","limit","search","types","ids","after","initialWhere","sort","initialSort","length","type_in","tag_in","tag","toLowerCase","id_in","list","listTags"],"sources":["files.crud.ts"],"sourcesContent":["import { NotFoundError } from \"@webiny/handler-graphql\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport WebinyError from \"@webiny/error\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport {\n CreatedBy,\n File,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilePermission,\n FilesCRUD,\n FilesListOpts\n} from \"~/types\";\nimport { checkBasePermissions } from \"./checkBasePermissions\";\nimport { FileManagerConfig } from \"~/createFileManager/index\";\n\n/**\n * If permission is limited to \"own\" files only, check that current identity owns the file.\n */\nconst checkOwnership = (file: File, permission: FilePermission, identity: SecurityIdentity) => {\n if (permission?.own === true) {\n if (file.createdBy.id !== identity.id) {\n throw new NotAuthorizedError();\n }\n }\n};\n\nexport const createFilesCrud = (config: FileManagerConfig): FilesCRUD => {\n const {\n storageOperations,\n getLocaleCode,\n getTenantId,\n getIdentity,\n getPermission,\n WEBINY_VERSION\n } = config;\n\n return {\n onFileBeforeCreate: createTopic(\"fileManager.onFileBeforeCreate\"),\n onFileAfterCreate: createTopic(\"fileManager.onFileAfterCreate\"),\n onFileBeforeBatchCreate: createTopic(\"fileManager.onFileBeforeBatchCreate\"),\n onFileAfterBatchCreate: createTopic(\"fileManager.onFileAfterBatchCreate\"),\n onFileBeforeUpdate: createTopic(\"fileManager.onFileBeforeUpdate\"),\n onFileAfterUpdate: createTopic(\"fileManager.onFileAfterUpdate\"),\n onFileBeforeDelete: createTopic(\"fileManager.onFileBeforeDelete\"),\n onFileAfterDelete: createTopic(\"fileManager.onFileAfterDelete\"),\n async getFile(id: string) {\n const permission = await checkBasePermissions(getPermission, { rwd: \"r\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(file, permission, getIdentity());\n\n return file;\n },\n async createFile(input) {\n await checkBasePermissions(getPermission, { rwd: \"w\" });\n const identity = getIdentity();\n\n // Extract ID from file key\n const [id] = input.key.split(\"/\");\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n id: input.id || id,\n meta: {\n private: false,\n ...(input.meta || {})\n },\n tenant: getTenantId(),\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n locale: getLocaleCode(),\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeCreate.publish({ file });\n\n const result = await storageOperations.files.create({ file });\n\n await this.onFileAfterCreate.publish({ file });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a file.\",\n ex.code || \"CREATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n file\n }\n );\n }\n },\n async updateFile(id, input) {\n const permission = await checkBasePermissions(getPermission, { rwd: \"w\" });\n\n const original = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(original, permission, getIdentity());\n\n const file: File = {\n ...original,\n ...input,\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n aliases: Array.isArray(input.aliases)\n ? input.aliases\n : Array.isArray(original.aliases)\n ? original.aliases\n : [],\n id: original.id,\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeUpdate.publish({\n original,\n file,\n input\n });\n\n const result = await storageOperations.files.update({\n original,\n file\n });\n\n await this.onFileAfterUpdate.publish({\n original,\n file,\n input\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update a file.\",\n ex.code || \"UPDATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n original,\n file\n }\n );\n }\n },\n async deleteFile(id) {\n const permission = await checkBasePermissions(getPermission, { rwd: \"d\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n checkOwnership(file, permission, getIdentity());\n\n try {\n await this.onFileBeforeDelete.publish({ file });\n\n await storageOperations.files.delete({\n file\n });\n\n await this.onFileAfterDelete.publish({ file });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete a file.\",\n ex.code || \"DELETE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n id,\n file\n }\n );\n }\n\n return true;\n },\n async createFilesInBatch(inputs) {\n await checkBasePermissions(getPermission, { rwd: \"w\" });\n\n const identity = getIdentity();\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n const createdBy: CreatedBy = {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n };\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n tenant,\n createdOn: new Date().toISOString(),\n createdBy,\n locale,\n webinyVersion: WEBINY_VERSION\n };\n });\n\n try {\n await this.onFileBeforeBatchCreate.publish({ files });\n const results = await storageOperations.files.createBatch({\n files\n });\n await this.onFileAfterBatchCreate.publish({ files });\n return results;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a batch of files.\",\n ex.code || \"CREATE_FILES_ERROR\",\n {\n ...(ex.data || {}),\n files\n }\n );\n }\n },\n async listFiles(params: FilesListOpts = {}) {\n const permission = await checkBasePermissions(getPermission, { rwd: \"r\" });\n\n const {\n limit = 40,\n search = \"\",\n types = [],\n tags = [],\n ids = [],\n after = null,\n where: initialWhere,\n sort: initialSort\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...initialWhere,\n private: false,\n locale: getLocaleCode(),\n tenant: getTenantId()\n };\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (permission.own === true) {\n const identity = getIdentity();\n where.createdBy = identity.id;\n }\n /**\n * We need to map the old GraphQL definition to the new one.\n * That GQL definition is marked as deprecated.\n */\n /**\n * To have standardized where objects across the applications, we transform the types into type_in.\n */\n if (Array.isArray(types) && types.length > 0 && !where.type_in) {\n where.type_in = types;\n }\n /**\n * We are assigning search to tag and name search.\n * This should be treated as OR condition in the storage operations.\n */\n if (search && !where.search) {\n where.search = search;\n }\n /**\n * Same as on types/type_in.\n */\n if (Array.isArray(tags) && tags.length > 0 && !where.tag_in) {\n where.tag_in = tags.map(tag => tag.toLowerCase());\n }\n /**\n * Same as on types/type_in.\n */\n if (Array.isArray(ids) && ids.length > 0 && !where.id_in) {\n where.id_in = ids;\n }\n\n const sort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.files.list({\n where,\n after,\n limit,\n sort\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list files by given parameters.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n where,\n after,\n limit,\n sort\n }\n );\n }\n },\n async listTags({ where: initialWhere, after, limit }) {\n await checkBasePermissions(getPermission);\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: getTenantId(),\n locale: getLocaleCode()\n };\n\n const params = {\n where,\n limit: limit || 100000,\n after\n };\n\n try {\n const [tags] = await storageOperations.files.tags(params);\n if (Array.isArray(tags) === false) {\n return [];\n }\n /**\n * just to keep it standardized, sort by the tag ASC\n */\n return tags.sort();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not search for tags.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n }\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["createFilesCrud","config","storageOperations","filesPermissions","getLocaleCode","getTenantId","getIdentity","WEBINY_VERSION","onFileBeforeCreate","createTopic","onFileAfterCreate","onFileBeforeBatchCreate","onFileAfterBatchCreate","onFileBeforeUpdate","onFileAfterUpdate","onFileBeforeDelete","onFileAfterDelete","getFile","id","ensure","rwd","file","files","get","where","tenant","locale","NotFoundError","owns","createdBy","createFile","input","meta","identity","key","split","tags","Array","isArray","aliases","location","folderId","ROOT_FOLDER","private","createdOn","Date","toISOString","savedOn","displayName","type","webinyVersion","publish","result","create","ex","WebinyError","message","code","data","updateFile","original","update","deleteFile","delete","createFilesInBatch","inputs","map","results","createBatch","listFiles","params","limit","after","initialWhere","sort","initialSort","search","private_not","canAccessOnlyOwnRecords","length","list","listTags"],"sources":["files.crud.ts"],"sourcesContent":["import { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport WebinyError from \"@webiny/error\";\nimport {\n CreatedBy,\n File,\n FileManagerFilesStorageOperationsListParamsWhere,\n FileManagerFilesStorageOperationsTagsParamsWhere,\n FilesCRUD,\n FilesListOpts\n} from \"~/types\";\nimport { FileManagerConfig } from \"~/createFileManager/index\";\nimport { ROOT_FOLDER } from \"~/contants\";\n\nexport const createFilesCrud = (config: FileManagerConfig): FilesCRUD => {\n const {\n storageOperations,\n filesPermissions,\n getLocaleCode,\n getTenantId,\n getIdentity,\n WEBINY_VERSION\n } = config;\n\n return {\n onFileBeforeCreate: createTopic(\"fileManager.onFileBeforeCreate\"),\n onFileAfterCreate: createTopic(\"fileManager.onFileAfterCreate\"),\n onFileBeforeBatchCreate: createTopic(\"fileManager.onFileBeforeBatchCreate\"),\n onFileAfterBatchCreate: createTopic(\"fileManager.onFileAfterBatchCreate\"),\n onFileBeforeUpdate: createTopic(\"fileManager.onFileBeforeUpdate\"),\n onFileAfterUpdate: createTopic(\"fileManager.onFileAfterUpdate\"),\n onFileBeforeDelete: createTopic(\"fileManager.onFileBeforeDelete\"),\n onFileAfterDelete: createTopic(\"fileManager.onFileAfterDelete\"),\n async getFile(id: string) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n return file;\n },\n async createFile(input, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const identity = getIdentity();\n\n // Extract ID from file key\n const [id] = input.key.split(\"/\");\n\n const file: File = {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n id: input.id || id,\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n meta: {\n private: false,\n ...(input.meta || {})\n },\n tenant: getTenantId(),\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n locale: getLocaleCode(),\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeCreate.publish({ file, meta });\n\n const result = await storageOperations.files.create({ file });\n\n await this.onFileAfterCreate.publish({ file, meta });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a file.\",\n ex.code || \"CREATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n file\n }\n );\n }\n },\n async updateFile(id, input) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const original = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!original) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: original.createdBy });\n\n const file: File = {\n ...original,\n ...input,\n tags: Array.isArray(input.tags)\n ? input.tags\n : Array.isArray(original.tags)\n ? original.tags\n : [],\n aliases: Array.isArray(input.aliases)\n ? input.aliases\n : Array.isArray(original.aliases)\n ? original.aliases\n : [],\n id: original.id,\n webinyVersion: WEBINY_VERSION\n };\n\n try {\n await this.onFileBeforeUpdate.publish({\n original,\n file,\n input\n });\n\n const result = await storageOperations.files.update({\n original,\n file\n });\n\n await this.onFileAfterUpdate.publish({\n original,\n file,\n input\n });\n return result;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update a file.\",\n ex.code || \"UPDATE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n original,\n file\n }\n );\n }\n },\n async deleteFile(id) {\n await filesPermissions.ensure({ rwd: \"d\" });\n\n const file = await storageOperations.files.get({\n where: {\n id,\n tenant: getTenantId(),\n locale: getLocaleCode()\n }\n });\n\n if (!file) {\n throw new NotFoundError(`File with id \"${id}\" does not exists.`);\n }\n\n await filesPermissions.ensure({ owns: file.createdBy });\n\n try {\n await this.onFileBeforeDelete.publish({ file });\n\n await storageOperations.files.delete({\n file\n });\n\n await this.onFileAfterDelete.publish({ file });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete a file.\",\n ex.code || \"DELETE_FILE_ERROR\",\n {\n ...(ex.data || {}),\n id,\n file\n }\n );\n }\n\n return true;\n },\n async createFilesInBatch(inputs, meta) {\n await filesPermissions.ensure({ rwd: \"w\" });\n\n const identity = getIdentity();\n const tenant = getTenantId();\n const locale = getLocaleCode();\n\n const createdBy: CreatedBy = {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n };\n\n const files: File[] = inputs.map(input => {\n return {\n ...input,\n tags: Array.isArray(input.tags) ? input.tags : [],\n aliases: Array.isArray(input.aliases) ? input.aliases : [],\n meta: {\n private: false,\n ...(input.meta || {})\n },\n location: {\n folderId: input.location?.folderId ?? ROOT_FOLDER\n },\n tenant,\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n createdBy,\n locale,\n webinyVersion: WEBINY_VERSION\n };\n });\n\n try {\n await this.onFileBeforeBatchCreate.publish({ files, meta });\n const results = await storageOperations.files.createBatch({\n files\n });\n await this.onFileAfterBatchCreate.publish({ files, meta });\n return results;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create a batch of files.\",\n ex.code || \"CREATE_FILES_ERROR\",\n {\n ...(ex.data || {}),\n files\n }\n );\n }\n },\n async listFiles(params: FilesListOpts = {}) {\n await filesPermissions.ensure({ rwd: \"r\" });\n\n const {\n limit = 40,\n after = null,\n where: initialWhere,\n sort: initialSort,\n search\n } = params;\n\n const where: FileManagerFilesStorageOperationsListParamsWhere = {\n ...{ meta: { private_not: true }, ...initialWhere },\n locale: getLocaleCode(),\n tenant: getTenantId()\n };\n\n /**\n * Always override the createdBy received from the user, if any.\n */\n if (await filesPermissions.canAccessOnlyOwnRecords()) {\n const identity = getIdentity();\n where.createdBy = identity.id;\n }\n\n const sort =\n Array.isArray(initialSort) && initialSort.length > 0 ? initialSort : [\"id_DESC\"];\n try {\n return await storageOperations.files.list({\n where,\n after,\n limit,\n sort,\n search\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list files by given parameters.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n where,\n after,\n limit,\n sort\n }\n );\n }\n },\n async listTags({ where: initialWhere, after, limit }) {\n await filesPermissions.ensure();\n\n const where: FileManagerFilesStorageOperationsTagsParamsWhere = {\n ...initialWhere,\n tenant: getTenantId(),\n locale: getLocaleCode()\n };\n\n const params = {\n where,\n limit: limit || 1000000,\n after\n };\n\n try {\n return await storageOperations.files.tags(params);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not search for tags.\",\n ex.code || \"FILE_TAG_SEARCH_ERROR\",\n {\n ...(ex.data || {}),\n params\n }\n );\n }\n }\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { FileManagerContextObject, FileManagerStorageOperations } from "../types";
|
|
2
|
-
import {
|
|
2
|
+
import { GetPermissions, SecurityIdentity } from "@webiny/api-security/types";
|
|
3
3
|
import { FileStorage } from "../storage/FileStorage";
|
|
4
|
+
import { FilesPermissions } from "./permissions/FilesPermissions";
|
|
4
5
|
export interface FileManagerConfig {
|
|
5
6
|
storageOperations: FileManagerStorageOperations;
|
|
7
|
+
filesPermissions: FilesPermissions;
|
|
6
8
|
getTenantId: () => string;
|
|
7
9
|
getLocaleCode: () => string;
|
|
8
10
|
getIdentity: () => SecurityIdentity;
|
|
9
|
-
|
|
11
|
+
getPermissions: GetPermissions;
|
|
10
12
|
storage: FileStorage;
|
|
11
13
|
WEBINY_VERSION: string;
|
|
12
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createFileManager","config","filesCrud","createFilesCrud","settingsCrud","createSettingsCrud","systemCrud","createSystemCrud","storage"],"sources":["index.ts"],"sourcesContent":["import { FileManagerContextObject, FileManagerStorageOperations } from \"~/types\";\nimport {
|
|
1
|
+
{"version":3,"names":["createFileManager","config","filesCrud","createFilesCrud","settingsCrud","createSettingsCrud","systemCrud","createSystemCrud","storage"],"sources":["index.ts"],"sourcesContent":["import { FileManagerContextObject, FileManagerStorageOperations } from \"~/types\";\nimport { GetPermissions, SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createFilesCrud } from \"~/createFileManager/files.crud\";\nimport { FileStorage } from \"~/storage/FileStorage\";\nimport { createSettingsCrud } from \"~/createFileManager/settings.crud\";\nimport { createSystemCrud } from \"~/createFileManager/system.crud\";\nimport { FilesPermissions } from \"~/createFileManager/permissions/FilesPermissions\";\n\nexport interface FileManagerConfig {\n storageOperations: FileManagerStorageOperations;\n filesPermissions: FilesPermissions;\n getTenantId: () => string;\n getLocaleCode: () => string;\n getIdentity: () => SecurityIdentity;\n getPermissions: GetPermissions;\n storage: FileStorage;\n WEBINY_VERSION: string;\n}\n\nexport const createFileManager = (config: FileManagerConfig): FileManagerContextObject => {\n const filesCrud = createFilesCrud(config);\n const settingsCrud = createSettingsCrud(config);\n const systemCrud = createSystemCrud(config);\n\n return {\n ...filesCrud,\n ...settingsCrud,\n ...systemCrud,\n storage: config.storage\n };\n};\n"],"mappings":";;;;;;;;AAEA;AAEA;AACA;AAcO,MAAMA,iBAAiB,GAAIC,MAAyB,IAA+B;EACtF,MAAMC,SAAS,GAAG,IAAAC,sBAAe,EAACF,MAAM,CAAC;EACzC,MAAMG,YAAY,GAAG,IAAAC,4BAAkB,EAACJ,MAAM,CAAC;EAC/C,MAAMK,UAAU,GAAG,IAAAC,wBAAgB,EAACN,MAAM,CAAC;EAE3C,2HACOC,SAAS,GACTE,YAAY,GACZE,UAAU;IACbE,OAAO,EAAEP,MAAM,CAACO;EAAO;AAE/B,CAAC;AAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FilesPermissions = void 0;
|
|
7
|
+
var _AppPermissions = require("@webiny/api-security/utils/AppPermissions");
|
|
8
|
+
class FilesPermissions extends _AppPermissions.AppPermissions {}
|
|
9
|
+
exports.FilesPermissions = FilesPermissions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FilesPermissions","AppPermissions"],"sources":["FilesPermissions.ts"],"sourcesContent":["import { AppPermissions } from \"@webiny/api-security/utils/AppPermissions\";\nimport { FilePermission } from \"~/types\";\n\nexport class FilesPermissions extends AppPermissions<FilePermission> {}\n"],"mappings":";;;;;;AAAA;AAGO,MAAMA,gBAAgB,SAASC,8BAAc,CAAiB;AAAE"}
|
|
@@ -19,7 +19,7 @@ const CreateDataModel = (0, _fields.withFields)({
|
|
|
19
19
|
validation: _validation.validation.create("gte:0")
|
|
20
20
|
}),
|
|
21
21
|
uploadMaxFileSize: (0, _fields.number)({
|
|
22
|
-
value:
|
|
22
|
+
value: 10737418240
|
|
23
23
|
}),
|
|
24
24
|
srcPrefix: (0, _fields.onSet)(value => {
|
|
25
25
|
// Make sure srcPrefix always ends with forward slash.
|