mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-23 17:50:38 +00:00
v1.4
This commit is contained in:
@@ -1,50 +1,45 @@
|
|||||||
## VueFileManager - Make your own Private Cloud with VueFileManager client powered by Laravel and Vue
|
### Installation setup
|
||||||
For installation, please read [Online Documentation](https://vuefilemanager.hi5ve.digital/docs/).
|
|
||||||

|
|
||||||
|
|
||||||
**Features:**
|
Run these commands to install vendors:
|
||||||
|
```
|
||||||
|
composer install
|
||||||
|
```
|
||||||
|
```
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
### Drag & Drop
|
Setup your database in .env and run this command:
|
||||||
Reorder your files easily, just drag your folder or file and drop to another folder.
|
```
|
||||||
|
php artisan setup:prod
|
||||||
|
```
|
||||||
|
|
||||||
### List & Grid Preview
|
It automatically:
|
||||||
You can change from two types of file and folder previews. Show your items in list or grid preview.
|
* Migrate database
|
||||||
|
* Generate Application key
|
||||||
|
* Create Passport Encryption keys
|
||||||
|
* Create Password grant client
|
||||||
|
* Create Personal access client
|
||||||
|
|
||||||
### Background Uploading
|
Then, copy generated password grant client `Client ID`, `Client secret` and paste it to .env files here:
|
||||||
Your files is uploaded in the background, so nothing will stop you from working with the files.
|
```
|
||||||
|
PASSPORT_CLIENT_ID=<your_passport_client_id>
|
||||||
|
PASSPORT_CLIENT_SECRET=<your_passport_client_secret>
|
||||||
|
```
|
||||||
|
For sending forgoten password request via email, fill your mail driver in .env
|
||||||
|
|
||||||
### File & Folder searching
|
### Run Application
|
||||||
Search your items quickly, from anywhere in the app you are.
|
To start server on your localhost, run this command
|
||||||
|
```
|
||||||
|
php artisan serve
|
||||||
|
```
|
||||||
|
|
||||||
### Custom Context Menu
|
To compiles and hot-reloads for development, run this command
|
||||||
Quick actions next to your file on your right click.
|
```
|
||||||
|
npm run hot
|
||||||
|
```
|
||||||
|
|
||||||
### File Details
|
To compiles for production, run this command
|
||||||
Get preview of your files quickli in right panel next to your files.
|
```
|
||||||
|
npm run prod
|
||||||
### Improved Mobile User Experience
|
```
|
||||||
Need to quickly upload or get your files on your smartphone? It’s not problem.
|
That's all, happy coding! :tada: :tada: :tada:
|
||||||
|
|
||||||
### Laravel PHP Framework
|
|
||||||
You don't have to create your own API for VueFileManager. You can use our pre-build backend in Laravel PHP Framework.
|
|
||||||
|
|
||||||
### Vue.js
|
|
||||||
Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web. We ❤️ Vue.
|
|
||||||
|
|
||||||
### Online Documentation
|
|
||||||
Don’t worry, we will explain all things you should know to successfully start your VueFileManager instance.
|
|
||||||
|
|
||||||
### Night Mode
|
|
||||||
We add native support for dark mode. Now, it’s easy for your eyes to work with your files at night.
|
|
||||||
|
|
||||||
### User Login & Registration
|
|
||||||
Let user create their own account with own storage. All these accounts is protected by user login.
|
|
||||||
|
|
||||||
### Integrated Trash
|
|
||||||
Did you delete something by accident or do you want your deleted files back? Restore your files from trash.
|
|
||||||
|
|
||||||
### Navigation Sidebar
|
|
||||||
Navigate through your files easily. Add you favourites folder or look on your latest uploads.
|
|
||||||
|
|
||||||
### Storage Limits
|
|
||||||
Set storage limits to your user account to sure, you never exceed your storage limits.
|
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
|
class SetupProductionEnvironment extends Command
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The name and signature of the console command.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $signature = 'setup:prod';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The console command description.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $description = 'Setting production environment';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new command instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the console command.
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
$this->info('Setting up production environment');
|
||||||
|
|
||||||
|
$this->migrateDatabase();
|
||||||
|
$this->generateKey();
|
||||||
|
$this->createPassportKeys();
|
||||||
|
$this->createPassportClientPassword();
|
||||||
|
$this->createPassportClientPersonal();
|
||||||
|
|
||||||
|
$this->info('Everything is done, congratulations! 🥳🥳🥳');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Migrate database
|
||||||
|
*/
|
||||||
|
public function generateKey()
|
||||||
|
{
|
||||||
|
$this->call('key:generate');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Migrate database
|
||||||
|
*/
|
||||||
|
public function migrateDatabase()
|
||||||
|
{
|
||||||
|
$this->call('migrate:fresh');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create Passport Encryption keys
|
||||||
|
*/
|
||||||
|
public function createPassportKeys()
|
||||||
|
{
|
||||||
|
$this->call('passport:keys', [
|
||||||
|
'--force' => true
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create Password grant client
|
||||||
|
*/
|
||||||
|
public function createPassportClientPassword()
|
||||||
|
{
|
||||||
|
$this->call('passport:client', [
|
||||||
|
'--password' => true,
|
||||||
|
'--name' => 'vuefilemanager',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create Personal access client
|
||||||
|
*/
|
||||||
|
public function createPassportClientPersonal()
|
||||||
|
{
|
||||||
|
$this->call('passport:client', [
|
||||||
|
'--personal' => true,
|
||||||
|
'--name' => 'shared',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Console;
|
namespace App\Console;
|
||||||
|
|
||||||
|
use App\Console\Commands\SetupProductionEnvironment;
|
||||||
use Illuminate\Console\Scheduling\Schedule;
|
use Illuminate\Console\Scheduling\Schedule;
|
||||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||||
|
|
||||||
@@ -13,7 +14,7 @@ class Kernel extends ConsoleKernel
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $commands = [
|
protected $commands = [
|
||||||
//
|
SetupProductionEnvironment::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -7,13 +7,13 @@ use App\Http\Requests\FileFunctions\DeleteItemRequest;
|
|||||||
use App\Http\Requests\FileFunctions\RenameItemRequest;
|
use App\Http\Requests\FileFunctions\RenameItemRequest;
|
||||||
use App\Http\Requests\FileFunctions\MoveItemRequest;
|
use App\Http\Requests\FileFunctions\MoveItemRequest;
|
||||||
use App\Http\Requests\FileFunctions\UploadRequest;
|
use App\Http\Requests\FileFunctions\UploadRequest;
|
||||||
|
use App\Http\Tools\Demo;
|
||||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Tools\Guardian;
|
use App\Http\Tools\Guardian;
|
||||||
use App\Http\Tools\Editor;
|
use App\Http\Tools\Editor;
|
||||||
use App\FileManagerFolder;
|
|
||||||
use App\FileManagerFile;
|
use App\FileManagerFile;
|
||||||
use Exception;
|
use Exception;
|
||||||
|
|
||||||
@@ -24,10 +24,16 @@ class EditItemsController extends Controller
|
|||||||
* Create new folder for authenticated master|editor user
|
* Create new folder for authenticated master|editor user
|
||||||
*
|
*
|
||||||
* @param CreateFolderRequest $request
|
* @param CreateFolderRequest $request
|
||||||
* @return FileManagerFolder|Model
|
* @return array
|
||||||
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function user_create_folder(CreateFolderRequest $request)
|
public function user_create_folder(CreateFolderRequest $request)
|
||||||
{
|
{
|
||||||
|
// Demo preview
|
||||||
|
if (is_demo(Auth::id())) {
|
||||||
|
return Demo::create_folder($request);
|
||||||
|
}
|
||||||
|
|
||||||
// Check permission to create folder for authenticated editor
|
// Check permission to create folder for authenticated editor
|
||||||
if ($request->user()->tokenCan('editor')) {
|
if ($request->user()->tokenCan('editor')) {
|
||||||
|
|
||||||
@@ -50,13 +56,18 @@ class EditItemsController extends Controller
|
|||||||
*
|
*
|
||||||
* @param CreateFolderRequest $request
|
* @param CreateFolderRequest $request
|
||||||
* @param $token
|
* @param $token
|
||||||
* @return FileManagerFolder|Model
|
* @return array
|
||||||
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function guest_create_folder(CreateFolderRequest $request, $token)
|
public function guest_create_folder(CreateFolderRequest $request, $token)
|
||||||
{
|
{
|
||||||
// Get shared record
|
// Get shared record
|
||||||
$shared = get_shared($token);
|
$shared = get_shared($token);
|
||||||
|
|
||||||
|
if (is_demo($shared->user_id)) {
|
||||||
|
return Demo::create_folder($request);
|
||||||
|
}
|
||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (!is_editor($shared)) abort(403);
|
if (!is_editor($shared)) abort(403);
|
||||||
|
|
||||||
@@ -73,9 +84,15 @@ class EditItemsController extends Controller
|
|||||||
* @param RenameItemRequest $request
|
* @param RenameItemRequest $request
|
||||||
* @param $unique_id
|
* @param $unique_id
|
||||||
* @return mixed
|
* @return mixed
|
||||||
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function user_rename_item(RenameItemRequest $request, $unique_id)
|
public function user_rename_item(RenameItemRequest $request, $unique_id)
|
||||||
{
|
{
|
||||||
|
// Demo preview
|
||||||
|
if (is_demo(Auth::id())) {
|
||||||
|
return Demo::rename_item($request, $unique_id);
|
||||||
|
}
|
||||||
|
|
||||||
// Check permission to rename item for authenticated editor
|
// Check permission to rename item for authenticated editor
|
||||||
if ($request->user()->tokenCan('editor')) {
|
if ($request->user()->tokenCan('editor')) {
|
||||||
|
|
||||||
@@ -107,12 +124,18 @@ class EditItemsController extends Controller
|
|||||||
* @param $unique_id
|
* @param $unique_id
|
||||||
* @param $token
|
* @param $token
|
||||||
* @return mixed
|
* @return mixed
|
||||||
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function guest_rename_item(RenameItemRequest $request, $unique_id, $token)
|
public function guest_rename_item(RenameItemRequest $request, $unique_id, $token)
|
||||||
{
|
{
|
||||||
// Get shared record
|
// Get shared record
|
||||||
$shared = get_shared($token);
|
$shared = get_shared($token);
|
||||||
|
|
||||||
|
// Demo preview
|
||||||
|
if (is_demo($shared->user_id)) {
|
||||||
|
return Demo::rename_item($request, $unique_id);
|
||||||
|
}
|
||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (!is_editor($shared)) abort(403);
|
if (!is_editor($shared)) abort(403);
|
||||||
|
|
||||||
@@ -147,6 +170,11 @@ class EditItemsController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function user_delete_item(DeleteItemRequest $request, $unique_id)
|
public function user_delete_item(DeleteItemRequest $request, $unique_id)
|
||||||
{
|
{
|
||||||
|
// Demo preview
|
||||||
|
if (is_demo(Auth::id())) {
|
||||||
|
return Demo::response_204();
|
||||||
|
}
|
||||||
|
|
||||||
// Check permission to delete item for authenticated editor
|
// Check permission to delete item for authenticated editor
|
||||||
if ($request->user()->tokenCan('editor')) {
|
if ($request->user()->tokenCan('editor')) {
|
||||||
|
|
||||||
@@ -191,6 +219,11 @@ class EditItemsController extends Controller
|
|||||||
// Get shared record
|
// Get shared record
|
||||||
$shared = get_shared($token);
|
$shared = get_shared($token);
|
||||||
|
|
||||||
|
// Demo preview
|
||||||
|
if (is_demo($shared->user_id)) {
|
||||||
|
return Demo::response_204();
|
||||||
|
}
|
||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (!is_editor($shared)) abort(403);
|
if (!is_editor($shared)) abort(403);
|
||||||
|
|
||||||
@@ -216,9 +249,15 @@ class EditItemsController extends Controller
|
|||||||
*
|
*
|
||||||
* @param UploadRequest $request
|
* @param UploadRequest $request
|
||||||
* @return FileManagerFile|Model
|
* @return FileManagerFile|Model
|
||||||
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function user_upload(UploadRequest $request)
|
public function user_upload(UploadRequest $request)
|
||||||
{
|
{
|
||||||
|
// Demo preview
|
||||||
|
if (is_demo(Auth::id())) {
|
||||||
|
return Demo::upload($request);
|
||||||
|
}
|
||||||
|
|
||||||
// Check if user can upload
|
// Check if user can upload
|
||||||
if (config('vuefilemanager.limit_storage_by_capacity') && user_storage_percentage() >= 100) {
|
if (config('vuefilemanager.limit_storage_by_capacity') && user_storage_percentage() >= 100) {
|
||||||
abort(423, 'You exceed your storage limit!');
|
abort(423, 'You exceed your storage limit!');
|
||||||
@@ -247,12 +286,18 @@ class EditItemsController extends Controller
|
|||||||
* @param UploadRequest $request
|
* @param UploadRequest $request
|
||||||
* @param $token
|
* @param $token
|
||||||
* @return FileManagerFile|Model
|
* @return FileManagerFile|Model
|
||||||
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function guest_upload(UploadRequest $request, $token)
|
public function guest_upload(UploadRequest $request, $token)
|
||||||
{
|
{
|
||||||
// Get shared record
|
// Get shared record
|
||||||
$shared = get_shared($token);
|
$shared = get_shared($token);
|
||||||
|
|
||||||
|
// Demo preview
|
||||||
|
if (is_demo($shared->user_id)) {
|
||||||
|
return Demo::upload($request);
|
||||||
|
}
|
||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (!is_editor($shared)) abort(403);
|
if (!is_editor($shared)) abort(403);
|
||||||
|
|
||||||
@@ -277,6 +322,11 @@ class EditItemsController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function user_move(MoveItemRequest $request, $unique_id)
|
public function user_move(MoveItemRequest $request, $unique_id)
|
||||||
{
|
{
|
||||||
|
// Demo preview
|
||||||
|
if (is_demo(Auth::id())) {
|
||||||
|
return Demo::response_204();
|
||||||
|
}
|
||||||
|
|
||||||
// Check permission to upload for authenticated editor
|
// Check permission to upload for authenticated editor
|
||||||
if ($request->user()->tokenCan('editor')) {
|
if ($request->user()->tokenCan('editor')) {
|
||||||
|
|
||||||
@@ -309,6 +359,11 @@ class EditItemsController extends Controller
|
|||||||
// Get shared record
|
// Get shared record
|
||||||
$shared = get_shared($token);
|
$shared = get_shared($token);
|
||||||
|
|
||||||
|
// Demo preview
|
||||||
|
if (is_demo(Auth::id())) {
|
||||||
|
return Demo::response_204();
|
||||||
|
}
|
||||||
|
|
||||||
// Check shared permission
|
// Check shared permission
|
||||||
if (!is_editor($shared)) abort(403);
|
if (!is_editor($shared)) abort(403);
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace App\Http\Controllers\FileFunctions;
|
namespace App\Http\Controllers\FileFunctions;
|
||||||
|
|
||||||
use App\FileManagerFolder;
|
use App\FileManagerFolder;
|
||||||
|
use App\Http\Tools\Demo;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
@@ -30,6 +31,10 @@ class FavouriteController extends Controller
|
|||||||
$user = Auth::user();
|
$user = Auth::user();
|
||||||
$folder = FileManagerFolder::where('unique_id', $request->unique_id)->first();
|
$folder = FileManagerFolder::where('unique_id', $request->unique_id)->first();
|
||||||
|
|
||||||
|
if (is_demo($user->id)) {
|
||||||
|
return Demo::favourites($user);
|
||||||
|
}
|
||||||
|
|
||||||
// Check ownership
|
// Check ownership
|
||||||
if ($folder->user_id !== $user->id) abort(403);
|
if ($folder->user_id !== $user->id) abort(403);
|
||||||
|
|
||||||
@@ -51,6 +56,10 @@ class FavouriteController extends Controller
|
|||||||
// Get user
|
// Get user
|
||||||
$user = Auth::user();
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if (is_demo($user->id)) {
|
||||||
|
return Demo::favourites($user);
|
||||||
|
}
|
||||||
|
|
||||||
// Remove folder from user favourites
|
// Remove folder from user favourites
|
||||||
$user->favourites()->detach($unique_id);
|
$user->favourites()->detach($unique_id);
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\FileFunctions;
|
namespace App\Http\Controllers\FileFunctions;
|
||||||
|
|
||||||
|
use App\Http\Tools\Demo;
|
||||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
@@ -23,6 +24,10 @@ class TrashController extends Controller
|
|||||||
// Get user id
|
// Get user id
|
||||||
$user_id = Auth::id();
|
$user_id = Auth::id();
|
||||||
|
|
||||||
|
if (is_demo($user_id)) {
|
||||||
|
return Demo::response_204();
|
||||||
|
}
|
||||||
|
|
||||||
// Get files and folders
|
// Get files and folders
|
||||||
$folders = FileManagerFolder::onlyTrashed()->where('user_id', $user_id)->get();
|
$folders = FileManagerFolder::onlyTrashed()->where('user_id', $user_id)->get();
|
||||||
$files = FileManagerFile::onlyTrashed()->where('user_id', $user_id)->get();
|
$files = FileManagerFile::onlyTrashed()->where('user_id', $user_id)->get();
|
||||||
@@ -68,6 +73,10 @@ class TrashController extends Controller
|
|||||||
// Get user id
|
// Get user id
|
||||||
$user_id = Auth::id();
|
$user_id = Auth::id();
|
||||||
|
|
||||||
|
if (is_demo($user_id)) {
|
||||||
|
return Demo::response_204();
|
||||||
|
}
|
||||||
|
|
||||||
// Get folder
|
// Get folder
|
||||||
if ($request->type === 'folder') {
|
if ($request->type === 'folder') {
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\User;
|
namespace App\Http\Controllers\User;
|
||||||
|
|
||||||
|
use App\Http\Tools\Demo;
|
||||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
@@ -58,6 +59,10 @@ class AccountController extends Controller
|
|||||||
// Get user
|
// Get user
|
||||||
$user = Auth::user();
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if (is_demo($user->id)) {
|
||||||
|
return Demo::response_204();
|
||||||
|
}
|
||||||
|
|
||||||
if ($request->hasFile('avatar')) {
|
if ($request->hasFile('avatar')) {
|
||||||
|
|
||||||
// Update avatar
|
// Update avatar
|
||||||
@@ -91,6 +96,10 @@ class AccountController extends Controller
|
|||||||
// Get user
|
// Get user
|
||||||
$user = Auth::user();
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if (is_demo($user->id)) {
|
||||||
|
return Demo::response_204();
|
||||||
|
}
|
||||||
|
|
||||||
// Change and store new password
|
// Change and store new password
|
||||||
$user->password = Hash::make($request->input('password'));
|
$user->password = Hash::make($request->input('password'));
|
||||||
$user->save();
|
$user->save();
|
||||||
|
|||||||
@@ -0,0 +1,143 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Tools;
|
||||||
|
|
||||||
|
use App;
|
||||||
|
use App\Share;
|
||||||
|
use App\FileManagerFile;
|
||||||
|
use App\FileManagerFolder;
|
||||||
|
use App\Http\Requests\FileFunctions\RenameItemRequest;
|
||||||
|
use App\User;
|
||||||
|
use ByteUnits\Metric;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
use Intervention\Image\ImageManagerStatic as Image;
|
||||||
|
|
||||||
|
|
||||||
|
class Demo
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create new directory
|
||||||
|
*
|
||||||
|
* @param $request
|
||||||
|
* @return array
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public static function create_folder($request)
|
||||||
|
{
|
||||||
|
// Get variables
|
||||||
|
$user_scope = $request->user() ? $request->user()->token()->scopes[0] : 'editor';
|
||||||
|
$name = $request->has('name') ? $request->input('name') : 'New Folder';
|
||||||
|
|
||||||
|
return [
|
||||||
|
'user_id' => 1,
|
||||||
|
'id' => random_int(1000, 9999),
|
||||||
|
'parent_id' => random_int(1000, 9999),
|
||||||
|
'name' => $name,
|
||||||
|
'type' => 'folder',
|
||||||
|
'unique_id' => random_int(1000, 9999),
|
||||||
|
'user_scope' => $user_scope,
|
||||||
|
'items' => '0',
|
||||||
|
'updated_at' => Carbon::now()->format('j M Y \a\t H:i'),
|
||||||
|
'created_at' => Carbon::now()->format('j M Y \a\t H:i'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rename item name
|
||||||
|
*
|
||||||
|
* @param RenameItemRequest $request
|
||||||
|
* @param $unique_id
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function rename_item($request, $unique_id)
|
||||||
|
{
|
||||||
|
// Get item
|
||||||
|
if ($request->type === 'folder') {
|
||||||
|
|
||||||
|
$item = FileManagerFolder::where('unique_id', $unique_id)
|
||||||
|
->where('user_id', 1)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$item = FileManagerFile::where('unique_id', $unique_id)
|
||||||
|
->where('user_id', 1)
|
||||||
|
->first();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($item) {
|
||||||
|
$item->name = $request->name;
|
||||||
|
|
||||||
|
return $item;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
return [
|
||||||
|
'unique_id' => $request->unique_id,
|
||||||
|
'name' => $request->name,
|
||||||
|
'type' => $request->type,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Upload file
|
||||||
|
*
|
||||||
|
* @param $request
|
||||||
|
* @return array
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public static function upload($request)
|
||||||
|
{
|
||||||
|
// Get user data
|
||||||
|
$user_scope = $request->user() ? $request->user()->token()->scopes[0] : 'editor';
|
||||||
|
|
||||||
|
// File
|
||||||
|
$file = $request->file('file');
|
||||||
|
$filename = Str::random() . '-' . str_replace(' ', '', $file->getClientOriginalName());
|
||||||
|
$thumbnail = null;
|
||||||
|
$filesize = $file->getSize();
|
||||||
|
$filetype = get_file_type($file);
|
||||||
|
|
||||||
|
return [
|
||||||
|
'id' => random_int(1000, 9999),
|
||||||
|
'unique_id' => random_int(1000, 9999),
|
||||||
|
'folder_id' => $request->parent_id,
|
||||||
|
'thumbnail' => 'data:' . $request->file('file')->getMimeType() . ';base64, ' . base64_encode(file_get_contents($request->file('file'))),
|
||||||
|
'name' => $file->getClientOriginalName(),
|
||||||
|
'basename' => $filename,
|
||||||
|
'mimetype' => $file->getClientOriginalExtension(),
|
||||||
|
'filesize' => Metric::bytes($filesize)->format(),
|
||||||
|
'type' => $filetype,
|
||||||
|
'file_url' => 'https://vuefilemanager.hi5ve.digital/assets/vue-file-manager-preview.jpg',
|
||||||
|
'user_scope' => $user_scope,
|
||||||
|
'created_at' => Carbon::now()->format('j M Y \a\t H:i'),
|
||||||
|
'updated_at' => Carbon::now()->format('j M Y \a\t H:i'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return 204 status
|
||||||
|
*
|
||||||
|
* @return ResponseFactory|\Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public static function response_204() {
|
||||||
|
|
||||||
|
return response('Done!', 204);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return 204 status
|
||||||
|
*
|
||||||
|
* @return ResponseFactory|\Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public static function favourites($user) {
|
||||||
|
|
||||||
|
return $user->favourites->makeHidden(['pivot']);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -50,7 +50,9 @@ class Editor
|
|||||||
*
|
*
|
||||||
* @param RenameItemRequest $request
|
* @param RenameItemRequest $request
|
||||||
* @param $unique_id
|
* @param $unique_id
|
||||||
* @return mixed
|
* @param null $shared
|
||||||
|
* @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model
|
||||||
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public static function rename_item($request, $unique_id, $shared = null)
|
public static function rename_item($request, $unique_id, $shared = null)
|
||||||
{
|
{
|
||||||
@@ -189,9 +191,9 @@ class Editor
|
|||||||
* Upload file
|
* Upload file
|
||||||
*
|
*
|
||||||
* @param $request
|
* @param $request
|
||||||
* @param $unique_id
|
|
||||||
* @param null $shared
|
* @param null $shared
|
||||||
* @return FileManagerFile|\Illuminate\Database\Eloquent\Model
|
* @return FileManagerFile|\Illuminate\Database\Eloquent\Model
|
||||||
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public static function upload($request, $shared = null)
|
public static function upload($request, $shared = null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,6 +11,16 @@ use Illuminate\Support\Facades\Storage;
|
|||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Intervention\Image\ImageManagerStatic as Image;
|
use Intervention\Image\ImageManagerStatic as Image;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if is demo
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
function is_demo($user_id) {
|
||||||
|
|
||||||
|
return env('APP_DEMO', false) && $user_id === 1;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get folder or file item
|
* Get folder or file item
|
||||||
*
|
*
|
||||||
|
|||||||
Generated
+266
-307
File diff suppressed because it is too large
Load Diff
@@ -15,5 +15,5 @@ return [
|
|||||||
'limit_storage_by_capacity' => true,
|
'limit_storage_by_capacity' => true,
|
||||||
|
|
||||||
// Define user storage capacity in MB. E.g. value 2000 is 2.00GB
|
// Define user storage capacity in MB. E.g. value 2000 is 2.00GB
|
||||||
'user_storage_capacity' => 5000,
|
'user_storage_capacity' => 300,
|
||||||
];
|
];
|
||||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -88,7 +88,7 @@
|
|||||||
props: ['data'],
|
props: ['data'],
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters([
|
...mapGetters([
|
||||||
'FilePreviewType', 'sharedDetail', 'contextMenu'
|
'FilePreviewType', 'sharedDetail'
|
||||||
]),
|
]),
|
||||||
isFolder() {
|
isFolder() {
|
||||||
return this.data.type === 'folder'
|
return this.data.type === 'folder'
|
||||||
|
|||||||
@@ -85,8 +85,8 @@
|
|||||||
return {
|
return {
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
checkedAccount: undefined,
|
checkedAccount: undefined,
|
||||||
loginPassword: 'vuefilemanager',
|
loginPassword: '',
|
||||||
loginEmail: 'howdy@hi5ve.digital',
|
loginEmail: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -226,8 +226,6 @@
|
|||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
|
||||||
console.log('error not found');
|
|
||||||
|
|
||||||
if (error.response.status == 404) {
|
if (error.response.status == 404) {
|
||||||
|
|
||||||
this.$router.push({name: 'NotFoundShared'})
|
this.$router.push({name: 'NotFoundShared'})
|
||||||
|
|||||||
Reference in New Issue
Block a user