mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 08:12:15 +00:00
share routes refactoring
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
APP_NAME=Laravel
|
APP_NAME=Laravel
|
||||||
APP_ENV=local
|
APP_ENV=local
|
||||||
APP_KEY=base64:qO2rFS9MzY3SKl6AqwV1jMAshl9jiaC02VNjXMhrMpo=
|
APP_KEY=base64:z6k1PzCZHXgOlUdNwFJzjKtyxIy8Qczl3POYpk3O94A=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_URL=http://localhost
|
APP_URL=http://localhost
|
||||||
APP_DEMO=false
|
APP_DEMO=false
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"/js/main.js": "/js/main.js",
|
"/js/main.js": "/js/main.js",
|
||||||
"/chunks/request.js": "/chunks/request.js?id=4f2f083839a7f102",
|
"/chunks/request.js": "/chunks/request.js?id=2bbfd08f4a543123",
|
||||||
"/chunks/request-upload.js": "/chunks/request-upload.js?id=1201e261c848a844",
|
"/chunks/request-upload.js": "/chunks/request-upload.js?id=1201e261c848a844",
|
||||||
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
|
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
|
||||||
"/chunks/status-check.js": "/chunks/status-check.js?id=a5ba5fb895af7040",
|
"/chunks/status-check.js": "/chunks/status-check.js?id=a5ba5fb895af7040",
|
||||||
@@ -9,13 +9,13 @@
|
|||||||
"/chunks/environment.js": "/chunks/environment.js?id=e4fdb87ff173d48a",
|
"/chunks/environment.js": "/chunks/environment.js?id=e4fdb87ff173d48a",
|
||||||
"/chunks/app-setup.js": "/chunks/app-setup.js?id=cbe7bfed06400736",
|
"/chunks/app-setup.js": "/chunks/app-setup.js?id=cbe7bfed06400736",
|
||||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=78d257775f5fc485",
|
"/chunks/admin-account.js": "/chunks/admin-account.js?id=78d257775f5fc485",
|
||||||
"/chunks/shared.js": "/chunks/shared.js?id=54c3bc26f2aab8d6",
|
"/chunks/shared.js": "/chunks/shared.js?id=2fd6e7e80c7a6090",
|
||||||
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=ebf193e6828917dc",
|
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=ebf193e6828917dc",
|
||||||
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=e1ca697ccf4363dc",
|
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=f03ab6659c6c1e9b",
|
||||||
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=b5519d193bce2339",
|
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=cd743a710a7dd6b4",
|
||||||
"/chunks/not-found.js": "/chunks/not-found.js?id=d31bd699138cf828",
|
"/chunks/not-found.js": "/chunks/not-found.js?id=d31bd699138cf828",
|
||||||
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=26798085f527d955",
|
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=26798085f527d955",
|
||||||
"/chunks/admin.js": "/chunks/admin.js?id=60aa9e8508a842a1",
|
"/chunks/admin.js": "/chunks/admin.js?id=c9419b333cc023a5",
|
||||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=5ab55a12214433c8",
|
"/chunks/dashboard.js": "/chunks/dashboard.js?id=5ab55a12214433c8",
|
||||||
"/chunks/invoices.js": "/chunks/invoices.js?id=799928609f57ca10",
|
"/chunks/invoices.js": "/chunks/invoices.js?id=799928609f57ca10",
|
||||||
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=a0c4f59d0ec4aee0",
|
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=a0c4f59d0ec4aee0",
|
||||||
@@ -51,18 +51,19 @@
|
|||||||
"/chunks/homepage.js": "/chunks/homepage.js?id=55c3e017e2a12876",
|
"/chunks/homepage.js": "/chunks/homepage.js?id=55c3e017e2a12876",
|
||||||
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=9553d7a2912cb901",
|
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=9553d7a2912cb901",
|
||||||
"/chunks/contact-us.js": "/chunks/contact-us.js?id=ea99d85aa3500595",
|
"/chunks/contact-us.js": "/chunks/contact-us.js?id=ea99d85aa3500595",
|
||||||
|
"/chunks/demo.js": "/chunks/demo.js?id=355303e4230cb5ae",
|
||||||
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=c26cb144101e7c79",
|
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=c26cb144101e7c79",
|
||||||
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=170d814982e1c475",
|
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=170d814982e1c475",
|
||||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=1631a0f4a4ad25c2",
|
"/chunks/sign-in.js": "/chunks/sign-in.js?id=1631a0f4a4ad25c2",
|
||||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=2af6073efe54c560",
|
"/chunks/sign-up.js": "/chunks/sign-up.js?id=2af6073efe54c560",
|
||||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=ff8954243e86c1e1",
|
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=ff8954243e86c1e1",
|
||||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2f0401ee2fc148c4",
|
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2f0401ee2fc148c4",
|
||||||
"/chunks/settings.js": "/chunks/settings.js?id=2f6576332da7cad2",
|
"/chunks/settings.js": "/chunks/settings.js?id=22509bd0c45c0159",
|
||||||
"/chunks/profile.js": "/chunks/profile.js?id=3e24bb5e1f52d4bb",
|
"/chunks/profile.js": "/chunks/profile.js?id=3e24bb5e1f52d4bb",
|
||||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
|
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
|
||||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=ecfee7f7e98204f8",
|
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=ecfee7f7e98204f8",
|
||||||
"/chunks/billing.js": "/chunks/billing.js?id=dd217d680baafb84",
|
"/chunks/billing.js": "/chunks/billing.js?id=dd217d680baafb84",
|
||||||
"/chunks/platform.js": "/chunks/platform.js?id=220943bcb1e9f3ca",
|
"/chunks/platform.js": "/chunks/platform.js?id=a31d808015c4e7ea",
|
||||||
"/chunks/files.js": "/chunks/files.js?id=5f29f35c280e680b",
|
"/chunks/files.js": "/chunks/files.js?id=5f29f35c280e680b",
|
||||||
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=6f43aea38e0927bc",
|
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=6f43aea38e0927bc",
|
||||||
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6e819ffe88a0fd1d",
|
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6e819ffe88a0fd1d",
|
||||||
@@ -71,6 +72,5 @@
|
|||||||
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=e86d3c1f72e6fde2",
|
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=e86d3c1f72e6fde2",
|
||||||
"/chunks/invitation.js": "/chunks/invitation.js?id=424b2783d9785a09",
|
"/chunks/invitation.js": "/chunks/invitation.js?id=424b2783d9785a09",
|
||||||
"/css/tailwind.css": "/css/tailwind.css",
|
"/css/tailwind.css": "/css/tailwind.css",
|
||||||
"/css/app.css": "/css/app.css",
|
"/css/app.css": "/css/app.css"
|
||||||
"/chunks/demo.js": "/chunks/demo.js?id=355303e4230cb5ae"
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ export default {
|
|||||||
// Get route
|
// Get route
|
||||||
let route = {
|
let route = {
|
||||||
RequestUpload: `/api/file-request/${this.$router.currentRoute.params.token}/upload/remote`,
|
RequestUpload: `/api/file-request/${this.$router.currentRoute.params.token}/upload/remote`,
|
||||||
Public: `/api/editor/upload/remote/${this.$router.currentRoute.params.token}`,
|
Public: `/api/sharing/upload/remote/${this.$router.currentRoute.params.token}`,
|
||||||
}[this.$router.currentRoute.name] || '/api/upload/remote'
|
}[this.$router.currentRoute.name] || '/api/upload/remote'
|
||||||
|
|
||||||
let parentId = this.$store.getters.currentFolder
|
let parentId = this.$store.getters.currentFolder
|
||||||
|
|||||||
@@ -890,7 +890,7 @@ export default {
|
|||||||
|
|
||||||
// Get route
|
// Get route
|
||||||
let route = this.$store.getters.sharedDetail
|
let route = this.$store.getters.sharedDetail
|
||||||
? `/api/search/${this.$router.currentRoute.params.token}`
|
? `/api/sharing/search/${this.$router.currentRoute.params.token}`
|
||||||
: '/api/search'
|
: '/api/search'
|
||||||
|
|
||||||
axios
|
axios
|
||||||
|
|||||||
2
resources/js/store/modules/fileBrowser.js
vendored
2
resources/js/store/modules/fileBrowser.js
vendored
@@ -105,7 +105,7 @@ const actions = {
|
|||||||
// Get route
|
// Get route
|
||||||
let route = {
|
let route = {
|
||||||
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/navigation`,
|
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/navigation`,
|
||||||
Public: `/api/browse/navigation/${router.currentRoute.params.token}`,
|
Public: `/api/sharing/navigation/${router.currentRoute.params.token}`,
|
||||||
}[router.currentRoute.name] || '/api/browse/navigation'
|
}[router.currentRoute.name] || '/api/browse/navigation'
|
||||||
|
|
||||||
axios
|
axios
|
||||||
|
|||||||
14
resources/js/store/modules/fileFunctions.js
vendored
14
resources/js/store/modules/fileFunctions.js
vendored
@@ -34,7 +34,7 @@ const actions = {
|
|||||||
|
|
||||||
// Get route
|
// Get route
|
||||||
let route = getters.sharedDetail
|
let route = getters.sharedDetail
|
||||||
? `/api/zip/${router.currentRoute.params.token}?items=${files.join(',')}`
|
? `/api/sharing/zip/${router.currentRoute.params.token}?items=${files.join(',')}`
|
||||||
: `/api/zip?items=${files.join(',')}`
|
: `/api/zip?items=${files.join(',')}`
|
||||||
|
|
||||||
// Download zip
|
// Download zip
|
||||||
@@ -60,14 +60,14 @@ const actions = {
|
|||||||
// Get route
|
// Get route
|
||||||
let route = {
|
let route = {
|
||||||
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/move`,
|
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/move`,
|
||||||
Public: `/api/editor/move/${router.currentRoute.params.token}`,
|
Public: `/api/sharing/move/${router.currentRoute.params.token}`,
|
||||||
}[router.currentRoute.name] || '/api/move'
|
}[router.currentRoute.name] || '/api/move'
|
||||||
|
|
||||||
let moveToId = to_item.data ? to_item.data.id : to_item.id
|
let moveToId = to_item.data ? to_item.data.id : to_item.id
|
||||||
|
|
||||||
axios
|
axios
|
||||||
.post(route, {
|
.post(route, {
|
||||||
to_id: moveToId || null,
|
to_id: moveToId || undefined,
|
||||||
items: itemsToMove,
|
items: itemsToMove,
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
@@ -88,7 +88,7 @@ const actions = {
|
|||||||
// Get route
|
// Get route
|
||||||
let route = {
|
let route = {
|
||||||
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/create-folder`,
|
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/create-folder`,
|
||||||
Public: `/api/editor/create-folder/${router.currentRoute.params.token}`,
|
Public: `/api/sharing/create-folder/${router.currentRoute.params.token}`,
|
||||||
}[router.currentRoute.name] || '/api/create-folder'
|
}[router.currentRoute.name] || '/api/create-folder'
|
||||||
|
|
||||||
axios
|
axios
|
||||||
@@ -127,7 +127,7 @@ const actions = {
|
|||||||
// Get route
|
// Get route
|
||||||
let route = {
|
let route = {
|
||||||
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/rename/${data.id}`,
|
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/rename/${data.id}`,
|
||||||
Public: `/api/editor/rename/${data.id}/${router.currentRoute.params.token}`,
|
Public: `/api/sharing/rename/${data.id}/${router.currentRoute.params.token}`,
|
||||||
}[router.currentRoute.name] || `/api/rename/${data.id}`
|
}[router.currentRoute.name] || `/api/rename/${data.id}`
|
||||||
|
|
||||||
axios
|
axios
|
||||||
@@ -150,7 +150,7 @@ const actions = {
|
|||||||
// Get route
|
// Get route
|
||||||
let route = {
|
let route = {
|
||||||
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/upload/chunks`,
|
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/upload/chunks`,
|
||||||
Public: `/api/editor/upload/chunks/${router.currentRoute.params.token}`,
|
Public: `/api/sharing/upload/chunks/${router.currentRoute.params.token}`,
|
||||||
}[router.currentRoute.name] || '/api/upload/chunks'
|
}[router.currentRoute.name] || '/api/upload/chunks'
|
||||||
|
|
||||||
// Create cancel token for axios cancellation
|
// Create cancel token for axios cancellation
|
||||||
@@ -320,7 +320,7 @@ const actions = {
|
|||||||
// Get route
|
// Get route
|
||||||
let route = {
|
let route = {
|
||||||
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/remove`,
|
RequestUpload: `/api/file-request/${router.currentRoute.params.token}/remove`,
|
||||||
Public: `/api/editor/remove/${router.currentRoute.params.token}`,
|
Public: `/api/sharing/remove/${router.currentRoute.params.token}`,
|
||||||
}[router.currentRoute.name] || '/api/remove'
|
}[router.currentRoute.name] || '/api/remove'
|
||||||
|
|
||||||
axios
|
axios
|
||||||
|
|||||||
4
resources/js/store/modules/sharing.js
vendored
4
resources/js/store/modules/sharing.js
vendored
@@ -25,7 +25,7 @@ const actions = {
|
|||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
axios
|
axios
|
||||||
.get(`/api/browse/folders/${id}/${router.currentRoute.params.token}${getters.sorting.URI}`)
|
.get(`/api/sharing/folders/${id}/${router.currentRoute.params.token}${getters.sorting.URI}`)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
let folders = response.data.folders.data
|
let folders = response.data.folders.data
|
||||||
let files = response.data.files.data
|
let files = response.data.files.data
|
||||||
@@ -50,7 +50,7 @@ const actions = {
|
|||||||
getShareDetail: ({ commit, state }, token) => {
|
getShareDetail: ({ commit, state }, token) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
axios
|
axios
|
||||||
.get(`/api/browse/share/${token}`)
|
.get(`/api/sharing/share/${token}`)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
resolve(response)
|
resolve(response)
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ export default {
|
|||||||
|
|
||||||
// Send request to get verify account
|
// Send request to get verify account
|
||||||
axios
|
axios
|
||||||
.post('/api/browse/authenticate/' + this.$route.params.token, {
|
.post('/api/sharing/authenticate/' + this.$route.params.token, {
|
||||||
password: this.password,
|
password: this.password,
|
||||||
})
|
})
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
axios
|
axios
|
||||||
.get(`/api/browse/file/${this.$router.currentRoute.params.token}`)
|
.get(`/api/sharing/file/${this.$router.currentRoute.params.token}`)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
this.file = response.data
|
this.file = response.data
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Domain\Zip\Controllers\ZipController;
|
use Domain\Zip\Controllers\ZipController;
|
||||||
use Domain\Pages\Controllers\PagesController;
|
|
||||||
use Domain\Sharing\Controllers\ShareController;
|
use Domain\Sharing\Controllers\ShareController;
|
||||||
|
use Domain\Pages\Controllers\ShowPageController;
|
||||||
use Domain\Trash\Controllers\DumpTrashController;
|
use Domain\Trash\Controllers\DumpTrashController;
|
||||||
use App\Users\Controllers\ResetPasswordController;
|
use App\Users\Controllers\ResetPasswordController;
|
||||||
use Domain\Files\Controllers\UploadFileController;
|
use Domain\Files\Controllers\UploadFileController;
|
||||||
@@ -41,7 +41,7 @@ Route::get('/ping', PingAPIController::class);
|
|||||||
Route::get('/config', GetConfigController::class);
|
Route::get('/config', GetConfigController::class);
|
||||||
|
|
||||||
// Pages
|
// Pages
|
||||||
Route::apiResource('/page', PagesController::class);
|
Route::get('/page/{page}', ShowPageController::class);
|
||||||
|
|
||||||
// Homepage
|
// Homepage
|
||||||
Route::post('/contact', SendContactMessageController::class);
|
Route::post('/contact', SendContactMessageController::class);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
use Domain\Sharing\Controllers\ShareController;
|
use Domain\Sharing\Controllers\ShareController;
|
||||||
use Domain\Zip\Controllers\VisitorZipController;
|
use Domain\Zip\Controllers\VisitorZipController;
|
||||||
use Domain\Files\Controllers\VisitorShowFileController;
|
use Domain\Files\Controllers\VisitorShowFileController;
|
||||||
|
use Domain\Files\Controllers\VisitorUploadFileController;
|
||||||
use Domain\Folders\Controllers\VisitorCreateFolderController;
|
use Domain\Folders\Controllers\VisitorCreateFolderController;
|
||||||
use Domain\Sharing\Controllers\WebCrawlerOpenGraphController;
|
use Domain\Sharing\Controllers\WebCrawlerOpenGraphController;
|
||||||
use Domain\Browsing\Controllers\VisitorBrowseFolderController;
|
use Domain\Browsing\Controllers\VisitorBrowseFolderController;
|
||||||
@@ -15,29 +16,26 @@ use Domain\Folders\Controllers\VisitorNavigationFolderTreeController;
|
|||||||
use Domain\RemoteUpload\Controllers\VisitorRemoteUploadFileController;
|
use Domain\RemoteUpload\Controllers\VisitorRemoteUploadFileController;
|
||||||
use Domain\Browsing\Controllers\VisitorSearchFilesAndFoldersController;
|
use Domain\Browsing\Controllers\VisitorSearchFilesAndFoldersController;
|
||||||
|
|
||||||
// Browse functions
|
// Creating
|
||||||
Route::group(['prefix' => 'editor'], function () {
|
Route::post('/upload/remote/{shared}', VisitorRemoteUploadFileController::class);
|
||||||
Route::post('/upload/remote/{shared}', VisitorRemoteUploadFileController::class);
|
Route::post('/upload/chunks/{shared}', VisitorUploadFileChunksController::class);
|
||||||
Route::post('/upload/chunks/{shared}', VisitorUploadFileChunksController::class);
|
Route::post('/upload/{shared}', VisitorUploadFileController::class);
|
||||||
|
|
||||||
Route::post('/create-folder/{shared}', VisitorCreateFolderController::class);
|
Route::post('/create-folder/{shared}', VisitorCreateFolderController::class);
|
||||||
|
|
||||||
Route::patch('/rename/{id}/{shared}', VisitorRenameFileOrFolderController::class);
|
// Editing
|
||||||
Route::post('/remove/{shared}', VisitorDeleteFileOrFolderController::class);
|
Route::patch('/rename/{id}/{shared}', VisitorRenameFileOrFolderController::class);
|
||||||
Route::post('/move/{shared}', VisitorMoveFileOrFolderController::class);
|
Route::post('/remove/{shared}', VisitorDeleteFileOrFolderController::class);
|
||||||
});
|
Route::post('/move/{shared}', VisitorMoveFileOrFolderController::class);
|
||||||
|
|
||||||
// Zip shared items
|
|
||||||
Route::get('/zip/{shared}', VisitorZipController::class);
|
|
||||||
|
|
||||||
// Browse share content
|
// Browse share content
|
||||||
Route::group(['prefix' => 'browse'], function () {
|
Route::post('/authenticate/{shared}', VisitorUnlockLockedShareController::class);
|
||||||
Route::post('/authenticate/{shared}', VisitorUnlockLockedShareController::class);
|
Route::get('/navigation/{shared}', VisitorNavigationFolderTreeController::class);
|
||||||
Route::get('/navigation/{shared}', VisitorNavigationFolderTreeController::class);
|
Route::get('/folders/{id}/{shared}', VisitorBrowseFolderController::class);
|
||||||
Route::get('/folders/{id}/{shared}', VisitorBrowseFolderController::class);
|
Route::get('/file/{shared}', VisitorShowFileController::class);
|
||||||
Route::get('/file/{shared}', VisitorShowFileController::class);
|
Route::get('/share/{share}', [ShareController::class, 'show']);
|
||||||
Route::get('/share/{share}', [ShareController::class, 'show']);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
// Others
|
||||||
Route::get('/search/{shared}', VisitorSearchFilesAndFoldersController::class);
|
Route::get('/search/{shared}', VisitorSearchFilesAndFoldersController::class);
|
||||||
Route::get('/og-site/{share}', WebCrawlerOpenGraphController::class);
|
Route::get('/og-site/{share}', WebCrawlerOpenGraphController::class);
|
||||||
|
Route::get('/zip/{shared}', VisitorZipController::class);
|
||||||
|
|||||||
@@ -51,9 +51,12 @@ class Handler extends ExceptionHandler
|
|||||||
{
|
{
|
||||||
if ($exception instanceof ModelNotFoundException) {
|
if ($exception instanceof ModelNotFoundException) {
|
||||||
if (in_array('application/json', $request->getAcceptableContentTypes())) {
|
if (in_array('application/json', $request->getAcceptableContentTypes())) {
|
||||||
|
// Get ids
|
||||||
|
$ids = implode(', ', $exception->getIds());
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'type' => 'error',
|
'type' => 'error',
|
||||||
'message' => "We couldn't find your requested item.",
|
'message' => "We couldn't find the resource you requested with id $ids",
|
||||||
], 404);
|
], 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
->middleware('api')
|
->middleware('api')
|
||||||
->group(base_path('routes/api.php'));
|
->group(base_path('routes/api.php'));
|
||||||
|
|
||||||
Route::prefix('api')
|
Route::prefix('api/sharing')
|
||||||
->middleware('api')
|
->middleware('api')
|
||||||
->group(base_path('routes/share.php'));
|
->group(base_path('routes/share.php'));
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ namespace Domain\Browsing\Controllers;
|
|||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use Domain\Files\Resources\FilesCollection;
|
use Domain\Files\Resources\FilesCollection;
|
||||||
use Domain\Folders\Resources\FolderResource;
|
use Domain\Folders\Resources\FolderResource;
|
||||||
use Domain\Folders\Resources\FolderCollection;
|
use Domain\Folders\Resources\FolderCollection;
|
||||||
@@ -24,7 +25,7 @@ class VisitorBrowseFolderController
|
|||||||
public function __invoke(
|
public function __invoke(
|
||||||
string $id,
|
string $id,
|
||||||
Share $shared,
|
Share $shared,
|
||||||
): array {
|
): JsonResponse {
|
||||||
// Check ability to access protected share record
|
// Check ability to access protected share record
|
||||||
($this->protectShareRecord)($shared);
|
($this->protectShareRecord)($shared);
|
||||||
|
|
||||||
@@ -48,10 +49,10 @@ class VisitorBrowseFolderController
|
|||||||
// Set thumbnail links for public files
|
// Set thumbnail links for public files
|
||||||
$files->map(fn ($file) => $file->setSharedPublicUrl($shared->token));
|
$files->map(fn ($file) => $file->setSharedPublicUrl($shared->token));
|
||||||
|
|
||||||
return [
|
return response()->json([
|
||||||
'folders' => new FolderCollection($folders),
|
'folders' => new FolderCollection($folders),
|
||||||
'files' => new FilesCollection($files),
|
'files' => new FilesCollection($files),
|
||||||
'root' => new FolderResource($requestedFolder),
|
'root' => new FolderResource($requestedFolder),
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ use Illuminate\Http\Request;
|
|||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Files\Resources\FilesCollection;
|
use Domain\Files\Resources\FilesCollection;
|
||||||
use Domain\Folders\Resources\FolderCollection;
|
use Domain\Folders\Resources\FolderCollection;
|
||||||
@@ -24,7 +25,7 @@ class VisitorSearchFilesAndFoldersController extends Controller
|
|||||||
public function __invoke(
|
public function __invoke(
|
||||||
Request $request,
|
Request $request,
|
||||||
Share $shared,
|
Share $shared,
|
||||||
): array {
|
): JsonResponse {
|
||||||
// Check ability to access protected share record
|
// Check ability to access protected share record
|
||||||
($this->protectShareRecord)($shared);
|
($this->protectShareRecord)($shared);
|
||||||
|
|
||||||
@@ -70,9 +71,9 @@ class VisitorSearchFilesAndFoldersController extends Controller
|
|||||||
->take(3);
|
->take(3);
|
||||||
|
|
||||||
// Collect folders and files to single array
|
// Collect folders and files to single array
|
||||||
return [
|
return response()->json([
|
||||||
'folders' => new FolderCollection($folders),
|
'folders' => new FolderCollection($folders),
|
||||||
'files' => new FilesCollection($files),
|
'files' => new FilesCollection($files),
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ namespace Domain\Files\Controllers;
|
|||||||
|
|
||||||
use Gate;
|
use Gate;
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use Domain\Files\Resources\FileResource;
|
use Domain\Files\Resources\FileResource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -14,7 +14,7 @@ class VisitorShowFileController
|
|||||||
{
|
{
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
Share $shared
|
Share $shared
|
||||||
): Response {
|
): JsonResponse {
|
||||||
$file = File::whereUserId($shared->user_id)
|
$file = File::whereUserId($shared->user_id)
|
||||||
->whereId($shared->item_id)
|
->whereId($shared->item_id)
|
||||||
->firstOrFail();
|
->firstOrFail();
|
||||||
@@ -24,6 +24,6 @@ class VisitorShowFileController
|
|||||||
// Set access urls
|
// Set access urls
|
||||||
$file->setSharedPublicUrl($shared->token);
|
$file->setSharedPublicUrl($shared->token);
|
||||||
|
|
||||||
return response(new FileResource($file), 200);
|
return response()->json(new FileResource($file));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,12 @@ class VisitorUploadFileChunksController extends Controller
|
|||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (is_visitor($shared)) {
|
if (is_visitor($shared)) {
|
||||||
abort(403);
|
return response()->json(accessDeniedError(), 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add default parent id if missing
|
||||||
|
if ($request->missing('parent_id')) {
|
||||||
|
$request->merge(['parent_id' => $shared->item_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check access to requested directory
|
// Check access to requested directory
|
||||||
|
|||||||
73
src/Domain/Files/Controllers/VisitorUploadFileController.php
Normal file
73
src/Domain/Files/Controllers/VisitorUploadFileController.php
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
<?php
|
||||||
|
namespace Domain\Files\Controllers;
|
||||||
|
|
||||||
|
use Str;
|
||||||
|
use Storage;
|
||||||
|
use Domain\Sharing\Models\Share;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Domain\Files\Resources\FileResource;
|
||||||
|
use Domain\Files\Actions\ProcessFileAction;
|
||||||
|
use Domain\Files\Requests\UploadFileRequest;
|
||||||
|
use Support\Demo\Actions\FakeUploadFileAction;
|
||||||
|
use Domain\Files\Actions\StoreFileChunksAction;
|
||||||
|
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||||
|
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
||||||
|
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* guest user upload file into shared folder
|
||||||
|
*/
|
||||||
|
class VisitorUploadFileController extends Controller
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public ProcessFileAction $processFie,
|
||||||
|
public StoreFileChunksAction $storeFileChunks,
|
||||||
|
private FakeUploadFileAction $fakeUploadFile,
|
||||||
|
private ProtectShareRecordAction $protectShareRecord,
|
||||||
|
private VerifyAccessToItemAction $verifyAccessToItem,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws FileNotFoundException
|
||||||
|
*/
|
||||||
|
public function __invoke(
|
||||||
|
UploadFileRequest $request,
|
||||||
|
Share $shared,
|
||||||
|
): JsonResponse {
|
||||||
|
if (isDemoAccount()) {
|
||||||
|
return response()->json(($this->fakeUploadFile)($request), 201);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check ability to access protected share record
|
||||||
|
($this->protectShareRecord)($shared);
|
||||||
|
|
||||||
|
// Check shared permission
|
||||||
|
if (is_visitor($shared)) {
|
||||||
|
return response()->json(accessDeniedError(), 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add default parent id if missing
|
||||||
|
if ($request->missing('parent_id')) {
|
||||||
|
$request->merge(['parent_id' => $shared->item_id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check access to requested directory
|
||||||
|
($this->verifyAccessToItem)($request->input('parent_id'), $shared);
|
||||||
|
|
||||||
|
// Get file name
|
||||||
|
$name = Str::uuid() . '.' . $request->input('extension');
|
||||||
|
|
||||||
|
// Put file to user directory
|
||||||
|
Storage::disk('local')->put("files/$shared->user_id/$name", $request->file('file')->get());
|
||||||
|
|
||||||
|
// Process file
|
||||||
|
$file = ($this->processFie)($request, $shared->user, $name);
|
||||||
|
|
||||||
|
// Set public access url
|
||||||
|
$file->setSharedPublicUrl($shared->token);
|
||||||
|
|
||||||
|
return response()->json(new FileResource($file), 201);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Folders\Controllers;
|
namespace Domain\Folders\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Folders\Resources\FolderResource;
|
use Domain\Folders\Resources\FolderResource;
|
||||||
use Domain\Folders\Actions\CreateFolderAction;
|
use Domain\Folders\Actions\CreateFolderAction;
|
||||||
@@ -28,11 +28,11 @@ class VisitorCreateFolderController extends Controller
|
|||||||
public function __invoke(
|
public function __invoke(
|
||||||
CreateFolderRequest $request,
|
CreateFolderRequest $request,
|
||||||
Share $shared,
|
Share $shared,
|
||||||
): Response | array {
|
): JsonResponse {
|
||||||
if (isDemoAccount()) {
|
if (isDemoAccount()) {
|
||||||
$fakeFolder = ($this->fakeCreateFolder)($request);
|
$fakeFolder = ($this->fakeCreateFolder)($request);
|
||||||
|
|
||||||
return response(new FolderResource($fakeFolder), 201);
|
return response()->json(new FolderResource($fakeFolder), 201);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check ability to access protected share record
|
// Check ability to access protected share record
|
||||||
@@ -40,21 +40,26 @@ class VisitorCreateFolderController extends Controller
|
|||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (is_visitor($shared)) {
|
if (is_visitor($shared)) {
|
||||||
abort(403);
|
return response()->json(accessDeniedError(), 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add default parent id if missing
|
||||||
|
if ($request->missing('parent_id')) {
|
||||||
|
$request->merge(['parent_id' => $shared->item_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check access to requested directory
|
// Check access to requested directory
|
||||||
($this->verifyAccessToItem)($request->parent_id, $shared);
|
($this->verifyAccessToItem)($request->input('parent_id'), $shared);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Create new folder
|
// Create new folder
|
||||||
$folder = ($this->createFolder)($request, $shared);
|
$folder = ($this->createFolder)($request, $shared);
|
||||||
|
|
||||||
// Return new folder
|
// Return new folder
|
||||||
return response(new FolderResource($folder), 201);
|
return response()->json(new FolderResource($folder), 201);
|
||||||
} catch (InvalidUserActionException $e) {
|
} catch (InvalidUserActionException $e) {
|
||||||
// Return error response
|
// Return error response
|
||||||
return response([
|
return response()->json([
|
||||||
'type' => 'error',
|
'type' => 'error',
|
||||||
'message' => $e->getMessage(),
|
'message' => $e->getMessage(),
|
||||||
], 401);
|
], 401);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ namespace Domain\Folders\Controllers;
|
|||||||
|
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||||
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
||||||
@@ -20,7 +21,7 @@ class VisitorNavigationFolderTreeController extends Controller
|
|||||||
|
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
Share $shared,
|
Share $shared,
|
||||||
): array {
|
): JsonResponse {
|
||||||
// Check ability to access protected share record
|
// Check ability to access protected share record
|
||||||
($this->protectShareRecord)($shared);
|
($this->protectShareRecord)($shared);
|
||||||
|
|
||||||
@@ -34,7 +35,7 @@ class VisitorNavigationFolderTreeController extends Controller
|
|||||||
->sortable()
|
->sortable()
|
||||||
->get(['id', 'parent_id', 'id', 'name']);
|
->get(['id', 'parent_id', 'id', 'name']);
|
||||||
|
|
||||||
return [
|
return response()->json([
|
||||||
[
|
[
|
||||||
'name' => __t('home'),
|
'name' => __t('home'),
|
||||||
'location' => 'public',
|
'location' => 'public',
|
||||||
@@ -42,6 +43,6 @@ class VisitorNavigationFolderTreeController extends Controller
|
|||||||
'isMovable' => true,
|
'isMovable' => true,
|
||||||
'isOpen' => true,
|
'isOpen' => true,
|
||||||
],
|
],
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Homepage\Controllers;
|
namespace Domain\Homepage\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\JsonResponse;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Support\Facades\Mail;
|
use Illuminate\Support\Facades\Mail;
|
||||||
use Domain\Homepage\Mail\SendContactMessage;
|
use Domain\Homepage\Mail\SendContactMessage;
|
||||||
@@ -14,17 +14,22 @@ class SendContactMessageController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
SendContactMessageRequest $request
|
SendContactMessageRequest $request
|
||||||
): Response {
|
): JsonResponse {
|
||||||
// Abort in demo mode
|
$message = [
|
||||||
abort_if(is_demo(), 201, 'Done');
|
'type' => 'success',
|
||||||
|
'message' => 'The message was successfully send',
|
||||||
|
];
|
||||||
|
|
||||||
$contactEmail = get_settings('contact_email');
|
// Return success in demo mode
|
||||||
|
if (is_demo()) {
|
||||||
if ($contactEmail) {
|
return response()->json($message);
|
||||||
Mail::to($contactEmail)
|
|
||||||
->send(new SendContactMessage($request->all()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return response('Done', 201);
|
// Get contact mail
|
||||||
|
if ($contactEmail = get_settings('contact_email')) {
|
||||||
|
Mail::to($contactEmail)->send(new SendContactMessage($request->all()));
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json($message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Items\Controllers;
|
namespace Domain\Items\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Items\Requests\DeleteItemRequest;
|
use Domain\Items\Requests\DeleteItemRequest;
|
||||||
use Domain\Items\Actions\DeleteFileOrFolderAction;
|
use Domain\Items\Actions\DeleteFileOrFolderAction;
|
||||||
@@ -22,14 +22,19 @@ class VisitorDeleteFileOrFolderController extends Controller
|
|||||||
public function __invoke(
|
public function __invoke(
|
||||||
DeleteItemRequest $request,
|
DeleteItemRequest $request,
|
||||||
Share $shared,
|
Share $shared,
|
||||||
): Response {
|
): JsonResponse {
|
||||||
|
$message = [
|
||||||
|
'type' => 'success',
|
||||||
|
'message' => 'Items was successfully deleted.',
|
||||||
|
];
|
||||||
|
|
||||||
if (isDemoAccount()) {
|
if (isDemoAccount()) {
|
||||||
abort(204, 'Done.');
|
return response()->json($message, 204);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (is_visitor($shared)) {
|
if (is_visitor($shared)) {
|
||||||
abort(403);
|
return response()->json(accessDeniedError(), 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($request->input('items') as $file) {
|
foreach ($request->input('items') as $file) {
|
||||||
@@ -47,6 +52,6 @@ class VisitorDeleteFileOrFolderController extends Controller
|
|||||||
($this->deleteFileOrFolder)($file, $file['id'], $shared);
|
($this->deleteFileOrFolder)($file, $file['id'], $shared);
|
||||||
}
|
}
|
||||||
|
|
||||||
return response('Done', 204);
|
return response()->json($message, 204);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
namespace Domain\Items\Controllers;
|
namespace Domain\Items\Controllers;
|
||||||
|
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Items\Requests\MoveItemRequest;
|
use Domain\Items\Requests\MoveItemRequest;
|
||||||
use Domain\Items\Actions\MoveFileOrFolderAction;
|
use Domain\Items\Actions\MoveFileOrFolderAction;
|
||||||
@@ -23,14 +23,24 @@ class VisitorMoveFileOrFolderController extends Controller
|
|||||||
public function __invoke(
|
public function __invoke(
|
||||||
MoveItemRequest $request,
|
MoveItemRequest $request,
|
||||||
Share $shared,
|
Share $shared,
|
||||||
): Response {
|
): JsonResponse {
|
||||||
|
$successMessage = [
|
||||||
|
'type' => 'success',
|
||||||
|
'message' => 'Items was successfully moved.',
|
||||||
|
];
|
||||||
|
|
||||||
if (isDemoAccount()) {
|
if (isDemoAccount()) {
|
||||||
abort(204, 'Done.');
|
return response()->json($successMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (is_visitor($shared)) {
|
if (is_visitor($shared)) {
|
||||||
abort(403);
|
return response()->json(accessDeniedError(), 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add default parent id if missing
|
||||||
|
if ($request->missing('to_id')) {
|
||||||
|
$request->merge(['to_id' => $shared->item_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($request->input('items') as $item) {
|
foreach ($request->input('items') as $item) {
|
||||||
@@ -53,6 +63,6 @@ class VisitorMoveFileOrFolderController extends Controller
|
|||||||
|
|
||||||
($this->moveFileOrFolder)($request, $shared);
|
($this->moveFileOrFolder)($request, $shared);
|
||||||
|
|
||||||
return response('Done.', 204);
|
return response()->json($successMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Items\Controllers;
|
namespace Domain\Items\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Files\Resources\FileResource;
|
use Domain\Files\Resources\FileResource;
|
||||||
use Domain\Folders\Resources\FolderResource;
|
use Domain\Folders\Resources\FolderResource;
|
||||||
@@ -29,15 +29,15 @@ class VisitorRenameFileOrFolderController extends Controller
|
|||||||
RenameItemRequest $request,
|
RenameItemRequest $request,
|
||||||
string $id,
|
string $id,
|
||||||
Share $shared,
|
Share $shared,
|
||||||
): Response | array {
|
): JsonResponse {
|
||||||
// Return fake renamed item in demo
|
// Return fake renamed item in demo
|
||||||
if (isDemoAccount()) {
|
if (isDemoAccount()) {
|
||||||
return ($this->fakeRenameFileOrFolder)($request, $id);
|
return response()->json(($this->fakeRenameFileOrFolder)($request, $id));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (is_visitor($shared)) {
|
if (is_visitor($shared)) {
|
||||||
abort(403);
|
return response()->json(accessDeniedError(), 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get file|folder item
|
// Get file|folder item
|
||||||
@@ -64,10 +64,10 @@ class VisitorRenameFileOrFolderController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($request->input('type') === 'folder') {
|
if ($request->input('type') === 'folder') {
|
||||||
return response(new FolderResource($item), 201);
|
return response()->json(new FolderResource($item), 201);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return updated item
|
// Return updated item
|
||||||
return response(new FileResource($item), 201);
|
return response()->json(new FileResource($item), 201);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,16 +2,17 @@
|
|||||||
namespace Domain\Pages\Controllers;
|
namespace Domain\Pages\Controllers;
|
||||||
|
|
||||||
use Domain\Pages\Models\Page;
|
use Domain\Pages\Models\Page;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Pages\Resources\PageResource;
|
use Domain\Pages\Resources\PageResource;
|
||||||
|
|
||||||
class PagesController extends Controller
|
class ShowPageController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Get single page content
|
* Get single page content
|
||||||
*/
|
*/
|
||||||
public function show(Page $page): PageResource
|
public function __invoke(Page $page): JsonResponse
|
||||||
{
|
{
|
||||||
return new PageResource($page);
|
return response()->json(new PageResource($page));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -18,8 +18,10 @@ class VisitorRemoteUploadFileController extends Controller
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __invoke(RemoteUploadRequest $request, ?Share $shared = null): JsonResponse
|
public function __invoke(
|
||||||
{
|
RemoteUploadRequest $request,
|
||||||
|
?Share $shared = null,
|
||||||
|
): JsonResponse {
|
||||||
$successMessage = [
|
$successMessage = [
|
||||||
'type' => 'success',
|
'type' => 'success',
|
||||||
'message' => 'Files was successfully uploaded.',
|
'message' => 'Files was successfully uploaded.',
|
||||||
@@ -30,7 +32,12 @@ class VisitorRemoteUploadFileController extends Controller
|
|||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (is_visitor($shared)) {
|
if (is_visitor($shared)) {
|
||||||
abort(403, "You don't have access to this item");
|
return response()->json(accessDeniedError(), 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add default parent id if missing
|
||||||
|
if ($request->missing('parent_id')) {
|
||||||
|
$request->merge(['parent_id' => $shared->item_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check access to requested directory
|
// Check access to requested directory
|
||||||
|
|||||||
@@ -5,14 +5,19 @@ use Domain\Sharing\Models\Share;
|
|||||||
|
|
||||||
class ProtectShareRecordAction
|
class ProtectShareRecordAction
|
||||||
{
|
{
|
||||||
private string $message = "Sorry, you don't have permission";
|
|
||||||
|
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
Share $shared
|
Share $shared
|
||||||
): void {
|
): void {
|
||||||
if ($shared->is_protected) {
|
if ($shared->is_protected) {
|
||||||
|
$errorResponse = [
|
||||||
|
'type' => 'error',
|
||||||
|
'message' => "Sorry, you don't have permission",
|
||||||
|
];
|
||||||
|
|
||||||
if (! request()->hasCookie('share_session')) {
|
if (! request()->hasCookie('share_session')) {
|
||||||
abort(403, $this->message);
|
abort(
|
||||||
|
response()->json($errorResponse, 403)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get shared session
|
// Get shared session
|
||||||
@@ -22,12 +27,16 @@ class ProtectShareRecordAction
|
|||||||
|
|
||||||
// Check if is requested same share record
|
// Check if is requested same share record
|
||||||
if ($share_session->token !== $shared->token) {
|
if ($share_session->token !== $shared->token) {
|
||||||
abort(403, $this->message);
|
abort(
|
||||||
|
response()->json($errorResponse, 403)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if share record was authenticated previously via ShareController@authenticate
|
// Check if share record was authenticated previously via ShareController@authenticate
|
||||||
if (! $share_session->authenticated) {
|
if (! $share_session->authenticated) {
|
||||||
abort(403, $this->message);
|
abort(
|
||||||
|
response()->json($errorResponse, 403)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ class ShareController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function show(
|
public function show(
|
||||||
Share $share,
|
Share $share,
|
||||||
): ShareResource {
|
): JsonResponse {
|
||||||
return new ShareResource($share);
|
return response()->json(new ShareResource($share));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ namespace Domain\Sharing\Controllers;
|
|||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Illuminate\Contracts\View\View;
|
use Illuminate\Contracts\View\View;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Contracts\View\Factory;
|
|
||||||
use Illuminate\Contracts\Foundation\Application;
|
|
||||||
|
|
||||||
class WebCrawlerOpenGraphController extends Controller
|
class WebCrawlerOpenGraphController extends Controller
|
||||||
{
|
{
|
||||||
@@ -14,7 +12,7 @@ class WebCrawlerOpenGraphController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
Share $share
|
Share $share
|
||||||
): Application|Factory|View {
|
): View {
|
||||||
$namespace = match ($share->type) {
|
$namespace = match ($share->type) {
|
||||||
'folder' => 'Domain\\Folders\\Models\\Folder',
|
'folder' => 'Domain\\Folders\\Models\\Folder',
|
||||||
'file' => 'Domain\\Files\\Models\\File',
|
'file' => 'Domain\\Files\\Models\\File',
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ class HomepageTest extends TestCase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$this
|
$this
|
||||||
->get("/api/og-site/$share->token")
|
->get("/api/sharing/og-site/$share->token")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertSee('Folder Title');
|
->assertSee('Folder Title');
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@ class HomepageTest extends TestCase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$this
|
$this
|
||||||
->get("/api/og-site/$share->token")
|
->get("/api/sharing/og-site/$share->token")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertSee('Fake Image')
|
->assertSee('Fake Image')
|
||||||
->assertSee('lg-fake-image.jpg');
|
->assertSee('lg-fake-image.jpg');
|
||||||
@@ -132,7 +132,7 @@ class HomepageTest extends TestCase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$this
|
$this
|
||||||
->get("/api/og-site/$share->token")
|
->get("/api/sharing/og-site/$share->token")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertSee('This link is protected by password');
|
->assertSee('This link is protected by password');
|
||||||
}
|
}
|
||||||
@@ -153,7 +153,7 @@ class HomepageTest extends TestCase
|
|||||||
'email' => 'john@doe.com',
|
'email' => 'john@doe.com',
|
||||||
'message' => 'Whaats is up!',
|
'message' => 'Whaats is up!',
|
||||||
])
|
])
|
||||||
->assertStatus(201);
|
->assertStatus(200);
|
||||||
|
|
||||||
Mail::assertSent(SendContactMessage::class);
|
Mail::assertSent(SendContactMessage::class);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ class VisitorAccessToItemsTest extends TestCase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
// Get share record
|
// Get share record
|
||||||
$this->get("/api/browse/file/$share->token")
|
$this->get("/api/sharing/file/$share->token")
|
||||||
->assertStatus(403);
|
->assertStatus(403);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ class VisitorBrowseTest extends TestCase
|
|||||||
'password' => bcrypt('secret'),
|
'password' => bcrypt('secret'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->postJson("/api/browse/authenticate/$share->token", [
|
$this->postJson("/api/sharing/authenticate/$share->token", [
|
||||||
'password' => 'secret',
|
'password' => 'secret',
|
||||||
])
|
])
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
@@ -120,7 +120,7 @@ class VisitorBrowseTest extends TestCase
|
|||||||
'password' => bcrypt('secret'),
|
'password' => bcrypt('secret'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->postJson("/api/browse/authenticate/$share->token", [
|
$this->postJson("/api/sharing/authenticate/$share->token", [
|
||||||
'password' => 'bad-password',
|
'password' => 'bad-password',
|
||||||
])
|
])
|
||||||
->assertStatus(401)
|
->assertStatus(401)
|
||||||
@@ -298,14 +298,14 @@ class VisitorBrowseTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->withUnencryptedCookies($cookie)
|
->withUnencryptedCookies($cookie)
|
||||||
->get("/api/browse/navigation/$share->token")
|
->get("/api/sharing/navigation/$share->token")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertExactJson($tree);
|
->assertExactJson($tree);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->getJson("/api/browse/navigation/$share->token")
|
$this->getJson("/api/sharing/navigation/$share->token")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertExactJson($tree);
|
->assertExactJson($tree);
|
||||||
}
|
}
|
||||||
@@ -348,7 +348,7 @@ class VisitorBrowseTest extends TestCase
|
|||||||
])];
|
])];
|
||||||
|
|
||||||
$this->withUnencryptedCookies($cookie)
|
$this->withUnencryptedCookies($cookie)
|
||||||
->get("/api/search/$share->token?query=doc")
|
->get("/api/sharing/search/$share->token?query=doc")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'id' => $file->id,
|
'id' => $file->id,
|
||||||
@@ -357,7 +357,7 @@ class VisitorBrowseTest extends TestCase
|
|||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->getJson("/api/search/$share->token?query=doc")
|
$this->getJson("/api/sharing/search/$share->token?query=doc")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'id' => $file->id,
|
'id' => $file->id,
|
||||||
@@ -401,14 +401,14 @@ class VisitorBrowseTest extends TestCase
|
|||||||
])];
|
])];
|
||||||
|
|
||||||
$this->withUnencryptedCookies($cookie)
|
$this->withUnencryptedCookies($cookie)
|
||||||
->get("/api/search/$share->token?query=doc")
|
->get("/api/sharing/search/$share->token?query=doc")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([]);
|
->assertJsonFragment([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->getJson("/api/search/$share->token?query=doc")
|
$this->getJson("/api/sharing/search/$share->token?query=doc")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([]);
|
->assertJsonFragment([]);
|
||||||
}
|
}
|
||||||
@@ -446,7 +446,7 @@ class VisitorBrowseTest extends TestCase
|
|||||||
])];
|
])];
|
||||||
|
|
||||||
$this->withUnencryptedCookies($cookie)
|
$this->withUnencryptedCookies($cookie)
|
||||||
->get("/api/browse/file/$share->token")
|
->get("/api/sharing/file/$share->token")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'name' => 'Document',
|
'name' => 'Document',
|
||||||
@@ -455,7 +455,7 @@ class VisitorBrowseTest extends TestCase
|
|||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->getJson("/api/browse/file/$share->token")
|
$this->getJson("/api/sharing/file/$share->token")
|
||||||
->assertStatus(200)
|
->assertStatus(200)
|
||||||
->assertJsonFragment([
|
->assertJsonFragment([
|
||||||
'name' => 'Document',
|
'name' => 'Document',
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->withUnencryptedCookies($cookie)
|
->withUnencryptedCookies($cookie)
|
||||||
->patch("/api/editor/rename/{$file->id}/$share->token", [
|
->patch("/api/sharing/rename/{$file->id}/$share->token", [
|
||||||
'name' => 'Renamed Item',
|
'name' => 'Renamed Item',
|
||||||
'type' => 'file',
|
'type' => 'file',
|
||||||
])
|
])
|
||||||
@@ -64,7 +64,7 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->patchJson("/api/editor/rename/{$file->id}/$share->token", [
|
$this->patchJson("/api/sharing/rename/{$file->id}/$share->token", [
|
||||||
'name' => 'Renamed Item',
|
'name' => 'Renamed Item',
|
||||||
'type' => 'file',
|
'type' => 'file',
|
||||||
])
|
])
|
||||||
@@ -122,7 +122,7 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->withUnencryptedCookies($cookie)
|
->withUnencryptedCookies($cookie)
|
||||||
->patch("/api/editor/rename/{$children->id}/$share->token", [
|
->patch("/api/sharing/rename/{$children->id}/$share->token", [
|
||||||
'name' => 'Renamed Folder',
|
'name' => 'Renamed Folder',
|
||||||
'type' => 'folder',
|
'type' => 'folder',
|
||||||
])
|
])
|
||||||
@@ -134,7 +134,7 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->patchJson("/api/editor/rename/{$children->id}/$share->token", [
|
$this->patchJson("/api/sharing/rename/{$children->id}/$share->token", [
|
||||||
'name' => 'Renamed Folder',
|
'name' => 'Renamed Folder',
|
||||||
'type' => 'folder',
|
'type' => 'folder',
|
||||||
])
|
])
|
||||||
@@ -186,7 +186,7 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->withUnencryptedCookies($cookie)
|
->withUnencryptedCookies($cookie)
|
||||||
->post("/api/editor/create-folder/$share->token", [
|
->post("/api/sharing/create-folder/$share->token", [
|
||||||
'name' => 'Awesome New Folder',
|
'name' => 'Awesome New Folder',
|
||||||
'parent_id' => $folder->id,
|
'parent_id' => $folder->id,
|
||||||
])
|
])
|
||||||
@@ -198,7 +198,7 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->postJson("/api/editor/create-folder/$share->token", [
|
$this->postJson("/api/sharing/create-folder/$share->token", [
|
||||||
'name' => 'Awesome New Folder',
|
'name' => 'Awesome New Folder',
|
||||||
'parent_id' => $folder->id,
|
'parent_id' => $folder->id,
|
||||||
])
|
])
|
||||||
@@ -272,13 +272,13 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->withUnencryptedCookies($cookie)
|
->withUnencryptedCookies($cookie)
|
||||||
->post("/api/editor/remove/$share->token", $payload)
|
->post("/api/sharing/remove/$share->token", $payload)
|
||||||
->assertStatus(204);
|
->assertStatus(204);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->postJson("/api/editor/remove/$share->token", $payload)
|
$this->postJson("/api/sharing/remove/$share->token", $payload)
|
||||||
->assertStatus(204);
|
->assertStatus(204);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -329,7 +329,7 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->withUnencryptedCookies($cookie)
|
->withUnencryptedCookies($cookie)
|
||||||
->post("/api/editor/upload/chunks/$share->token", [
|
->post("/api/sharing/upload/chunks/$share->token", [
|
||||||
'name' => $file->name,
|
'name' => $file->name,
|
||||||
'extension' => 'pdf',
|
'extension' => 'pdf',
|
||||||
'chunk' => $file,
|
'chunk' => $file,
|
||||||
@@ -340,7 +340,7 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->postJson("/api/editor/upload/chunks/$share->token", [
|
$this->postJson("/api/sharing/upload/chunks/$share->token", [
|
||||||
'name' => $file->name,
|
'name' => $file->name,
|
||||||
'extension' => 'pdf',
|
'extension' => 'pdf',
|
||||||
'chunk' => $file,
|
'chunk' => $file,
|
||||||
@@ -414,14 +414,14 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->withUnencryptedCookies($cookie)
|
->withUnencryptedCookies($cookie)
|
||||||
->post("/api/editor/move/$share->token", $payload)
|
->post("/api/sharing/move/$share->token", $payload)
|
||||||
->assertStatus(204);
|
->assertStatus(200);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->postJson("/api/editor/move/$share->token", $payload)
|
$this->postJson("/api/sharing/move/$share->token", $payload)
|
||||||
->assertStatus(204);
|
->assertStatus(200);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->assertDatabaseHas('files', [
|
$this->assertDatabaseHas('files', [
|
||||||
@@ -487,14 +487,14 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->withUnencryptedCookies($cookie)
|
->withUnencryptedCookies($cookie)
|
||||||
->post("/api/editor/move/$share->token", $payload)
|
->post("/api/sharing/move/$share->token", $payload)
|
||||||
->assertStatus(204);
|
->assertStatus(200);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->postJson("/api/editor/move/$share->token", $payload)
|
$this->postJson("/api/sharing/move/$share->token", $payload)
|
||||||
->assertStatus(204);
|
->assertStatus(200);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->assertDatabaseHas('folders', [
|
$this->assertDatabaseHas('folders', [
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ class TrafficTest extends TestCase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
$this->postJson("/api/editor/upload/chunks/$share->token", [
|
$this->postJson("/api/sharing/upload/chunks/$share->token", [
|
||||||
'name' => $this->file->name,
|
'name' => $this->file->name,
|
||||||
'chunk' => $this->file,
|
'chunk' => $this->file,
|
||||||
'parent_id' => $folder->id,
|
'parent_id' => $folder->id,
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ class GateTest extends TestCase
|
|||||||
|
|
||||||
$this
|
$this
|
||||||
->withUnencryptedCookies($cookie)
|
->withUnencryptedCookies($cookie)
|
||||||
->patch("/api/editor/rename/{$children->id}/$share->token", [
|
->patch("/api/sharing/rename/{$children->id}/$share->token", [
|
||||||
'name' => 'Renamed Folder',
|
'name' => 'Renamed Folder',
|
||||||
'type' => 'folder',
|
'type' => 'folder',
|
||||||
])
|
])
|
||||||
@@ -93,7 +93,7 @@ class GateTest extends TestCase
|
|||||||
|
|
||||||
// Check public shared item
|
// Check public shared item
|
||||||
if (! $is_protected) {
|
if (! $is_protected) {
|
||||||
$this->patchJson("/api/editor/rename/{$children->id}/$share->token", [
|
$this->patchJson("/api/sharing/rename/{$children->id}/$share->token", [
|
||||||
'name' => 'Renamed Folder',
|
'name' => 'Renamed Folder',
|
||||||
'type' => 'folder',
|
'type' => 'folder',
|
||||||
])
|
])
|
||||||
|
|||||||
Reference in New Issue
Block a user