Skip to content

Commit

Permalink
Merge branch 'release/v2.5.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
alexusmai committed Jun 29, 2020
2 parents 2ccf062 + ee968f4 commit 22abfc9
Show file tree
Hide file tree
Showing 11 changed files with 78 additions and 76 deletions.
51 changes: 11 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@

**Vue.js Frontend:** [alexusmai/vue-laravel-file-manager](https://github.com/alexusmai/vue-laravel-file-manager)

**--- Laravel 7 support added but not fully tested!! ---**

## Documentation

[Laravel File Manager Docs](./docs/index.md)
Expand Down Expand Up @@ -66,32 +64,25 @@
* Events (v2.2)
* Thumbnails lazy load
* Dynamic configuration (v2.4)
* Supported locales : ru, en, ar, sr, cs, de, es, nl, zh-CN, fa, it, tr, fr, pt_BR

## In a new version 2.4
* Supported locales : ru, en, ar, sr, cs, de, es, nl, zh-CN, fa, it, tr, fr, pt-BR, zh-TW

Now you can create your own config repositories, it will allow to change your configuration dynamically.
## In a new version 2.5

How to do it:

Create new class - example - TestConfigRepository
You can change Route prefix (default - 'file-manager')

```php
namespace App\Http;

use Alexusmai\LaravelFileManager\Services\ConfigService\ConfigRepository;

class TestConfigRepository implements ConfigRepository
{
// implement all methods from interface
}
/**
* LFM Route prefix
* !!! WARNING - if you change it, you should compile frontend with new prefix(baseUrl) !!!
*/
'routePrefix' => 'file-manager',
```

For example see [src/Services/ConfigService/DefaultConfigRepository.php](https://github.com/alexusmai/laravel-file-manager/blob/master/src/Services/ConfigService/DefaultConfigRepository.php)
Open PDF files in a new tab (test) - use 'double-click'

## Upgrading to version 2.4
## Upgrading to version 2.5

Update pre-compiled css and js files and config file - file-manager.php
Update pre-compiled css and js files and config file (backup your settings first!!) - file-manager.php


```php
Expand All @@ -101,23 +92,3 @@ php artisan vendor:publish --tag=fm-config --force
php artisan vendor:publish --tag=fm-assets --force
```

If you use the ACL, now you don't need to add the acl middleware to configuration.

```php
//======= In old versions ==========
'acl' => true,

// add acl middleware to your array
'middleware' => ['web', 'fm-acl'],

//======= In a new version =========
'acl' => true,

'middleware' => ['web'],
```

## Contributors

[![](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/images/0)](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/links/0)[![](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/images/1)](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/links/1)[![](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/images/2)](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/links/2)[![](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/images/3)](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/links/3)[![](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/images/4)](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/links/4)[![](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/images/5)](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/links/5)[![](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/images/6)](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/links/6)[![](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/images/7)](https://sourcerer.io/fame/alexusmai/alexusmai/laravel-file-manager/links/7)


1 change: 1 addition & 0 deletions docs/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ Example:
$event->disk(),
$event->newName(),
$event->oldName(),
$event->type(), // 'file' or 'dir'
]);
}
);
Expand Down
6 changes: 3 additions & 3 deletions resources/assets/css/file-manager.css

Large diffs are not rendered by default.

29 changes: 11 additions & 18 deletions resources/assets/js/file-manager.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion resources/assets/js/file-manager.js.map

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions src/Controllers/FileManagerController.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
use Illuminate\Routing\Controller;
use Illuminate\Http\Request;

use function GuzzleHttp\Promise\all;

