From b3b0def50c616a90c2b9de90d5ec8b020d58e5e8 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 3 Mar 2019 15:53:53 +0300 Subject: [PATCH] add events, move ACLService and TransferService to Services folder --- README.md | 25 +++ config/file-manager.php | 4 +- docs/acl.md | 15 +- docs/configuration.md | 2 +- docs/events.md | 207 ++++++++++++++++++ docs/index.md | 1 + docs/installation.md | 2 +- docs/integration.md | 2 +- src/Controllers/FileManagerController.php | 88 ++++++-- src/Events/Deleted.php | 45 ++++ src/Events/Deleting.php | 45 ++++ src/Events/DirectoryCreated.php | 59 +++++ src/Events/DirectoryCreating.php | 59 +++++ src/Events/DiskSelected.php | 30 +++ src/Events/Download.php | 45 ++++ src/Events/FileCreated.php | 59 +++++ src/Events/FileCreating.php | 59 +++++ src/Events/FileUpdate.php | 55 +++++ src/Events/FilesUploaded.php | 79 +++++++ src/Events/FilesUploading.php | 79 +++++++ src/Events/Paste.php | 59 +++++ src/Events/Rename.php | 59 +++++ src/FileManager.php | 10 +- src/FileManagerServiceProvider.php | 2 +- src/Middleware/FileManagerACL.php | 7 +- src/{ => Services}/ACLService/ACL.php | 2 +- .../ACLService/ACLRepository.php | 4 +- .../ACLService/ConfigACLRepository.php | 4 +- .../ACLService/DBACLRepository.php | 4 +- .../TransferService/ExternalTransfer.php | 2 +- .../TransferService/LocalTransfer.php | 2 +- .../TransferService/Transfer.php | 2 +- .../TransferService/TransferFactory.php | 2 +- src/Traits/ContentTrait.php | 2 +- 34 files changed, 1072 insertions(+), 49 deletions(-) create mode 100644 docs/events.md create mode 100644 src/Events/Deleted.php create mode 100644 src/Events/Deleting.php create mode 100644 src/Events/DirectoryCreated.php create mode 100644 src/Events/DirectoryCreating.php create mode 100644 src/Events/DiskSelected.php create mode 100644 src/Events/Download.php create mode 100644 src/Events/FileCreated.php create mode 100644 src/Events/FileCreating.php create mode 100644 src/Events/FileUpdate.php create mode 100644 src/Events/FilesUploaded.php create mode 100644 src/Events/FilesUploading.php create mode 100644 src/Events/Paste.php create mode 100644 src/Events/Rename.php rename src/{ => Services}/ACLService/ACL.php (96%) rename src/{ => Services}/ACLService/ACLRepository.php (83%) rename src/{ => Services}/ACLService/ConfigACLRepository.php (80%) rename src/{ => Services}/ACLService/DBACLRepository.php (83%) rename src/{ => Services}/TransferService/ExternalTransfer.php (98%) rename src/{ => Services}/TransferService/LocalTransfer.php (97%) rename src/{ => Services}/TransferService/Transfer.php (95%) rename src/{ => Services}/TransferService/TransferFactory.php (86%) diff --git a/README.md b/README.md index 88f0475..3ea555d 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ * [Configuration](./docs/configuration.md) * [Integration](./docs/integration.md) * [ACL](./docs/acl.md) +* [Events](./docs/events.md) ## Features @@ -58,8 +59,32 @@ * whitelist - Deny everything, that not allowed by the ACL rules list * You can use different repositories for the rules - an array (configuration file), a database (there is an example implementation), or you can add your own. * You can hide files and folders that are not accessible. +* Events (v2.2) * Supported locales : ru, en, ar +## Upgrading to version 2.2 + +If you using ACL change namespace in config file for 'aclRepository' + +```php +// From +'aclRepository' => Alexusmai\LaravelFileManager\ACLService\ConfigACLRepository::class, + +// To +'aclRepository' => Alexusmai\LaravelFileManager\Services\ACLService\ConfigACLRepository::class, +``` + +if you create your own repository for ACL rules, don't be forget change namespace to: + +```php +// From +Alexusmai\LaravelFileManager\ACLService; + +// To +Alexusmai\LaravelFileManager\Services\ACLService; +``` + + ## Thanks * Khalid Bj [D34DlyM4N](https://github.com/D34DlyM4N) diff --git a/config/file-manager.php b/config/file-manager.php index bf2c112..cb27ce6 100644 --- a/config/file-manager.php +++ b/config/file-manager.php @@ -71,8 +71,8 @@ * * default - config file(ConfigACLRepository) */ - 'aclRepository' => Alexusmai\LaravelFileManager\ACLService\ConfigACLRepository::class, - //'aclRepository' => Alexusmai\LaravelFileManager\ACLService\DBACLRepository::class, + 'aclRepository' => Alexusmai\LaravelFileManager\Services\ACLService\ConfigACLRepository::class, + //'aclRepository' => Alexusmai\LaravelFileManager\Services\ACLService\DBACLRepository::class, /** * ACL rules list - used for default repository diff --git a/docs/acl.md b/docs/acl.md index 3d36f54..dc7c74c 100644 --- a/docs/acl.md +++ b/docs/acl.md @@ -1,4 +1,4 @@ -## ACL +# ACL You can use the access control system to differentiate access to files and folders for different users. For this you need to make the following settings. @@ -40,7 +40,7 @@ Open configuration file - config/file-manager.php * * default - config file(ConfigACLRepository) */ - 'aclRepository' => \Alexusmai\LaravelFileManager\ACLService\ConfigACLRepository::class, + 'aclRepository' => \Alexusmai\LaravelFileManager\Services\ACLService\ConfigACLRepository::class, ``` Now you can add your rules in 'aclRules' array. But if you want to store your rules in another place, such as a database, you need to create your own class, and implements two functions from ACLRepository. @@ -51,7 +51,7 @@ Open configuration file - config/file-manager.php php artisan vendor:publish --tag=fm-migrations ``` - See [/src/ACLService/DBACLRepository.php](./../src/ACLService/DBACLRepository.php) and [/migrations/2019_02_06_174631_make_acl_rules_table.php](./../migrations/2019_02_06_174631_make_acl_rules_table.php) + See [/src/Services/ACLService/DBACLRepository.php](../src/Services/ACLService/DBACLRepository.php) and [/migrations/2019_02_06_174631_make_acl_rules_table.php](./../migrations/2019_02_06_174631_make_acl_rules_table.php) ## Example 1 @@ -63,7 +63,7 @@ I have disk 'images' in /config/filesystems.php for folder /public/images 'images' => [ 'driver' => 'local', 'root' => public_path('images'), - 'url' => '/images/', + 'url' => env('APP_URL').'/images/', ], ] ``` @@ -117,7 +117,7 @@ I add this disk to file-manager config file namespace App\Http; -use Alexusmai\LaravelFileManager\ACLService\ACLRepository; +use Alexusmai\LaravelFileManager\Services\ACLService\ACLRepository; class UsersACLRepository implements ACLRepository { @@ -181,3 +181,8 @@ class UsersACLRepository implements ACLRepository */ 'aclRepository' => \App\Http\UsersACLRepository::class, ``` + + +## What's next + +[Events](./events.md) diff --git a/docs/configuration.md b/docs/configuration.md index eda9d2f..a8edacd 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,4 +1,4 @@ -## Configuration +# Configuration Open configuration file - config/file-manager.php diff --git a/docs/events.md b/docs/events.md new file mode 100644 index 0000000..d04aaa4 --- /dev/null +++ b/docs/events.md @@ -0,0 +1,207 @@ +# Events + +### DiskSelected + +> Alexusmai\LaravelFileManager\Events\DiskSelected + +Example: + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\DiskSelected', + function ($event) { + \Log::info('DiskSelected:', [$event->disk()]); + } +); +``` + +### FilesUploading + +> Alexusmai\LaravelFileManager\Events\FilesUploading + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\FilesUploading', + function ($event) { + \Log::info('FilesUploading:', [ + $event->disk(), + $event->path(), + $event->files(), + $event->overwrite(), + ]); + } +); +``` + +### FilesUploaded + +> Alexusmai\LaravelFileManager\Events\FilesUploaded + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\FilesUploaded', + function ($event) { + \Log::info('FilesUploaded:', [ + $event->disk(), + $event->path(), + $event->files(), + $event->overwrite(), + ]); + } +); +``` + +### Deleting + +> Alexusmai\LaravelFileManager\Events\Deleting + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\Deleting', + function ($event) { + \Log::info('Deleting:', [ + $event->disk(), + $event->items(), + ]); + } +); +``` + +### Deleted + +> Alexusmai\LaravelFileManager\Events\Deleted + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\Deleted', + function ($event) { + \Log::info('Deleted:', [ + $event->disk(), + $event->items(), + ]); + } +); +``` + +### Paste + +> Alexusmai\LaravelFileManager\Events\Paste + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\Paste', + function ($event) { + \Log::info('Paste:', [ + $event->disk(), + $event->path(), + $event->clipboard(), + ]); + } +); +``` + +### Rename + +> Alexusmai\LaravelFileManager\Events\Rename + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\Rename', + function ($event) { + \Log::info('Rename:', [ + $event->disk(), + $event->newName(), + $event->oldName(), + ]); + } +); +``` + +### Download + +> Alexusmai\LaravelFileManager\Events\Download + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\Download', + function ($event) { + \Log::info('Download:', [ + $event->disk(), + $event->path(), + ]); + } +); +``` + +*When using a text editor, the file you are editing is also downloaded! And this event is triggered!* + +### DirectoryCreating + +> Alexusmai\LaravelFileManager\Events\DirectoryCreating + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\DirectoryCreating', + function ($event) { + \Log::info('DirectoryCreating:', [ + $event->disk(), + $event->path(), + $event->name(), + ]); + } +); +``` + +### DirectoryCreated + +> Alexusmai\LaravelFileManager\Events\DirectoryCreated + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\DirectoryCreated', + function ($event) { + \Log::info('DirectoryCreated:', [ + $event->disk(), + $event->path(), + $event->name(), + ]); + } +); +``` + +### FileCreating + +> Alexusmai\LaravelFileManager\Events\FileCreating + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\FileCreating', + function ($event) { + \Log::info('FileCreating:', [ + $event->disk(), + $event->path(), + $event->name(), + ]); + } +); +``` + +### FileCreated + +> Alexusmai\LaravelFileManager\Events\FileCreated + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\FileCreated', + function ($event) { + \Log::info('FileCreated:', [ + $event->disk(), + $event->path(), + $event->name(), + ]); + } +); +``` + +### FileUpdate + +> Alexusmai\LaravelFileManager\Events\FileUpdate + +```php +\Event::listen('Alexusmai\LaravelFileManager\Events\FileUpdate', + function ($event) { + \Log::info('FileUpdate:', [ + $event->disk(), + $event->path(), + ]); + } +); +``` diff --git a/docs/index.md b/docs/index.md index dd6fa5f..aa3edec 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,6 +11,7 @@ * [Configuration](./configuration.md) * [Integration](./integration.md) * [ACL](./acl.md) +* [Events](./events.md) ## Requirements * PHP >= 7.0.0 diff --git a/docs/installation.md b/docs/installation.md index e03013b..7c4b6a0 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,4 +1,4 @@ -## Installation +# Installation 1. Install package - using composer ```bash diff --git a/docs/integration.md b/docs/integration.md index 9b99c09..3cb3abe 100644 --- a/docs/integration.md +++ b/docs/integration.md @@ -1,4 +1,4 @@ -## Integration +# Integration > See examples in [examples](./../examples) folder diff --git a/src/Controllers/FileManagerController.php b/src/Controllers/FileManagerController.php index 502bea6..9a8852b 100644 --- a/src/Controllers/FileManagerController.php +++ b/src/Controllers/FileManagerController.php @@ -2,6 +2,18 @@ namespace Alexusmai\LaravelFileManager\Controllers; +use Alexusmai\LaravelFileManager\Events\Deleting; +use Alexusmai\LaravelFileManager\Events\DirectoryCreated; +use Alexusmai\LaravelFileManager\Events\DirectoryCreating; +use Alexusmai\LaravelFileManager\Events\DiskSelected; +use Alexusmai\LaravelFileManager\Events\Download; +use Alexusmai\LaravelFileManager\Events\FileCreated; +use Alexusmai\LaravelFileManager\Events\FileCreating; +use Alexusmai\LaravelFileManager\Events\FilesUploaded; +use Alexusmai\LaravelFileManager\Events\FilesUploading; +use Alexusmai\LaravelFileManager\Events\FileUpdate; +use Alexusmai\LaravelFileManager\Events\Paste; +use Alexusmai\LaravelFileManager\Events\Rename; use Alexusmai\LaravelFileManager\Requests\RequestValidator; use Alexusmai\LaravelFileManager\FileManager; use Alexusmai\LaravelFileManager\Services\Zip; @@ -80,6 +92,8 @@ public function tree(RequestValidator $request) */ public function selectDisk(RequestValidator $request) { + event(new DiskSelected($request->input('disk'))); + return response()->json([ 'result' => [ 'status' => 'success', @@ -97,14 +111,18 @@ public function selectDisk(RequestValidator $request) */ public function upload(RequestValidator $request) { - return response()->json( - $this->fm->upload( - $request->input('disk'), - $request->input('path'), - $request->file('files'), - $request->input('overwrite') - ) + event(new FilesUploading($request)); + + $uploadResponse = $this->fm->upload( + $request->input('disk'), + $request->input('path'), + $request->file('files'), + $request->input('overwrite') ); + + event(new FilesUploaded($request)); + + return response()->json($uploadResponse); } /** @@ -116,12 +134,14 @@ public function upload(RequestValidator $request) */ public function delete(RequestValidator $request) { - return response()->json( - $this->fm->delete( - $request->input('disk'), - $request->input('items') - ) + event(new Deleting($request)); + + $deleteResponse = $this->fm->delete( + $request->input('disk'), + $request->input('items') ); + + return response()->json($deleteResponse); } /** @@ -133,6 +153,8 @@ public function delete(RequestValidator $request) */ public function paste(RequestValidator $request) { + event(new Paste($request)); + return response()->json( $this->fm->paste( $request->input('disk'), @@ -151,6 +173,8 @@ public function paste(RequestValidator $request) */ public function rename(RequestValidator $request) { + event(new Rename($request)); + return response()->json( $this->fm->rename( $request->input('disk'), @@ -169,6 +193,8 @@ public function rename(RequestValidator $request) */ public function download(RequestValidator $request) { + event(new Download($request)); + return $this->fm->download( $request->input('disk'), $request->input('path') @@ -233,13 +259,19 @@ public function url(RequestValidator $request) */ public function createDirectory(RequestValidator $request) { - return response()->json( - $this->fm->createDirectory( - $request->input('disk'), - $request->input('path'), - $request->input('name') - ) + event(new DirectoryCreating($request)); + + $createDirectoryResponse = $this->fm->createDirectory( + $request->input('disk'), + $request->input('path'), + $request->input('name') ); + + if ($createDirectoryResponse['result']['status'] === 'success') { + event(new DirectoryCreated($request)); + } + + return response()->json($createDirectoryResponse); } /** @@ -251,13 +283,19 @@ public function createDirectory(RequestValidator $request) */ public function createFile(RequestValidator $request) { - return response()->json( - $this->fm->createFile( - $request->input('disk'), - $request->input('path'), - $request->input('name') - ) + event(new FileCreating($request)); + + $createFileResponse = $this->fm->createFile( + $request->input('disk'), + $request->input('path'), + $request->input('name') ); + + if ($createFileResponse['result']['status'] === 'success') { + event(new FileCreated($request)); + } + + return response()->json($createFileResponse); } /** @@ -269,6 +307,8 @@ public function createFile(RequestValidator $request) */ public function updateFile(RequestValidator $request) { + event(new FileUpdate($request)); + return response()->json( $this->fm->updateFile( $request->input('disk'), diff --git a/src/Events/Deleted.php b/src/Events/Deleted.php new file mode 100644 index 0000000..dbfad2b --- /dev/null +++ b/src/Events/Deleted.php @@ -0,0 +1,45 @@ +disk = $disk; + $this->items = $items; + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return array + */ + public function items() + { + return $this->items; + } +} diff --git a/src/Events/Deleting.php b/src/Events/Deleting.php new file mode 100644 index 0000000..7668b07 --- /dev/null +++ b/src/Events/Deleting.php @@ -0,0 +1,45 @@ +disk = $request->input('disk'); + $this->items = $request->input('items'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return array + */ + public function items() + { + return $this->items; + } +} diff --git a/src/Events/DirectoryCreated.php b/src/Events/DirectoryCreated.php new file mode 100644 index 0000000..98f00e1 --- /dev/null +++ b/src/Events/DirectoryCreated.php @@ -0,0 +1,59 @@ +disk = $request->input('disk'); + $this->path = $request->input('path'); + $this->name = $request->input('name'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } + + /** + * @return string + */ + public function name() + { + return $this->name; + } +} diff --git a/src/Events/DirectoryCreating.php b/src/Events/DirectoryCreating.php new file mode 100644 index 0000000..e1a0689 --- /dev/null +++ b/src/Events/DirectoryCreating.php @@ -0,0 +1,59 @@ +disk = $request->input('disk'); + $this->path = $request->input('path'); + $this->name = $request->input('name'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } + + /** + * @return string + */ + public function name() + { + return $this->name; + } +} diff --git a/src/Events/DiskSelected.php b/src/Events/DiskSelected.php new file mode 100644 index 0000000..eaa86d2 --- /dev/null +++ b/src/Events/DiskSelected.php @@ -0,0 +1,30 @@ +disk = $disk; + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } +} diff --git a/src/Events/Download.php b/src/Events/Download.php new file mode 100644 index 0000000..88d2410 --- /dev/null +++ b/src/Events/Download.php @@ -0,0 +1,45 @@ +disk = $request->input('disk'); + $this->path = $request->input('path'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } +} diff --git a/src/Events/FileCreated.php b/src/Events/FileCreated.php new file mode 100644 index 0000000..61ed8d0 --- /dev/null +++ b/src/Events/FileCreated.php @@ -0,0 +1,59 @@ +disk = $request->input('disk'); + $this->path = $request->input('path'); + $this->name = $request->input('name'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } + + /** + * @return string + */ + public function name() + { + return $this->name; + } +} diff --git a/src/Events/FileCreating.php b/src/Events/FileCreating.php new file mode 100644 index 0000000..c908566 --- /dev/null +++ b/src/Events/FileCreating.php @@ -0,0 +1,59 @@ +disk = $request->input('disk'); + $this->path = $request->input('path'); + $this->name = $request->input('name'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } + + /** + * @return string + */ + public function name() + { + return $this->name; + } +} diff --git a/src/Events/FileUpdate.php b/src/Events/FileUpdate.php new file mode 100644 index 0000000..7f4c055 --- /dev/null +++ b/src/Events/FileUpdate.php @@ -0,0 +1,55 @@ +disk = $request->input('disk'); + $this->path = $request->input('path'); + $this->file = $request->file('file'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return string + */ + public function path() + { + if ($this->path) { + return $this->path.'/'.$this->file->getClientOriginalName(); + } + + return $this->file->getClientOriginalName(); + } +} diff --git a/src/Events/FilesUploaded.php b/src/Events/FilesUploaded.php new file mode 100644 index 0000000..69be788 --- /dev/null +++ b/src/Events/FilesUploaded.php @@ -0,0 +1,79 @@ +disk = $request->input('disk'); + $this->path = $request->input('path'); + $this->files = $request->file('files'); + $this->overwrite = $request->input('overwrite'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } + + /** + * @return array + */ + public function files() + { + return array_map(function ($file) { + return [ + 'name' => $file->getClientOriginalName(), + 'path' => $this->path.'/'.$file->getClientOriginalName(), + 'extension' => $file->extension(), + ]; + }, $this->files); + } + + /** + * @return bool + */ + public function overwrite() + { + return !!$this->overwrite; + } +} diff --git a/src/Events/FilesUploading.php b/src/Events/FilesUploading.php new file mode 100644 index 0000000..6f51484 --- /dev/null +++ b/src/Events/FilesUploading.php @@ -0,0 +1,79 @@ +disk = $request->input('disk'); + $this->path = $request->input('path'); + $this->files = $request->file('files'); + $this->overwrite = $request->input('overwrite'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } + + /** + * @return array + */ + public function files() + { + return array_map(function ($file) { + return [ + 'name' => $file->getClientOriginalName(), + 'path' => $this->path.'/'.$file->getClientOriginalName(), + 'extension' => $file->extension(), + ]; + }, $this->files); + } + + /** + * @return bool + */ + public function overwrite() + { + return !!$this->overwrite; + } +} diff --git a/src/Events/Paste.php b/src/Events/Paste.php new file mode 100644 index 0000000..5b1e983 --- /dev/null +++ b/src/Events/Paste.php @@ -0,0 +1,59 @@ +disk = $request->input('disk'); + $this->path = $request->input('path'); + $this->clipboard = $request->input('clipboard'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return string + */ + public function path() + { + return $this->path; + } + + /** + * @return array + */ + public function clipboard() + { + return $this->clipboard; + } +} diff --git a/src/Events/Rename.php b/src/Events/Rename.php new file mode 100644 index 0000000..61ac51e --- /dev/null +++ b/src/Events/Rename.php @@ -0,0 +1,59 @@ +disk = $request->input('disk'); + $this->newName = $request->input('newName'); + $this->oldName = $request->input('oldName'); + } + + /** + * @return string + */ + public function disk() + { + return $this->disk; + } + + /** + * @return string + */ + public function newName() + { + return $this->newName; + } + + /** + * @return string + */ + public function oldName() + { + return $this->oldName; + } +} diff --git a/src/FileManager.php b/src/FileManager.php index cdbecab..77b965b 100644 --- a/src/FileManager.php +++ b/src/FileManager.php @@ -2,10 +2,11 @@ namespace Alexusmai\LaravelFileManager; +use Alexusmai\LaravelFileManager\Events\Deleted; use Alexusmai\LaravelFileManager\Traits\CheckTrait; use Alexusmai\LaravelFileManager\Traits\ContentTrait; use Alexusmai\LaravelFileManager\Traits\PathTrait; -use Alexusmai\LaravelFileManager\TransferService\TransferFactory; +use Alexusmai\LaravelFileManager\Services\TransferService\TransferFactory; use Illuminate\Support\Str; use Storage; use Image; @@ -150,6 +151,8 @@ public function upload($disk, $path, $files, $overwrite) */ public function delete($disk, $items) { + $deletedItems = []; + foreach ($items as $item) { // check all files and folders - exists or no if (!Storage::disk($disk)->exists($item['path'])) { @@ -163,8 +166,13 @@ public function delete($disk, $items) Storage::disk($disk)->delete($item['path']); } } + + // add deleted item + $deletedItems[] = $item; } + event(new Deleted($disk, $deletedItems)); + return [ 'result' => [ 'status' => 'success', diff --git a/src/FileManagerServiceProvider.php b/src/FileManagerServiceProvider.php index 6a5e24e..5ab0655 100644 --- a/src/FileManagerServiceProvider.php +++ b/src/FileManagerServiceProvider.php @@ -64,7 +64,7 @@ public function register() { // ACL Repository $this->app->bind( - 'Alexusmai\LaravelFileManager\ACLService\ACLRepository', + 'Alexusmai\LaravelFileManager\Services\ACLService\ACLRepository', $this->app['config']['file-manager.aclRepository'] ); diff --git a/src/Middleware/FileManagerACL.php b/src/Middleware/FileManagerACL.php index ff7b38b..abf7b6e 100644 --- a/src/Middleware/FileManagerACL.php +++ b/src/Middleware/FileManagerACL.php @@ -2,7 +2,7 @@ namespace Alexusmai\LaravelFileManager\Middleware; -use Alexusmai\LaravelFileManager\ACLService\ACL; +use Alexusmai\LaravelFileManager\Services\ACLService\ACL; use Closure; class FileManagerACL @@ -17,6 +17,11 @@ class FileManagerACL */ public function handle($request, Closure $next) { + // if ACL is OFF + if (!config('file-manager.acl')) { + return $next($request); + } + // get disk and path name $disk = $request->has('disk') ? $request->input('disk') : null; $path = $request->has('path') ? $request->input('path') : '/'; diff --git a/src/ACLService/ACL.php b/src/Services/ACLService/ACL.php similarity index 96% rename from src/ACLService/ACL.php rename to src/Services/ACLService/ACL.php index d0b84f3..8869a8f 100644 --- a/src/ACLService/ACL.php +++ b/src/Services/ACLService/ACL.php @@ -1,6 +1,6 @@