This commit is contained in:
Čarodej
2021-11-03 17:34:46 +01:00
parent 98823504ba
commit cdaad931bb
40 changed files with 69 additions and 112 deletions
@@ -2,7 +2,6 @@
namespace Domain\Files\Actions;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Intervention\Image\ImageManagerStatic as Image;
class CreateImageThumbnailAction
@@ -23,20 +22,16 @@ class CreateImageThumbnailAction
$file,
string $user_id
): void {
// Create thumbnail from image
if (in_array($file->getClientMimeType(), $this->availableFormats)) {
// Create intervention image
$intervention = Image::make($file)->orientate();
// Generate avatar sizes
collect(config('vuefilemanager.image_sizes'))
->each(function ($size) use ($intervention, $file_name, $user_id) {
// Create thumbnail only if image is larger than predefined image sizes
if ($intervention->getWidth() > $size['size']) {
// Generate thumbnail
$intervention->resize($size['size'], null, fn ($constraint) => $constraint->aspectRatio())->stream();
@@ -19,7 +19,6 @@ class DownloadThumbnailAction
// Check if file exist
if (! Storage::exists($path)) {
// Get original file path
$substituteFilePath = "/files/$file->user_id/$file->basename";
@@ -1,6 +1,7 @@
<?php
namespace Domain\Files\Actions;
use Illuminate\Support\Str;
use Domain\Sharing\Models\Share;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
@@ -9,7 +10,6 @@ use Domain\Files\Requests\UploadRequest;
use Domain\Files\Models\File as UserFile;
use Domain\Traffic\Actions\RecordUploadAction;
use App\Users\Actions\CheckStorageCapacityAction;
use Illuminate\Support\Str;
class UploadFileAction
{
@@ -13,12 +13,12 @@ class GetFileController extends Controller
public function __construct(
private RecordDownloadAction $recordDownload,
private DownloadFileAction $downloadFile,
) {}
) {
}
public function __invoke(
string $filename,
): BinaryFileResponse {
$file = UserFile::withTrashed()
->where('basename', $filename)
->firstOrFail();
@@ -13,13 +13,13 @@ class GetThumbnailController extends Controller
{
public function __construct(
private DownloadThumbnailAction $downloadThumbnail,
) {}
) {
}
public function __invoke(
Request $request,
string $filename,
): FileNotFoundException | StreamedResponse {
$originalFileName = substr($filename, 3);
$file = File::withTrashed()
@@ -1,12 +1,11 @@
<?php
namespace Domain\Files\Controllers;
use Domain\Files\Models\File;
use Gate;
use Domain\Files\Models\File;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Domain\Files\Resources\FileResource;
use Domain\Sharing\Actions\ProtectShareRecordAction;
/**
* Get shared file record
@@ -16,7 +15,6 @@ class VisitorShowFileController
public function __invoke(
Share $shared
): Response {
$file = File::whereUserId($shared->user_id)
->whereId($shared->item_id)
->firstOrFail();
-4
View File
@@ -94,9 +94,7 @@ class File extends Model
// Generate thumbnail link for external storage service
if ($this->type === 'image' && ! is_storage_driver(['local'])) {
foreach (config('vuefilemanager.image_sizes') as $item) {
$filePath = "files/{$this->user_id}/{$item['name']}-{$this->basename}";
$links[$item['name']] = Storage::temporaryUrl($filePath, now()->addHour());
@@ -107,9 +105,7 @@ class File extends Model
// Generate thumbnail link for local storage
if ($this->type === 'image') {
foreach (config('vuefilemanager.image_sizes') as $item) {
$route = route('thumbnail', ['name' => $item['name'] . '-' . $this->basename]);
if ($this->public_access) {
+3 -4
View File
@@ -1,5 +1,4 @@
<?php
namespace Domain\Files\Resources;
use Carbon\Carbon;
@@ -45,10 +44,10 @@ class FileResource extends JsonResource
),*/
],
'relationships' => [
$this->mergeWhen($this->shared, fn() => [
$this->mergeWhen($this->shared, fn () => [
'shared' => new ShareResource($this->shared),
]),
$this->mergeWhen($this->parent, fn() => [
$this->mergeWhen($this->parent, fn () => [
'parent' => [
'data' => [
'type' => 'folder',
@@ -59,7 +58,7 @@ class FileResource extends JsonResource
],
],
]),
$this->mergeWhen($this->owner, fn() => [
$this->mergeWhen($this->owner, fn () => [
'user' => [
'data' => [
'type' => 'user',
@@ -1,10 +1,9 @@
<?php
namespace Domain\Folders\Controllers;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
class NavigationTreeController
{
@@ -1,8 +1,8 @@
<?php
namespace Domain\Items\Actions;
use Domain\Sharing\Models\Share;
use Gate;
use Domain\Sharing\Models\Share;
class MoveFileOrFolderAction
{
@@ -12,7 +12,6 @@ class MoveFileOrFolderAction
public function __invoke($request, ?Share $share = null): void
{
foreach ($request->input('items') as $item) {
$item = get_item($item['type'], $item['id']);
Gate::authorize('can-edit', [$item, $share]);
@@ -6,7 +6,6 @@ use Domain\Sharing\Models\Share;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\DeleteItemRequest;
use Domain\Items\Actions\DeleteFileOrFolderAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
/**
@@ -7,7 +7,6 @@ use Domain\Sharing\Models\Share;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\MoveItemRequest;
use Domain\Items\Actions\MoveFileOrFolderAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
/**
@@ -1,16 +1,15 @@
<?php
namespace Domain\Teams\Controllers;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Resources\FolderCollection;
use Domain\Folders\Resources\FolderResource;
use Gate;
use Str;
use Gate;
use Domain\Files\Models\File;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Resources\FolderResource;
use Domain\Folders\Resources\FolderCollection;
class BrowseSharedWithMeController
{
@@ -36,7 +35,7 @@ class BrowseSharedWithMeController
->get();
}
if (!$id) {
if (! $id) {
$sharedFolderIds = DB::table('team_folder_members')
->where('user_id', Auth::id())
->whereIn('permission', ['can-edit', 'can-view'])
@@ -1,14 +1,13 @@
<?php
namespace Domain\Teams\Controllers;
use Auth;
use Illuminate\Http\Response;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Routing\ResponseFactory;
use Domain\Teams\Requests\ConvertIntoTeamFolderRequest;
use Domain\Teams\Actions\InviteMembersIntoTeamFolderAction;
use Illuminate\Support\Facades\DB;
class ConvertFolderIntoTeamFolderController extends Controller
{
@@ -2,12 +2,12 @@
namespace Domain\Teams\Controllers;
use App\Users\Models\User;
use Domain\Teams\Resources\TeamInvitationResource;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use Domain\Teams\Models\TeamFolderInvitation;
use Illuminate\Contracts\Routing\ResponseFactory;
use Domain\Teams\Resources\TeamInvitationResource;
class InvitationsController extends Controller
{
@@ -1,18 +1,17 @@
<?php
namespace Domain\Teams\Controllers;
use Auth;
use Illuminate\Http\Response;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use Domain\Folders\Models\Folder;
use Auth;
class LeaveTeamFolderController extends Controller
{
public function __invoke(Folder $folder): Response|Application|ResponseFactory
public function __invoke(Folder $folder): Response | Application | ResponseFactory
{
// Find and delete attached member from team folder
DB::table('team_folder_members')
@@ -22,4 +21,4 @@ class LeaveTeamFolderController extends Controller
return response('Done.', 204);
}
}
}
@@ -1,8 +1,8 @@
<?php
namespace Domain\Teams\Controllers;
use Domain\Folders\Models\Folder;
use Gate;
use Domain\Folders\Models\Folder;
class NavigationTreeController
{
@@ -1,7 +1,6 @@
<?php
namespace Domain\Teams\Controllers;
use Gate;
use Illuminate\Support\Str;
use Domain\Files\Models\File;
use Illuminate\Http\Response;
@@ -2,9 +2,9 @@
namespace Domain\Teams\Models;
use App\Users\Models\User;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Support\Str;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Database\Factories\TeamFolderInvitationFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
@@ -1,5 +1,4 @@
<?php
namespace Domain\Teams\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
@@ -20,7 +19,7 @@ class TeamInvitationResource extends JsonResource
'permission' => $this->permission,
],
'relationships' => [
$this->mergeWhen($this->inviter, fn() => [
$this->mergeWhen($this->inviter, fn () => [
'inviter' => [
'data' => [
'type' => 'user',