@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.
Files changed (135) hide show
  1. package/FileManagerContextSetup.d.ts +13 -0
  2. package/FileManagerContextSetup.js +113 -0
  3. package/FileManagerContextSetup.js.map +1 -0
  4. package/cmsFileStorage/CmsFilesStorage.d.ts +27 -0
  5. package/cmsFileStorage/CmsFilesStorage.js +173 -0
  6. package/cmsFileStorage/CmsFilesStorage.js.map +1 -0
  7. package/cmsFileStorage/ListFilesWhereProcessor.d.ts +7 -0
  8. package/cmsFileStorage/ListFilesWhereProcessor.js +35 -0
  9. package/cmsFileStorage/ListFilesWhereProcessor.js.map +1 -0
  10. package/cmsFileStorage/ListTagsWhereProcessor.d.ts +7 -0
  11. package/cmsFileStorage/ListTagsWhereProcessor.js +35 -0
  12. package/cmsFileStorage/ListTagsWhereProcessor.js.map +1 -0
  13. package/cmsFileStorage/createFileManagerPlugins.d.ts +5 -0
  14. package/cmsFileStorage/createFileManagerPlugins.js +34 -0
  15. package/cmsFileStorage/createFileManagerPlugins.js.map +1 -0
  16. package/cmsFileStorage/createModelField.d.ts +5 -0
  17. package/cmsFileStorage/createModelField.js +37 -0
  18. package/cmsFileStorage/createModelField.js.map +1 -0
  19. package/cmsFileStorage/file.model.d.ts +4 -0
  20. package/cmsFileStorage/file.model.js +118 -0
  21. package/cmsFileStorage/file.model.js.map +1 -0
  22. package/cmsFileStorage/isInstallationPending.d.ts +4 -0
  23. package/cmsFileStorage/isInstallationPending.js +21 -0
  24. package/cmsFileStorage/isInstallationPending.js.map +1 -0
  25. package/contants.d.ts +1 -0
  26. package/contants.js +8 -0
  27. package/contants.js.map +1 -0
  28. package/createFileManager/files.crud.js +51 -76
  29. package/createFileManager/files.crud.js.map +1 -1
  30. package/createFileManager/index.d.ts +4 -2
  31. package/createFileManager/index.js.map +1 -1
  32. package/createFileManager/permissions/FilesPermissions.d.ts +4 -0
  33. package/createFileManager/permissions/FilesPermissions.js +9 -0
  34. package/createFileManager/permissions/FilesPermissions.js.map +1 -0
  35. package/createFileManager/settings.crud.js +1 -1
  36. package/createFileManager/settings.crud.js.map +1 -1
  37. package/graphql/baseSchema.d.ts +3 -0
  38. package/graphql/baseSchema.js +117 -0
  39. package/graphql/baseSchema.js.map +1 -0
  40. package/graphql/createFilesTypeDefs.d.ts +7 -0
  41. package/graphql/createFilesTypeDefs.js +162 -0
  42. package/graphql/createFilesTypeDefs.js.map +1 -0
  43. package/graphql/filesSchema.d.ts +4 -0
  44. package/graphql/filesSchema.js +83 -0
  45. package/graphql/filesSchema.js.map +1 -0
  46. package/graphql/index.d.ts +2 -2
  47. package/graphql/index.js +23 -267
  48. package/graphql/index.js.map +1 -1
  49. package/graphql/utils.d.ts +11 -0
  50. package/graphql/utils.js +22 -0
  51. package/graphql/utils.js.map +1 -0
  52. package/handlers/download/byAlias.js +9 -9
  53. package/handlers/download/byAlias.js.map +1 -1
  54. package/handlers/download/byExactKey.js +9 -9
  55. package/handlers/download/byExactKey.js.map +1 -1
  56. package/handlers/download/getS3Object.d.ts +2 -0
  57. package/handlers/download/getS3Object.js +39 -24
  58. package/handlers/download/getS3Object.js.map +1 -1
  59. package/handlers/transform/index.js +5 -2
  60. package/handlers/transform/index.js.map +1 -1
  61. package/handlers/transform/transformImage.d.ts +5 -2
  62. package/handlers/transform/transformImage.js +7 -4
  63. package/handlers/transform/transformImage.js.map +1 -1
  64. package/handlers/transform/utils.js +2 -2
  65. package/handlers/transform/utils.js.map +1 -1
  66. package/index.d.ts +3 -2
  67. package/index.js +20 -36
  68. package/index.js.map +1 -1
  69. package/modelModifier/CmsModelModifier.d.ts +24 -0
  70. package/modelModifier/CmsModelModifier.js +59 -0
  71. package/modelModifier/CmsModelModifier.js.map +1 -0
  72. package/package.json +28 -27
  73. package/types/file.d.ts +5 -1
  74. package/types/file.js.map +1 -1
  75. package/types/file.lifecycle.d.ts +4 -0
  76. package/types/file.lifecycle.js.map +1 -1
  77. package/types.d.ts +28 -34
  78. package/types.js.map +1 -1
  79. package/createFileManager/checkBasePermissions.d.ts +0 -5
  80. package/createFileManager/checkBasePermissions.js +0 -24
  81. package/createFileManager/checkBasePermissions.js.map +0 -1
  82. package/plugins/crud/files/validation.d.ts +0 -3
  83. package/plugins/crud/files/validation.js +0 -41
  84. package/plugins/crud/files/validation.js.map +0 -1
  85. package/plugins/crud/files.crud.d.ts +0 -4
  86. package/plugins/crud/files.crud.js +0 -431
  87. package/plugins/crud/files.crud.js.map +0 -1
  88. package/plugins/crud/settings.crud.d.ts +0 -5
  89. package/plugins/crud/settings.crud.js +0 -116
  90. package/plugins/crud/settings.crud.js.map +0 -1
  91. package/plugins/crud/system.crud.d.ts +0 -4
  92. package/plugins/crud/system.crud.js +0 -153
  93. package/plugins/crud/system.crud.js.map +0 -1
  94. package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
  95. package/plugins/crud/utils/checkBasePermissions.js +0 -33
  96. package/plugins/crud/utils/checkBasePermissions.js.map +0 -1
  97. package/plugins/crud/utils/createFileModel.d.ts +0 -5
  98. package/plugins/crud/utils/createFileModel.js +0 -77
  99. package/plugins/crud/utils/createFileModel.js.map +0 -1
  100. package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
  101. package/plugins/crud/utils/lifecycleEvents.js +0 -38
  102. package/plugins/crud/utils/lifecycleEvents.js.map +0 -1
  103. package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -21
  104. package/plugins/definitions/FilePhysicalStoragePlugin.js +0 -42
  105. package/plugins/definitions/FilePhysicalStoragePlugin.js.map +0 -1
  106. package/plugins/definitions/FilePlugin.d.ts +0 -136
  107. package/plugins/definitions/FilePlugin.js +0 -70
  108. package/plugins/definitions/FilePlugin.js.map +0 -1
  109. package/plugins/definitions/FileStorageTransformPlugin.d.ts +0 -34
  110. package/plugins/definitions/FileStorageTransformPlugin.js +0 -51
  111. package/plugins/definitions/FileStorageTransformPlugin.js.map +0 -1
  112. package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
  113. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
  114. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +0 -1
  115. package/plugins/definitions/InstallationPlugin.d.ts +0 -19
  116. package/plugins/definitions/InstallationPlugin.js +0 -42
  117. package/plugins/definitions/InstallationPlugin.js.map +0 -1
  118. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
  119. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
  120. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +0 -1
  121. package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
  122. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
  123. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +0 -1
  124. package/plugins/graphql.d.ts +0 -4
  125. package/plugins/graphql.js +0 -290
  126. package/plugins/graphql.js.map +0 -1
  127. package/plugins/storage/FileStorage.d.ts +0 -30
  128. package/plugins/storage/FileStorage.js +0 -103
  129. package/plugins/storage/FileStorage.js.map +0 -1
  130. package/plugins/storage/index.d.ts +0 -4
  131. package/plugins/storage/index.js +0 -26
  132. package/plugins/storage/index.js.map +0 -1
  133. package/utils.d.ts +0 -4
  134. package/utils.js +0 -16
  135. 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,4 @@
