mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-29 15:44:41 +00:00
Log in functionality
This commit is contained in:
+3
-1
@@ -69,4 +69,6 @@ CASHIER_CURRENCY=
|
|||||||
STRIPE_KEY=
|
STRIPE_KEY=
|
||||||
STRIPE_SECRET=
|
STRIPE_SECRET=
|
||||||
STRIPE_WEBHOOK_SECRET=
|
STRIPE_WEBHOOK_SECRET=
|
||||||
CASHIER_PAYMENT_NOTIFICATION=App\Notifications\ConfirmPayment
|
CASHIER_PAYMENT_NOTIFICATION=App\Notifications\ConfirmPayment
|
||||||
|
|
||||||
|
SANCTUM_STATEFUL_DOMAINS=localhost,localhost:8000,127.0.0.1,127.0.0.1:8000,::1
|
||||||
@@ -85,6 +85,8 @@ class SetupWizardController extends Controller
|
|||||||
throw new HttpException(500, $e->getMessage());
|
throw new HttpException(500, $e->getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: add SANCTUM_STATEFUL_DOMAINS parameter
|
||||||
|
|
||||||
setEnvironmentValue([
|
setEnvironmentValue([
|
||||||
'DB_CONNECTION' => $request->connection,
|
'DB_CONNECTION' => $request->connection,
|
||||||
'DB_HOST' => $request->host,
|
'DB_HOST' => $request->host,
|
||||||
|
|||||||
@@ -23,19 +23,21 @@ class BrowseController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function folder(Request $request, $id)
|
public function folder(Request $request, $id)
|
||||||
{
|
{
|
||||||
|
$root_id = $id === 'undefined' ? null : $id;
|
||||||
|
|
||||||
// Get folder trash items
|
// Get folder trash items
|
||||||
if ($request->query('trash')) {
|
if ($request->query('trash')) {
|
||||||
|
|
||||||
// Get folders and files
|
// Get folders and files
|
||||||
$folders = Folder::onlyTrashed()
|
$folders = Folder::onlyTrashed()
|
||||||
->with('parent')
|
->with('parent')
|
||||||
->where('parent_id', $id)
|
->where('parent_id', $root_id)
|
||||||
->sortable()
|
->sortable()
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
$files = File::onlyTrashed()
|
$files = File::onlyTrashed()
|
||||||
->with('parent')
|
->with('parent')
|
||||||
->where('folder_id', $id)
|
->where('folder_id', $root_id)
|
||||||
->sortable()
|
->sortable()
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
@@ -45,12 +47,12 @@ class BrowseController extends Controller
|
|||||||
|
|
||||||
// Get folders and files
|
// Get folders and files
|
||||||
$folders = Folder::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in'])
|
$folders = Folder::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in'])
|
||||||
->where('parent_id', $id)
|
->where('parent_id', $root_id)
|
||||||
->sortable()
|
->sortable()
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
$files = File::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in'])
|
$files = File::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in'])
|
||||||
->where('folder_id', $id)
|
->where('folder_id', $root_id)
|
||||||
->sortable()
|
->sortable()
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -16,11 +16,11 @@ class Kernel extends HttpKernel
|
|||||||
*/
|
*/
|
||||||
protected $middleware = [
|
protected $middleware = [
|
||||||
\App\Http\Middleware\TrustProxies::class,
|
\App\Http\Middleware\TrustProxies::class,
|
||||||
\App\Http\Middleware\CheckForMaintenanceMode::class,
|
\Fruitcake\Cors\HandleCors::class,
|
||||||
|
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
|
||||||
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
||||||
\App\Http\Middleware\TrimStrings::class,
|
\App\Http\Middleware\TrimStrings::class,
|
||||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
||||||
\Fruitcake\Cors\HandleCors::class,
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,8 +41,8 @@ class Kernel extends HttpKernel
|
|||||||
|
|
||||||
'api' => [
|
'api' => [
|
||||||
EnsureFrontendRequestsAreStateful::class,
|
EnsureFrontendRequestsAreStateful::class,
|
||||||
\App\Http\Middleware\EncryptCookies::class,
|
//'throttle:api',
|
||||||
//'throttle:60,1',
|
//\App\Http\Middleware\EncryptCookies::class,
|
||||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
|
||||||
|
|
||||||
|
class PreventRequestsDuringMaintenance extends Middleware
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The URIs that should be reachable while maintenance mode is enabled.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $except = [
|
||||||
|
//
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -13,13 +13,17 @@ class RedirectIfAuthenticated
|
|||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @param \Closure $next
|
* @param \Closure $next
|
||||||
* @param string|null $guard
|
* @param string|null ...$guards
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function handle($request, Closure $next, $guard = null)
|
public function handle($request, Closure $next, ...$guards)
|
||||||
{
|
{
|
||||||
if (Auth::guard($guard)->check()) {
|
$guards = empty($guards) ? [null] : $guards;
|
||||||
return redirect(RouteServiceProvider::HOME);
|
|
||||||
|
foreach ($guards as $guard) {
|
||||||
|
if (Auth::guard($guard)->check()) {
|
||||||
|
return redirect('/files');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $next($request);
|
return $next($request);
|
||||||
|
|||||||
@@ -20,65 +20,51 @@ class UserResource extends JsonResource
|
|||||||
{
|
{
|
||||||
// TODO: zrefaktorovat
|
// TODO: zrefaktorovat
|
||||||
return [
|
return [
|
||||||
'data' => [
|
'data' => [
|
||||||
'id' => (string)$this->id,
|
'id' => $this->id,
|
||||||
'type' => 'user',
|
'type' => 'user',
|
||||||
'attributes' => [
|
'attributes' => [
|
||||||
'storage_capacity' => $this->settings->storage_capacity,
|
'storage_capacity' => $this->settings->storage_capacity,
|
||||||
'subscription' => $this->subscribed('main'),
|
'subscription' => $this->subscribed('main'),
|
||||||
'incomplete_payment' => $this->hasIncompletePayment('main') ? route('cashier.payment', $this->subscription('main')->latestPayment()->id) : null,
|
'incomplete_payment' => $this->hasIncompletePayment('main') ? route('cashier.payment', $this->subscription('main')->latestPayment()->id) : null,
|
||||||
'stripe_customer' => is_null($this->stripe_id) ? false : true,
|
'stripe_customer' => is_null($this->stripe_id) ? false : true,
|
||||||
'email' => env('APP_DEMO') ? obfuscate_email($this->email) : $this->email,
|
'email' => env('APP_DEMO') ? obfuscate_email($this->email) : $this->email,
|
||||||
'role' => $this->role,
|
'role' => $this->role,
|
||||||
|
'folders' => $this->folder_tree,
|
||||||
|
'storage' => $this->storage,
|
||||||
'created_at_formatted' => format_date($this->created_at, '%d. %B. %Y'),
|
'created_at_formatted' => format_date($this->created_at, '%d. %B. %Y'),
|
||||||
'created_at' => $this->created_at,
|
'created_at' => $this->created_at,
|
||||||
'updated_at' => $this->updated_at,
|
'updated_at' => $this->updated_at,
|
||||||
|
],
|
||||||
|
'relationships' => [
|
||||||
|
'settings' => [
|
||||||
|
'data' => [
|
||||||
|
'id' => $this->id,
|
||||||
|
'type' => 'settings',
|
||||||
|
'attributes' => [
|
||||||
|
'avatar' => $this->settings->avatar,
|
||||||
|
'billing_name' => $this->settings->name,
|
||||||
|
'billing_address' => $this->settings->address,
|
||||||
|
'billing_state' => $this->settings->state,
|
||||||
|
'billing_city' => $this->settings->city,
|
||||||
|
'billing_postal_code' => $this->settings->postal_code,
|
||||||
|
'billing_country' => $this->settings->country,
|
||||||
|
'billing_phone_number' => $this->settings->phone_number,
|
||||||
|
'timezone' => $this->settings->timezone
|
||||||
|
]
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'favourites' => [
|
||||||
|
'data' => [
|
||||||
|
'id' => $this->id,
|
||||||
|
'type' => 'favourite_folders',
|
||||||
|
'attributes' => [
|
||||||
|
'folders' => $this->favouriteFolders->makeHidden(['pivot'])
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
'relationships' => [
|
|
||||||
'settings' => [
|
|
||||||
'data' => [
|
|
||||||
'id' => $this->settings->user_id,
|
|
||||||
'type' => 'settings',
|
|
||||||
'attributes' => [
|
|
||||||
'avatar' => $this->settings->avatar,
|
|
||||||
'billing_name' => $this->settings->name,
|
|
||||||
'billing_address' => $this->settings->address,
|
|
||||||
'billing_state' => $this->settings->state,
|
|
||||||
'billing_city' => $this->settings->city,
|
|
||||||
'billing_postal_code' => $this->settings->postal_code,
|
|
||||||
'billing_country' => $this->settings->country,
|
|
||||||
'billing_phone_number' => $this->settings->phone_number,
|
|
||||||
'timezone' => $this->settings->timezone
|
|
||||||
]
|
|
||||||
]
|
|
||||||
],
|
|
||||||
'storage' => [
|
|
||||||
'data' => [
|
|
||||||
'id' => '1',
|
|
||||||
'type' => 'storage',
|
|
||||||
'attributes' => $this->storage
|
|
||||||
]
|
|
||||||
],
|
|
||||||
'favourites' => [
|
|
||||||
'data' => [
|
|
||||||
'id' => '1',
|
|
||||||
'type' => 'folders_favourite',
|
|
||||||
'attributes' => [
|
|
||||||
'folders' => $this->favouriteFolders->makeHidden(['pivot'])
|
|
||||||
],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'tree' => [
|
|
||||||
'data' => [
|
|
||||||
'id' => '1',
|
|
||||||
'type' => 'folders_tree',
|
|
||||||
'attributes' => [
|
|
||||||
'folders' => $this->folder_tree
|
|
||||||
],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
]
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -7,7 +7,6 @@ use App\Services\HelperService;
|
|||||||
use App\Services\StripeService;
|
use App\Services\StripeService;
|
||||||
use ByteUnits\Metric;
|
use ByteUnits\Metric;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use DB;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||||
use Illuminate\Notifications\Notifiable;
|
use Illuminate\Notifications\Notifiable;
|
||||||
@@ -122,8 +121,8 @@ class User extends Authenticatable
|
|||||||
*/
|
*/
|
||||||
public function getFolderTreeAttribute()
|
public function getFolderTreeAttribute()
|
||||||
{
|
{
|
||||||
return File::with(['folders.shared', 'shared:token,id,item_id,permission,is_protected,expire_in'])
|
return Folder::with(['folders.shared', 'shared:token,id,item_id,permission,is_protected,expire_in'])
|
||||||
->where('parent_id', 0)
|
->where('parent_id', null)
|
||||||
->where('user_id', $this->id)
|
->where('user_id', $this->id)
|
||||||
->sortable()
|
->sortable()
|
||||||
->get();
|
->get();
|
||||||
|
|||||||
@@ -36,9 +36,9 @@ class FortifyServiceProvider extends ServiceProvider
|
|||||||
Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
|
Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
|
||||||
Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
|
Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
|
||||||
|
|
||||||
RateLimiter::for('login', function (Request $request) {
|
/*RateLimiter::for('login', function (Request $request) {
|
||||||
return Limit::perMinute(5)->by($request->email.$request->ip());
|
return Limit::perMinute(5)->by($request->email.$request->ip());
|
||||||
});
|
});*/
|
||||||
|
|
||||||
RateLimiter::for('two-factor', function (Request $request) {
|
RateLimiter::for('two-factor', function (Request $request) {
|
||||||
return Limit::perMinute(5)->by($request->session()->get('login.id'));
|
return Limit::perMinute(5)->by($request->session()->get('login.id'));
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'version' => '1.8.2.1',
|
'version' => '2.0',
|
||||||
|
|
||||||
// Define size of chunk uploaded by MB. E.g. integer 128 means chunk size will be 128MB.
|
// Define size of chunk uploaded by MB. E.g. integer 128 means chunk size will be 128MB.
|
||||||
'chunk_size' => env('CHUNK_SIZE', '128'),
|
'chunk_size' => env('CHUNK_SIZE', '128'),
|
||||||
|
|||||||
+82
-74
@@ -1,78 +1,86 @@
|
|||||||
{
|
{
|
||||||
"/js/main.js": "/js/main.js",
|
"/js/main.js": "/js/main.js",
|
||||||
"/css/app.css": "/css/app.css",
|
"/css/app.css": "/css/app.css",
|
||||||
"/chunks/admin.js": "/chunks/admin.js?id=06067d0f4cff64abd1e4",
|
"/chunks/admin.js": "/chunks/admin.js?id=d2e6acc904b1c1a9387b",
|
||||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=fde37ee0820a1d2dc1f9",
|
"/chunks/admin-account.js": "/chunks/admin-account.js?id=b306bc83a32911dc7bbc",
|
||||||
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js?id=1ad1b7b56512338223eb",
|
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js?id=f8aa71af8223ad1df2a0",
|
||||||
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js?id=6c02fe91a2e167b63a98",
|
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js?id=bc5af3a7a82d95c71c52",
|
||||||
"/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js?id=50155ecdafab2d18dda1",
|
"/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js?id=dfc7c9e8edb8146d9bd0",
|
||||||
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=ba3c9a7acbaacc20af9e",
|
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=461130dc9ddda9c3e94e",
|
||||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=fd3c7242b5c765b469e4",
|
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=1ae1e65bb6a5ed7c3e10",
|
||||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=60421d0349712350e866",
|
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=459aa0e9effdb1a44ce2",
|
||||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js?id=a8bd98f9f181d9ee68fd",
|
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js?id=f3f0a717f5806faf488c",
|
||||||
"/chunks/app-billings.js": "/chunks/app-billings.js?id=97f5c44884d8c2128c56",
|
"/chunks/app-billings.js": "/chunks/app-billings.js?id=89de5679d1cd8047f47c",
|
||||||
"/chunks/app-email.js": "/chunks/app-email.js?id=59c27449f65145dc208e",
|
"/chunks/app-email.js": "/chunks/app-email.js?id=a80a64a4ec22e4d2e03d",
|
||||||
"/chunks/app-index.js": "/chunks/app-index.js?id=a337e0f9b64590a88cc9",
|
"/chunks/app-index.js": "/chunks/app-index.js?id=b7966950a821c2d1561f",
|
||||||
"/chunks/app-others.js": "/chunks/app-others.js?id=1655c151466b066ee1c5",
|
"/chunks/app-others.js": "/chunks/app-others.js?id=998b74c9a395c76dddd1",
|
||||||
"/chunks/app-payments.js": "/chunks/app-payments.js?id=cb8ea484a0e605ace175",
|
"/chunks/app-payments.js": "/chunks/app-payments.js?id=b68c7953a62e26107acb",
|
||||||
"/chunks/app-settings.js": "/chunks/app-settings.js?id=e8ee87b4fb155d3edb6b",
|
"/chunks/app-settings.js": "/chunks/app-settings.js?id=368b31bcef5716a6b884",
|
||||||
"/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js": "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js?id=99eb5ed6af46738c97e0",
|
"/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js": "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js?id=e71bb0286189734a8aec",
|
||||||
"/chunks/app-setup.js": "/chunks/app-setup.js?id=777ebaef548d5b4c61be",
|
"/chunks/app-setup.js": "/chunks/app-setup.js?id=4112238baf5cc574afb1",
|
||||||
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=0eec974c6f0ee4e6ecab",
|
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=fdbbb11f8c216a2c3899",
|
||||||
"/chunks/contact-us.js": "/chunks/contact-us.js?id=b243adc35233292f8ad6",
|
"/chunks/contact-us.js": "/chunks/contact-us.js?id=d72e3c4daa900092a3c3",
|
||||||
"/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js": "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js?id=96ac1ede73f3fc9afa37",
|
"/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js": "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js?id=bea1c83df0a0b8141b5b",
|
||||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=00b75239db203720652c",
|
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=08ef47a59c4d6340ff5a",
|
||||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=750c017c825ec385e0aa",
|
"/chunks/dashboard.js": "/chunks/dashboard.js?id=aa35b53d6813332579a8",
|
||||||
"/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=d7795f20187163939276",
|
"/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=b32bd13f9927b553b7a3",
|
||||||
"/chunks/database.js": "/chunks/database.js?id=212e2d81f6f5c54c2dd2",
|
"/chunks/database.js": "/chunks/database.js?id=a877c2f9792396cba0c9",
|
||||||
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=1d8ee4bfbcde69c97021",
|
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=5c3460801e1960b361be",
|
||||||
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=374911110bca4e1b3f91",
|
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=b835f8fdedb4bc19f4a5",
|
||||||
"/chunks/files.js": "/chunks/files.js?id=d47d2964ef535ad5754c",
|
"/chunks/files.js": "/chunks/files.js?id=c4a3a295c64cadca5fe1",
|
||||||
"/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js?id=e285e842f58178d681c4",
|
"/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js?id=bfc9bbbc5c50bc21cad7",
|
||||||
"/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=880304f033df88daeedd",
|
"/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=fcfb659af2fbff3992a7",
|
||||||
"/chunks/files~chunks/shared-page.js": "/chunks/files~chunks/shared-page.js?id=539a5b88c5f32511449e",
|
"/chunks/files~chunks/shared-page.js": "/chunks/files~chunks/shared-page.js?id=a8c91010ab23e11e39d1",
|
||||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=f430110273d76b28906f",
|
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=7f6474e743f5e147705a",
|
||||||
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=94c75dac20c4ccf7bde0",
|
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=7e924ee2e747d16a2810",
|
||||||
"/chunks/invoices.js": "/chunks/invoices.js?id=02089f329654fbbc894d",
|
"/chunks/invoices.js": "/chunks/invoices.js?id=054419f3a5e20c88a43b",
|
||||||
"/chunks/landing-page.js": "/chunks/landing-page.js?id=ddac17e6108c6f58f082",
|
"/chunks/landing-page.js": "/chunks/landing-page.js?id=0e919a402129ab433555",
|
||||||
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=6666b81edc5ff6f60e82",
|
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=1a749c690540349c5276",
|
||||||
"/chunks/page-edit.js": "/chunks/page-edit.js?id=7e6363b9a35e62dd560c",
|
"/chunks/page-edit.js": "/chunks/page-edit.js?id=9a1ca9eefd4c02203cf5",
|
||||||
"/chunks/pages.js": "/chunks/pages.js?id=ca712437ecc7e5aeee5c",
|
"/chunks/pages.js": "/chunks/pages.js?id=b2605d41be8c599439c4",
|
||||||
"/chunks/plan.js": "/chunks/plan.js?id=cc041fb9c2cb9ad8f0ff",
|
"/chunks/plan.js": "/chunks/plan.js?id=4a568fef0d2f64863538",
|
||||||
"/chunks/plan-create.js": "/chunks/plan-create.js?id=24bb1297c55fe70c1dd0",
|
"/chunks/plan-create.js": "/chunks/plan-create.js?id=0891373d600612e1d05c",
|
||||||
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=e06dc32848cf3bfb9e6b",
|
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=85e6c8a7dfb7756fa8ad",
|
||||||
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=242cb0706c986d08c484",
|
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=710a1d7a15b162ba0ce3",
|
||||||
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=36a86cf6f3d8a2868504",
|
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=ca0c3e768cd3ebe76739",
|
||||||
"/chunks/plans.js": "/chunks/plans.js?id=282268d939f8b52f6acd",
|
"/chunks/plans.js": "/chunks/plans.js?id=f200c1c92480ea2abecd",
|
||||||
"/chunks/profile.js": "/chunks/profile.js?id=060bceb3f703969fb135",
|
"/chunks/profile.js": "/chunks/profile.js?id=32f60791adeedc97eee8",
|
||||||
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=a44394b1fa09f996a9fd",
|
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=f32a0aa48b017ab8d29f",
|
||||||
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=8c1d40ff91c04fcefcfc",
|
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=d364c8a71495404871a5",
|
||||||
"/chunks/settings.js": "/chunks/settings.js?id=463a3b35eb4020fdcc77",
|
"/chunks/settings.js": "/chunks/settings.js?id=57a84555bb4089da3be2",
|
||||||
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=4d1a070566ee2069e1bd",
|
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=2b284137d3ddc6f9df2a",
|
||||||
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=603b7f706f34d9c89a62",
|
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=4cbe90ad2c1b6ddaf3e5",
|
||||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=0df4bd46f1d3d90e360a",
|
"/chunks/settings-password.js": "/chunks/settings-password.js?id=77c9549276bf5eda2bf6",
|
||||||
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=37955b9e8262af7fe525",
|
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=a865bd36a948958cb704",
|
||||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=013b6f15f907caaecd1e",
|
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=ef3826e9dfb07f199df3",
|
||||||
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=5d702de3662f601fccca",
|
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=c9dbe62a0fcc2f86f7ee",
|
||||||
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=99b4f321902fe6b0eb23",
|
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=7e5e05c018ddecf29567",
|
||||||
"/chunks/shared-files.js": "/chunks/shared-files.js?id=1860b9031f41ed46d0e0",
|
"/chunks/shared-files.js": "/chunks/shared-files.js?id=e6f7de2910d85a2dd3e4",
|
||||||
"/chunks/shared-page.js": "/chunks/shared-page.js?id=d8a8c573da5a08b7cd36",
|
"/chunks/shared-page.js": "/chunks/shared-page.js?id=f1276490cd24473cd50b",
|
||||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=6b961e6324b09384dfd0",
|
"/chunks/sign-in.js": "/chunks/sign-in.js?id=7990aa527e933e0f0ebf",
|
||||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=a46f57a34f8f862a24a8",
|
"/chunks/sign-up.js": "/chunks/sign-up.js?id=2bc6c1353362c0063d45",
|
||||||
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=080bade1ed512f512591",
|
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=8bfaa10b8499114b79a2",
|
||||||
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=5b2f00a9e19520adc31e",
|
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=1790ab9aa493a483cf3c",
|
||||||
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=1ac6b87f8797b491ef77",
|
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=8fc09aa45881d0c04e17",
|
||||||
"/chunks/upgrade.js": "/chunks/upgrade.js?id=ac1ff92a934e448ca6b4",
|
"/chunks/upgrade.js": "/chunks/upgrade.js?id=0e9a429679fe180f649e",
|
||||||
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=198bfc33644f85bfc075",
|
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=8a1684e4910b4729ce56",
|
||||||
"/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=7e805915ede7c330c6d1",
|
"/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=94cfb5164e5e7f0c2943",
|
||||||
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=2811533956c0c185714d",
|
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=2ce4b7a0ff69e192a968",
|
||||||
"/chunks/user.js": "/chunks/user.js?id=a400499012c6786a3652",
|
"/chunks/user.js": "/chunks/user.js?id=15546fc4913e749b7e67",
|
||||||
"/chunks/user-create.js": "/chunks/user-create.js?id=d5066d3ff9d7625ba7f1",
|
"/chunks/user-create.js": "/chunks/user-create.js?id=63e90b9f77be0c7c0d6f",
|
||||||
"/chunks/user-delete.js": "/chunks/user-delete.js?id=5d392a3df7b05cf93930",
|
"/chunks/user-delete.js": "/chunks/user-delete.js?id=0f5036bce016ef6d9ae0",
|
||||||
"/chunks/user-detail.js": "/chunks/user-detail.js?id=fbfe45c7762f7ae123e4",
|
"/chunks/user-detail.js": "/chunks/user-detail.js?id=fb9eb769caee40f5e130",
|
||||||
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=97c78350b65914e4b16d",
|
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=485ff8cb55e409fb36de",
|
||||||
"/chunks/user-password.js": "/chunks/user-password.js?id=ad772e769a8562c42c17",
|
"/chunks/user-password.js": "/chunks/user-password.js?id=98871ec6e84b1d14c1e3",
|
||||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=2c5f4cdd17574255ea05",
|
"/chunks/user-storage.js": "/chunks/user-storage.js?id=cb587cf1144a5bf79e76",
|
||||||
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=d6683735de17fd8c55c8",
|
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=da505396e6266a67cba1",
|
||||||
"/chunks/users.js": "/chunks/users.js?id=f2359ae7c0c166001c33"
|
"/chunks/users.js": "/chunks/users.js?id=be2f08e5c0cb8803fd8d",
|
||||||
|
"/js/main.48bc6ba4c58c916b18bb.hot-update.js": "/js/main.48bc6ba4c58c916b18bb.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared-page.f1b079b97f8091b2390c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.f1b079b97f8091b2390c.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared-page.e8a29f26d160f2731420.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.e8a29f26d160f2731420.hot-update.js",
|
||||||
|
"/chunks/files.04a4918321ccf1ee0426.hot-update.js": "/chunks/files.04a4918321ccf1ee0426.hot-update.js",
|
||||||
|
"/chunks/files.1e310970710676459f34.hot-update.js": "/chunks/files.1e310970710676459f34.hot-update.js",
|
||||||
|
"/chunks/files.b7c6ed65657ab8a91afe.hot-update.js": "/chunks/files.b7c6ed65657ab8a91afe.hot-update.js",
|
||||||
|
"/chunks/files.c9883bd526f46929296f.hot-update.js": "/chunks/files.c9883bd526f46929296f.hot-update.js",
|
||||||
|
"/chunks/files.9282ec4668bf89e4551f.hot-update.js": "/chunks/files.9282ec4668bf89e4551f.hot-update.js"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,10 +86,7 @@ export default {
|
|||||||
if (!this.$store.getters.user) return true
|
if (!this.$store.getters.user) return true
|
||||||
|
|
||||||
// Check if user has storage
|
// Check if user has storage
|
||||||
return (
|
return this.$store.getters.user.data.attributes.storage.used <= 100
|
||||||
this.$store.getters.user.relationships.storage.data.attributes.used <=
|
|
||||||
100
|
|
||||||
)
|
|
||||||
},
|
},
|
||||||
directoryName() {
|
directoryName() {
|
||||||
return this.currentFolder
|
return this.currentFolder
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="user-avatar" :class="size">
|
<div class="user-avatar" :class="size">
|
||||||
<span v-if="isIncompletePayment || isNearlyFullStorageCapacity" class="notification"></span>
|
<span v-if="isIncompletePayment || isNearlyFullStorageCapacity" class="notification"></span>
|
||||||
<img :src="user.data.attributes.avatar" :alt="user.data.attributes.name">
|
<img :src="user.data.relationships.settings.data.attributes.avatar" :alt="user.data.relationships.settings.data.attributes.name">
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
return this.user.data.attributes.incomplete_payment
|
return this.user.data.attributes.incomplete_payment
|
||||||
},
|
},
|
||||||
isNearlyFullStorageCapacity() {
|
isNearlyFullStorageCapacity() {
|
||||||
return this.config.storageLimit && this.user.relationships.storage.data.attributes.used > 95
|
return this.config.storageLimit && this.user.data.attributes.storage.used > 95
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -34,8 +34,8 @@ const actions = {
|
|||||||
commit('STORE_PREVIOUS_FOLDER', getters.currentFolder)
|
commit('STORE_PREVIOUS_FOLDER', getters.currentFolder)
|
||||||
|
|
||||||
let url = payload.folder.location === 'trash'
|
let url = payload.folder.location === 'trash'
|
||||||
? '/folders/' + payload.folder.unique_id + getters.sorting.URI + '&trash=true'
|
? '/browse/folders/' + payload.folder.id + getters.sorting.URI + '&trash=true'
|
||||||
: '/folders/' + payload.folder.unique_id + getters.sorting.URI
|
: '/browse/folders/' + payload.folder.id + getters.sorting.URI
|
||||||
|
|
||||||
axios
|
axios
|
||||||
.get(getters.api + url)
|
.get(getters.api + url)
|
||||||
|
|||||||
@@ -14,12 +14,12 @@
|
|||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="E-Mail" rules="required"
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="E-Mail" rules="required"
|
||||||
v-slot="{ errors }">
|
v-slot="{ errors }">
|
||||||
<input v-model="loginEmail" :placeholder="$t('page_login.placeholder_email')" type="email"
|
<input v-model="loginEmail" :placeholder="$t('page_login.placeholder_email')" type="email"
|
||||||
:class="{'is-error': errors[0]}"/>
|
:class="{'is-error': errors[0]}" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
|
|
||||||
<AuthButton icon="chevron-right" :text="$t('page_login.button_next')" :loading="isLoading"
|
<AuthButton icon="chevron-right" :text="$t('page_login.button_next')" :loading="isLoading"
|
||||||
:disabled="isLoading"/>
|
:disabled="isLoading" />
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
|
|
||||||
<span v-if="config.userRegistration" class="additional-link">{{ $t('page_login.registration_text') }}
|
<span v-if="config.userRegistration" class="additional-link">{{ $t('page_login.registration_text') }}
|
||||||
@@ -44,12 +44,12 @@
|
|||||||
v-slot="{ errors }">
|
v-slot="{ errors }">
|
||||||
<input v-model="loginPassword" :placeholder="$t('page_sign_in.placeholder_password')"
|
<input v-model="loginPassword" :placeholder="$t('page_sign_in.placeholder_password')"
|
||||||
type="password"
|
type="password"
|
||||||
:class="{'is-error': errors[0]}"/>
|
:class="{'is-error': errors[0]}" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
|
|
||||||
<AuthButton icon="chevron-right" :text="$t('page_sign_in.button_log_in')" :loading="isLoading"
|
<AuthButton icon="chevron-right" :text="$t('page_sign_in.button_log_in')" :loading="isLoading"
|
||||||
:disabled="isLoading"/>
|
:disabled="isLoading" />
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
|
|
||||||
<span class="additional-link">{{ $t('page_sign_in.password_reset_text') }}
|
<span class="additional-link">{{ $t('page_sign_in.password_reset_text') }}
|
||||||
@@ -166,7 +166,7 @@
|
|||||||
|
|
||||||
// Send request to get user token
|
// Send request to get user token
|
||||||
axios
|
axios
|
||||||
.post('/api/user/login', {
|
.post('/login', {
|
||||||
email: this.loginEmail,
|
email: this.loginEmail,
|
||||||
password: this.loginPassword,
|
password: this.loginPassword,
|
||||||
})
|
})
|
||||||
@@ -209,6 +209,11 @@
|
|||||||
created() {
|
created() {
|
||||||
this.$scrollTop()
|
this.$scrollTop()
|
||||||
this.$store.commit('PROCESSING_POPUP', undefined)
|
this.$store.commit('PROCESSING_POPUP', undefined)
|
||||||
|
|
||||||
|
if (this.config.isDemo) {
|
||||||
|
this.loginEmail = 'howdy@hi5ve.digital'
|
||||||
|
this.loginPassword = 'vuefilemanager'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
<span class="empty-note navigator" v-if="tree.length == 0">
|
<span class="empty-note navigator" v-if="tree.length == 0">
|
||||||
{{ $t('sidebar.folders_empty') }}
|
{{ $t('sidebar.folders_empty') }}
|
||||||
</span>
|
</span>
|
||||||
<TreeMenuNavigator class="folder-tree" :depth="0" :nodes="items" v-for="items in tree" :key="items.unique_id"/>
|
<TreeMenuNavigator class="folder-tree" :depth="0" :nodes="items" v-for="items in tree" :key="items.id"/>
|
||||||
</ContentGroup>
|
</ContentGroup>
|
||||||
|
|
||||||
<!--Favourites-->
|
<!--Favourites-->
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
{{ $t('sidebar.favourites_empty') }}
|
{{ $t('sidebar.favourites_empty') }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<a @click.stop="openFolder(folder)" class="menu-list-item" :class="{'is-current': (folder && currentFolder) && (currentFolder.unique_id === folder.unique_id)}" v-for="(folder, i) in favourites" :key="i">
|
<a @click.stop="openFolder(folder)" class="menu-list-item" :class="{'is-current': (folder && currentFolder) && (currentFolder.id === folder.id)}" v-for="folder in favourites" :key="folder.id">
|
||||||
<div>
|
<div>
|
||||||
<folder-icon size="17" class="folder-icon"></folder-icon>
|
<folder-icon size="17" class="folder-icon"></folder-icon>
|
||||||
<span class="label">{{ folder.name }}</span>
|
<span class="label">{{ folder.name }}</span>
|
||||||
@@ -107,13 +107,13 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['user', 'homeDirectory', 'currentFolder', 'config', 'fileInfoDetail']),
|
...mapGetters(['user', 'homeDirectory', 'currentFolder', 'config', 'fileInfoDetail']),
|
||||||
favourites() {
|
favourites() {
|
||||||
return this.user.relationships.favourites.data.attributes.folders
|
return this.user.data.relationships.favourites.data.attributes.folders
|
||||||
},
|
},
|
||||||
tree() {
|
tree() {
|
||||||
return this.user.relationships.tree.data.attributes.folders
|
return this.user.data.attributes.folders
|
||||||
},
|
},
|
||||||
storage() {
|
storage() {
|
||||||
return this.$store.getters.user.relationships.storage.data.attributes
|
return this.$store.getters.user.data.attributes.storage
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -154,7 +154,7 @@ export default {
|
|||||||
if (this.draggedItem && this.draggedItem.type !== 'folder') return
|
if (this.draggedItem && this.draggedItem.type !== 'folder') return
|
||||||
|
|
||||||
// Check if folder exist in favourites
|
// Check if folder exist in favourites
|
||||||
if (this.favourites.find(folder => folder.unique_id == this.draggedItem.unique_id)) return
|
if (this.favourites.find(folder => folder.id == this.draggedItem.id)) return
|
||||||
|
|
||||||
// Prevent to move folders to self
|
// Prevent to move folders to self
|
||||||
if (this.fileInfoDetail.length > 0 && this.fileInfoDetail.find(item => item.type !== 'folder')) return
|
if (this.fileInfoDetail.length > 0 && this.fileInfoDetail.find(item => item.type !== 'folder')) return
|
||||||
|
|||||||
Reference in New Issue
Block a user