Merge remote-tracking branch 'origin/v2' into oasis

# Conflicts:
#	app/Http/Controllers/User/AccountController.php
#	app/Http/helpers.php
#	public/mix-manifest.json
#	resources/js/components/FilesView/Icons/AlphabetIcon.vue
#	resources/js/components/FilesView/MobileActionButton.vue
#	resources/js/views/Admin/AppSettings/AppSettingsTabs/Appearance.vue
#	resources/js/views/Admin/Users/UserTabs/UserDetail.vue
#	resources/js/views/Upgrade/UpgradeBilling.vue
#	resources/views/index.blade.php
#	resources/views/vuefilemanager/invoice.blade.php
#	resources/views/vuefilemanager/others/color-template.blade.php
This commit is contained in:
Peter Papp
2021-04-01 10:45:10 +02:00
124 changed files with 3745 additions and 3576 deletions
@@ -0,0 +1,136 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Resources\LanguageCollection;
use App\Http\Resources\LanguageResource;
use App\Models\Language;
use App\Http\Controllers\Controller;
use App\Models\Setting;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
use App\Http\Requests\Languages\UpdateStringRequest;
use App\Http\Requests\Languages\CreateLanguageRequest;
use App\Http\Requests\Languages\UpdateLanguageRequest;
class LanguageController extends Controller
{
/**
* Get all languages for admin translate
*
* @return array|Application|ResponseFactory|Response
*/
public function get_languages()
{
return response(
new LanguageCollection(Language::sortable(['created_at', 'DESC'])->get()), 200
);
}
/**
* Get all language strings for admin translate
*
* @param Language $language
*/
public function get_language(Language $language)
{
return response(
new LanguageResource($language), 200
);
}
/**
* Create new language
*
* @param CreateLanguageRequest $request
* @return string
*/
public function create_language(CreateLanguageRequest $request)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
$language = Language::create([
'name' => $request->input('name'),
'locale' => $request->input('locale')
]);
return response(
new LanguageResource($language), 201
);
}
/**
* Update language
*
* @param UpdateLanguageRequest $request
* @param Language $language
*/
public function update_language(UpdateLanguageRequest $request, Language $language)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
$language->update(make_single_input($request));
return response(
new LanguageResource($language), 201
);
}
/**
* Update string for language
*
* @param UpdateStringRequest $request
* @param Language $language
* @return Application|ResponseFactory|Response
*/
public function update_string(UpdateStringRequest $request, Language $language)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
$language
->languageTranslations()
->where('key', $request->name)
->update([
'value' => $request->value
]);
cache()->forget("language-translations-{$language->locale}");
return response(
'Done', 204
);
}
/**
* Delete the language with all children strings
*
* @param Language $language
* @return ResponseFactory|Response
*/
public function delete_language(Language $language)
{
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
if ($language->locale === 'en') {
abort(401, "Sorry, you can't delete default language.");
}
// If user try to delete language used as default,
// then set en language as default
if ($language->locale === get_setting('language')) {
Setting::whereName('language')->first()
->update(['value' => 'en']);
}
$language->delete();
return response(
'Done', 204
);
}
}
@@ -51,9 +51,8 @@ class PagesController extends Controller
*/
public function update(Request $request, Page $page)
{
if (is_demo()) {
return $this->demo->response_with_no_content();
}
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
$page->update(
make_single_input($request)
@@ -110,9 +110,8 @@ class PlanController extends Controller
*/
public function update(Request $request, $id)
{
if (is_demo()) {
return $this->demo->response_with_no_content();
}
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
// Update plan
$this->stripe->updatePlan($request, $id);
@@ -131,9 +130,8 @@ class PlanController extends Controller
*/
public function delete($id)
{
if (is_demo()) {
return $this->demo->response_with_no_content();
}
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
// Delete plan
$this->stripe->deletePlan($id);
@@ -49,9 +49,8 @@ class SettingController extends Controller
*/
public function update(Request $request)
{
if (is_demo()) {
return $this->demo->response_with_no_content();
}
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
// Store image if exist
if ($request->hasFile($request->name)) {
@@ -84,9 +83,8 @@ class SettingController extends Controller
public function set_email(Request $request)
{
// TODO: pridat validator do requestu
if (is_demo()) {
return $this->demo->response_with_no_content();
}
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
if (!app()->runningUnitTests()) {
@@ -178,9 +176,8 @@ class SettingController extends Controller
*/
public function flush_cache()
{
if (is_demo()) {
return $this->demo->response_with_no_content();
}
// Abort in demo mode
abort_if(is_demo(), 204, 'Done.');
if (!app()->runningUnitTests()) {
Artisan::call('cache:clear');
@@ -22,7 +22,6 @@ use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Password;
use Storage;
@@ -182,7 +181,7 @@ class UserController extends Controller
$user = User::forceCreate([
'role' => $request->role,
'email' => $request->email,
'password' => Hash::make($request->password),
'password' => bcrypt($request->password),
]);
UserSettings::unguard();
@@ -7,6 +7,7 @@ use App\Http\Mail\SendContactMessage;
use App\Http\Resources\PricingCollection;
use App\Http\Requests\PublicPages\SendContactMessageRequest;
use App\Http\Resources\PageResource;
use App\Models\Language;
use App\Models\Setting;
use App\Models\Page;
use App\Models\Share;
@@ -163,17 +164,10 @@ class AppFunctionsController extends Controller
*/
public function get_storage_plans()
{
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();
});
}
// Get pricing from cache
$pricing = Cache::rememberForever('pricing', function () {
return $this->stripe->getActivePlans();
});
// Format pricing to collection
$collection = new PricingCollection($pricing);
@@ -184,4 +178,21 @@ class AppFunctionsController extends Controller
->values()
->all();
}
/**
* Get language translations for frontend app
*
* @param $lang
* @return array
*/
public function get_translations($lang)
{
$translations = Cache::rememberForever("language-translations-$lang", function () use ($lang) {
return Language::whereLocale($lang)
->firstOrFail()
->languageTranslations;
});
return map_language_translations($translations);
}
}
@@ -21,7 +21,6 @@ use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Str;
use Schema;
@@ -346,6 +345,14 @@ class SetupWizardController extends Controller
'name' => 'app_favicon',
'value' => store_system_image($request, 'favicon'),
],
[
'name' => 'app_og_image',
'value' => store_system_image($request, 'og_image'),
],
[
'name' => 'app_touch_icon',
'value' => store_system_image($request, 'touch_icon'),
],
[
'name' => 'google_analytics',
'value' => $request->googleAnalytics,
@@ -405,7 +412,7 @@ class SetupWizardController extends Controller
$user = User::forceCreate([
'role' => 'admin',
'email' => $request->email,
'password' => Hash::make($request->password),
'password' => bcrypt($request->password),
]);
$user
@@ -439,6 +446,7 @@ class SetupWizardController extends Controller
// Set up application
$this->setup->seed_default_pages();
$this->setup->seed_default_settings($request->license);
$this->setup->seed_default_language();
// Login account
if (Auth::attempt($request->only(['email', 'password']))) {
+1 -7
View File
@@ -3,14 +3,8 @@
namespace App\Http\Controllers\Auth;
use App\Http\Requests\Auth\CheckAccountRequest;
use App\Models\Setting;
use App\Models\User;
use App\Models\UserSettings;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Route;
class AuthController extends Controller
{
@@ -28,7 +22,7 @@ class AuthController extends Controller
->first();
if (! $user) {
return response(__('vuefilemanager.user_not_fount'), 404);
return response(__t('user_not_fount'), 404);
}
return [
@@ -182,7 +182,7 @@ class BrowseController extends Controller
return [
[
'name' => __('vuefilemanager.home'),
'name' => __t('home'),
'location' => 'base',
'folders' => $folders,
]
@@ -82,9 +82,7 @@ class EditItemsController extends Controller
*/
public function delete_item(DeleteItemRequest $request)
{
if (is_demo_account('howdy@hi5ve.digital')) {
return $this->demo->response_with_no_content();
}
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
foreach ($request->input('items') as $item) {
$this->filemanager->delete_item($item, $item['id']);
@@ -117,9 +115,7 @@ class EditItemsController extends Controller
*/
public function move(MoveItemRequest $request)
{
if (is_demo_account('howdy@hi5ve.digital')) {
return $this->demo->response_with_no_content();
}
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
$this->filemanager->move($request, $request->to_id);
@@ -12,10 +12,7 @@ use Illuminate\Contracts\Routing\ResponseFactory;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Str;
use Validator;
class ShareController extends Controller
@@ -44,7 +41,7 @@ class ShareController extends Controller
{
// Create shared options
$shared = Share::create([
'password' => $request->has('password') ? Hash::make($request->password) : null,
'password' => $request->has('password') ? bcrypt($request->password) : null,
'type' => $request->type === 'folder' ? 'folder' : 'file',
'is_protected' => $request->isPassword,
'permission' => $request->permission ?? null,
@@ -87,7 +84,7 @@ class ShareController extends Controller
'permission' => $request->permission,
'is_protected' => $request->protected,
'expire_in' => $request->expiration,
'password' => $request->password ? Hash::make($request->password) : $shared->password,
'password' => $request->password ? bcrypt($request->password) : $shared->password,
]);
// Return shared record
@@ -43,9 +43,7 @@ class TrashController extends Controller
// Get user id
$user_id = Auth::id();
if (is_demo($user_id)) {
return $this->demo->response_with_no_content();
}
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
foreach ($request->input('items') as $restore) {
@@ -96,9 +94,7 @@ class TrashController extends Controller
// Get user id
$user_id = Auth::id();
if (is_demo($user_id)) {
return $this->demo->response_with_no_content();
}
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
// Get files and folders
$folders = Folder::onlyTrashed()->where('user_id', $user_id)->get();
@@ -81,7 +81,7 @@ class BrowseShareController extends Controller
->cookie('share_session', $cookie, 43200);
}
abort(401, __('vuefilemanager.incorrect_password'));
abort(401, __t('incorrect_password'));
}
/**
@@ -191,7 +191,7 @@ class BrowseShareController extends Controller
return [
[
'id' => $shared->item_id,
'name' => __('vuefilemanager.home'),
'name' => __t('home'),
'location' => 'public',
'folders' => $folders,
]
@@ -121,9 +121,8 @@ class ManipulateShareItemsController extends Controller
*/
public function delete_item(DeleteItemRequest $request, Share $shared)
{
if (is_demo_account($shared->user->email)) {
return $this->demo->response_with_no_content();
}
abort_if(is_demo_account($shared->user->email), 204, 'Done.');
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
@@ -195,9 +194,7 @@ class ManipulateShareItemsController extends Controller
*/
public function move(MoveItemRequest $request, Share $shared)
{
if (is_demo_account($shared->user->email)) {
return $this->demo->response_with_no_content();
}
abort_if(is_demo_account($shared->user->email), 204, 'Done.');
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
@@ -3,8 +3,6 @@
namespace App\Http\Controllers\User;
use App\Http\Requests\User\UpdateUserPasswordRequest;
use App\Models\File;
use App\Models\Folder;
use App\Http\Resources\InvoiceCollection;
use App\Http\Resources\StorageDetailResource;
use App\Http\Resources\UserResource;
@@ -14,10 +12,7 @@ use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Support\Facades\Validator;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;
use ByteUnits\Metric;
use App\Models\User;
class AccountController extends Controller
{
@@ -88,9 +83,7 @@ class AccountController extends Controller
$user = Auth::user();
// Check if is demo
if (is_demo($user->id)) {
return $this->demo->response_with_no_content();
}
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
// Update avatar
if ($request->hasFile('avatar')) {
@@ -123,12 +116,11 @@ class AccountController extends Controller
// Get user
$user = Auth::user();
if (is_demo($user->id)) {
return $this->demo->response_with_no_content();
}
// Check if is demo
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
// Change and store new password
$user->password = Hash::make($request->input('password'));
$user->password = bcrypt($request->input('password'));
$user->save();
return response('Changed!', 204);
@@ -97,9 +97,7 @@ class PaymentMethodsController extends Controller
$user = Auth::user();
// Check if is demo
if (is_demo($user->id)) {
return $this->demo->response_with_no_content();
}
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
// Update DefaultPayment Method
$user->updateDefaultPaymentMethod($id);
@@ -147,9 +145,7 @@ class PaymentMethodsController extends Controller
$user = Auth::user();
// Check if is demo
if (is_demo($user->id)) {
return $this->demo->response_with_no_content();
}
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
// Get payment method
$paymentMethod = $user->findPaymentMethod($id);