mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-13 08:45:01 +00:00
refactoring part 1
This commit is contained in:
@@ -14,7 +14,7 @@ use Laravel\Cashier\Subscription;
|
|||||||
class DashboardController extends Controller
|
class DashboardController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* DashboardController constructor.
|
* @param StripeService $stripe
|
||||||
*/
|
*/
|
||||||
public function __construct(StripeService $stripe)
|
public function __construct(StripeService $stripe)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ use Illuminate\Http\Request;
|
|||||||
class InvoiceController extends Controller
|
class InvoiceController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* PlanController constructor.
|
* @param StripeService $stripe
|
||||||
*/
|
*/
|
||||||
public function __construct(StripeService $stripe)
|
public function __construct(StripeService $stripe)
|
||||||
{
|
{
|
||||||
@@ -33,7 +33,7 @@ class InvoiceController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get single invoice by $token
|
* Get single invoice by invoice $token
|
||||||
*
|
*
|
||||||
* @param $customer
|
* @param $customer
|
||||||
* @param $token
|
* @param $token
|
||||||
@@ -41,12 +41,8 @@ class InvoiceController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function show($customer, $token)
|
public function show($customer, $token)
|
||||||
{
|
{
|
||||||
$settings = json_decode(Setting::all()->pluck('value', 'name')->toJson());
|
|
||||||
|
|
||||||
$invoice = $this->stripe->getUserInvoice($customer, $token);
|
|
||||||
|
|
||||||
return view('vuefilemanager.invoice')
|
return view('vuefilemanager.invoice')
|
||||||
->with('settings', $settings)
|
->with('settings', get_settings_in_json())
|
||||||
->with('invoice', $invoice);
|
->with('invoice', $this->stripe->getUserInvoice($customer, $token));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,12 +21,13 @@ class PagesController extends Controller
|
|||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
return new PageCollection(
|
return new PageCollection(
|
||||||
Page::sortable()->paginate(10)
|
Page::sortable()
|
||||||
|
->paginate(10)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get page resource
|
* Get single page resource
|
||||||
*
|
*
|
||||||
* @param $page
|
* @param $page
|
||||||
* @return PageResource
|
* @return PageResource
|
||||||
|
|||||||
@@ -11,7 +11,10 @@ use App\Http\Tools\Demo;
|
|||||||
use App\Models\Plan;
|
use App\Models\Plan;
|
||||||
use App\Services\StripeService;
|
use App\Services\StripeService;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use Illuminate\Contracts\Foundation\Application;
|
||||||
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\Response;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
use Laravel\Cashier\Subscription;
|
use Laravel\Cashier\Subscription;
|
||||||
use Rinvex\Subscriptions\Models\PlanFeature;
|
use Rinvex\Subscriptions\Models\PlanFeature;
|
||||||
@@ -19,7 +22,7 @@ use Rinvex\Subscriptions\Models\PlanFeature;
|
|||||||
class PlanController extends Controller
|
class PlanController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* PlanController constructor.
|
* @param StripeService $stripe
|
||||||
*/
|
*/
|
||||||
public function __construct(StripeService $stripe)
|
public function __construct(StripeService $stripe)
|
||||||
{
|
{
|
||||||
@@ -29,7 +32,7 @@ class PlanController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Get all plans
|
* Get all plans
|
||||||
*
|
*
|
||||||
* @return PlanCollection|\Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
|
* @return PlanCollection|Application|ResponseFactory|Response
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
@@ -49,7 +52,7 @@ class PlanController extends Controller
|
|||||||
* Get plan record
|
* Get plan record
|
||||||
*
|
*
|
||||||
* @param $id
|
* @param $id
|
||||||
* @return PlanResource|\Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
|
* @return PlanResource|Application|ResponseFactory|Response
|
||||||
*/
|
*/
|
||||||
public function show($id)
|
public function show($id)
|
||||||
{
|
{
|
||||||
@@ -69,7 +72,7 @@ class PlanController extends Controller
|
|||||||
* Create new plan
|
* Create new plan
|
||||||
*
|
*
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return PlanResource|\Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
|
* @return PlanResource|Application|ResponseFactory|Response
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
@@ -102,7 +105,7 @@ class PlanController extends Controller
|
|||||||
*
|
*
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @param $id
|
* @param $id
|
||||||
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
|
* @return ResponseFactory|Response
|
||||||
*/
|
*/
|
||||||
public function update(Request $request, $id)
|
public function update(Request $request, $id)
|
||||||
{
|
{
|
||||||
@@ -123,7 +126,7 @@ class PlanController extends Controller
|
|||||||
* Delete plan
|
* Delete plan
|
||||||
*
|
*
|
||||||
* @param $id
|
* @param $id
|
||||||
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
|
* @return ResponseFactory|Response
|
||||||
*/
|
*/
|
||||||
public function delete($id)
|
public function delete($id)
|
||||||
{
|
{
|
||||||
@@ -148,11 +151,12 @@ class PlanController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function subscribers($id)
|
public function subscribers($id)
|
||||||
{
|
{
|
||||||
$subscribers = Subscription::where('stripe_plan', $id)
|
$subscribers = Subscription::whereStripePlan($id)
|
||||||
->pluck('user_id');
|
->pluck('user_id');
|
||||||
|
|
||||||
return new UsersCollection(
|
return new UsersCollection(
|
||||||
User::sortable()->findMany($subscribers)
|
User::sortable()
|
||||||
|
->findMany($subscribers)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+32
-13
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Tools\Demo;
|
use App\Http\Tools\Demo;
|
||||||
use App\Models\Setting;
|
use App\Models\Setting;
|
||||||
use Artisan;
|
use Artisan;
|
||||||
@@ -20,16 +21,16 @@ class SettingController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function show(Request $request)
|
public function show(Request $request)
|
||||||
{
|
{
|
||||||
$column = $request->get('column');
|
if (strpos($request->column, '|') !== false) {
|
||||||
|
|
||||||
if (strpos($column, '|') !== false) {
|
$columns = explode('|', $request->column);
|
||||||
|
|
||||||
$columns = explode('|', $column);
|
return Setting::whereIn('name', $columns)
|
||||||
|
->pluck('value', 'name');
|
||||||
return Setting::whereIn('name', $columns)->pluck('value', 'name');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return Setting::where('name', $column)->pluck('value', 'name');
|
return Setting::where('name', $request->column)
|
||||||
|
->pluck('value', 'name');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -82,12 +83,12 @@ class SettingController extends Controller
|
|||||||
if (!app()->runningUnitTests()) {
|
if (!app()->runningUnitTests()) {
|
||||||
|
|
||||||
setEnvironmentValue([
|
setEnvironmentValue([
|
||||||
'MAIL_DRIVER' => $request->input('driver'),
|
'MAIL_DRIVER' => $request->driver,
|
||||||
'MAIL_HOST' => $request->input('host'),
|
'MAIL_HOST' => $request->host,
|
||||||
'MAIL_PORT' => $request->input('port'),
|
'MAIL_PORT' => $request->port,
|
||||||
'MAIL_USERNAME' => $request->input('username'),
|
'MAIL_USERNAME' => $request->username,
|
||||||
'MAIL_PASSWORD' => $request->input('password'),
|
'MAIL_PASSWORD' => $request->password,
|
||||||
'MAIL_ENCRYPTION' => $request->input('encryption'),
|
'MAIL_ENCRYPTION' => $request->encryption,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Clear config cache
|
// Clear config cache
|
||||||
@@ -163,4 +164,22 @@ class SettingController extends Controller
|
|||||||
|
|
||||||
return response('Done', 204);
|
return response('Done', 204);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear application cache
|
||||||
|
*/
|
||||||
|
public function flush_cache()
|
||||||
|
{
|
||||||
|
if (env('APP_DEMO')) {
|
||||||
|
return Demo::response_204();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!app()->runningUnitTests()) {
|
||||||
|
Artisan::call('cache:clear');
|
||||||
|
Artisan::call('config:clear');
|
||||||
|
Artisan::call('config:cache');
|
||||||
|
}
|
||||||
|
|
||||||
|
return response('Done', 204);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -68,9 +68,9 @@ class UserController extends Controller
|
|||||||
public function invoices(User $user)
|
public function invoices(User $user)
|
||||||
{
|
{
|
||||||
return new InvoiceCollection(
|
return new InvoiceCollection(
|
||||||
$this->stripe->getUserInvoices(
|
$this
|
||||||
$user
|
->stripe
|
||||||
)
|
->getUserInvoices($user)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,7 +114,7 @@ class UserController extends Controller
|
|||||||
public function change_role(ChangeRoleRequest $request, User $user)
|
public function change_role(ChangeRoleRequest $request, User $user)
|
||||||
{
|
{
|
||||||
// Demo preview
|
// Demo preview
|
||||||
if (env('APP_DEMO') && $user->id == 1) {
|
if (env('APP_DEMO') && $user->email === 'howdy@hi5ve.digial') {
|
||||||
return new UserResource($user);
|
return new UserResource($user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,11 +178,6 @@ class UserController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function create_user(CreateUserByAdmin $request)
|
public function create_user(CreateUserByAdmin $request)
|
||||||
{
|
{
|
||||||
// Store avatar
|
|
||||||
if ($request->hasFile('avatar')) {
|
|
||||||
$avatar = store_avatar($request, 'avatar');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create user
|
// Create user
|
||||||
$user = User::forceCreate([
|
$user = User::forceCreate([
|
||||||
'role' => $request->role,
|
'role' => $request->role,
|
||||||
@@ -195,7 +190,7 @@ class UserController extends Controller
|
|||||||
->settings()
|
->settings()
|
||||||
->create([
|
->create([
|
||||||
'name' => $request->name,
|
'name' => $request->name,
|
||||||
'avatar' => $avatar ?? null,
|
'avatar' => store_avatar($request, 'avatar'),
|
||||||
'storage_capacity' => $request->storage_capacity,
|
'storage_capacity' => $request->storage_capacity,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@@ -3,17 +3,17 @@
|
|||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Http\Mail\SendContactMessage;
|
use App\Http\Mail\SendContactMessage;
|
||||||
use App\Models\Content;
|
use App\Http\Resources\PricingCollection;
|
||||||
use App\Http\Requests\PublicPages\SendContactMessageRequest;
|
use App\Http\Requests\PublicPages\SendContactMessageRequest;
|
||||||
use App\Http\Resources\PageResource;
|
use App\Http\Resources\PageResource;
|
||||||
use App\Http\Tools\Demo;
|
|
||||||
use App\Models\Setting;
|
use App\Models\Setting;
|
||||||
use App\Models\Page;
|
use App\Models\Page;
|
||||||
use Artisan;
|
use App\Services\StripeService;
|
||||||
use Doctrine\DBAL\Driver\PDOException;
|
use Doctrine\DBAL\Driver\PDOException;
|
||||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
use Illuminate\Support\Facades\Mail;
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
|
||||||
class AppFunctionsController extends Controller
|
class AppFunctionsController extends Controller
|
||||||
@@ -29,6 +29,11 @@ class AppFunctionsController extends Controller
|
|||||||
'license',
|
'license',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public function __construct(StripeService $stripe)
|
||||||
|
{
|
||||||
|
$this->stripe = $stripe;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show index page
|
* Show index page
|
||||||
*
|
*
|
||||||
@@ -151,20 +156,31 @@ class AppFunctionsController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear application cache
|
* Get all active storage plans
|
||||||
|
*
|
||||||
|
* @return PricingCollection
|
||||||
*/
|
*/
|
||||||
public function flush_cache()
|
public function get_storage_plans()
|
||||||
{
|
{
|
||||||
if (env('APP_DEMO')) {
|
if (Cache::has('pricing')) {
|
||||||
return Demo::response_204();
|
|
||||||
|
// Get pricing from cache
|
||||||
|
$pricing = Cache::get('pricing');
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Store pricing to cache
|
||||||
|
$pricing = Cache::rememberForever('pricing', function () {
|
||||||
|
return $this->stripe->getActivePlans();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!app()->runningUnitTests()) {
|
// Format pricing to collection
|
||||||
Artisan::call('cache:clear');
|
$collection = new PricingCollection($pricing);
|
||||||
Artisan::call('config:clear');
|
|
||||||
Artisan::call('config:cache');
|
|
||||||
}
|
|
||||||
|
|
||||||
return response('Done', 204);
|
// Sort and return pricing
|
||||||
|
return $collection
|
||||||
|
->sortBy('product.metadata.capacity')
|
||||||
|
->values()
|
||||||
|
->all();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ class AuthController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Check if user account exist
|
* Check if user account exist
|
||||||
*
|
*
|
||||||
* @param Request $request
|
* @param CheckAccountRequest $request
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function check_account(CheckAccountRequest $request)
|
public function check_account(CheckAccountRequest $request)
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Providers\RouteServiceProvider;
|
|
||||||
use App\Models\User;
|
|
||||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
|
||||||
use Illuminate\Support\Facades\Hash;
|
|
||||||
use Illuminate\Support\Facades\Validator;
|
|
||||||
|
|
||||||
class RegisterController extends Controller
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Register Controller
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| This controller handles the registration of new users as well as their
|
|
||||||
| validation and creation. By default this controller uses a trait to
|
|
||||||
| provide this functionality without requiring any additional code.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
use RegistersUsers;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Where to redirect users after registration.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $redirectTo = RouteServiceProvider::HOME;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new controller instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware('guest');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a validator for an incoming registration request.
|
|
||||||
*
|
|
||||||
* @param array $data
|
|
||||||
* @return \Illuminate\Contracts\Validation\Validator
|
|
||||||
*/
|
|
||||||
protected function validator(array $data)
|
|
||||||
{
|
|
||||||
return Validator::make($data, [
|
|
||||||
'name' => ['required', 'string', 'max:255'],
|
|
||||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
|
||||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new user instance after a valid registration.
|
|
||||||
*
|
|
||||||
* @param array $data
|
|
||||||
* @return \App\User
|
|
||||||
*/
|
|
||||||
protected function create(array $data)
|
|
||||||
{
|
|
||||||
return User::create([
|
|
||||||
'name' => $data['name'],
|
|
||||||
'email' => $data['email'],
|
|
||||||
'password' => Hash::make($data['password']),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Artisan;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Illuminate\Validation\UnauthorizedException;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
|
|
||||||
|
|
||||||
class DeployController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Get web hook payload and verify request
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function github(Request $request) {
|
|
||||||
|
|
||||||
if (($signature = $request->headers->get('X-Hub-Signature')) == null) {
|
|
||||||
throw new BadRequestHttpException('Header not set');
|
|
||||||
}
|
|
||||||
|
|
||||||
$signature_parts = explode('=', $signature);
|
|
||||||
|
|
||||||
if (count($signature_parts) != 2) {
|
|
||||||
throw new BadRequestHttpException('signature has invalid format');
|
|
||||||
}
|
|
||||||
|
|
||||||
$known_signature = hash_hmac('sha1', $request->getContent(), config('app.deploy_secret'));
|
|
||||||
|
|
||||||
if (! hash_equals($known_signature, $signature_parts[1])) {
|
|
||||||
throw new UnauthorizedException('Could not verify request signature ' . $signature_parts[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run deploying
|
|
||||||
Artisan::call('deploy:production');
|
|
||||||
|
|
||||||
Log::info('The GitHub webhook was accepted');
|
|
||||||
|
|
||||||
return response('The GitHub webhook was accepted', 202);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\FileBrowser;
|
namespace App\Http\Controllers\FileManager;
|
||||||
|
|
||||||
use App\Http\Requests\FileBrowser\SearchRequest;
|
use App\Http\Requests\FileBrowser\SearchRequest;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\FileFunctions;
|
namespace App\Http\Controllers\FileManager;
|
||||||
|
|
||||||
use App\Http\Requests\FileFunctions\CreateFolderRequest;
|
use App\Http\Requests\FileFunctions\CreateFolderRequest;
|
||||||
use App\Http\Requests\FileFunctions\DeleteItemRequest;
|
use App\Http\Requests\FileFunctions\DeleteItemRequest;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\FileFunctions;
|
namespace App\Http\Controllers\FileManager;
|
||||||
|
|
||||||
use App\Http\Tools\Demo;
|
use App\Http\Tools\Demo;
|
||||||
use App\Models\Folder;
|
use App\Models\Folder;
|
||||||
@@ -21,7 +21,7 @@ class FavouriteController extends Controller
|
|||||||
{
|
{
|
||||||
// todo: pridat validator ako AddToFavouritesRequest
|
// todo: pridat validator ako AddToFavouritesRequest
|
||||||
|
|
||||||
foreach ($request->input('folders') as $id) {
|
foreach ($request->folders as $id) {
|
||||||
|
|
||||||
// Get user & folder
|
// Get user & folder
|
||||||
$user = Auth::user();
|
$user = Auth::user();
|
||||||
+6
-6
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\FileFunctions;
|
namespace App\Http\Controllers\FileManager;
|
||||||
|
|
||||||
use App\Http\Requests\Share\CreateShareRequest;
|
use App\Http\Requests\Share\CreateShareRequest;
|
||||||
use App\Http\Requests\Share\UpdateShareRequest;
|
use App\Http\Requests\Share\UpdateShareRequest;
|
||||||
@@ -93,10 +93,10 @@ class ShareController extends Controller
|
|||||||
|
|
||||||
// Update sharing record
|
// Update sharing record
|
||||||
$shared->update([
|
$shared->update([
|
||||||
'permission' => $request->permission,
|
'permission' => $request->permission,
|
||||||
'is_protected' => $request->protected,
|
'is_protected' => $request->protected,
|
||||||
'expire_in' => $request->expiration,
|
'expire_in' => $request->expiration,
|
||||||
'password' => $request->password ? Hash::make($request->password) : $shared->password,
|
'password' => $request->password ? Hash::make($request->password) : $shared->password,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Return shared record
|
// Return shared record
|
||||||
@@ -112,7 +112,7 @@ class ShareController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function destroy(Request $request)
|
public function destroy(Request $request)
|
||||||
{
|
{
|
||||||
foreach ($request->input('tokens') as $token) {
|
foreach ($request->tokens as $token) {
|
||||||
|
|
||||||
// Get sharing record
|
// Get sharing record
|
||||||
Share::where('token', $token)
|
Share::where('token', $token)
|
||||||
+41
-42
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\FileFunctions;
|
namespace App\Http\Controllers\FileManager;
|
||||||
|
|
||||||
use App\Http\Tools\Demo;
|
use App\Http\Tools\Demo;
|
||||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||||
@@ -14,51 +14,10 @@ use App\Models\File;
|
|||||||
|
|
||||||
class TrashController extends Controller
|
class TrashController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Empty user trash
|
|
||||||
*
|
|
||||||
* @return ResponseFactory|\Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function clear()
|
|
||||||
{
|
|
||||||
// Get user id
|
|
||||||
$user_id = Auth::id();
|
|
||||||
|
|
||||||
if (is_demo($user_id)) {
|
|
||||||
return Demo::response_204();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get files and folders
|
|
||||||
$folders = Folder::onlyTrashed()->where('user_id', $user_id)->get();
|
|
||||||
$files = File::onlyTrashed()->where('user_id', $user_id)->get();
|
|
||||||
|
|
||||||
// Force delete folder
|
|
||||||
$folders->each->forceDelete();
|
|
||||||
|
|
||||||
// Force delete files
|
|
||||||
foreach ($files as $file) {
|
|
||||||
|
|
||||||
// Delete file
|
|
||||||
Storage::delete("/files/$user_id/{$file->basename}");
|
|
||||||
|
|
||||||
// Delete thumbnail if exist
|
|
||||||
if ($file->thumbnail) {
|
|
||||||
Storage::delete("/files/$user_id/{$file->getRawOriginal('thumbnail')}");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete file permanently
|
|
||||||
$file->forceDelete();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return response
|
|
||||||
return response('Done!', 204);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restore item from trash
|
* Restore item from trash
|
||||||
*
|
*
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @param $id
|
|
||||||
* @return ResponseFactory|\Illuminate\Http\Response
|
* @return ResponseFactory|\Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function restore(Request $request)
|
public function restore(Request $request)
|
||||||
@@ -118,4 +77,44 @@ class TrashController extends Controller
|
|||||||
// Return response
|
// Return response
|
||||||
return response('Done!', 204);
|
return response('Done!', 204);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Empty user trash
|
||||||
|
*
|
||||||
|
* @return ResponseFactory|\Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function dump()
|
||||||
|
{
|
||||||
|
// Get user id
|
||||||
|
$user_id = Auth::id();
|
||||||
|
|
||||||
|
if (is_demo($user_id)) {
|
||||||
|
return Demo::response_204();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get files and folders
|
||||||
|
$folders = Folder::onlyTrashed()->where('user_id', $user_id)->get();
|
||||||
|
$files = File::onlyTrashed()->where('user_id', $user_id)->get();
|
||||||
|
|
||||||
|
// Force delete folder
|
||||||
|
$folders->each->forceDelete();
|
||||||
|
|
||||||
|
// Force delete files
|
||||||
|
foreach ($files as $file) {
|
||||||
|
|
||||||
|
// Delete file
|
||||||
|
Storage::delete("/files/$user_id/{$file->basename}");
|
||||||
|
|
||||||
|
// Delete thumbnail if exist
|
||||||
|
if ($file->thumbnail) {
|
||||||
|
Storage::delete("/files/$user_id/{$file->getRawOriginal('thumbnail')}");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete file permanently
|
||||||
|
$file->forceDelete();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return response
|
||||||
|
return response('Done!', 204);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\General;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Http\Resources\PricingCollection;
|
|
||||||
use App\Services\StripeService;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
|
|
||||||
class PricingController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* PlanController constructor.
|
|
||||||
*/
|
|
||||||
public function __construct(StripeService $stripe)
|
|
||||||
{
|
|
||||||
$this->stripe = $stripe;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get all active plans
|
|
||||||
*
|
|
||||||
* @return PricingCollection
|
|
||||||
*/
|
|
||||||
public function index()
|
|
||||||
{
|
|
||||||
if (Cache::has('pricing')) {
|
|
||||||
|
|
||||||
// Get pricing from cache
|
|
||||||
$pricing = Cache::get('pricing');
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// Store pricing to cache
|
|
||||||
$pricing = Cache::rememberForever('pricing', function () {
|
|
||||||
return $this->stripe->getActivePlans();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Format pricing to collection
|
|
||||||
$collection = new PricingCollection($pricing);
|
|
||||||
|
|
||||||
// Sort and return pricing
|
|
||||||
return $collection
|
|
||||||
->sortBy('product.metadata.capacity')
|
|
||||||
->values()
|
|
||||||
->all();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-3
@@ -1,10 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\General;
|
namespace App\Http\Controllers\Setup;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Page;
|
|
||||||
use App\Setting;
|
|
||||||
use Artisan;
|
use Artisan;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Schema;
|
use Schema;
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\General;
|
namespace App\Http\Controllers\Setup;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\SetupWizard\CreateAdminRequest;
|
use App\Http\Requests\SetupWizard\CreateAdminRequest;
|
||||||
+7
-11
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Subscription;
|
||||||
|
|
||||||
use App\Services\StripeService;
|
use App\Services\StripeService;
|
||||||
use App\Models\Setting;
|
use App\Models\Setting;
|
||||||
@@ -8,11 +8,11 @@ use App\Models\User;
|
|||||||
|
|
||||||
use Laravel\Cashier\Http\Controllers\WebhookController as CashierController;
|
use Laravel\Cashier\Http\Controllers\WebhookController as CashierController;
|
||||||
|
|
||||||
class WebhookController extends CashierController
|
class StripeWebhookController extends CashierController
|
||||||
{
|
{
|
||||||
public function __construct(StripeService $stripe)
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->stripe = $stripe;
|
$this->stripe = resolve(StripeService::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -32,18 +32,14 @@ class WebhookController extends CashierController
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get user
|
// Get user
|
||||||
$user = User::where('stripe_id', $payload['data']['object']['customer'])
|
$user = User::whereStripeId($payload['data']['object']['customer'])
|
||||||
->firstOrFail();
|
->firstOrFail();
|
||||||
|
|
||||||
// Get default storage capacity
|
|
||||||
$default_storage = Setting::where('name', 'storage_default')
|
|
||||||
->first();
|
|
||||||
|
|
||||||
// Update storage capacity
|
// Update storage capacity
|
||||||
$user
|
$user
|
||||||
->settings()
|
->settings()
|
||||||
->update([
|
->update([
|
||||||
'storage_capacity' => $default_storage->value
|
'storage_capacity' => get_setting('storage_default')
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return $this->successMethod();
|
return $this->successMethod();
|
||||||
@@ -58,7 +54,7 @@ class WebhookController extends CashierController
|
|||||||
public function handleInvoicePaymentSucceeded($payload)
|
public function handleInvoicePaymentSucceeded($payload)
|
||||||
{
|
{
|
||||||
// Get user
|
// Get user
|
||||||
$user = User::where('stripe_id', $payload['data']['object']['customer'])
|
$user = User::whereStripeId($payload['data']['object']['customer'])
|
||||||
->firstOrFail();
|
->firstOrFail();
|
||||||
|
|
||||||
// Get requested plan
|
// Get requested plan
|
||||||
+2
-2
@@ -6,7 +6,7 @@ use App\Http\Controllers\Admin\PagesController;
|
|||||||
use App\Http\Controllers\Admin\PlanController;
|
use App\Http\Controllers\Admin\PlanController;
|
||||||
use App\Http\Controllers\Admin\UserController;
|
use App\Http\Controllers\Admin\UserController;
|
||||||
use App\Http\Controllers\AppFunctionsController;
|
use App\Http\Controllers\AppFunctionsController;
|
||||||
use App\Http\Controllers\SettingController;
|
use App\Http\Controllers\Admin\SettingController;
|
||||||
|
|
||||||
// Dashboard
|
// Dashboard
|
||||||
Route::group(['prefix' => 'dashboard'], function () {
|
Route::group(['prefix' => 'dashboard'], function () {
|
||||||
@@ -50,7 +50,7 @@ Route::get('/invoices', [InvoiceController::class, 'index']);
|
|||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
Route::group(['prefix' => 'settings'], function () {
|
Route::group(['prefix' => 'settings'], function () {
|
||||||
Route::get('/flush-cache', [AppFunctionsController::class, 'flush_cache']);
|
Route::get('/flush-cache', [SettingController::class, 'flush_cache']);
|
||||||
Route::post('/stripe', [SettingController::class, 'set_stripe']);
|
Route::post('/stripe', [SettingController::class, 'set_stripe']);
|
||||||
Route::post('/email', [SettingController::class, 'set_email']);
|
Route::post('/email', [SettingController::class, 'set_email']);
|
||||||
Route::patch('/', [SettingController::class, 'update']);
|
Route::patch('/', [SettingController::class, 'update']);
|
||||||
|
|||||||
+8
-8
@@ -3,19 +3,18 @@
|
|||||||
use App\Http\Controllers\AppFunctionsController;
|
use App\Http\Controllers\AppFunctionsController;
|
||||||
use App\Http\Controllers\Auth\ForgotPasswordController;
|
use App\Http\Controllers\Auth\ForgotPasswordController;
|
||||||
use App\Http\Controllers\Auth\ResetPasswordController;
|
use App\Http\Controllers\Auth\ResetPasswordController;
|
||||||
use App\Http\Controllers\FileBrowser\BrowseController;
|
use App\Http\Controllers\FileManager\BrowseController;
|
||||||
use App\Http\Controllers\FileFunctions\EditItemsController;
|
use App\Http\Controllers\FileManager\EditItemsController;
|
||||||
use App\Http\Controllers\FileFunctions\FavouriteController;
|
use App\Http\Controllers\FileManager\FavouriteController;
|
||||||
use App\Http\Controllers\FileFunctions\ShareController;
|
use App\Http\Controllers\FileManager\ShareController;
|
||||||
use App\Http\Controllers\FileFunctions\TrashController;
|
use App\Http\Controllers\FileManager\TrashController;
|
||||||
use App\Http\Controllers\General\PricingController;
|
|
||||||
use App\Http\Controllers\Sharing\FileSharingController;
|
use App\Http\Controllers\Sharing\FileSharingController;
|
||||||
|
|
||||||
// Pages
|
// Pages
|
||||||
Route::get('/content', [AppFunctionsController::class, 'get_setting_columns']);
|
Route::get('/content', [AppFunctionsController::class, 'get_setting_columns']);
|
||||||
Route::post('/contact', [AppFunctionsController::class, 'contact_form']);
|
Route::post('/contact', [AppFunctionsController::class, 'contact_form']);
|
||||||
Route::get('/page/{page}', [AppFunctionsController::class, 'get_page']);
|
Route::get('/page/{page}', [AppFunctionsController::class, 'get_page']);
|
||||||
Route::get('/pricing', [PricingController::class, 'index']);
|
Route::get('/pricing', [AppFunctionsController::class, 'get_storage_plans']);
|
||||||
|
|
||||||
// Password reset
|
// Password reset
|
||||||
Route::group(['prefix' => 'password'], function () {
|
Route::group(['prefix' => 'password'], function () {
|
||||||
@@ -40,7 +39,7 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
|
|||||||
// Trash
|
// Trash
|
||||||
Route::group(['prefix' => 'trash'], function () {
|
Route::group(['prefix' => 'trash'], function () {
|
||||||
Route::post('/restore', [TrashController::class, 'restore']);
|
Route::post('/restore', [TrashController::class, 'restore']);
|
||||||
Route::delete('/dump', [TrashController::class, 'clear']);
|
Route::delete('/dump', [TrashController::class, 'dump']);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Favourites
|
// Favourites
|
||||||
@@ -62,6 +61,7 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
|
|||||||
Route::group(['middleware' => ['auth:api', 'auth.shared', 'scope:visitor,editor']], function () {
|
Route::group(['middleware' => ['auth:api', 'auth.shared', 'scope:visitor,editor']], function () {
|
||||||
|
|
||||||
// Browse folders & files
|
// Browse folders & files
|
||||||
|
// TODO: tests for private shared content
|
||||||
Route::get('/folders/{unique_id}/private', [FileSharingController::class, 'get_private_folders']);
|
Route::get('/folders/{unique_id}/private', [FileSharingController::class, 'get_private_folders']);
|
||||||
Route::get('/navigation/private', [FileSharingController::class, 'get_private_navigation_tree']);
|
Route::get('/navigation/private', [FileSharingController::class, 'get_private_navigation_tree']);
|
||||||
Route::get('/search/private', [FileSharingController::class, 'search_private']);
|
Route::get('/search/private', [FileSharingController::class, 'search_private']);
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Http\Controllers\General\SetupWizardController;
|
use App\Http\Controllers\Setup\SetupWizardController;
|
||||||
|
|
||||||
Route::post('/purchase-code', [SetupWizardController::class, 'verify_purchase_code']);
|
Route::post('/purchase-code', [SetupWizardController::class, 'verify_purchase_code']);
|
||||||
Route::post('/database', [SetupWizardController::class, 'setup_database']);
|
Route::post('/database', [SetupWizardController::class, 'setup_database']);
|
||||||
|
|||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Http\Controllers\AppFunctionsController;
|
use App\Http\Controllers\AppFunctionsController;
|
||||||
use App\Http\Controllers\FileFunctions\EditItemsController;
|
use App\Http\Controllers\FileManager\EditItemsController;
|
||||||
use App\Http\Controllers\FileFunctions\ShareController;
|
use App\Http\Controllers\FileManager\ShareController;
|
||||||
use App\Http\Controllers\Sharing\FileSharingController;
|
use App\Http\Controllers\Sharing\FileSharingController;
|
||||||
|
|
||||||
// Editor functions
|
// Editor functions
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
|
|||||||
Route::get('/', [AccountController::class, 'user']);
|
Route::get('/', [AccountController::class, 'user']);
|
||||||
|
|
||||||
// Payment cards
|
// Payment cards
|
||||||
// TODO: testy
|
// TODO: tests
|
||||||
Route::delete('/payment-cards/{id}', [PaymentMethodsController::class, 'delete']);
|
Route::delete('/payment-cards/{id}', [PaymentMethodsController::class, 'delete']);
|
||||||
Route::patch('/payment-cards/{id}', [PaymentMethodsController::class, 'update']);
|
Route::patch('/payment-cards/{id}', [PaymentMethodsController::class, 'update']);
|
||||||
Route::post('/payment-cards', [PaymentMethodsController::class, 'store']);
|
Route::post('/payment-cards', [PaymentMethodsController::class, 'store']);
|
||||||
|
|||||||
+6
-8
@@ -2,18 +2,15 @@
|
|||||||
|
|
||||||
use App\Http\Controllers\Admin\InvoiceController;
|
use App\Http\Controllers\Admin\InvoiceController;
|
||||||
use App\Http\Controllers\AppFunctionsController;
|
use App\Http\Controllers\AppFunctionsController;
|
||||||
use App\Http\Controllers\FileAccessController;
|
use App\Http\Controllers\Setup\SetupWizardController;
|
||||||
use App\Http\Controllers\General\SetupWizardController;
|
|
||||||
use App\Http\Controllers\Sharing\FileSharingController;
|
use App\Http\Controllers\Sharing\FileSharingController;
|
||||||
use App\Http\Controllers\WebhookController;
|
use App\Http\Controllers\Subscription\StripeWebhookController;
|
||||||
|
|
||||||
Route::post('/stripe/webhook', [WebhookController::class, 'handleWebhook']);
|
Route::post('/stripe/webhook', [StripeWebhookController::class, 'handleWebhook']);
|
||||||
Route::post('/admin-setup', [SetupWizardController::class, 'create_admin_account']);
|
Route::post('/admin-setup', [SetupWizardController::class, 'create_admin_account']);
|
||||||
|
|
||||||
// Get user invoice
|
// Get user invoice from stripe service
|
||||||
Route::group(['middleware' => ['auth:sanctum']], function () {
|
Route::get('/invoice/{customer}/{token}', [InvoiceController::class, 'show'])->middleware(['auth:sanctum']);
|
||||||
Route::get('/invoice/{customer}/{token}', [InvoiceController::class, 'show']);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Get og site for web crawlers
|
// Get og site for web crawlers
|
||||||
if (Crawler::isCrawler()) {
|
if (Crawler::isCrawler()) {
|
||||||
@@ -22,4 +19,5 @@ if (Crawler::isCrawler()) {
|
|||||||
Route::get('/shared/{token}', [FileSharingController::class, 'index']);
|
Route::get('/shared/{token}', [FileSharingController::class, 'index']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Show index.blade
|
||||||
Route::get('/{any?}', [AppFunctionsController::class, 'index'])->where('any', '.*');
|
Route::get('/{any?}', [AppFunctionsController::class, 'index'])->where('any', '.*');
|
||||||
|
|||||||
+1
-1
@@ -473,7 +473,7 @@ class SubscriptionTest extends TestCase
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
*
|
||||||
*/
|
*/
|
||||||
public function it_get_all_plans_for_index_page()
|
public function it_get_all_plans_for_index_page()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user