From 587daa5ffef8bb9a695d49a068c9c89c12c1ce01 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Wed, 4 Nov 2020 12:48:15 +0100 Subject: [PATCH 01/11] upload-limit v0.1 --- app/Http/Tools/Editor.php | 10 +- public/mix-manifest.json | 164 +++++++++++------- resources/js/helpers.js | 29 +++- resources/js/i18n/lang/cn.json | 7 + resources/js/i18n/lang/en.json | 7 + resources/js/i18n/lang/sk.json | 7 + resources/js/store/modules/fileFunctions.js | 4 +- .../AppSettings/AppSettingsTabs/Others.vue | 14 +- resources/views/index.blade.php | 1 + 9 files changed, 169 insertions(+), 74 deletions(-) diff --git a/app/Http/Tools/Editor.php b/app/Http/Tools/Editor.php index 5e02a17d..a5332fa0 100644 --- a/app/Http/Tools/Editor.php +++ b/app/Http/Tools/Editor.php @@ -251,9 +251,15 @@ class Editor $disk_file_name = basename('chunks/' . $file->getClientOriginalName(), '.part'); $temp_filename = $file->getClientOriginalName(); + //File Path + $file_path = config('filesystems.disks.local.root') . '/chunks/' . $temp_filename; // Generate file - File::append(config('filesystems.disks.local.root') . '/chunks/' . $temp_filename, $file->get()); - + File::append($file_path, $file->get()); + //Size of file + $file_size = File::size($file_path); + //File size handling + if($file_size > get_setting('upload_limit') * 1000000) abort(413); + // If last then process file if ($request->boolean('is_last')) { diff --git a/public/mix-manifest.json b/public/mix-manifest.json index cbb7eb7f..3044ce28 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,66 +1,102 @@ { - "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js?id=b2c33d183697d06adb8d", - "/js/main.js": "/js/main.js?id=939ce82189c86f19db73", - "/css/app.css": "/css/app.css?id=dbf49843b327d3936c06", - "/chunks/admin.js": "/chunks/admin.js?id=bd7dce5ddfbb8ebeb7a8", - "/chunks/admin-account.js": "/chunks/admin-account.js?id=ed4d3b5d0e9da3b70862", - "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=046065efc4a67ad8587f", - "/chunks/app-billings.js": "/chunks/app-billings.js?id=0d1e25be91f67ffab63f", - "/chunks/app-email.js": "/chunks/app-email.js?id=b7a3bca09764ae780d6c", - "/chunks/app-index.js": "/chunks/app-index.js?id=e1544ff1341ca6416bab", - "/chunks/app-others.js": "/chunks/app-others.js?id=aa5b12609a66adf1d918", - "/chunks/app-payments.js": "/chunks/app-payments.js?id=a1a84878ec6f645946f5", - "/chunks/app-settings.js": "/chunks/app-settings.js?id=424c67c7d7f6b9109a99", - "/chunks/app-setup.js": "/chunks/app-setup.js?id=3ac1935129bff281257d", - "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=e6434e402adec1cf8ba1", - "/chunks/contact-us.js": "/chunks/contact-us.js?id=fa10e7582a311ab12c1f", - "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=b33f6ac5e174f51a443b", - "/chunks/dashboard.js": "/chunks/dashboard.js?id=a61fe2622dca51ca1396", - "/chunks/database.js": "/chunks/database.js?id=ac688c888342c5cf4c53", - "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=08a0c2de8f93e0222600", - "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=fb825f5ace1deeac3509", - "/chunks/files.js": "/chunks/files.js?id=bc21124b8956b99ab01f", - "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=9a8acda895c0c40ea30b", - "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=59450c310fb5af95b9a1", - "/chunks/invoices.js": "/chunks/invoices.js?id=6dd9f68419f741465844", - "/chunks/landing-page.js": "/chunks/landing-page.js?id=4dbec1937d1f5b71d17d", - "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=af1fa088daae3fe7a3a8", - "/chunks/page-edit.js": "/chunks/page-edit.js?id=30e6227554f2f26e0419", - "/chunks/pages.js": "/chunks/pages.js?id=8dc613c3a82637e99dc2", - "/chunks/plan.js": "/chunks/plan.js?id=6de54ce130dd2766f4c6", - "/chunks/plan-create.js": "/chunks/plan-create.js?id=efaeb3ebdf30ba62c613", - "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=93b6dfdf61caa4335a7c", - "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=d1457670c217e13e97f9", - "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=fba30dc476ddcd0c4b22", - "/chunks/plans.js": "/chunks/plans.js?id=f03834c110c677b6db0d", - "/chunks/profile.js": "/chunks/profile.js?id=23e34e6d7d73abcf317d", - "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=f74384a387ce82e7751f", - "/chunks/settings.js": "/chunks/settings.js?id=a3b1c88c6b6af9b6308c", - "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=543b594932039ef2b061", - "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=b26452dbf79dcc6e2787", - "/chunks/settings-password.js": "/chunks/settings-password.js?id=919f57ae52204ea5ee54", - "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=4cb65919f0627c8f9db1", - "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=1a45b3cee17b17a7598d", - "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=34e34dcb29cb84ab53bf", - "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=47090233afc7b0cdf855", - "/chunks/shared-files.js": "/chunks/shared-files.js?id=bb6943a620f520324003", - "/chunks/shared-page.js": "/chunks/shared-page.js?id=2414f43c0129d239b907", - "/chunks/sign-in.js": "/chunks/sign-in.js?id=a0e2b7e58484e778848b", - "/chunks/sign-up.js": "/chunks/sign-up.js?id=774e43bc25ae4e3893a2", - "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=e3639ebc187c3e568a20", - "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=24f8053a0d89684699ad", - "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=e0c770e988a664a18f76", - "/chunks/trash.js": "/chunks/trash.js?id=1ee3dde0c9d1a700c7f2", - "/chunks/upgrade.js": "/chunks/upgrade.js?id=77386550d2ac446e4ac1", - "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=8bc53a77111144319a0d", - "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=06718f96dbec2820c6fc", - "/chunks/user.js": "/chunks/user.js?id=7af75cb8c2c899fec9d5", - "/chunks/user-create.js": "/chunks/user-create.js?id=8483ffcbd12c68856186", - "/chunks/user-delete.js": "/chunks/user-delete.js?id=406c10bd53f7d33d85a7", - "/chunks/user-detail.js": "/chunks/user-detail.js?id=32f97c1bd9d9137ba5f0", - "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=cfef95004b9346be2c3e", - "/chunks/user-password.js": "/chunks/user-password.js?id=227291c743ecc58681a5", - "/chunks/user-storage.js": "/chunks/user-storage.js?id=2592e0d43a710c5b197f", - "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=93f76f47f1f8c8c9425d", - "/chunks/users.js": "/chunks/users.js?id=960ae7b595d7b5d9394b" + "/js/main.js": "/js/main.js", + "/css/app.css": "/css/app.css", + "/chunks/admin.js": "/chunks/admin.js?id=16d6432e9a5122f06bc1", + "/chunks/admin-account.js": "/chunks/admin-account.js?id=d6a0e09f9c1124d0e95b", + "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js?id=f3069a222eca5dd0270e", + "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~3b77a26e.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~3b77a26e.js?id=77bca29833216da797df", + "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/trash.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/trash.js?id=4b2aa345198e20c36733", + "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=592d97039a1bbd16df80", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=764ee2f54c93ebf508f2", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=f96dc1a0da58b6c0831f", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js?id=484b015de14dc4d7d07e", + "/chunks/app-billings.js": "/chunks/app-billings.js?id=56dbf797866f9127c903", + "/chunks/app-email.js": "/chunks/app-email.js?id=37d70468d3ede6a2d5c0", + "/chunks/app-index.js": "/chunks/app-index.js?id=93085b19900c2dfedad7", + "/chunks/app-others.js": "/chunks/app-others.js?id=96f544cf246b7c83798e", + "/chunks/app-payments.js": "/chunks/app-payments.js?id=58a7319b7ec435ba7905", + "/chunks/app-settings.js": "/chunks/app-settings.js?id=be61c2db5a777bc9564c", + "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js": "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js?id=d453042783979afa9e8d", + "/chunks/app-setup.js": "/chunks/app-setup.js?id=e4595e91c026d18927e9", + "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=f9b824ca07091c2187aa", + "/chunks/contact-us.js": "/chunks/contact-us.js?id=11a9f28eaf6c9bab655d", + "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js": "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js?id=1676f9a1ac9602026b2d", + "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=b803bda9c2efa524336e", + "/chunks/dashboard.js": "/chunks/dashboard.js?id=df10b61625ff1634b8ea", + "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=17649685610016a8501c", + "/chunks/database.js": "/chunks/database.js?id=5bf7fc8614772da0cada", + "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=80fe4ed4501414037387", + "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=72998371a634f818fdfd", + "/chunks/files.js": "/chunks/files.js?id=3b608964757ef9dda7c6", + "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/trash~chunks~3ea7670b.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/trash~chunks~3ea7670b.js?id=93090f58b637eeb86ded", + "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js?id=8972c9075ea16ab0013e", + "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=f78ef9c665238797e92a", + "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=4fb27bef1f7595b94047", + "/chunks/invoices.js": "/chunks/invoices.js?id=95740d62a1ed253ef2ff", + "/chunks/landing-page.js": "/chunks/landing-page.js?id=9d0143a75b260733a95b", + "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=f108b84833dbdcc4a0a1", + "/chunks/page-edit.js": "/chunks/page-edit.js?id=d048988f094763896f23", + "/chunks/pages.js": "/chunks/pages.js?id=982c94f46a1e931cd8f7", + "/chunks/plan.js": "/chunks/plan.js?id=6c60686496e9a0d96e55", + "/chunks/plan-create.js": "/chunks/plan-create.js?id=37f649fd35f8694e789e", + "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=826ce0b3d11a75829ea2", + "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=713906a8ef4e03a33ff0", + "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=42d3dd48dfda0d4e6278", + "/chunks/plans.js": "/chunks/plans.js?id=4fabc44f63ad4ddabedb", + "/chunks/profile.js": "/chunks/profile.js?id=0490d3980377f3ba4b81", + "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=b4ce31d48aed294bb1a3", + "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=18f721619181c56cf5e9", + "/chunks/settings.js": "/chunks/settings.js?id=de3822cf8dae469fae99", + "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=e9ee54062a8ca38c2b33", + "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=1fc098872c98559521df", + "/chunks/settings-password.js": "/chunks/settings-password.js?id=98c11b2ba7f2c8db3920", + "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=d936d92ceffa336dea5e", + "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=de2b4e704b8dac7325c0", + "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=f9b950116e40f4d368db", + "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=566d3b75aa7be8b55c46", + "/chunks/shared-files.js": "/chunks/shared-files.js?id=65524b12f56ec717d06a", + "/chunks/shared-page.js": "/chunks/shared-page.js?id=03fb9ac34058853cb252", + "/chunks/sign-in.js": "/chunks/sign-in.js?id=699b1e6c46292afa065e", + "/chunks/sign-up.js": "/chunks/sign-up.js?id=a1d9c6f58ca8f28a5f03", + "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=c81344269cc0c768db1e", + "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=abf25cdc7b4746716a7c", + "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=f5d6cc03c0f58e26d6b7", + "/chunks/trash.js": "/chunks/trash.js?id=00b36bf2be8f9f4090c7", + "/chunks/upgrade.js": "/chunks/upgrade.js?id=c76158bf59a8f0423856", + "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=90a5109adcc087430775", + "/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=481a4ddb0c6d0f9de447", + "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=cb7ec4c31c0b6d4534ec", + "/chunks/user.js": "/chunks/user.js?id=a32165809363978b63bc", + "/chunks/user-create.js": "/chunks/user-create.js?id=1818be930822a1b4476d", + "/chunks/user-delete.js": "/chunks/user-delete.js?id=c4029ce89944bd04b63f", + "/chunks/user-detail.js": "/chunks/user-detail.js?id=08c6b4ef87afe5953675", + "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=78bd8d965d9e5e7c31ae", + "/chunks/user-password.js": "/chunks/user-password.js?id=4d9e46c209e88d5f47ab", + "/chunks/user-storage.js": "/chunks/user-storage.js?id=fafc88cef747e911e17b", + "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=106a3b5ccd6d467ac524", + "/chunks/users.js": "/chunks/users.js?id=f213041c6b6095cd03e1", + "/js/main.6d4c9379e93b7fd722dd.hot-update.js": "/js/main.6d4c9379e93b7fd722dd.hot-update.js", + "/js/main.4b15d11dd959b8b3d2db.hot-update.js": "/js/main.4b15d11dd959b8b3d2db.hot-update.js", + "/js/main.7e232f51ea37b33d6e6e.hot-update.js": "/js/main.7e232f51ea37b33d6e6e.hot-update.js", + "/js/main.5112e48fd1fe599851a5.hot-update.js": "/js/main.5112e48fd1fe599851a5.hot-update.js", + "/js/main.0c2a451981e2dd0c1715.hot-update.js": "/js/main.0c2a451981e2dd0c1715.hot-update.js", + "/js/main.cff8a34ed097736a59e1.hot-update.js": "/js/main.cff8a34ed097736a59e1.hot-update.js", + "/js/main.0cdd771e759ea265140e.hot-update.js": "/js/main.0cdd771e759ea265140e.hot-update.js", + "/js/main.69bba4f0cf9c152cc806.hot-update.js": "/js/main.69bba4f0cf9c152cc806.hot-update.js", + "/js/main.881a819d23cee16eb6d7.hot-update.js": "/js/main.881a819d23cee16eb6d7.hot-update.js", + "/js/main.07c2afbdae54b92f6c36.hot-update.js": "/js/main.07c2afbdae54b92f6c36.hot-update.js", + "/js/main.543c3914b4cd8c8a41e7.hot-update.js": "/js/main.543c3914b4cd8c8a41e7.hot-update.js", + "/js/main.2fc14ec56633cef5c01d.hot-update.js": "/js/main.2fc14ec56633cef5c01d.hot-update.js", + "/js/main.2252386941b35f477203.hot-update.js": "/js/main.2252386941b35f477203.hot-update.js", + "/js/main.356bde86b81bb809e395.hot-update.js": "/js/main.356bde86b81bb809e395.hot-update.js", + "/js/main.d07fa64a7eca9af40986.hot-update.js": "/js/main.d07fa64a7eca9af40986.hot-update.js", + "/js/main.db2aca618459d70e657c.hot-update.js": "/js/main.db2aca618459d70e657c.hot-update.js", + "/js/main.cbb6fa78757671216c7f.hot-update.js": "/js/main.cbb6fa78757671216c7f.hot-update.js", + "/js/main.0dda53bffacab5dede99.hot-update.js": "/js/main.0dda53bffacab5dede99.hot-update.js", + "/js/main.e44b21862f6cd329bb3a.hot-update.js": "/js/main.e44b21862f6cd329bb3a.hot-update.js", + "/js/main.8a0ab76eefcf5fa29a20.hot-update.js": "/js/main.8a0ab76eefcf5fa29a20.hot-update.js", + "/js/main.785455fdc69e948b483f.hot-update.js": "/js/main.785455fdc69e948b483f.hot-update.js", + "/js/main.1c424901e55bf50e3480.hot-update.js": "/js/main.1c424901e55bf50e3480.hot-update.js", + "/js/main.0684608c5c2bee18c2b3.hot-update.js": "/js/main.0684608c5c2bee18c2b3.hot-update.js", + "/js/main.cccce713877598037388.hot-update.js": "/js/main.cccce713877598037388.hot-update.js" } diff --git a/resources/js/helpers.js b/resources/js/helpers.js index 2e1e61fe..731aa14c 100644 --- a/resources/js/helpers.js +++ b/resources/js/helpers.js @@ -10,7 +10,7 @@ const Helpers = { Vue.prototype.$updateText = debounce(function (route, name, value) { - let enableEmptyInput = ['mimetypes_blacklist' , 'google_analytics'] + let enableEmptyInput = ['mimetypes_blacklist' , 'google_analytics' , 'upload_limit'] if (value === '' && !enableEmptyInput.includes(name)) return @@ -148,8 +148,8 @@ const Helpers = { if (error.response.status === 500) isNotGeneralError = false - //Break if mimetype of file is in blacklist - if(error.response.status === 415) + //Break if mimetype of file is in blacklist or file size exceed upload limit + if(error.response.status === 415 || 413) isNotGeneralError = false // Show Error @@ -177,7 +177,7 @@ const Helpers = { if (files.length == 0) return - if (!this.$checkFileMimetype(files)) return + if (!this.$checkFileMimetype(files) || !this.$checkUploadLimit(files)) return this.$handleUploading(files, undefined) } @@ -307,6 +307,27 @@ const Helpers = { } return validated } + Vue.prototype.$checkUploadLimit = function (files) { + let uploadLimit = store.getters.config.uploadLimit + let validate = true + + for (let i = 0 ; i uploadLimit * 1000000 ) { + validate = false + events.$emit('alert:open', { + emoji: '😬😬😬', + title: i18n.t('popup_upload_limit.title'), + message: i18n.t('popup_upload_limit.message', {uploadLimit: uploadLimit}), + }) + break + }else { + validate = true + } + } + + return validate + + } } } diff --git a/resources/js/i18n/lang/cn.json b/resources/js/i18n/lang/cn.json index c854c2d5..62131e63 100644 --- a/resources/js/i18n/lang/cn.json +++ b/resources/js/i18n/lang/cn.json @@ -208,6 +208,9 @@ "username_plac": "输入您的邮件用户名" }, "others": { + "upload_limit": "Upload Limit", + "upload_limit_plac": "Type your upload limit in MB", + "upload_limit_help": "If you want make a limit of files size upload add size of you'r limit in MB", "mimetypes_blacklist": "Mimetypes Blacklist", "mimetypes_blacklist_plac":"Add mimetypes to Blacklist" , "mimetypes_blacklist_help" :"If you want to prevent upload some type of files, just add them to blacklist like this: x-php,mp3,jpeg
Use a comma between each mimetype. Don't use a dot before mimetypes." , @@ -494,6 +497,10 @@ }, "title": "选择付款方式" }, + "popup_upload_limit": { + "title": "Oh No", + "message": "Size of your file upload exceed the upload limit ({uploadLimit} MB)" + }, "popup_mimetypes_blacklist": { "title": "Oh no", "message": "File of this type ({mimetype}) is not allowed to upload." diff --git a/resources/js/i18n/lang/en.json b/resources/js/i18n/lang/en.json index 77e1d92d..a837e0d8 100644 --- a/resources/js/i18n/lang/en.json +++ b/resources/js/i18n/lang/en.json @@ -210,6 +210,9 @@ "username_plac": "Type your mail username" }, "others": { + "upload_limit": "Upload Limit", + "upload_limit_plac": "Type your upload limit in MB", + "upload_limit_help": "If you want make a limit of files size upload add size of you'r limit in MB", "mimetypes_blacklist": "Mimetypes Blacklist", "mimetypes_blacklist_plac":"Add mimetypes to Blacklist" , "mimetypes_blacklist_help" :"If you want to prevent upload some type of files, just add them to blacklist like this: x-php,mp3,jpeg
Use a comma between each mimetype. Don't use a dot before mimetypes." , @@ -496,6 +499,10 @@ }, "title": "Choose Payment Method" }, + "popup_upload_limit": { + "title": "Oh No", + "message": "Size of your file upload exceed the upload limit ({uploadLimit} MB)" + }, "popup_mimetypes_blacklist": { "title": "Oh No", "message": "File of this type ({mimetype}) is not allowed to upload." diff --git a/resources/js/i18n/lang/sk.json b/resources/js/i18n/lang/sk.json index 80ebfac1..9b45b6f7 100644 --- a/resources/js/i18n/lang/sk.json +++ b/resources/js/i18n/lang/sk.json @@ -210,6 +210,9 @@ "username_plac": "Zadajte svoje používateľské meno pre poštu" }, "others": { + "upload_limit": "Limit pre velkost nahrávaného súbor", + "upload_limit_plac": "Pridajte veľkosť limitu v MB", + "upload_limit_help": "Ak chcete vytvoriť limit pre nahravane súbory pridajte veľkosť vášho limitu v MB.", "mimetypes_blacklist": "Čierna listina mimetypov", "mimetypes_blacklist_plac":"Pridajte mimetypy do Čiernej listiny", "mimetypes_blacklist_help" :"Ak chcete zakázať nahrávanie niektorých typov súborov, jednoducho ich pridajte na čiernu listinu, príklad: x-php, mp3, jpeg
Medzi mimetypmi použite čiarku. Nevkladajte bodku pred mimetyp." , @@ -496,6 +499,10 @@ }, "title": "Vyberte si metódu platby" }, + "popup_upload_limit": { + "title": "Je nám ľúto", + "message": "Veľkosť nahravaneho súboru prekročila limit pre nahravane súbory ({uploadLimit} MB)" + }, "popup_mimetypes_blacklist": { "title": "Ospravelnujume sa", "message": "Nieje povolené nahrávať tento typ súboru ({mimetype})." diff --git a/resources/js/store/modules/fileFunctions.js b/resources/js/store/modules/fileFunctions.js index 4c848ca9..7a4645e2 100644 --- a/resources/js/store/modules/fileFunctions.js +++ b/resources/js/store/modules/fileFunctions.js @@ -132,8 +132,8 @@ const actions = { case 413: events.$emit('alert:open', { emoji: '😟😟😟', - title: i18n.t('popup_paylod_error.title'), - message: i18n.t('popup_paylod_error.message') + title: i18n.t('popup_upload_limit.title'), + message: i18n.t('popup_upload_limit.message', {uploadLimit: getters.config.uploadLimit}) }) break; default: diff --git a/resources/js/views/Admin/AppSettings/AppSettingsTabs/Others.vue b/resources/js/views/Admin/AppSettings/AppSettingsTabs/Others.vue index 75e1f4ad..6d8c09d2 100644 --- a/resources/js/views/Admin/AppSettings/AppSettingsTabs/Others.vue +++ b/resources/js/views/Admin/AppSettings/AppSettingsTabs/Others.vue @@ -89,6 +89,15 @@ +
+ + + + {{ errors[0] }} + + +
+ {{ $t('admin_settings.others.section_cache') }} @@ -163,7 +172,7 @@ mounted() { axios.get('/api/settings', { params: { - column: 'contact_email|google_analytics|storage_default|registration|storage_limitation|mimetypes_blacklist' + column: 'contact_email|google_analytics|storage_default|registration|storage_limitation|mimetypes_blacklist|upload_limit' } }) .then(response => { @@ -175,7 +184,8 @@ defaultStorage: response.data.storage_default, userRegistration: parseInt(response.data.registration), storageLimitation: parseInt(response.data.storage_limitation), - mimetypesBlacklist : response.data.mimetypes_blacklist + mimetypesBlacklist : response.data.mimetypes_blacklist, + uploadLimit: response.data.upload_limit } }) } diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index e57a5221..14fc6af5 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -56,6 +56,7 @@ storageDefaultSpace: {{ isset($settings->storage_default) ? $settings->storage_default : 5 }}, storageDefaultSpaceFormatted: '{{ isset($settings->storage_default) ? format_gigabytes($settings->storage_default) : format_gigabytes(5) }}', mimetypesBlacklist: '{{ isset($settings->mimetypes_blacklist) ? $settings->mimetypes_blacklist: null}}', + uploadLimit: '{{ isset($settings->upload_limit) ? $settings->upload_limit: null}}' , hasAuthCookie: {{ Cookie::has('token') ? 1 : 0 }}, isSaaS: {{ isset($settings->license) && $settings->license === 'Extended' ? 1 : 0 }}, From 7273d601549c7c8d70a3f41e7e167d6b9c9b28ee Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Fri, 6 Nov 2020 12:19:31 +0100 Subject: [PATCH 02/11] upload-limit v0.2 --- app/Http/Tools/Editor.php | 2 +- public/mix-manifest.json | 30 ++----------------- .../js/components/FilesView/FileItemGrid.vue | 6 ++-- .../js/components/FilesView/FileItemList.vue | 6 ++-- .../js/components/FilesView/FilePreview.vue | 2 +- resources/js/helpers.js | 14 ++++----- resources/js/i18n/lang/cn.json | 4 +-- resources/js/i18n/lang/en.json | 4 +-- resources/js/i18n/lang/sk.json | 4 +-- resources/js/store/modules/fileFunctions.js | 2 +- .../AppSettings/AppSettingsTabs/Others.vue | 2 +- resources/views/index.blade.php | 3 +- 12 files changed, 26 insertions(+), 53 deletions(-) diff --git a/app/Http/Tools/Editor.php b/app/Http/Tools/Editor.php index a5332fa0..b4381c34 100644 --- a/app/Http/Tools/Editor.php +++ b/app/Http/Tools/Editor.php @@ -258,7 +258,7 @@ class Editor //Size of file $file_size = File::size($file_path); //File size handling - if($file_size > get_setting('upload_limit') * 1000000) abort(413); + if($file_size > format_bytes(get_setting('upload_limit')) && get_setting('upload_limit') !== null) abort(413); // If last then process file if ($request->boolean('is_last')) { diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 3044ce28..39f0e33a 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -13,7 +13,7 @@ "/chunks/app-billings.js": "/chunks/app-billings.js?id=56dbf797866f9127c903", "/chunks/app-email.js": "/chunks/app-email.js?id=37d70468d3ede6a2d5c0", "/chunks/app-index.js": "/chunks/app-index.js?id=93085b19900c2dfedad7", - "/chunks/app-others.js": "/chunks/app-others.js?id=96f544cf246b7c83798e", + "/chunks/app-others.js": "/chunks/app-others.js?id=e3429b67edb552370955", "/chunks/app-payments.js": "/chunks/app-payments.js?id=58a7319b7ec435ba7905", "/chunks/app-settings.js": "/chunks/app-settings.js?id=be61c2db5a777bc9564c", "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js": "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js?id=d453042783979afa9e8d", @@ -29,7 +29,7 @@ "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=72998371a634f818fdfd", "/chunks/files.js": "/chunks/files.js?id=3b608964757ef9dda7c6", "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/trash~chunks~3ea7670b.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/trash~chunks~3ea7670b.js?id=93090f58b637eeb86ded", - "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js?id=8972c9075ea16ab0013e", + "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js?id=836be9ce495be50208a5", "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=f78ef9c665238797e92a", "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=4fb27bef1f7595b94047", "/chunks/invoices.js": "/chunks/invoices.js?id=95740d62a1ed253ef2ff", @@ -74,29 +74,5 @@ "/chunks/user-password.js": "/chunks/user-password.js?id=4d9e46c209e88d5f47ab", "/chunks/user-storage.js": "/chunks/user-storage.js?id=fafc88cef747e911e17b", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=106a3b5ccd6d467ac524", - "/chunks/users.js": "/chunks/users.js?id=f213041c6b6095cd03e1", - "/js/main.6d4c9379e93b7fd722dd.hot-update.js": "/js/main.6d4c9379e93b7fd722dd.hot-update.js", - "/js/main.4b15d11dd959b8b3d2db.hot-update.js": "/js/main.4b15d11dd959b8b3d2db.hot-update.js", - "/js/main.7e232f51ea37b33d6e6e.hot-update.js": "/js/main.7e232f51ea37b33d6e6e.hot-update.js", - "/js/main.5112e48fd1fe599851a5.hot-update.js": "/js/main.5112e48fd1fe599851a5.hot-update.js", - "/js/main.0c2a451981e2dd0c1715.hot-update.js": "/js/main.0c2a451981e2dd0c1715.hot-update.js", - "/js/main.cff8a34ed097736a59e1.hot-update.js": "/js/main.cff8a34ed097736a59e1.hot-update.js", - "/js/main.0cdd771e759ea265140e.hot-update.js": "/js/main.0cdd771e759ea265140e.hot-update.js", - "/js/main.69bba4f0cf9c152cc806.hot-update.js": "/js/main.69bba4f0cf9c152cc806.hot-update.js", - "/js/main.881a819d23cee16eb6d7.hot-update.js": "/js/main.881a819d23cee16eb6d7.hot-update.js", - "/js/main.07c2afbdae54b92f6c36.hot-update.js": "/js/main.07c2afbdae54b92f6c36.hot-update.js", - "/js/main.543c3914b4cd8c8a41e7.hot-update.js": "/js/main.543c3914b4cd8c8a41e7.hot-update.js", - "/js/main.2fc14ec56633cef5c01d.hot-update.js": "/js/main.2fc14ec56633cef5c01d.hot-update.js", - "/js/main.2252386941b35f477203.hot-update.js": "/js/main.2252386941b35f477203.hot-update.js", - "/js/main.356bde86b81bb809e395.hot-update.js": "/js/main.356bde86b81bb809e395.hot-update.js", - "/js/main.d07fa64a7eca9af40986.hot-update.js": "/js/main.d07fa64a7eca9af40986.hot-update.js", - "/js/main.db2aca618459d70e657c.hot-update.js": "/js/main.db2aca618459d70e657c.hot-update.js", - "/js/main.cbb6fa78757671216c7f.hot-update.js": "/js/main.cbb6fa78757671216c7f.hot-update.js", - "/js/main.0dda53bffacab5dede99.hot-update.js": "/js/main.0dda53bffacab5dede99.hot-update.js", - "/js/main.e44b21862f6cd329bb3a.hot-update.js": "/js/main.e44b21862f6cd329bb3a.hot-update.js", - "/js/main.8a0ab76eefcf5fa29a20.hot-update.js": "/js/main.8a0ab76eefcf5fa29a20.hot-update.js", - "/js/main.785455fdc69e948b483f.hot-update.js": "/js/main.785455fdc69e948b483f.hot-update.js", - "/js/main.1c424901e55bf50e3480.hot-update.js": "/js/main.1c424901e55bf50e3480.hot-update.js", - "/js/main.0684608c5c2bee18c2b3.hot-update.js": "/js/main.0684608c5c2bee18c2b3.hot-update.js", - "/js/main.cccce713877598037388.hot-update.js": "/js/main.cccce713877598037388.hot-update.js" + "/chunks/users.js": "/chunks/users.js?id=f213041c6b6095cd03e1" } diff --git a/resources/js/components/FilesView/FileItemGrid.vue b/resources/js/components/FilesView/FileItemGrid.vue index 2ce8fc29..887f743d 100644 --- a/resources/js/components/FilesView/FileItemGrid.vue +++ b/resources/js/components/FilesView/FileItemGrid.vue @@ -22,15 +22,15 @@
- + {{ data.mimetype }} - + - + diff --git a/resources/js/components/FilesView/FileItemList.vue b/resources/js/components/FilesView/FileItemList.vue index f32b6585..65585a03 100644 --- a/resources/js/components/FilesView/FileItemList.vue +++ b/resources/js/components/FilesView/FileItemList.vue @@ -16,15 +16,15 @@
- + {{ data.mimetype | limitCharacters }} - + - + diff --git a/resources/js/components/FilesView/FilePreview.vue b/resources/js/components/FilesView/FilePreview.vue index fcae8098..76b792e6 100644 --- a/resources/js/components/FilesView/FilePreview.vue +++ b/resources/js/components/FilesView/FilePreview.vue @@ -1,6 +1,6 @@