Log in functionality

This commit is contained in:
Peter Papp
2021-03-15 09:23:53 +01:00
parent 6b67f861c3
commit ba902a30b3
16 changed files with 182 additions and 160 deletions
+2
View File
@@ -70,3 +70,5 @@ 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
View File
@@ -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);
+34 -48
View File
@@ -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
View File
@@ -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();
+2 -2
View File
@@ -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'));
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+10 -5
View File
@@ -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>
+6 -6
View File
@@ -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