mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-06 02:33:48 +00:00
added it_get_og_page_for_folder, it_get_og_page_for_image, it_get_og_page_for_protected_file test
This commit is contained in:
@@ -16,6 +16,7 @@ use App\Models\User;
|
||||
use Artisan;
|
||||
use Doctrine\DBAL\Driver\PDOException;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Cookie;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Schema;
|
||||
|
||||
@@ -70,59 +71,30 @@ class AppFunctionsController extends Controller
|
||||
*/
|
||||
public function og_site($token)
|
||||
{
|
||||
// Get all settings
|
||||
$settings = get_settings_in_json();
|
||||
|
||||
// Get shared token
|
||||
$shared = get_shared($token);
|
||||
|
||||
// Get user
|
||||
$user = User::findOrFail($shared->user_id);
|
||||
// Get file/folder record
|
||||
$item = ('App\\Models\\' . ucfirst($shared->type))
|
||||
::where('user_id', $shared->user->id)
|
||||
->where('id', $shared->item_id)
|
||||
->first();
|
||||
|
||||
// Handle single file
|
||||
if ($shared->type === 'file') {
|
||||
if ($item->thumbnail) {
|
||||
$item->setPublicUrl($token);
|
||||
}
|
||||
|
||||
// Get file record
|
||||
$file = File::where('user_id', $shared->user_id)
|
||||
->where('id', $shared->item_id)
|
||||
->first();
|
||||
|
||||
if ($file->thumbnail) {
|
||||
$file->setPublicUrl($token);
|
||||
}
|
||||
|
||||
$metadata = [
|
||||
return view("vuefilemanager.crawler.og-view")
|
||||
->with('settings', get_settings_in_json())
|
||||
->with('metadata', [
|
||||
'url' => url('/shared', ['token' => $token]),
|
||||
'is_protected' => $shared->is_protected,
|
||||
'url' => url('/shared', ['token' => $token]),
|
||||
'user' => $user->name,
|
||||
'name' => $file->name,
|
||||
'size' => $file->filesize,
|
||||
'thumbnail' => $file->thumbnail ? $file->thumbnail : null,
|
||||
];
|
||||
}
|
||||
|
||||
// Handle single file
|
||||
if ($shared->type === 'folder') {
|
||||
|
||||
// Get file record
|
||||
$folder = Folder::where('user_id', $shared->user_id)
|
||||
->where('unique_id', $shared->item_id)
|
||||
->first();
|
||||
|
||||
$metadata = [
|
||||
'is_protected' => $shared->protected,
|
||||
'url' => url('/shared', ['token' => $token]),
|
||||
'user' => $user->name,
|
||||
'name' => $folder->name,
|
||||
'size' => $folder->items,
|
||||
'thumbnail' => null,
|
||||
];
|
||||
}
|
||||
|
||||
// Return view
|
||||
return view("og-view")
|
||||
->with('settings', $settings)
|
||||
->with('metadata', $metadata);
|
||||
'user' => $shared->user->settings->name,
|
||||
'name' => $item->name,
|
||||
'size' => $shared->type === 'folder'
|
||||
? $item->items
|
||||
: $item->filesize,
|
||||
'thumbnail' => $item->thumbnail ?? null,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -94,7 +94,7 @@ class ShareController extends Controller
|
||||
// Update sharing record
|
||||
$shared->update([
|
||||
'permission' => $request->permission,
|
||||
'protected' => $request->protected,
|
||||
'is_protected' => $request->protected,
|
||||
'expire_in' => $request->expiration,
|
||||
'password' => $request->password ? Hash::make($request->password) : $shared->password,
|
||||
]);
|
||||
@@ -149,7 +149,9 @@ class ShareController extends Controller
|
||||
]);
|
||||
|
||||
// Return error
|
||||
if ($validator->fails()) abort(400, 'Bad email input');
|
||||
if ($validator->fails()) {
|
||||
abort(400, 'Bad email input');
|
||||
}
|
||||
|
||||
// Send shared link via email
|
||||
if ($request->has('emails')) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||||
<head>
|
||||
<link rel="icon" href="{{ isset($settings->app_favicon) && $settings->app_favicon ? $settings->app_favicon : asset('favicon.png') }}?v={{ get_version() }}">
|
||||
<link rel="icon" href="{{ $settings->app_favicon ?? asset('favicon.png') }}?v={{ get_version() }}">
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="fragment" content="!">
|
||||
@@ -15,8 +15,8 @@
|
||||
|
||||
{{--Show protected og metadata--}}
|
||||
@if($metadata['is_protected'])
|
||||
<meta property="og:title" content="{{ __('vuefilemanager.protected_file') }} | {{ isset($settings->app_title) && $settings->app_title ? $settings->app_title : 'VueFileManager' }}">
|
||||
<title>{{ __('vuefilemanager.protected_file') }} | {{ isset($settings->app_title) && $settings->app_title ? $settings->app_title : 'VueFileManager' }}</title>
|
||||
<meta property="og:title" content="{{ __('vuefilemanager.protected_file') }} | {{ $settings->app_title ?? 'VueFileManager' }}">
|
||||
<title>{{ __('vuefilemanager.protected_file') }} | {{ $settings->app_title ?? 'VueFileManager' }}</title>
|
||||
@endif
|
||||
|
||||
{{--Show public og metadata--}}
|
||||
@@ -26,10 +26,9 @@
|
||||
<meta property="og:image" content="{{ $metadata['thumbnail'] }}">
|
||||
@endif
|
||||
|
||||
<meta property="og:title" content="{{ $metadata['name'] }} ({{ $metadata['size'] }}) | {{ isset($settings->app_title) && $settings->app_title ? $settings->app_title : 'VueFileManager' }}">
|
||||
<title>{{ $metadata['name'] }} ({{ $metadata['size'] }}) | {{ isset($settings->app_title) && $settings->app_title ? $settings->app_title : 'VueFileManager' }}</title>
|
||||
<meta property="og:title" content="{{ $metadata['name'] }} ({{ $metadata['size'] }}) | {{ $settings->app_title ?? 'VueFileManager' }}">
|
||||
<title>{{ $metadata['name'] }} ({{ $metadata['size'] }}) | {{ $settings->app_title ?? 'VueFileManager' }}</title>
|
||||
@endif
|
||||
|
||||
</head>
|
||||
<body></body>
|
||||
</html>
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\AppFunctionsController;
|
||||
use App\Http\Controllers\FileFunctions\EditItemsController;
|
||||
use App\Http\Controllers\FileFunctions\ShareController;
|
||||
use App\Http\Controllers\Sharing\FileSharingController;
|
||||
@@ -28,3 +29,5 @@ Route::group(['prefix' => 'browse'], function () {
|
||||
Route::get('/files/{token}/public', [FileSharingController::class, 'file_public']);
|
||||
Route::get('/shared/{token}', [ShareController::class, 'show']);
|
||||
});
|
||||
|
||||
Route::get('/og-site/{token}', [AppFunctionsController::class, 'og_site']);
|
||||
@@ -3,7 +3,11 @@
|
||||
namespace Tests\Feature\App;
|
||||
|
||||
use App\Http\Mail\SendContactMessage;
|
||||
use App\Models\File;
|
||||
use App\Models\Folder;
|
||||
use App\Models\Setting;
|
||||
use App\Models\Share;
|
||||
use App\Models\User;
|
||||
use App\Services\SetupService;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Mail;
|
||||
@@ -32,6 +36,93 @@ class AppTest extends TestCase
|
||||
->assertStatus(200);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_get_og_page_for_folder()
|
||||
{
|
||||
$user = User::factory(User::class)
|
||||
->create();
|
||||
|
||||
$folder = Folder::factory(Folder::class)
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'name' => 'Folder Title',
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
->create([
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $user->id,
|
||||
'type' => 'folder',
|
||||
'is_protected' => false,
|
||||
]);
|
||||
|
||||
$this
|
||||
->get("/api/og-site/$share->token")
|
||||
->assertStatus(200)
|
||||
->assertSee('Folder Title');
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_get_og_page_for_image()
|
||||
{
|
||||
$user = User::factory(User::class)
|
||||
->create();
|
||||
|
||||
$file = File::factory(File::class)
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'name' => 'Fake Image',
|
||||
'thumbnail' => 'fake-image-thumbnail.jpg',
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
->create([
|
||||
'item_id' => $file->id,
|
||||
'user_id' => $user->id,
|
||||
'type' => 'file',
|
||||
'is_protected' => false,
|
||||
]);
|
||||
|
||||
$this
|
||||
->get("/api/og-site/$share->token")
|
||||
->assertStatus(200)
|
||||
->assertSee('Fake Image')
|
||||
->assertSee('fake-image-thumbnail.jpg');
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_get_og_page_for_protected_file()
|
||||
{
|
||||
$user = User::factory(User::class)
|
||||
->create();
|
||||
|
||||
$file = File::factory(File::class)
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'name' => 'Fake Image',
|
||||
'thumbnail' => 'fake-image-thumbnail.jpg',
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
->create([
|
||||
'item_id' => $file->id,
|
||||
'user_id' => $user->id,
|
||||
'type' => 'file',
|
||||
'is_protected' => true,
|
||||
]);
|
||||
|
||||
$this
|
||||
->get("/api/og-site/$share->token")
|
||||
->assertStatus(200)
|
||||
->assertSee('This link is protected by password');
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user