class FileManagerController extends Controller
{
/**
Expand Down
19 changes: 19 additions & 0 deletions src/Events/Rename.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Alexusmai\LaravelFileManager\Events;

use Illuminate\Http\Request;
use Storage;

class Rename
{
Expand All @@ -21,6 +22,11 @@ class Rename
*/
private $oldName;

/**
* @var string
*/
private $type;

/**
* Rename constructor.
*
Expand All @@ -31,6 +37,11 @@ public function __construct(Request $request)
$this->disk = $request->input('disk');
$this->newName = $request->input('newName');
$this->oldName = $request->input('oldName');

$info = Storage::disk($request->input('disk'))
->getMetadata($request->input('oldName'));

$this->type = $info['type'];
}

/**
Expand All @@ -56,4 +67,12 @@ public function oldName()
{
return $this->oldName;
}

/**
* @return string
*/
public function type()
{
return $this->type;
}
}
23 changes: 10 additions & 13 deletions src/Middleware/FileManagerACL.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ class FileManagerACL
/**
* FileManagerACL constructor.
*
* @param Request $request
* @param ACL $acl
* @param Request $request
* @param ACL $acl
*/
public function __construct(Request $request, ACL $acl)
{
Expand All @@ -74,8 +74,8 @@ public function __construct(Request $request, ACL $acl)
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
Expand All @@ -84,13 +84,13 @@ public function handle($request, Closure $next)
$routeName = $request->route()->getName();

// if ACL is OFF or route name wasn't found
if (!resolve(ConfigRepository::class)->getAcl()
|| !array_key_exists($routeName, self::CHECKERS)
if ( ! resolve(ConfigRepository::class)->getAcl()
|| ! array_key_exists($routeName, self::CHECKERS)
) {
return $next($request);
}

if (!call_user_func([$this, self::CHECKERS[$routeName]])) {
if ( ! call_user_func([$this, self::CHECKERS[$routeName]])) {
return $this->errorMessage();
}

Expand Down Expand Up @@ -207,8 +207,7 @@ protected function checkDelete()
$firstFall = Arr::first($this->request->input('items'),
function ($value) {
// need r/w access
return $this->acl->getAccessLevel($this->disk, $value['path'])
!== 2;
return $this->acl->getAccessLevel($this->disk, $value['path']) !== 2;
}, null);

if ($firstFall) {
Expand All @@ -234,14 +233,12 @@ protected function checkPaste()
// can user copy or cut selected files and folders
$checkDirs = Arr::first($clipboard['directories'],
function ($value) use ($clipboard, $getLevel) {
return $this->acl->getAccessLevel($clipboard['disk'], $value)
< $getLevel;
return $this->acl->getAccessLevel($clipboard['disk'], $value) < $getLevel;
}, null);

$checkFiles = Arr::first($clipboard['files'],
function ($value) use ($clipboard, $getLevel) {
return $this->acl->getAccessLevel($clipboard['disk'], $value)
< $getLevel;
return $this->acl->getAccessLevel($clipboard['disk'], $value) < $getLevel;
}, null);

// can user write to selected folder?
Expand Down
8 changes: 8 additions & 0 deletions src/Services/ConfigService/ConfigRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@
*/
interface ConfigRepository
{
/**
* LFM Route prefix
* !!! WARNING - if you change it, you should compile frontend with new prefix(baseUrl) !!!
*
* @return string
*/
public function getRoutePrefix(): string;

/**
* Get disk list
*
Expand Down
11 changes: 11 additions & 0 deletions src/Services/ConfigService/DefaultConfigRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,17 @@
*/
class DefaultConfigRepository implements ConfigRepository
{
/**
* LFM Route prefix
* !!! WARNING - if you change it, you should compile frontend with new prefix(baseUrl) !!!
*
* @return string
*/
public function getRoutePrefix(): string
{
return config('file-manager.routePrefix');
}

/**
* Get disk list
*
Expand Down
2 changes: 1 addition & 1 deletion src/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

Route::group([
'middleware' => $middleware,
'prefix' => 'file-manager',
'prefix' => $config->getRoutePrefix(),
'namespace' => 'Alexusmai\LaravelFileManager\Controllers',
], function () {

Expand Down

0 comments on commit 22abfc9

Please sign in to comment.