1
+ import { FileManagerContext } from "../types";
2
+ declare type CheckInstallationParams = Pick<FileManagerContext, "tenancy" | "i18n">;
3
+ export declare const isInstallationPending: ({ tenancy, i18n }: CheckInstallationParams) => boolean;
4
+ export {};
@@ -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
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ROOT_FOLDER = void 0;
7
+ const ROOT_FOLDER = "root";
8
+ exports.ROOT_FOLDER = ROOT_FOLDER;
@@ -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 _checkBasePermissions = require("./checkBasePermissions");
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
- const permission = await (0, _checkBasePermissions.checkBasePermissions)(getPermission, {
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
- checkOwnership(file, permission, getIdentity());
45
+ await filesPermissions.ensure({
46
+ owns: file.createdBy
47
+ });
57
48
  return file;
58
49
  },
59
- async createFile(input) {
60
- await (0, _checkBasePermissions.checkBasePermissions)(getPermission, {
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
- const permission = await (0, _checkBasePermissions.checkBasePermissions)(getPermission, {
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
- checkOwnership(original, permission, getIdentity());
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
- const permission = await (0, _checkBasePermissions.checkBasePermissions)(getPermission, {
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
- checkOwnership(file, permission, getIdentity());
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 (0, _checkBasePermissions.checkBasePermissions)(getPermission, {
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
- const permission = await (0, _checkBasePermissions.checkBasePermissions)(getPermission, {
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)({}, initialWhere), {}, {
236
- private: false,
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 (permission.own === true) {
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 (0, _checkBasePermissions.checkBasePermissions)(getPermission);
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 || 100000,
287
+ limit: limit || 1000000,
306
288
  after
307
289
  };
308
290
  try {
309
- const [tags] = await storageOperations.files.tags(params);
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 { GetPermission, SecurityIdentity } from "@webiny/api-security/types";
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
- getPermission: GetPermission;
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 { GetPermission, 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\";\n\nexport interface FileManagerConfig {\n storageOperations: FileManagerStorageOperations;\n getTenantId: () => string;\n getLocaleCode: () => string;\n getIdentity: () => SecurityIdentity;\n getPermission: GetPermission;\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;AAYO,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"}
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,4 @@
1
+ import { AppPermissions } from "@webiny/api-security/utils/AppPermissions";
2
+ import { FilePermission } from "../../types";
3
+ export declare class FilesPermissions extends AppPermissions<FilePermission> {
4
+ }
@@ -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: 26214401
22
+ value: 10737418240
23
23
  }),
24
24
  srcPrefix: (0, _fields.onSet)(value => {
25
25
  // Make sure srcPrefix always ends with forward slash.