mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-30 07:44:41 +00:00
- added folder test methods
This commit is contained in:
@@ -84,15 +84,15 @@ class EditItemsController extends Controller
|
|||||||
* Rename item for authenticated master|editor user
|
* Rename item for authenticated master|editor user
|
||||||
*
|
*
|
||||||
* @param RenameItemRequest $request
|
* @param RenameItemRequest $request
|
||||||
* @param $unique_id
|
* @param $id
|
||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function user_rename_item(RenameItemRequest $request, $unique_id)
|
public function user_rename_item(RenameItemRequest $request, $id)
|
||||||
{
|
{
|
||||||
// Demo preview
|
// Demo preview
|
||||||
if (is_demo(Auth::id())) {
|
if (is_demo(Auth::id())) {
|
||||||
return Demo::rename_item($request, $unique_id);
|
return Demo::rename_item($request, $id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check permission to rename item for authenticated editor
|
// Check permission to rename item for authenticated editor
|
||||||
@@ -105,7 +105,7 @@ class EditItemsController extends Controller
|
|||||||
$shared = get_shared($request->cookie('shared_token'));
|
$shared = get_shared($request->cookie('shared_token'));
|
||||||
|
|
||||||
// Get file|folder item
|
// Get file|folder item
|
||||||
$item = get_item($request->type, $unique_id, Auth::id());
|
$item = get_item($request->type, $id);
|
||||||
|
|
||||||
// Check access to requested directory
|
// Check access to requested directory
|
||||||
if ($request->type === 'folder') {
|
if ($request->type === 'folder') {
|
||||||
@@ -118,11 +118,11 @@ class EditItemsController extends Controller
|
|||||||
// If request have a change folder icon values set the folder icon
|
// If request have a change folder icon values set the folder icon
|
||||||
if ($request->type === 'folder' && $request->filled('folder_icon')) {
|
if ($request->type === 'folder' && $request->filled('folder_icon')) {
|
||||||
|
|
||||||
Editor::set_folder_icon($request->folder_icon, $unique_id);
|
Editor::set_folder_icon($request->folder_icon, $id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rename Item
|
// Rename Item
|
||||||
return Editor::rename_item($request, $unique_id);
|
return Editor::rename_item($request, $id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -191,25 +191,12 @@ function is_demo($user_id)
|
|||||||
* Get folder or file item
|
* Get folder or file item
|
||||||
*
|
*
|
||||||
* @param $type
|
* @param $type
|
||||||
* @param $unique_id
|
* @param $id
|
||||||
* @param $user_id
|
|
||||||
* @return \Illuminate\Database\Eloquent\Builder|Model
|
* @return \Illuminate\Database\Eloquent\Builder|Model
|
||||||
*/
|
*/
|
||||||
function get_item($type, $unique_id, $user_id)
|
function get_item($type, $id)
|
||||||
{
|
{
|
||||||
|
return ('App\\Models\\' . ucfirst($type))::find($id);
|
||||||
if ($type === 'folder') {
|
|
||||||
|
|
||||||
// Return folder item
|
|
||||||
return Folder::where('unique_id', $unique_id)
|
|
||||||
->where('user_id', $user_id)
|
|
||||||
->firstOrFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return file item
|
|
||||||
return File::where('unique_id', $unique_id)
|
|
||||||
->where('user_id', $user_id)
|
|
||||||
->firstOrFail();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ class CreateFolderRequest extends FormRequest
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'parent_id' => 'required|integer',
|
'parent_id' => 'nullable|uuid',
|
||||||
'name' => 'string',
|
'name' => 'required|string',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-11
@@ -3,12 +3,12 @@
|
|||||||
namespace App\Http\Tools;
|
namespace App\Http\Tools;
|
||||||
|
|
||||||
use App;
|
use App;
|
||||||
use App\Share;
|
use App\Models\Folder;
|
||||||
use App\File;
|
use App\Models\Share;
|
||||||
use App\Folder;
|
use App\File as UserFile;
|
||||||
use App\Http\Requests\FileFunctions\RenameItemRequest;
|
use App\Http\Requests\FileFunctions\RenameItemRequest;
|
||||||
use App\User;
|
use App\Models\User;
|
||||||
use App\Zip;
|
use App\Models\Zip;
|
||||||
use Aws\Exception\MultipartUploadException;
|
use Aws\Exception\MultipartUploadException;
|
||||||
use Aws\S3\MultipartUploader;
|
use Aws\S3\MultipartUploader;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
@@ -222,15 +222,15 @@ class Editor
|
|||||||
public static function create_folder($request, $shared = null)
|
public static function create_folder($request, $shared = null)
|
||||||
{
|
{
|
||||||
// Get variables
|
// Get variables
|
||||||
$user_scope = is_null($shared) ? $request->user()->token()->scopes[0] : 'editor';
|
//$user_scope = is_null($shared) ? $request->user()->token()->scopes[0] : 'editor';
|
||||||
|
$user_scope = is_null($shared) ? 'master' : 'editor';
|
||||||
|
|
||||||
$name = $request->has('name') ? $request->input('name') : 'New Folder';
|
$name = $request->has('name') ? $request->input('name') : 'New Folder';
|
||||||
$user_id = is_null($shared) ? Auth::id() : $shared->user_id;
|
$user_id = is_null($shared) ? Auth::id() : $shared->user_id;
|
||||||
$unique_id = get_unique_id();
|
|
||||||
|
|
||||||
// Create folder
|
// Create folder
|
||||||
$folder = Folder::create([
|
$folder = Folder::create([
|
||||||
'parent_id' => $request->parent_id,
|
'parent_id' => $request->parent_id,
|
||||||
'unique_id' => $unique_id,
|
|
||||||
'user_scope' => $user_scope,
|
'user_scope' => $user_scope,
|
||||||
'user_id' => $user_id,
|
'user_id' => $user_id,
|
||||||
'type' => 'folder',
|
'type' => 'folder',
|
||||||
@@ -308,7 +308,7 @@ class Editor
|
|||||||
$child_folders = filter_folders_ids($folder->trashed_folders, 'unique_id');
|
$child_folders = filter_folders_ids($folder->trashed_folders, 'unique_id');
|
||||||
|
|
||||||
// Get children files
|
// Get children files
|
||||||
$files = File::onlyTrashed()
|
$files = UserFile::onlyTrashed()
|
||||||
->where('user_id', $user->id)
|
->where('user_id', $user->id)
|
||||||
->whereIn('folder_id', Arr::flatten([$unique_id, $child_folders]))
|
->whereIn('folder_id', Arr::flatten([$unique_id, $child_folders]))
|
||||||
->get();
|
->get();
|
||||||
@@ -412,7 +412,7 @@ class Editor
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
// Move file under new folder
|
// Move file under new folder
|
||||||
$item = File::where('user_id', $user_id)
|
$item = UserFile::where('user_id', $user_id)
|
||||||
->where('unique_id', $unique_id)
|
->where('unique_id', $unique_id)
|
||||||
->firstOrFail();
|
->firstOrFail();
|
||||||
|
|
||||||
@@ -523,7 +523,7 @@ class Editor
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Return new file
|
// Return new file
|
||||||
return File::create($options);
|
return UserFile::create($options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -88,10 +88,10 @@ Route::group(['middleware' => ['auth:api', 'auth.shared', 'scope:visitor,editor'
|
|||||||
});
|
});
|
||||||
|
|
||||||
// User master,editor routes
|
// User master,editor routes
|
||||||
Route::group(['middleware' => ['auth:api', 'auth.shared', 'auth.master', 'scope:master,editor']], function () {
|
Route::group(['middleware' => ['auth:sanctum']], function () {
|
||||||
|
|
||||||
// Edit items
|
// Edit items
|
||||||
Route::patch('/rename-item/{unique_id}', [EditItemsController::class, 'user_rename_item']);
|
Route::patch('/rename/{id}', [EditItemsController::class, 'user_rename_item']);
|
||||||
Route::post('/create-folder', [EditItemsController::class, 'user_create_folder']);
|
Route::post('/create-folder', [EditItemsController::class, 'user_create_folder']);
|
||||||
Route::post('/remove-item', [EditItemsController::class, 'user_delete_item']);
|
Route::post('/remove-item', [EditItemsController::class, 'user_delete_item']);
|
||||||
Route::post('/zip', [EditItemsController::class, 'user_zip_multiple_files']);
|
Route::post('/zip', [EditItemsController::class, 'user_zip_multiple_files']);
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use App\Models\Folder;
|
use App\Models\Folder;
|
||||||
|
use App\Models\User;
|
||||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
use Laravel\Sanctum\Sanctum;
|
||||||
use Illuminate\Foundation\Testing\WithFaker;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class FolderTest extends TestCase
|
class FolderTest extends TestCase
|
||||||
@@ -25,14 +25,57 @@ class FolderTest extends TestCase
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
public function it_create_new_folder()
|
public function it_create_new_folder()
|
||||||
{
|
{
|
||||||
|
$user = User::factory(User::class)
|
||||||
|
->create();
|
||||||
|
|
||||||
|
Sanctum::actingAs($user);
|
||||||
|
|
||||||
|
// TODO: pridat do api skupiny
|
||||||
|
$this->postJson('/api/create-folder', [
|
||||||
|
'name' => 'New Folder',
|
||||||
|
'parent_id' => null,
|
||||||
|
])
|
||||||
|
->assertStatus(201)
|
||||||
|
->assertJsonFragment([
|
||||||
|
'name' => 'New Folder',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->assertDatabaseHas('folders', [
|
||||||
|
'name' => 'New Folder'
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
public function it_rename_folder()
|
public function it_rename_folder()
|
||||||
{
|
{
|
||||||
|
$folder = Folder::factory(Folder::class)
|
||||||
|
->create();
|
||||||
|
|
||||||
|
$user = User::factory(User::class)
|
||||||
|
->create();
|
||||||
|
|
||||||
|
Sanctum::actingAs($user);
|
||||||
|
|
||||||
|
// TODO: pridat do api skupiny
|
||||||
|
$this->patchJson("/api/rename/{$folder->id}", [
|
||||||
|
'name' => 'Renamed Folder',
|
||||||
|
'type' => 'folder',
|
||||||
|
])
|
||||||
|
->assertStatus(200)
|
||||||
|
->assertJsonFragment([
|
||||||
|
'name' => 'Renamed Folder',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->assertDatabaseHas('folders', [
|
||||||
|
'name' => 'Renamed Folder'
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function it_set_folder_emoji()
|
public function it_set_folder_emoji()
|
||||||
|
|||||||
Reference in New Issue
Block a user