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
+1 -1
View File
@@ -49,5 +49,5 @@ return [
'size' => 120, 'size' => 120,
'name' => 'xs', 'name' => 'xs',
], ],
] ],
]; ];
+1 -1
View File
@@ -13,6 +13,7 @@ use Domain\Plans\Controllers\ActivePlansController;
use Domain\Folders\Controllers\CreateFolderController; use Domain\Folders\Controllers\CreateFolderController;
use Domain\Browsing\Controllers\BrowseFolderController; use Domain\Browsing\Controllers\BrowseFolderController;
use Domain\Sharing\Controllers\ShareViaEmailController; use Domain\Sharing\Controllers\ShareViaEmailController;
use Domain\Folders\Controllers\NavigationTreeController;
use Domain\Items\Controllers\MoveFileOrFolderController; use Domain\Items\Controllers\MoveFileOrFolderController;
use Domain\Items\Controllers\DeleteFileOrFolderController; use Domain\Items\Controllers\DeleteFileOrFolderController;
use Domain\Items\Controllers\RenameFileOrFolderController; use Domain\Items\Controllers\RenameFileOrFolderController;
@@ -22,7 +23,6 @@ use Domain\Browsing\Controllers\BrowseLatestFilesController;
use Domain\Browsing\Controllers\BrowseSharedItemsController; use Domain\Browsing\Controllers\BrowseSharedItemsController;
use Domain\Browsing\Controllers\BrowseTrashContentController; use Domain\Browsing\Controllers\BrowseTrashContentController;
use Domain\Homepage\Controllers\SendContactMessageController; use Domain\Homepage\Controllers\SendContactMessageController;
use Domain\Folders\Controllers\NavigationTreeController;
use Domain\Browsing\Controllers\SearchFilesAndFoldersController; use Domain\Browsing\Controllers\SearchFilesAndFoldersController;
// Pages // Pages
+2 -3
View File
@@ -1,16 +1,15 @@
<?php <?php
use Domain\Teams\Controllers\InvitationsController; use Domain\Teams\Controllers\InvitationsController;
use Domain\Teams\Controllers\LeaveTeamFolderController;
use Domain\Teams\Controllers\NavigationTreeController;
use Domain\Teams\Controllers\TeamFoldersController; use Domain\Teams\Controllers\TeamFoldersController;
use Domain\Teams\Controllers\NavigationTreeController;
use Domain\Teams\Controllers\LeaveTeamFolderController;
use Domain\Teams\Controllers\BrowseSharedWithMeController; use Domain\Teams\Controllers\BrowseSharedWithMeController;
use Domain\Teams\Controllers\ConvertFolderIntoTeamFolderController; use Domain\Teams\Controllers\ConvertFolderIntoTeamFolderController;
Route::apiResource('/invitations', InvitationsController::class); Route::apiResource('/invitations', InvitationsController::class);
Route::group(['middleware' => ['auth:sanctum']], function () { Route::group(['middleware' => ['auth:sanctum']], function () {
Route::apiResource('/folders', TeamFoldersController::class); Route::apiResource('/folders', TeamFoldersController::class);
Route::post('/folders/{folder}/convert', ConvertFolderIntoTeamFolderController::class); Route::post('/folders/{folder}/convert', ConvertFolderIntoTeamFolderController::class);
@@ -1,5 +1,4 @@
<?php <?php
namespace App\Console\Commands; namespace App\Console\Commands;
use App\Users\Models\User; use App\Users\Models\User;
@@ -14,10 +13,10 @@ use Illuminate\Support\Facades\Storage;
use Illuminate\Foundation\Testing\WithFaker; use Illuminate\Foundation\Testing\WithFaker;
use Domain\Teams\Models\TeamFolderInvitation; use Domain\Teams\Models\TeamFolderInvitation;
use Domain\Pages\Actions\SeedDefaultPagesAction; use Domain\Pages\Actions\SeedDefaultPagesAction;
use Intervention\Image\ImageManagerStatic as Image;
use Domain\Settings\Actions\SeedDefaultSettingsAction; use Domain\Settings\Actions\SeedDefaultSettingsAction;
use Domain\Localization\Actions\SeedDefaultLanguageAction; use Domain\Localization\Actions\SeedDefaultLanguageAction;
use Domain\SetupWizard\Actions\CreateDiskDirectoriesAction; use Domain\SetupWizard\Actions\CreateDiskDirectoriesAction;
use Intervention\Image\ImageManagerStatic as Image;
class SetupDevEnvironment extends Command class SetupDevEnvironment extends Command
{ {
@@ -36,11 +35,10 @@ class SetupDevEnvironment extends Command
public function __construct( public function __construct(
private CreateDiskDirectoriesAction $createDiskDirectories, private CreateDiskDirectoriesAction $createDiskDirectories,
private SeedDefaultSettingsAction $seedDefaultSettings, private SeedDefaultSettingsAction $seedDefaultSettings,
private SeedDefaultLanguageAction $seedDefaultLanguage, private SeedDefaultLanguageAction $seedDefaultLanguage,
private SeedDefaultPagesAction $seedDefaultPages, private SeedDefaultPagesAction $seedDefaultPages,
) ) {
{
parent::__construct(); parent::__construct();
$this->setUpFaker(); $this->setUpFaker();
} }
@@ -636,7 +634,6 @@ class SetupDevEnvironment extends Command
'demo/images/memes/You Are My Sunshine.jpg', 'demo/images/memes/You Are My Sunshine.jpg',
]) ])
->each(function ($file) use ($user) { ->each(function ($file) use ($user) {
$thumbnail = $this->generate_thumbnails($file, $user); $thumbnail = $this->generate_thumbnails($file, $user);
// Create file record // Create file record
@@ -664,7 +661,6 @@ class SetupDevEnvironment extends Command
'demo/images/apartments/Kitchen Island.jpg', 'demo/images/apartments/Kitchen Island.jpg',
]) ])
->each(function ($file) use ($user, $apartments) { ->each(function ($file) use ($user, $apartments) {
$thumbnail = $this->generate_thumbnails($file, $user); $thumbnail = $this->generate_thumbnails($file, $user);
// Create file record // Create file record
@@ -696,7 +692,6 @@ class SetupDevEnvironment extends Command
'demo/images/nature/Yellow Animal Eyes Fur.jpg', 'demo/images/nature/Yellow Animal Eyes Fur.jpg',
]) ])
->each(function ($file) use ($user, $nature) { ->each(function ($file) use ($user, $nature) {
$thumbnail = $this->generate_thumbnails($file, $user); $thumbnail = $this->generate_thumbnails($file, $user);
// Create file record // Create file record
@@ -753,7 +748,7 @@ class SetupDevEnvironment extends Command
collect([$members[0]->id, $members[1]->id]) collect([$members[0]->id, $members[1]->id])
->each( ->each(
fn($id) => DB::table('team_folder_members') fn ($id) => DB::table('team_folder_members')
->insert([ ->insert([
'parent_id' => $companyProjectFolder->id, 'parent_id' => $companyProjectFolder->id,
'user_id' => $id, 'user_id' => $id,
@@ -763,7 +758,7 @@ class SetupDevEnvironment extends Command
collect([$members[2]->id, $members[3]->id]) collect([$members[2]->id, $members[3]->id])
->each( ->each(
fn($id) => DB::table('team_folder_members') fn ($id) => DB::table('team_folder_members')
->insert([ ->insert([
'parent_id' => $financeDocumentsFolder->id, 'parent_id' => $financeDocumentsFolder->id,
'user_id' => $id, 'user_id' => $id,
@@ -774,7 +769,7 @@ class SetupDevEnvironment extends Command
// Create invitations // Create invitations
collect([$members[4], $members[5]]) collect([$members[4], $members[5]])
->each( ->each(
fn($user) => TeamFolderInvitation::factory() fn ($user) => TeamFolderInvitation::factory()
->create([ ->create([
'email' => $user->email, 'email' => $user->email,
'parent_id' => $companyProjectFolder->id, 'parent_id' => $companyProjectFolder->id,
@@ -833,7 +828,7 @@ class SetupDevEnvironment extends Command
'parent_id' => $folder->id, 'parent_id' => $folder->id,
'user_id' => $johan->id, 'user_id' => $johan->id,
'permission' => 'owner', 'permission' => 'owner',
] ],
]); ]);
// Get meme gallery // Get meme gallery
@@ -879,7 +874,6 @@ class SetupDevEnvironment extends Command
]); ]);
}); });
collect([ collect([
'demo/images/memes/Eggcited bro.jpg', 'demo/images/memes/Eggcited bro.jpg',
'demo/images/memes/Get a Rest.jpg', 'demo/images/memes/Get a Rest.jpg',
@@ -1112,8 +1106,7 @@ class SetupDevEnvironment extends Command
// Generate avatar // Generate avatar
collect(config('vuefilemanager.avatar_sizes')) collect(config('vuefilemanager.avatar_sizes'))
->each(function ($size) use ($img, $image, $avatar_name) { ->each(function ($size) use ($img , $avatar_name) {
// fit thumbnail // fit thumbnail
$img->fit($size['size'], $size['size'])->stream(); $img->fit($size['size'], $size['size'])->stream();
@@ -1145,12 +1138,10 @@ class SetupDevEnvironment extends Command
// Generate avatar sizes // Generate avatar sizes
collect(config('vuefilemanager.image_sizes')) collect(config('vuefilemanager.image_sizes'))
->each(function ($size) use ($intervention, $file_name, $user) { ->each(function ($size) use ($intervention, $file_name, $user) {
// Create thumbnail only if image is larger than predefined image sizes // Create thumbnail only if image is larger than predefined image sizes
if ($intervention->getWidth() > $size['size']) { if ($intervention->getWidth() > $size['size']) {
// Generate thumbnail // Generate thumbnail
$intervention->resize($size['size'], null, fn($constraint) => $constraint->aspectRatio())->stream(); $intervention->resize($size['size'], null, fn ($constraint) => $constraint->aspectRatio())->stream();
// Store thumbnail to disk // Store thumbnail to disk
Storage::put("files/$user->id/{$size['name']}-{$file_name}", $intervention); Storage::put("files/$user->id/{$size['name']}-{$file_name}", $intervention);
+1 -3
View File
@@ -1,8 +1,8 @@
<?php <?php
namespace App\Providers; namespace App\Providers;
use Auth;
use DB; use DB;
use Auth;
use App\Users\Models\User; use App\Users\Models\User;
use Domain\Files\Models\File; use Domain\Files\Models\File;
use Domain\Sharing\Models\Share; use Domain\Sharing\Models\Share;
@@ -18,7 +18,6 @@ class AuthServiceProvider extends ServiceProvider
* @var array * @var array
*/ */
protected $policies = [ protected $policies = [
//
]; ];
/** /**
@@ -54,7 +53,6 @@ class AuthServiceProvider extends ServiceProvider
// Define owner of file or folder // Define owner of file or folder
Gate::define('owner', function (?User $user, File | Folder $item) { Gate::define('owner', function (?User $user, File | Folder $item) {
// Check user owner status // Check user owner status
return $user?->id === $item->user_id; return $user?->id === $item->user_id;
}); });
@@ -1,12 +1,10 @@
<?php <?php
namespace App\Users\Controllers\Account; namespace App\Users\Controllers\Account;
use App\Users\Requests\UpdateUserProfileSettingsRequest;
use Illuminate\Http\Request;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use App\Users\Requests\UpdateUserProfileSettingsRequest;
class UpdateProfileSettingsController extends Controller class UpdateProfileSettingsController extends Controller
{ {
-2
View File
@@ -24,7 +24,6 @@ class UserSettings extends Model
// Get avatar from external storage // Get avatar from external storage
if ($this->attributes['avatar'] && ! is_storage_driver('local')) { if ($this->attributes['avatar'] && ! is_storage_driver('local')) {
foreach (config('vuefilemanager.avatar_sizes') as $item) { foreach (config('vuefilemanager.avatar_sizes') as $item) {
$filePath = "avatars/{$item['name']}-{$this->attributes['avatar']}"; $filePath = "avatars/{$item['name']}-{$this->attributes['avatar']}";
@@ -36,7 +35,6 @@ class UserSettings extends Model
// Get avatar from local storage // Get avatar from local storage
if ($this->attributes['avatar']) { if ($this->attributes['avatar']) {
foreach (config('vuefilemanager.avatar_sizes') as $item) { foreach (config('vuefilemanager.avatar_sizes') as $item) {
$link[$item['name']] = url("/avatars/{$item['name']}-{$this->attributes['avatar']}"); $link[$item['name']] = url("/avatars/{$item['name']}-{$this->attributes['avatar']}");
} }
@@ -1,5 +1,4 @@
<?php <?php
namespace App\Users\Requests; namespace App\Users\Requests;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -2,7 +2,6 @@
namespace Domain\Files\Actions; namespace Domain\Files\Actions;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Intervention\Image\ImageManagerStatic as Image; use Intervention\Image\ImageManagerStatic as Image;
class CreateImageThumbnailAction class CreateImageThumbnailAction
@@ -23,20 +22,16 @@ class CreateImageThumbnailAction
$file, $file,
string $user_id string $user_id
): void { ): void {
// Create thumbnail from image // Create thumbnail from image
if (in_array($file->getClientMimeType(), $this->availableFormats)) { if (in_array($file->getClientMimeType(), $this->availableFormats)) {
// Create intervention image // Create intervention image
$intervention = Image::make($file)->orientate(); $intervention = Image::make($file)->orientate();
// Generate avatar sizes // Generate avatar sizes
collect(config('vuefilemanager.image_sizes')) collect(config('vuefilemanager.image_sizes'))
->each(function ($size) use ($intervention, $file_name, $user_id) { ->each(function ($size) use ($intervention, $file_name, $user_id) {
// Create thumbnail only if image is larger than predefined image sizes // Create thumbnail only if image is larger than predefined image sizes
if ($intervention->getWidth() > $size['size']) { if ($intervention->getWidth() > $size['size']) {
// Generate thumbnail // Generate thumbnail
$intervention->resize($size['size'], null, fn ($constraint) => $constraint->aspectRatio())->stream(); $intervention->resize($size['size'], null, fn ($constraint) => $constraint->aspectRatio())->stream();
@@ -19,7 +19,6 @@ class DownloadThumbnailAction
// Check if file exist // Check if file exist
if (! Storage::exists($path)) { if (! Storage::exists($path)) {
// Get original file path // Get original file path
$substituteFilePath = "/files/$file->user_id/$file->basename"; $substituteFilePath = "/files/$file->user_id/$file->basename";
@@ -1,6 +1,7 @@
<?php <?php
namespace Domain\Files\Actions; namespace Domain\Files\Actions;
use Illuminate\Support\Str;
use Domain\Sharing\Models\Share; use Domain\Sharing\Models\Share;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\File;
@@ -9,7 +10,6 @@ use Domain\Files\Requests\UploadRequest;
use Domain\Files\Models\File as UserFile; use Domain\Files\Models\File as UserFile;
use Domain\Traffic\Actions\RecordUploadAction; use Domain\Traffic\Actions\RecordUploadAction;
use App\Users\Actions\CheckStorageCapacityAction; use App\Users\Actions\CheckStorageCapacityAction;
use Illuminate\Support\Str;
class UploadFileAction class UploadFileAction
{ {
@@ -13,12 +13,12 @@ class GetFileController extends Controller
public function __construct( public function __construct(
private RecordDownloadAction $recordDownload, private RecordDownloadAction $recordDownload,
private DownloadFileAction $downloadFile, private DownloadFileAction $downloadFile,
) {} ) {
}
public function __invoke( public function __invoke(
string $filename, string $filename,
): BinaryFileResponse { ): BinaryFileResponse {
$file = UserFile::withTrashed() $file = UserFile::withTrashed()
->where('basename', $filename) ->where('basename', $filename)
->firstOrFail(); ->firstOrFail();
@@ -13,13 +13,13 @@ class GetThumbnailController extends Controller
{ {
public function __construct( public function __construct(
private DownloadThumbnailAction $downloadThumbnail, private DownloadThumbnailAction $downloadThumbnail,
) {} ) {
}
public function __invoke( public function __invoke(
Request $request, Request $request,
string $filename, string $filename,
): FileNotFoundException | StreamedResponse { ): FileNotFoundException | StreamedResponse {
$originalFileName = substr($filename, 3); $originalFileName = substr($filename, 3);
$file = File::withTrashed() $file = File::withTrashed()
@@ -1,12 +1,11 @@
<?php <?php
namespace Domain\Files\Controllers; namespace Domain\Files\Controllers;
use Domain\Files\Models\File;
use Gate; use Gate;
use Domain\Files\Models\File;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Domain\Sharing\Models\Share; use Domain\Sharing\Models\Share;
use Domain\Files\Resources\FileResource; use Domain\Files\Resources\FileResource;
use Domain\Sharing\Actions\ProtectShareRecordAction;
/** /**
* Get shared file record * Get shared file record
@@ -16,7 +15,6 @@ class VisitorShowFileController
public function __invoke( public function __invoke(
Share $shared Share $shared
): Response { ): Response {
$file = File::whereUserId($shared->user_id) $file = File::whereUserId($shared->user_id)
->whereId($shared->item_id) ->whereId($shared->item_id)
->firstOrFail(); ->firstOrFail();
-4
View File
@@ -94,9 +94,7 @@ class File extends Model
// Generate thumbnail link for external storage service // Generate thumbnail link for external storage service
if ($this->type === 'image' && ! is_storage_driver(['local'])) { if ($this->type === 'image' && ! is_storage_driver(['local'])) {
foreach (config('vuefilemanager.image_sizes') as $item) { foreach (config('vuefilemanager.image_sizes') as $item) {
$filePath = "files/{$this->user_id}/{$item['name']}-{$this->basename}"; $filePath = "files/{$this->user_id}/{$item['name']}-{$this->basename}";
$links[$item['name']] = Storage::temporaryUrl($filePath, now()->addHour()); $links[$item['name']] = Storage::temporaryUrl($filePath, now()->addHour());
@@ -107,9 +105,7 @@ class File extends Model
// Generate thumbnail link for local storage // Generate thumbnail link for local storage
if ($this->type === 'image') { if ($this->type === 'image') {
foreach (config('vuefilemanager.image_sizes') as $item) { foreach (config('vuefilemanager.image_sizes') as $item) {
$route = route('thumbnail', ['name' => $item['name'] . '-' . $this->basename]); $route = route('thumbnail', ['name' => $item['name'] . '-' . $this->basename]);
if ($this->public_access) { if ($this->public_access) {
+3 -4
View File
@@ -1,5 +1,4 @@
<?php <?php
namespace Domain\Files\Resources; namespace Domain\Files\Resources;
use Carbon\Carbon; use Carbon\Carbon;
@@ -45,10 +44,10 @@ class FileResource extends JsonResource
),*/ ),*/
], ],
'relationships' => [ 'relationships' => [
$this->mergeWhen($this->shared, fn() => [ $this->mergeWhen($this->shared, fn () => [
'shared' => new ShareResource($this->shared), 'shared' => new ShareResource($this->shared),
]), ]),
$this->mergeWhen($this->parent, fn() => [ $this->mergeWhen($this->parent, fn () => [
'parent' => [ 'parent' => [
'data' => [ 'data' => [
'type' => 'folder', 'type' => 'folder',
@@ -59,7 +58,7 @@ class FileResource extends JsonResource
], ],
], ],
]), ]),
$this->mergeWhen($this->owner, fn() => [ $this->mergeWhen($this->owner, fn () => [
'user' => [ 'user' => [
'data' => [ 'data' => [
'type' => 'user', 'type' => 'user',
@@ -1,10 +1,9 @@
<?php <?php
namespace Domain\Folders\Controllers; namespace Domain\Folders\Controllers;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
class NavigationTreeController class NavigationTreeController
{ {
@@ -1,8 +1,8 @@
<?php <?php
namespace Domain\Items\Actions; namespace Domain\Items\Actions;
use Domain\Sharing\Models\Share;
use Gate; use Gate;
use Domain\Sharing\Models\Share;
class MoveFileOrFolderAction class MoveFileOrFolderAction
{ {
@@ -12,7 +12,6 @@ class MoveFileOrFolderAction
public function __invoke($request, ?Share $share = null): void public function __invoke($request, ?Share $share = null): void
{ {
foreach ($request->input('items') as $item) { foreach ($request->input('items') as $item) {
$item = get_item($item['type'], $item['id']); $item = get_item($item['type'], $item['id']);
Gate::authorize('can-edit', [$item, $share]); Gate::authorize('can-edit', [$item, $share]);
@@ -6,7 +6,6 @@ use Domain\Sharing\Models\Share;
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;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction; use Domain\Sharing\Actions\VerifyAccessToItemAction;
/** /**
@@ -7,7 +7,6 @@ use Domain\Sharing\Models\Share;
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;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction; use Domain\Sharing\Actions\VerifyAccessToItemAction;
/** /**
@@ -1,16 +1,15 @@
<?php <?php
namespace Domain\Teams\Controllers; namespace Domain\Teams\Controllers;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Resources\FolderCollection;
use Domain\Folders\Resources\FolderResource;
use Gate;
use Str; use Str;
use Gate;
use Domain\Files\Models\File; use Domain\Files\Models\File;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Resources\FolderResource;
use Domain\Folders\Resources\FolderCollection;
class BrowseSharedWithMeController class BrowseSharedWithMeController
{ {
@@ -36,7 +35,7 @@ class BrowseSharedWithMeController
->get(); ->get();
} }
if (!$id) { if (! $id) {
$sharedFolderIds = DB::table('team_folder_members') $sharedFolderIds = DB::table('team_folder_members')
->where('user_id', Auth::id()) ->where('user_id', Auth::id())
->whereIn('permission', ['can-edit', 'can-view']) ->whereIn('permission', ['can-edit', 'can-view'])
@@ -1,14 +1,13 @@
<?php <?php
namespace Domain\Teams\Controllers; namespace Domain\Teams\Controllers;
use Auth;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Contracts\Routing\ResponseFactory;
use Domain\Teams\Requests\ConvertIntoTeamFolderRequest; use Domain\Teams\Requests\ConvertIntoTeamFolderRequest;
use Domain\Teams\Actions\InviteMembersIntoTeamFolderAction; use Domain\Teams\Actions\InviteMembersIntoTeamFolderAction;
use Illuminate\Support\Facades\DB;
class ConvertFolderIntoTeamFolderController extends Controller class ConvertFolderIntoTeamFolderController extends Controller
{ {
@@ -2,12 +2,12 @@
namespace Domain\Teams\Controllers; namespace Domain\Teams\Controllers;
use App\Users\Models\User; use App\Users\Models\User;
use Domain\Teams\Resources\TeamInvitationResource;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Domain\Teams\Models\TeamFolderInvitation; use Domain\Teams\Models\TeamFolderInvitation;
use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Contracts\Routing\ResponseFactory;
use Domain\Teams\Resources\TeamInvitationResource;
class InvitationsController extends Controller class InvitationsController extends Controller
{ {
@@ -1,18 +1,17 @@
<?php <?php
namespace Domain\Teams\Controllers; 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 App\Http\Controllers\Controller;
use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory; 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 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 // Find and delete attached member from team folder
DB::table('team_folder_members') DB::table('team_folder_members')
@@ -1,8 +1,8 @@
<?php <?php
namespace Domain\Teams\Controllers; namespace Domain\Teams\Controllers;
use Domain\Folders\Models\Folder;
use Gate; use Gate;
use Domain\Folders\Models\Folder;
class NavigationTreeController class NavigationTreeController
{ {
@@ -1,7 +1,6 @@
<?php <?php
namespace Domain\Teams\Controllers; namespace Domain\Teams\Controllers;
use Gate;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Domain\Files\Models\File; use Domain\Files\Models\File;
use Illuminate\Http\Response; use Illuminate\Http\Response;
@@ -2,9 +2,9 @@
namespace Domain\Teams\Models; namespace Domain\Teams\Models;
use App\Users\Models\User; use App\Users\Models\User;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Database\Factories\TeamFolderInvitationFactory; use Database\Factories\TeamFolderInvitationFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
@@ -1,5 +1,4 @@
<?php <?php
namespace Domain\Teams\Resources; namespace Domain\Teams\Resources;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
@@ -20,7 +19,7 @@ class TeamInvitationResource extends JsonResource
'permission' => $this->permission, 'permission' => $this->permission,
], ],
'relationships' => [ 'relationships' => [
$this->mergeWhen($this->inviter, fn() => [ $this->mergeWhen($this->inviter, fn () => [
'inviter' => [ 'inviter' => [
'data' => [ 'data' => [
'type' => 'user', 'type' => 'user',
+1 -2
View File
@@ -325,7 +325,7 @@ if (! function_exists('store_avatar')) {
function store_avatar($request, $name): ?string function store_avatar($request, $name): ?string
{ {
// Check if file exist in http request // Check if file exist in http request
if (!$request->hasFile($name)) { if (! $request->hasFile($name)) {
return null; return null;
} }
@@ -346,7 +346,6 @@ if (! function_exists('store_avatar')) {
// Generate avatar sizes // Generate avatar sizes
collect(config('vuefilemanager.avatar_sizes')) collect(config('vuefilemanager.avatar_sizes'))
->each(function ($size) use ($intervention, $avatar_name) { ->each(function ($size) use ($intervention, $avatar_name) {
// fit thumbnail // fit thumbnail
$intervention->fit($size['size'], $size['size'])->stream(); $intervention->fit($size['size'], $size['size'])->stream();
+2 -1
View File
@@ -115,7 +115,8 @@ class UserAccountTest extends TestCase
])->assertStatus(204); ])->assertStatus(204);
collect(config('vuefilemanager.avatar_sizes')) collect(config('vuefilemanager.avatar_sizes'))
->each(fn ($size) => ->each(
fn ($size) =>
Storage::disk('local') Storage::disk('local')
->assertExists("avatars/{$size['name']}-{$user->settings->getRawOriginal('avatar')}") ->assertExists("avatars/{$size['name']}-{$user->settings->getRawOriginal('avatar')}")
); );
+3 -2
View File
@@ -236,10 +236,11 @@ class AdminTest extends TestCase
'name' => 'John Doe', 'name' => 'John Doe',
]); ]);
$avatar = User::whereEmail('john@doe.com')->first()->settings->getRawOriginal('avatar'); $avatar = User::whereEmail('john@doe.com')->first()->settings->getRawOriginal('avatar');
collect(config('vuefilemanager.avatar_sizes')) collect(config('vuefilemanager.avatar_sizes'))
->each(fn ($size) => ->each(
fn ($size) =>
Storage::disk('local') Storage::disk('local')
->assertExists("avatars/{$size['name']}-{$avatar}") ->assertExists("avatars/{$size['name']}-{$avatar}")
); );
-1
View File
@@ -1,5 +1,4 @@
<?php <?php
namespace Tests\Domain\Browsing; namespace Tests\Domain\Browsing;
use Tests\TestCase; use Tests\TestCase;
-2
View File
@@ -1,12 +1,10 @@
<?php <?php
namespace Tests\Domain\Files; namespace Tests\Domain\Files;
use Storage; use Storage;
use Tests\TestCase; use Tests\TestCase;
use App\Users\Models\User; use App\Users\Models\User;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Laravel\Sanctum\Sanctum;
use Domain\Files\Models\File; use Domain\Files\Models\File;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
+2 -1
View File
@@ -54,7 +54,8 @@ class FileTest extends TestCase
); );
collect(config('vuefilemanager.image_sizes')) collect(config('vuefilemanager.image_sizes'))
->each(fn ($item) => ->each(
fn ($item) =>
$disk->assertExists( $disk->assertExists(
"files/{$user->id}/{$item['name']}-{$file->basename}" "files/{$user->id}/{$item['name']}-{$file->basename}"
) )
-1
View File
@@ -1,5 +1,4 @@
<?php <?php
namespace Tests\Domain\Homepage; namespace Tests\Domain\Homepage;
use Mail; use Mail;
+2 -1
View File
@@ -273,7 +273,8 @@ class SetupWizardTest extends TestCase
$this->assertNotNull($avatar); $this->assertNotNull($avatar);
collect(config('vuefilemanager.avatar_sizes')) collect(config('vuefilemanager.avatar_sizes'))
->each(fn ($size) => ->each(
fn ($size) =>
Storage::disk('local') Storage::disk('local')
->assertExists("avatars/{$size['name']}-{$avatar}") ->assertExists("avatars/{$size['name']}-{$avatar}")
); );
@@ -1,5 +1,4 @@
<?php <?php
namespace Tests\Domain\Sharing; namespace Tests\Domain\Sharing;
use Storage; use Storage;
@@ -54,7 +53,7 @@ class VisitorAccessToItemsTest extends TestCase
->assertStatus(200); ->assertStatus(200);
} }
if (!$is_protected) { if (! $is_protected) {
// Get shared file // Get shared file
$this->get("/file/$document->name/$share->token") $this->get("/file/$document->name/$share->token")
->assertStatus(200); ->assertStatus(200);
@@ -136,7 +135,7 @@ class VisitorAccessToItemsTest extends TestCase
->assertStatus(200); ->assertStatus(200);
} }
if (!$is_protected) { if (! $is_protected) {
$this->get("/share/$share->token") $this->get("/share/$share->token")
->assertStatus(200); ->assertStatus(200);
} }
@@ -189,7 +188,7 @@ class VisitorAccessToItemsTest extends TestCase
->assertStatus(200); ->assertStatus(200);
} }
if (!$is_protected) { if (! $is_protected) {
$this->get("/thumbnail/xs-$fileName/$share->token") $this->get("/thumbnail/xs-$fileName/$share->token")
->assertStatus(200); ->assertStatus(200);
} }
+7 -7
View File
@@ -37,13 +37,13 @@ class SearchTest extends TestCase
collect([$english, $russian, $turkish]) collect([$english, $russian, $turkish])
->each( ->each(
fn ($file) => $this fn ($file) => $this
->actingAs($user) ->actingAs($user)
->getJson('/api/browse/search?query=' . mb_strtolower(mb_substr($file->name, 0, 3))) ->getJson('/api/browse/search?query=' . mb_strtolower(mb_substr($file->name, 0, 3)))
->assertStatus(200) ->assertStatus(200)
->assertJsonFragment([ ->assertJsonFragment([
'id' => $file->id, 'id' => $file->id,
'name' => $file->name, 'name' => $file->name,
]) ])
); );
} }
+4 -5
View File
@@ -1,15 +1,14 @@
<?php <?php
namespace Tests\Domain\Teams; namespace Tests\Domain\Teams;
use Str;
use Notification;
use Tests\TestCase;
use App\Users\Models\User; use App\Users\Models\User;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\DB;
use Domain\Teams\Models\TeamFolderInvitation; use Domain\Teams\Models\TeamFolderInvitation;
use Domain\Teams\Notifications\InvitationIntoTeamFolder; use Domain\Teams\Notifications\InvitationIntoTeamFolder;
use Illuminate\Support\Facades\DB;
use Notification;
use Str;
use Tests\TestCase;
class TeamManagementTest extends TestCase class TeamManagementTest extends TestCase
{ {
-1
View File
@@ -7,7 +7,6 @@ use App\Users\Models\User;
use Domain\Files\Models\File; use Domain\Files\Models\File;
use Domain\Folders\Models\Folder; use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Domain\Teams\Models\TeamFolderInvitation;
use Domain\Teams\Notifications\InvitationIntoTeamFolder; use Domain\Teams\Notifications\InvitationIntoTeamFolder;
class TeamsTest extends TestCase class TeamsTest extends TestCase