diff --git a/.env.dev b/.env.dev deleted file mode 100644 index 92afc86a..00000000 --- a/.env.dev +++ /dev/null @@ -1,67 +0,0 @@ -APP_NAME=VueFileManager -APP_ENV=local -APP_KEY=base64:EYM98pyseC/frZhW30ifeJqpOP3UmmLj1fMahrDN3zw= -APP_DEBUG=true -APP_URL=http://localhost -APP_DEMO=false - -LOG_CHANNEL=stack -SCOUT_DRIVER=tntsearch -FILESYSTEM_DRIVER=local - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=8889 -DB_DATABASE=file-manager -DB_USERNAME=root -DB_PASSWORD=root - -BROADCAST_DRIVER=log -CACHE_DRIVER=file -QUEUE_CONNECTION=sync -SESSION_DRIVER=file -SESSION_LIFETIME=120 - -MAIL_DRIVER=smtp -MAIL_HOST=smtp.websupport.sk -MAIL_PORT=25 -MAIL_USERNAME=vuefilemanager@hi5ve.digital -MAIL_PASSWORD=Yl2d]kET>) -MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS="${MAIL_USERNAME}" -MAIL_FROM_NAME="${APP_NAME}" - -AWS_ACCESS_KEY_ID=AKIA3UOZZXPUGKQ3BLMZ -AWS_SECRET_ACCESS_KEY=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 -AWS_DEFAULT_REGION=eu-central-1 -AWS_BUCKET=vuefilemanager-frankfurt - -DO_SPACES_KEY=FSUHFOF5DMZCEWXVNPTI -DO_SPACES_SECRET=2t87Ugz/JoIjT1dIdTjnnKQ4t74Yfe665KBjCRc0yDk -DO_SPACES_ENDPOINT=https://fra1.digitaloceanspaces.com -DO_SPACES_REGION=fra1 -DO_SPACES_BUCKET=vuefilemanager - -WASABI_KEY= -WASABI_SECRET= -WASABI_ENDPOINT= -WASABI_REGION= -WASABI_BUCKET= - -BACKBLAZE_KEY= -BACKBLAZE_SECRET= -BACKBLAZE_ENDPOINT= -BACKBLAZE_REGION= -BACKBLAZE_BUCKET= - -PASSPORT_CLIENT_ID=1 -PASSPORT_CLIENT_SECRET=kZevoWiMjuoxlfO0N0Ezq2oo6ukvX27VPEEJlQUD - -APP_DEPLOY_SECRET=5603148y60eew0q5fw46 -APP_DEPLOY_BRANCH=dev - -CASHIER_LOGGER=stack -CASHIER_CURRENCY=usd -STRIPE_KEY=pk_test_51GsACaCBETHMUxzVsYkeApHtqb85paMuye7G77PDDQ28kXqDJ5HTmqLi13aM6xee81OQK1fhkTZ7vmDiWLStU9160061Yb2MtL -STRIPE_SECRET=sk_test_51GsACaCBETHMUxzVviYCrv0CeZMyWAOfBPe4uH5rkKJcJxrXhIciWQTr7UB1sgw9geoJMkNDVSWBQW36tuAsVznd00zhNHXhok -STRIPE_WEBHOOK_SECRET=whsec_5aM5emy4U9AzPLFxOPyBSyI0QGyI1MZW diff --git a/.env.example b/.env.example index 44c0354e..ccbed93d 100644 --- a/.env.example +++ b/.env.example @@ -3,10 +3,11 @@ APP_ENV=local APP_KEY=base64:sB1YuKsbWv7MdWugb9ZsYBqv2QZJ+QOuHZHEddOsUuo= APP_DEBUG=true APP_URL=http://localhost +APP_DEMO=false LOG_CHANNEL=stack SCOUT_DRIVER=tntsearch -FILESYSTEM_DRIVER=local +FILESYSTEM_DRIVER= DB_CONNECTION=mysql DB_HOST=127.0.0.1 diff --git a/.gitignore b/.gitignore index 9184766f..43041172 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /public/storage /storage/*.key /storage/*.index +/storage/framework/cache /vendor .idea .env diff --git a/app/FileManagerFile.php b/app/FileManagerFile.php index ab6f47b4..5bd052e4 100644 --- a/app/FileManagerFile.php +++ b/app/FileManagerFile.php @@ -123,7 +123,7 @@ class FileManagerFile extends Model } // Get thumbnail from local storage - if ($this->attributes['thumbnail'] && is_storage_driver('local')) { + if ($this->attributes['thumbnail']) { // Thumbnail route $route = route('thumbnail', ['name' => $this->attributes['thumbnail']]); @@ -160,16 +160,13 @@ class FileManagerFile extends Model } // Get thumbnail from local storage - if (is_storage_driver('local')) { + $route = route('file', ['name' => $this->attributes['basename']]); - $route = route('file', ['name' => $this->attributes['basename']]); - - if ($this->public_access) { - return $route . '/public/' . $this->public_access; - } - - return $route; + if ($this->public_access) { + return $route . '/public/' . $this->public_access; } + + return $route; } /** diff --git a/app/Http/Controllers/AppFunctionsController.php b/app/Http/Controllers/AppFunctionsController.php index 94303136..018e4963 100644 --- a/app/Http/Controllers/AppFunctionsController.php +++ b/app/Http/Controllers/AppFunctionsController.php @@ -67,7 +67,7 @@ class AppFunctionsController extends Controller return view("index") ->with('settings', $settings) - ->with('legal', $legal) + ->with('legal', isset($legal) ? $legal : null) ->with('installation', $connection); } diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index 772970f8..240c630c 100644 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -23,7 +23,6 @@ class AuthController extends Controller */ public function check_account(CheckAccountRequest $request) { - // Get User $user = User::where('email', $request->input('email'))->select(['name', 'avatar'])->first(); @@ -84,10 +83,8 @@ class AuthController extends Controller 'password' => Hash::make($request->password), ]); - $default_storage = Setting::where('name', 'storage_default')->first(); - // Create settings - $settings = UserSettings::create([ + UserSettings::forceCreate([ 'user_id' => $user->id, 'storage_capacity' => $settings['storage_default'], ]); diff --git a/app/Http/Controllers/General/SetupWizardController.php b/app/Http/Controllers/General/SetupWizardController.php index f39e42ac..07623717 100644 --- a/app/Http/Controllers/General/SetupWizardController.php +++ b/app/Http/Controllers/General/SetupWizardController.php @@ -126,47 +126,11 @@ class SetupWizardController extends Controller 'value' => 1, ]); - return response('Done', 200); - } - - /** - * Migrate database and generate necessary things - */ - private function set_up_application() - { - // Generate app key - Artisan::call('key:generate'); - - // Migrate database - Artisan::call('migrate:fresh'); - - // Create Passport Keys - Artisan::call('passport:keys', [ - '--force' => true - ]); - - // Create Password grant client - Artisan::call('passport:client', [ - '--password' => true, - '--name' => 'vuefilemanager', - ]); - - // Create Personal access client - Artisan::call('passport:client', [ - '--personal' => true, - '--name' => 'shared', - ]); - - // Get generated client - $client = \DB::table('oauth_clients')->where('name', '=', 'vuefilemanager')->first(); - - // Set passport client to .env - setEnvironmentValue('PASSPORT_CLIENT_ID', $client->id); - setEnvironmentValue('PASSPORT_CLIENT_SECRET', $client->secret); - // Clear cache - Artisan::call('config:clear'); - //Artisan::call('config:cache'); + //Artisan::call('config:clear'); + Artisan::call('config:cache'); + + return response('Done', 200); } /** @@ -203,6 +167,11 @@ class SetupWizardController extends Controller ], ]); + // Store options + $settings->each(function ($col) { + Setting::updateOrCreate(['name' => $col['name']], $col); + }); + // Set stripe credentials to .env setEnvironmentValue('CASHIER_CURRENCY', $request->currency); setEnvironmentValue('STRIPE_KEY', $request->key); @@ -210,7 +179,7 @@ class SetupWizardController extends Controller setEnvironmentValue('STRIPE_WEBHOOK_SECRET', $request->webhookSecret); // Clear cache - Artisan::call('config:clear'); + Artisan::call('config:cache'); return response('Done', 200); } @@ -265,8 +234,8 @@ class SetupWizardController extends Controller }); // Clear cache - Artisan::call('config:clear'); - //Artisan::call('config:cache'); + //Artisan::call('config:clear'); + Artisan::call('config:cache'); return response('Done', 200); } @@ -302,7 +271,9 @@ class SetupWizardController extends Controller ], ]); - } else if ($storage_driver === 's3') { + } + + if ($storage_driver === 's3') { $storage = collect([ [ @@ -327,7 +298,9 @@ class SetupWizardController extends Controller ], ]); - } else if ($storage_driver === 'spaces') { + } + + if ($storage_driver === 'spaces') { $storage = collect([ [ @@ -356,7 +329,9 @@ class SetupWizardController extends Controller ], ]); - } else if ($storage_driver === 'wasabi') { + } + + if ($storage_driver === 'wasabi') { $storage = collect([ [ @@ -385,7 +360,9 @@ class SetupWizardController extends Controller ], ]); - } else if ($storage_driver === 'backblaze') { + } + + if ($storage_driver === 'backblaze') { $storage = collect([ [ @@ -415,7 +392,7 @@ class SetupWizardController extends Controller ]); } - // Store storage driver options + // Store storage options $storage->each(function ($col) { setEnvironmentValue($col['name'], $col['value']); }); @@ -454,7 +431,7 @@ class SetupWizardController extends Controller }); // Clear cache - Artisan::call('config:clear'); + Artisan::call('config:cache'); return response('Done', 200); } @@ -517,11 +494,11 @@ class SetupWizardController extends Controller ], [ 'name' => 'storage_limitation', - 'value' => $request->storageLimitation ? $request->storageLimitation : 5, + 'value' => $request->storageLimitation, ], [ 'name' => 'storage_default', - 'value' => $request->defaultStorage, + 'value' => $request->defaultStorage ? $request->defaultStorage : 5, ], ]); @@ -557,7 +534,7 @@ class SetupWizardController extends Controller } // Create user - $user = User::create([ + $user = User::forceCreate([ 'avatar' => $request->hasFile('avatar') ? $avatar : null, 'name' => $request->name, 'role' => 'admin', @@ -575,20 +552,20 @@ class SetupWizardController extends Controller ]); // Store setup wizard progress - Setting::create([ + Setting::updateOrCreate([ 'name' => 'setup_wizard_success', 'value' => 1, ]); // Store License - Setting::create([ + Setting::updateOrCreate([ 'name' => 'license', 'value' => $request->license, ]); // Store Purchase Code - Setting::create([ - 'name' => 'license', + Setting::updateOrCreate([ + 'name' => 'purchase_code', 'value' => $request->purchase_code, ]); @@ -612,6 +589,42 @@ class SetupWizardController extends Controller return $response; } + /** + * Migrate database and generate necessary things + */ + private function set_up_application() + { + // Generate app key + Artisan::call('key:generate'); + + // Migrate database + Artisan::call('migrate:fresh'); + + // Create Passport Keys + Artisan::call('passport:keys', [ + '--force' => true + ]); + + // Create Password grant client + Artisan::call('passport:client', [ + '--password' => true, + '--name' => 'vuefilemanager', + ]); + + // Create Personal access client + Artisan::call('passport:client', [ + '--personal' => true, + '--name' => 'shared', + ]); + + // Get generated client + $client = \DB::table('oauth_clients')->where('name', '=', 'vuefilemanager')->first(); + + // Set passport client to .env + setEnvironmentValue('PASSPORT_CLIENT_ID', $client->id); + setEnvironmentValue('PASSPORT_CLIENT_SECRET', $client->secret); + } + /** * Make login request for get access token * diff --git a/app/Http/Helpers/helpers.php b/app/Http/Helpers/helpers.php index cb02d126..2f35b78b 100644 --- a/app/Http/Helpers/helpers.php +++ b/app/Http/Helpers/helpers.php @@ -11,7 +11,8 @@ use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use Intervention\Image\ImageManagerStatic as Image; -function get_setting($setting) { +function get_setting($setting) +{ return Setting::where('name', $setting)->first()->value; } @@ -123,12 +124,11 @@ function get_storage() */ function is_storage_driver($driver) { - if (is_array($driver)) { - return in_array(env('FILESYSTEM_DRIVER'), $driver); + return in_array(config('filesystem.default'), $driver); } - return env('FILESYSTEM_DRIVER') === $driver; + return config('filesystem.default') === $driver; } /** diff --git a/app/Http/Requests/SetupWizard/StoreAppSetupRequest.php b/app/Http/Requests/SetupWizard/StoreAppSetupRequest.php index f298a5ef..02e9c1d2 100644 --- a/app/Http/Requests/SetupWizard/StoreAppSetupRequest.php +++ b/app/Http/Requests/SetupWizard/StoreAppSetupRequest.php @@ -29,8 +29,8 @@ class StoreAppSetupRequest extends FormRequest 'logo' => 'sometimes|file', 'favicon' => 'sometimes|file', 'contactMail' => 'required|email', - 'googleAnalytics' => 'required|string', - 'defaultStorage' => 'required|digits_between:1,9', + 'googleAnalytics' => 'sometimes|string', + 'defaultStorage' => 'sometimes|digits_between:1,9', 'userRegistration' => 'required|boolean', 'storageLimitation' => 'required|boolean', ]; diff --git a/app/Services/StripeService.php b/app/Services/StripeService.php index 75261559..c641ee13 100644 --- a/app/Services/StripeService.php +++ b/app/Services/StripeService.php @@ -157,10 +157,12 @@ class StripeService $product = $this->stripe->products()->find($plan['product']); // Push data to $plan container - array_push($plans, [ - 'plan' => $plan, - 'product' => $product, - ]); + if ($product['active']) { + array_push($plans, [ + 'plan' => $plan, + 'product' => $product, + ]); + } } return $plans; @@ -187,10 +189,12 @@ class StripeService $product = $this->stripe->products()->find($plan['product']); // Push data to $plan container - array_push($plans, [ - 'plan' => $plan, - 'product' => $product, - ]); + if ($product['active']) { + array_push($plans, [ + 'plan' => $plan, + 'product' => $product, + ]); + } } } @@ -246,7 +250,7 @@ class StripeService $plan = $this->stripe->plans()->create([ 'id' => Str::slug($plan['name']), 'amount' => $plan['price'], - 'currency' => 'USD', + 'currency' => config('cashier.currency'), 'interval' => 'month', 'product' => $product['id'], ]); diff --git a/config/app.php b/config/app.php index bdce5aa2..0ca539d8 100644 --- a/config/app.php +++ b/config/app.php @@ -80,7 +80,7 @@ return [ | */ - 'locale' => 'sk', + 'locale' => 'en', /* |-------------------------------------------------------------------------- diff --git a/database/seeds/ContentSeeder.php b/database/seeds/ContentSeeder.php index 49bc5821..cc1bd5f8 100644 --- a/database/seeds/ContentSeeder.php +++ b/database/seeds/ContentSeeder.php @@ -92,7 +92,7 @@ class ContentSeeder extends Seeder ]); $columns->each(function ($content) { - Setting::create($content); + Setting::updateOrCreate($content); }); } } diff --git a/database/seeds/PageSeeder.php b/database/seeds/PageSeeder.php index bee675a8..3a043a1b 100644 --- a/database/seeds/PageSeeder.php +++ b/database/seeds/PageSeeder.php @@ -34,7 +34,7 @@ class PageSeeder extends Seeder ]); $columns->each(function ($page) { - Page::create($page); + Page::updateOrCreate($page); }); } } diff --git a/public/assets/images/default-avatar.png b/public/assets/images/default-avatar.png index 7354e00f..32951469 100644 Binary files a/public/assets/images/default-avatar.png and b/public/assets/images/default-avatar.png differ diff --git a/public/assets/images/vuefilemanager-horizontal-logo.svg b/public/assets/images/vuefilemanager-horizontal-logo.svg index 7682e715..0bfc47df 100644 --- a/public/assets/images/vuefilemanager-horizontal-logo.svg +++ b/public/assets/images/vuefilemanager-horizontal-logo.svg @@ -4,14 +4,14 @@ vuefilemanager-horizontal-logo Created with Sketch.