mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-28 11:00:39 +00:00
- convert folders into teams folders in convert/delete events
- composer update
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Domain\Teams\Actions;
|
||||
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class SetTeamFolderPropertyForAllChildrenAction
|
||||
{
|
||||
public function __invoke(Folder $folder, bool $isTeamFolder)
|
||||
{
|
||||
// Get all children of team folder
|
||||
$childrenFolderIds = Folder::with('folders:id,parent_id')
|
||||
->where('id', $folder->id)
|
||||
->get('id');
|
||||
|
||||
// Set all children as team_folder = true
|
||||
DB::table('folders')
|
||||
->whereIn('id', Arr::flatten([filter_folders_ids($childrenFolderIds)]))
|
||||
->update(['team_folder' => $isTeamFolder]);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
namespace Domain\Teams\Controllers;
|
||||
|
||||
use Domain\Teams\Actions\SetTeamFolderPropertyForAllChildrenAction;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Http\Response;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
@@ -13,18 +15,22 @@ class ConvertFolderIntoTeamFolderController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
public InviteMembersIntoTeamFolderAction $inviteMembers,
|
||||
public SetTeamFolderPropertyForAllChildrenAction $setTeamFolderPropertyForAllChildren,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(
|
||||
ConvertIntoTeamFolderRequest $request,
|
||||
Folder $folder
|
||||
): ResponseFactory | Response {
|
||||
): ResponseFactory|Response {
|
||||
// Update root team folder
|
||||
$folder->update([
|
||||
'team_folder' => 1,
|
||||
'parent_id' => null,
|
||||
]);
|
||||
|
||||
($this->setTeamFolderPropertyForAllChildren)($folder, true);
|
||||
|
||||
// Attach owner into members
|
||||
DB::table('team_folder_members')
|
||||
->insert([
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace Domain\Teams\Controllers;
|
||||
|
||||
use Domain\Teams\Actions\SetTeamFolderPropertyForAllChildrenAction;
|
||||
use Illuminate\Support\Str;
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Http\Response;
|
||||
@@ -23,6 +24,7 @@ class TeamFoldersController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
public InviteMembersIntoTeamFolderAction $inviteMembers,
|
||||
public SetTeamFolderPropertyForAllChildrenAction $setTeamFolderPropertyForAllChildren,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -31,7 +33,7 @@ class TeamFoldersController extends Controller
|
||||
$id = Str::isUuid($id) ? $id : null;
|
||||
|
||||
$folders = Folder::where('parent_id', $id)
|
||||
->where('team_folder', ! Str::isUuid($id))
|
||||
->where('team_folder', true)
|
||||
->where('user_id', Auth::id())
|
||||
->sortable()
|
||||
->get();
|
||||
@@ -111,6 +113,8 @@ class TeamFoldersController extends Controller
|
||||
->where('parent_id', $folder->id)
|
||||
->delete();
|
||||
|
||||
($this->setTeamFolderPropertyForAllChildren)($folder, false);
|
||||
|
||||
$folder->update([
|
||||
'team_folder' => 0,
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user