mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +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
|
||||
*
|
||||
* @param RenameItemRequest $request
|
||||
* @param $unique_id
|
||||
* @param $id
|
||||
* @return mixed
|
||||
* @throws Exception
|
||||
*/
|
||||
public function user_rename_item(RenameItemRequest $request, $unique_id)
|
||||
public function user_rename_item(RenameItemRequest $request, $id)
|
||||
{
|
||||
// Demo preview
|
||||
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
|
||||
@@ -105,7 +105,7 @@ class EditItemsController extends Controller
|
||||
$shared = get_shared($request->cookie('shared_token'));
|
||||
|
||||
// Get file|folder item
|
||||
$item = get_item($request->type, $unique_id, Auth::id());
|
||||
$item = get_item($request->type, $id);
|
||||
|
||||
// Check access to requested directory
|
||||
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->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
|
||||
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
|
||||
*
|
||||
* @param $type
|
||||
* @param $unique_id
|
||||
* @param $user_id
|
||||
* @param $id
|
||||
* @return \Illuminate\Database\Eloquent\Builder|Model
|
||||
*/
|
||||
function get_item($type, $unique_id, $user_id)
|
||||
function get_item($type, $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();
|
||||
return ('App\\Models\\' . ucfirst($type))::find($id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -25,8 +25,8 @@ class CreateFolderRequest extends FormRequest
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'parent_id' => 'required|integer',
|
||||
'name' => 'string',
|
||||
'parent_id' => 'nullable|uuid',
|
||||
'name' => 'required|string',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
namespace App\Http\Tools;
|
||||
|
||||
use App;
|
||||
use App\Share;
|
||||
use App\File;
|
||||
use App\Folder;
|
||||
use App\Models\Folder;
|
||||
use App\Models\Share;
|
||||
use App\File as UserFile;
|
||||
use App\Http\Requests\FileFunctions\RenameItemRequest;
|
||||
use App\User;
|
||||
use App\Zip;
|
||||
use App\Models\User;
|
||||
use App\Models\Zip;
|
||||
use Aws\Exception\MultipartUploadException;
|
||||
use Aws\S3\MultipartUploader;
|
||||
use Carbon\Carbon;
|
||||
@@ -222,15 +222,15 @@ class Editor
|
||||
public static function create_folder($request, $shared = null)
|
||||
{
|
||||
// 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';
|
||||
$user_id = is_null($shared) ? Auth::id() : $shared->user_id;
|
||||
$unique_id = get_unique_id();
|
||||
|
||||
// Create folder
|
||||
$folder = Folder::create([
|
||||
'parent_id' => $request->parent_id,
|
||||
'unique_id' => $unique_id,
|
||||
'user_scope' => $user_scope,
|
||||
'user_id' => $user_id,
|
||||
'type' => 'folder',
|
||||
@@ -308,7 +308,7 @@ class Editor
|
||||
$child_folders = filter_folders_ids($folder->trashed_folders, 'unique_id');
|
||||
|
||||
// Get children files
|
||||
$files = File::onlyTrashed()
|
||||
$files = UserFile::onlyTrashed()
|
||||
->where('user_id', $user->id)
|
||||
->whereIn('folder_id', Arr::flatten([$unique_id, $child_folders]))
|
||||
->get();
|
||||
@@ -412,7 +412,7 @@ class Editor
|
||||
} else {
|
||||
|
||||
// Move file under new folder
|
||||
$item = File::where('user_id', $user_id)
|
||||
$item = UserFile::where('user_id', $user_id)
|
||||
->where('unique_id', $unique_id)
|
||||
->firstOrFail();
|
||||
|
||||
@@ -523,7 +523,7 @@ class Editor
|
||||
}
|
||||
|
||||
// Return new file
|
||||
return File::create($options);
|
||||
return UserFile::create($options);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -88,10 +88,10 @@ Route::group(['middleware' => ['auth:api', 'auth.shared', 'scope:visitor,editor'
|
||||
});
|
||||
|
||||
// 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
|
||||
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('/remove-item', [EditItemsController::class, 'user_delete_item']);
|
||||
Route::post('/zip', [EditItemsController::class, 'user_zip_multiple_files']);
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
namespace Tests\Feature;
|
||||
|
||||
use App\Models\Folder;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Foundation\Testing\WithFaker;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
use Tests\TestCase;
|
||||
|
||||
class FolderTest extends TestCase
|
||||
@@ -25,14 +25,57 @@ class FolderTest extends TestCase
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
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()
|
||||
{
|
||||
$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()
|
||||
|
||||
Reference in New Issue
Block a user