code style fix

This commit is contained in:
Peter Papp
2021-04-25 09:02:00 +02:00
parent e103e61617
commit c47886fb8b
157 changed files with 2250 additions and 2583 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,12 +1,11 @@
<?php <?php
namespace App\Actions\Fortify; namespace App\Actions\Fortify;
use App\Models\Setting;
use App\Models\User; use App\Models\User;
use App\Models\Setting;
use App\Models\UserSettings; use App\Models\UserSettings;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Validator;
use Laravel\Fortify\Contracts\CreatesNewUsers; use Laravel\Fortify\Contracts\CreatesNewUsers;
class CreateNewUser implements CreatesNewUsers class CreateNewUser implements CreatesNewUsers
@@ -25,13 +24,13 @@ class CreateNewUser implements CreatesNewUsers
->pluck('value', 'name'); ->pluck('value', 'name');
// Check if account registration is enabled // Check if account registration is enabled
if (!intval($settings['registration'])) { if (! intval($settings['registration'])) {
abort(401); abort(401);
} }
Validator::make($input, [ Validator::make($input, [
'name' => ['required', 'string', 'max:255'], 'name' => ['required', 'string', 'max:255'],
'email' => [ 'email' => [
'required', 'required',
'string', 'string',
'email', 'email',
@@ -42,7 +41,7 @@ class CreateNewUser implements CreatesNewUsers
])->validate(); ])->validate();
$user = User::create([ $user = User::create([
'email' => $input['email'], 'email' => $input['email'],
'password' => bcrypt($input['password']), 'password' => bcrypt($input['password']),
]); ]);
@@ -51,7 +50,7 @@ class CreateNewUser implements CreatesNewUsers
$user $user
->settings() ->settings()
->create([ ->create([
'name' => $input['name'], 'name' => $input['name'],
'storage_capacity' => $settings['storage_default'], 'storage_capacity' => $settings['storage_default'],
]); ]);

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Actions\Fortify; namespace App\Actions\Fortify;
use Laravel\Fortify\Rules\Password; use Laravel\Fortify\Rules\Password;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Actions\Fortify; namespace App\Actions\Fortify;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Actions\Fortify; namespace App\Actions\Fortify;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;

View File

@@ -1,10 +1,9 @@
<?php <?php
namespace App\Actions\Fortify; namespace App\Actions\Fortify;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Validator;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Laravel\Fortify\Contracts\UpdatesUserProfileInformation; use Laravel\Fortify\Contracts\UpdatesUserProfileInformation;
class UpdateUserProfileInformation implements UpdatesUserProfileInformation class UpdateUserProfileInformation implements UpdatesUserProfileInformation

View File

@@ -1,18 +1,16 @@
<?php <?php
namespace App\Console\Commands; namespace App\Console\Commands;
use App\Models\File;
use App\Models\Folder;
use App\Models\Share;
use App\Services\HelperService;
use App\Services\SetupService;
use App\Models\Setting;
use App\Models\User;
use Illuminate\Console\Command;
use Faker; use Faker;
use Illuminate\Support\Facades\Storage; use App\Models\File;
use App\Models\User;
use App\Models\Share;
use App\Models\Folder;
use App\Models\Setting;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use App\Services\SetupService;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
class SetupDevEnvironment extends Command class SetupDevEnvironment extends Command
{ {
@@ -86,27 +84,27 @@ class SetupDevEnvironment extends Command
private function create_admin(): void private function create_admin(): void
{ {
$user = User::forceCreate([ $user = User::forceCreate([
'role' => 'admin', 'role' => 'admin',
'email' => 'howdy@hi5ve.digital', 'email' => 'howdy@hi5ve.digital',
'password' => bcrypt('vuefilemanager'), 'password' => bcrypt('vuefilemanager'),
]); ]);
$user $user
->settings() ->settings()
->create([ ->create([
'avatar' => 'avatars/avatar-01.png', 'avatar' => 'avatars/avatar-01.png',
'storage_capacity' => 5, 'storage_capacity' => 5,
'name' => 'Jane Doe', 'name' => 'Jane Doe',
'address' => $this->faker->address, 'address' => $this->faker->address,
'state' => $this->faker->state, 'state' => $this->faker->state,
'city' => $this->faker->city, 'city' => $this->faker->city,
'postal_code' => $this->faker->postcode, 'postal_code' => $this->faker->postcode,
'country' => $this->faker->randomElement(['SK', 'CZ', 'DE', 'FR']), 'country' => $this->faker->randomElement(['SK', 'CZ', 'DE', 'FR']),
'phone_number' => $this->faker->phoneNumber, 'phone_number' => $this->faker->phoneNumber,
'timezone' => $this->faker->randomElement(['+1.0', '+2.0', '+3.0']), 'timezone' => $this->faker->randomElement(['+1.0', '+2.0', '+3.0']),
]); ]);
Storage::putFileAs("avatars", storage_path("demo/avatars/avatar-01.png"), 'avatar-01.png', "private"); Storage::putFileAs('avatars', storage_path('demo/avatars/avatar-01.png'), 'avatar-01.png', 'private');
// Show user credentials // Show user credentials
$this->info('Default admin account created. Email: howdy@hi5ve.digital and Password: vuefilemanager'); $this->info('Default admin account created. Email: howdy@hi5ve.digital and Password: vuefilemanager');
@@ -125,29 +123,28 @@ class SetupDevEnvironment extends Command
'avatar' => 'avatar-03.png', 'avatar' => 'avatar-03.png',
], ],
])->each(function ($user) { ])->each(function ($user) {
$newbie = User::forceCreate([ $newbie = User::forceCreate([
'role' => 'user', 'role' => 'user',
'email' => $this->faker->email, 'email' => $this->faker->email,
'password' => bcrypt('vuefilemanager'), 'password' => bcrypt('vuefilemanager'),
]); ]);
$newbie $newbie
->settings() ->settings()
->create([ ->create([
'avatar' => "avatars/{$user['avatar']}", 'avatar' => "avatars/{$user['avatar']}",
'storage_capacity' => 5, 'storage_capacity' => 5,
'name' => $this->faker->name, 'name' => $this->faker->name,
'address' => $this->faker->address, 'address' => $this->faker->address,
'state' => $this->faker->state, 'state' => $this->faker->state,
'city' => $this->faker->city, 'city' => $this->faker->city,
'postal_code' => $this->faker->postcode, 'postal_code' => $this->faker->postcode,
'country' => $this->faker->randomElement(['SK', 'CZ', 'DE', 'FR']), 'country' => $this->faker->randomElement(['SK', 'CZ', 'DE', 'FR']),
'phone_number' => $this->faker->phoneNumber, 'phone_number' => $this->faker->phoneNumber,
'timezone' => $this->faker->randomElement(['+1.0', '+2.0', '+3.0']), 'timezone' => $this->faker->randomElement(['+1.0', '+2.0', '+3.0']),
]); ]);
Storage::putFileAs("avatars", storage_path("demo/avatars/{$user['avatar']}"), $user['avatar'], "private"); Storage::putFileAs('avatars', storage_path("demo/avatars/{$user['avatar']}"), $user['avatar'], 'private');
$this->info("Generated user with email: $newbie->email and Password: vuefilemanager"); $this->info("Generated user with email: $newbie->email and Password: vuefilemanager");
}); });
@@ -164,51 +161,51 @@ class SetupDevEnvironment extends Command
// 1. // 1.
$shared_folder = Folder::factory(Folder::class) $shared_folder = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'author' => 'user', 'author' => 'user',
'name' => 'Shared Folder', 'name' => 'Shared Folder',
'emoji' => [ 'emoji' => [
"codes" => "1F680", 'codes' => '1F680',
"char" => "🚀", 'char' => '🚀',
"name" => "rocket", 'name' => 'rocket',
"category" => "Travel & Places (transport-air)", 'category' => 'Travel & Places (transport-air)',
"group" => "Travel & Places", 'group' => 'Travel & Places',
"subgroup" => "transport-air" 'subgroup' => 'transport-air',
], ],
'created_at' => now(), 'created_at' => now(),
]); ]);
Share::factory(Share::class) Share::factory(Share::class)
->create([ ->create([
'type' => 'folder', 'type' => 'folder',
'item_id' => $shared_folder->id, 'item_id' => $shared_folder->id,
'user_id' => $user->id, 'user_id' => $user->id,
'permission' => 'editor', 'permission' => 'editor',
'is_protected' => false, 'is_protected' => false,
'password' => null, 'password' => null,
'expire_in' => null, 'expire_in' => null,
]); ]);
$peters_files = Folder::factory(Folder::class) $peters_files = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'parent_id' => $shared_folder->id, 'parent_id' => $shared_folder->id,
'author' => 'visitor', 'author' => 'visitor',
'name' => "Peter's Files", 'name' => "Peter's Files",
]); ]);
// 2. // 2.
$random_pics = Folder::factory(Folder::class) $random_pics = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'author' => 'user', 'author' => 'user',
'name' => 'Random Pics', 'name' => 'Random Pics',
'emoji' => [ 'emoji' => [
'codes' => '1F4F7', 'codes' => '1F4F7',
'char' => '📷', 'char' => '📷',
'name' => 'camera', 'name' => 'camera',
'category' => 'Objects (light & video)', 'category' => 'Objects (light & video)',
'group' => 'Objects', 'group' => 'Objects',
'subgroup' => 'light & video', 'subgroup' => 'light & video',
], ],
'created_at' => now()->subMinutes(1), 'created_at' => now()->subMinutes(1),
@@ -216,32 +213,32 @@ class SetupDevEnvironment extends Command
$nature = Folder::factory(Folder::class) $nature = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'parent_id' => $random_pics->id, 'parent_id' => $random_pics->id,
'author' => 'user', 'author' => 'user',
'name' => "Nature", 'name' => 'Nature',
'emoji' => [ 'emoji' => [
'codes' => '26F0', 'codes' => '26F0',
'char' => '⛰', 'char' => '⛰',
'name' => 'mountain', 'name' => 'mountain',
'category' => 'Travel & Places (place-geographic)', 'category' => 'Travel & Places (place-geographic)',
'group' => 'Travel & Places', 'group' => 'Travel & Places',
'subgroup' => 'place-geographic', 'subgroup' => 'place-geographic',
], ],
]); ]);
$apartments = Folder::factory(Folder::class) $apartments = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'parent_id' => $random_pics->id, 'parent_id' => $random_pics->id,
'author' => 'user', 'author' => 'user',
'name' => "Apartments", 'name' => 'Apartments',
'emoji' => [ 'emoji' => [
'codes' => '1F3E0', 'codes' => '1F3E0',
'char' => '🏠', 'char' => '🏠',
'name' => 'house', 'name' => 'house',
'category' => 'Travel & Places (place-building)', 'category' => 'Travel & Places (place-building)',
'group' => 'Travel & Places', 'group' => 'Travel & Places',
'subgroup' => 'place-building', 'subgroup' => 'place-building',
], ],
]); ]);
@@ -249,87 +246,87 @@ class SetupDevEnvironment extends Command
// 3. // 3.
$playable_media = Folder::factory(Folder::class) $playable_media = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'author' => 'user', 'author' => 'user',
'name' => 'Playable Media', 'name' => 'Playable Media',
'created_at' => now()->subMinutes(2), 'created_at' => now()->subMinutes(2),
]); ]);
$video = Folder::factory(Folder::class) $video = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'parent_id' => $playable_media->id, 'parent_id' => $playable_media->id,
'author' => 'user', 'author' => 'user',
'name' => "Video", 'name' => 'Video',
]); ]);
$audio = Folder::factory(Folder::class) $audio = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'parent_id' => $playable_media->id, 'parent_id' => $playable_media->id,
'author' => 'user', 'author' => 'user',
'name' => "Audio", 'name' => 'Audio',
]); ]);
// 4. // 4.
$multi_level = Folder::factory(Folder::class) $multi_level = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'author' => 'user', 'author' => 'user',
'name' => 'Multi Level Folder', 'name' => 'Multi Level Folder',
'created_at' => now()->subMinutes(3), 'created_at' => now()->subMinutes(3),
]); ]);
$first_level = Folder::factory(Folder::class) $first_level = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'parent_id' => $multi_level->id, 'parent_id' => $multi_level->id,
'author' => 'user', 'author' => 'user',
'name' => "First Level", 'name' => 'First Level',
]); ]);
$second_level = Folder::factory(Folder::class) $second_level = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'parent_id' => $first_level->id, 'parent_id' => $first_level->id,
'author' => 'user', 'author' => 'user',
'name' => "Second Level", 'name' => 'Second Level',
]); ]);
$third_level = Folder::factory(Folder::class) $third_level = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'parent_id' => $second_level->id, 'parent_id' => $second_level->id,
'author' => 'user', 'author' => 'user',
'name' => "Third Level", 'name' => 'Third Level',
]); ]);
// 5. // 5.
$documents = Folder::factory(Folder::class) $documents = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'author' => 'user', 'author' => 'user',
'name' => 'Documents', 'name' => 'Documents',
'created_at' => now()->subMinutes(4), 'created_at' => now()->subMinutes(4),
]); ]);
Share::factory(Share::class) Share::factory(Share::class)
->create([ ->create([
'type' => 'folder', 'type' => 'folder',
'item_id' => $documents->id, 'item_id' => $documents->id,
'user_id' => $user->id, 'user_id' => $user->id,
'permission' => 'editor', 'permission' => 'editor',
'is_protected' => false, 'is_protected' => false,
'password' => null, 'password' => null,
'expire_in' => null, 'expire_in' => null,
]); ]);
// 6. // 6.
$videohive = Folder::factory(Folder::class) $videohive = Folder::factory(Folder::class)
->create([ ->create([
'user_id' => $user->id, 'user_id' => $user->id,
'author' => 'user', 'author' => 'user',
'name' => 'Videohive by MakingCG', 'name' => 'Videohive by MakingCG',
'created_at' => now()->subMinutes(5), 'created_at' => now()->subMinutes(5),
]); ]);
@@ -345,43 +342,42 @@ class SetupDevEnvironment extends Command
// Get documents to root directory // Get documents to root directory
collect([ collect([
[ [
'name' => 'Random Document', 'name' => 'Random Document',
'basename' => 'Licence.pdf', 'basename' => 'Licence.pdf',
'mimetype' => 'pdf', 'mimetype' => 'pdf',
], ],
[ [
'name' => 'School Report', 'name' => 'School Report',
'basename' => 'Project Notes.pdf', 'basename' => 'Project Notes.pdf',
'mimetype' => 'pdf', 'mimetype' => 'pdf',
], ],
[ [
'name' => 'Personal Savings', 'name' => 'Personal Savings',
'basename' => 'School Report.pages', 'basename' => 'School Report.pages',
'mimetype' => 'pages', 'mimetype' => 'pages',
], ],
[ [
'name' => 'Top Secret Files', 'name' => 'Top Secret Files',
'basename' => 'Stories of the Night Skies.pages', 'basename' => 'Stories of the Night Skies.pages',
'mimetype' => 'pages', 'mimetype' => 'pages',
], ],
]) ])
->each(function ($file) use ($user) { ->each(function ($file) use ($user) {
$basename = Str::random(12) . '-' . $file['basename']; $basename = Str::random(12) . '-' . $file['basename'];
// Copy file into app storage // Copy file into app storage
Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, "private"); Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, 'private');
// Create file record // Create file record
File::create([ File::create([
'folder_id' => null, 'folder_id' => null,
'user_id' => $user->id, 'user_id' => $user->id,
'name' => $file['name'], 'name' => $file['name'],
'basename' => $basename, 'basename' => $basename,
'type' => 'file', 'type' => 'file',
'author' => 'user', 'author' => 'user',
'mimetype' => $file['mimetype'], 'mimetype' => $file['mimetype'],
'filesize' => rand(1000000, 4000000), 'filesize' => rand(1000000, 4000000),
'created_at' => now()->subMinutes(rand(1, 5)), 'created_at' => now()->subMinutes(rand(1, 5)),
]); ]);
}); });
@@ -389,43 +385,42 @@ class SetupDevEnvironment extends Command
// Get documents to documents folder // Get documents to documents folder
collect([ collect([
[ [
'name' => 'Home Improvement', 'name' => 'Home Improvement',
'basename' => 'Licence.pdf', 'basename' => 'Licence.pdf',
'mimetype' => 'pdf', 'mimetype' => 'pdf',
], ],
[ [
'name' => 'Project Notes', 'name' => 'Project Notes',
'basename' => 'Project Notes.pdf', 'basename' => 'Project Notes.pdf',
'mimetype' => 'pdf', 'mimetype' => 'pdf',
], ],
[ [
'name' => 'Personal Savings', 'name' => 'Personal Savings',
'basename' => 'School Report.pages', 'basename' => 'School Report.pages',
'mimetype' => 'pages', 'mimetype' => 'pages',
], ],
[ [
'name' => 'License', 'name' => 'License',
'basename' => 'Stories of the Night Skies.pages', 'basename' => 'Stories of the Night Skies.pages',
'mimetype' => 'pages', 'mimetype' => 'pages',
], ],
]) ])
->each(function ($file) use ($user, $documents) { ->each(function ($file) use ($user, $documents) {
$basename = Str::random(12) . '-' . $file['basename']; $basename = Str::random(12) . '-' . $file['basename'];
// Copy file into app storage // Copy file into app storage
Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, "private"); Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, 'private');
// Create file record // Create file record
File::create([ File::create([
'folder_id' => $documents->id, 'folder_id' => $documents->id,
'user_id' => $user->id, 'user_id' => $user->id,
'name' => $file['name'], 'name' => $file['name'],
'basename' => $basename, 'basename' => $basename,
'type' => 'file', 'type' => 'file',
'author' => 'user', 'author' => 'user',
'mimetype' => $file['mimetype'], 'mimetype' => $file['mimetype'],
'filesize' => rand(1000000, 4000000), 'filesize' => rand(1000000, 4000000),
'created_at' => now()->subMinutes(rand(1, 5)), 'created_at' => now()->subMinutes(rand(1, 5)),
]); ]);
}); });
@@ -433,33 +428,32 @@ class SetupDevEnvironment extends Command
// Get documents to shared folder // Get documents to shared folder
collect([ collect([
[ [
'name' => 'Home plan', 'name' => 'Home plan',
'basename' => 'Licence.pdf', 'basename' => 'Licence.pdf',
'mimetype' => 'pdf', 'mimetype' => 'pdf',
], ],
[ [
'name' => 'Software Licence', 'name' => 'Software Licence',
'basename' => 'Project Notes.pdf', 'basename' => 'Project Notes.pdf',
'mimetype' => 'pdf', 'mimetype' => 'pdf',
] ],
]) ])
->each(function ($file) use ($user, $shared_folder) { ->each(function ($file) use ($user, $shared_folder) {
$basename = Str::random(12) . '-' . $file['basename']; $basename = Str::random(12) . '-' . $file['basename'];
// Copy file into app storage // Copy file into app storage
Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, "private"); Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, 'private');
// Create file record // Create file record
File::create([ File::create([
'folder_id' => $shared_folder->id, 'folder_id' => $shared_folder->id,
'user_id' => $user->id, 'user_id' => $user->id,
'name' => $file['name'], 'name' => $file['name'],
'basename' => $basename, 'basename' => $basename,
'type' => 'file', 'type' => 'file',
'author' => 'user', 'author' => 'user',
'mimetype' => $file['mimetype'], 'mimetype' => $file['mimetype'],
'filesize' => rand(1000000, 4000000), 'filesize' => rand(1000000, 4000000),
'created_at' => now()->subMinutes(rand(1, 5)), 'created_at' => now()->subMinutes(rand(1, 5)),
]); ]);
}); });
@@ -467,58 +461,57 @@ class SetupDevEnvironment extends Command
// Get documents to peter's files folder // Get documents to peter's files folder
collect([ collect([
[ [
'name' => 'Project Backup', 'name' => 'Project Backup',
'basename' => 'Licence.pdf', 'basename' => 'Licence.pdf',
'mimetype' => 'pdf', 'mimetype' => 'pdf',
], ],
[ [
'name' => 'Yearly report', 'name' => 'Yearly report',
'basename' => 'Project Notes.pdf', 'basename' => 'Project Notes.pdf',
'mimetype' => 'pdf', 'mimetype' => 'pdf',
], ],
[ [
'name' => 'Work Update', 'name' => 'Work Update',
'basename' => 'School Report.pages', 'basename' => 'School Report.pages',
'mimetype' => 'pages', 'mimetype' => 'pages',
], ],
[ [
'name' => 'Person Writing on Notebook', 'name' => 'Person Writing on Notebook',
'basename' => 'Stories of the Night Skies.pages', 'basename' => 'Stories of the Night Skies.pages',
'mimetype' => 'pages', 'mimetype' => 'pages',
], ],
[ [
'name' => 'Blank Business Composition Computer', 'name' => 'Blank Business Composition Computer',
'basename' => 'Licence.pdf', 'basename' => 'Licence.pdf',
'mimetype' => 'pdf', 'mimetype' => 'pdf',
], ],
[ [
'name' => '2020 April - Export', 'name' => '2020 April - Export',
'basename' => 'Project Notes.pdf', 'basename' => 'Project Notes.pdf',
'mimetype' => 'pdf', 'mimetype' => 'pdf',
], ],
[ [
'name' => 'Ballpen Blur Close Up Computer', 'name' => 'Ballpen Blur Close Up Computer',
'basename' => 'School Report.pages', 'basename' => 'School Report.pages',
'mimetype' => 'pages', 'mimetype' => 'pages',
], ],
]) ])
->each(function ($file) use ($user, $peters_files) { ->each(function ($file) use ($user, $peters_files) {
$basename = Str::random(12) . '-' . $file['basename']; $basename = Str::random(12) . '-' . $file['basename'];
// Copy file into app storage // Copy file into app storage
Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, "private"); Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, 'private');
// Create file record // Create file record
File::create([ File::create([
'folder_id' => $peters_files->id, 'folder_id' => $peters_files->id,
'user_id' => $user->id, 'user_id' => $user->id,
'name' => $file['name'], 'name' => $file['name'],
'basename' => $basename, 'basename' => $basename,
'type' => 'file', 'type' => 'file',
'author' => 'visitor', 'author' => 'visitor',
'mimetype' => $file['mimetype'], 'mimetype' => $file['mimetype'],
'filesize' => rand(1000000, 4000000), 'filesize' => rand(1000000, 4000000),
'created_at' => now()->subMinutes(rand(1, 5)), 'created_at' => now()->subMinutes(rand(1, 5)),
]); ]);
}); });
@@ -531,22 +524,21 @@ class SetupDevEnvironment extends Command
'Sphere Bound 3D Titles.mp4', 'Sphere Bound 3D Titles.mp4',
]) ])
->each(function ($file) use ($user, $videohive) { ->each(function ($file) use ($user, $videohive) {
$basename = Str::random(12) . '-' . $file; $basename = Str::random(12) . '-' . $file;
// Copy file into app storage // Copy file into app storage
Storage::putFileAs("files/$user->id", storage_path("demo/video/$file"), $basename, "private"); Storage::putFileAs("files/$user->id", storage_path("demo/video/$file"), $basename, 'private');
// Create file record // Create file record
File::create([ File::create([
'folder_id' => $videohive->id, 'folder_id' => $videohive->id,
'user_id' => $user->id, 'user_id' => $user->id,
'name' => $file, 'name' => $file,
'basename' => $basename, 'basename' => $basename,
'type' => 'video', 'type' => 'video',
'author' => 'user', 'author' => 'user',
'mimetype' => 'mp4', 'mimetype' => 'mp4',
'filesize' => rand(1000000, 4000000), 'filesize' => rand(1000000, 4000000),
'created_at' => now()->subMinutes(rand(1, 5)), 'created_at' => now()->subMinutes(rand(1, 5)),
]); ]);
}); });
@@ -556,22 +548,21 @@ class SetupDevEnvironment extends Command
'Apple Watch App Video Promotion.mp4', 'Apple Watch App Video Promotion.mp4',
]) ])
->each(function ($file) use ($user, $video) { ->each(function ($file) use ($user, $video) {
$basename = Str::random(12) . '-' . $file; $basename = Str::random(12) . '-' . $file;
// Copy file into app storage // Copy file into app storage
Storage::putFileAs("files/$user->id", storage_path("demo/video/$file"), $basename, "private"); Storage::putFileAs("files/$user->id", storage_path("demo/video/$file"), $basename, 'private');
// Create file record // Create file record
File::create([ File::create([
'folder_id' => $video->id, 'folder_id' => $video->id,
'user_id' => $user->id, 'user_id' => $user->id,
'name' => $file, 'name' => $file,
'basename' => $basename, 'basename' => $basename,
'type' => 'video', 'type' => 'video',
'author' => 'user', 'author' => 'user',
'mimetype' => 'mp4', 'mimetype' => 'mp4',
'filesize' => rand(1000000, 4000000), 'filesize' => rand(1000000, 4000000),
'created_at' => now()->subMinutes(rand(1, 5)), 'created_at' => now()->subMinutes(rand(1, 5)),
]); ]);
}); });
@@ -581,22 +572,21 @@ class SetupDevEnvironment extends Command
'D-Block & S-te-Fan - Bla Bla.mp3', 'D-Block & S-te-Fan - Bla Bla.mp3',
]) ])
->each(function ($file) use ($user, $audio) { ->each(function ($file) use ($user, $audio) {
$basename = Str::random(12) . '-' . $file; $basename = Str::random(12) . '-' . $file;
// Copy file into app storage // Copy file into app storage
Storage::putFileAs("files/$user->id", storage_path("demo/audio/$file"), $basename, "private"); Storage::putFileAs("files/$user->id", storage_path("demo/audio/$file"), $basename, 'private');
// Create file record // Create file record
File::create([ File::create([
'folder_id' => $audio->id, 'folder_id' => $audio->id,
'user_id' => $user->id, 'user_id' => $user->id,
'name' => $file, 'name' => $file,
'basename' => $basename, 'basename' => $basename,
'type' => 'audio', 'type' => 'audio',
'author' => 'user', 'author' => 'user',
'mimetype' => 'mp3', 'mimetype' => 'mp3',
'filesize' => rand(1000000, 4000000), 'filesize' => rand(1000000, 4000000),
'created_at' => now()->subMinutes(rand(1, 5)), 'created_at' => now()->subMinutes(rand(1, 5)),
]); ]);
}); });
@@ -617,24 +607,23 @@ class SetupDevEnvironment extends Command
'You Are My Sunshine.jpg', 'You Are My Sunshine.jpg',
]) ])
->each(function ($file) use ($user, $apartments) { ->each(function ($file) use ($user, $apartments) {
$basename = Str::random(12) . '-' . $file; $basename = Str::random(12) . '-' . $file;
// Copy file into app storage // Copy file into app storage
Storage::putFileAs("files/$user->id", storage_path("demo/images/memes/$file"), $basename, "private"); Storage::putFileAs("files/$user->id", storage_path("demo/images/memes/$file"), $basename, 'private');
Storage::putFileAs("files/$user->id", storage_path("demo/images/memes/thumbnail-$file"), "thumbnail-$basename", "private"); Storage::putFileAs("files/$user->id", storage_path("demo/images/memes/thumbnail-$file"), "thumbnail-$basename", 'private');
// Create file record // Create file record
File::create([ File::create([
'folder_id' => null, 'folder_id' => null,
'user_id' => $user->id, 'user_id' => $user->id,
'name' => $file, 'name' => $file,
'basename' => $basename, 'basename' => $basename,
'type' => 'image', 'type' => 'image',
'author' => 'user', 'author' => 'user',
'mimetype' => 'jpg', 'mimetype' => 'jpg',
'filesize' => rand(1000000, 4000000), 'filesize' => rand(1000000, 4000000),
'thumbnail' => "thumbnail-$basename", 'thumbnail' => "thumbnail-$basename",
'created_at' => now()->subMinutes(rand(1, 5)), 'created_at' => now()->subMinutes(rand(1, 5)),
]); ]);
}); });
@@ -650,24 +639,23 @@ class SetupDevEnvironment extends Command
'Kitchen Island.jpg', 'Kitchen Island.jpg',
]) ])
->each(function ($file) use ($user, $apartments) { ->each(function ($file) use ($user, $apartments) {
$basename = Str::random(12) . '-' . $file; $basename = Str::random(12) . '-' . $file;
// Copy file into app storage // Copy file into app storage
Storage::putFileAs("files/$user->id", storage_path("demo/images/apartments/$file"), $basename, "private"); Storage::putFileAs("files/$user->id", storage_path("demo/images/apartments/$file"), $basename, 'private');
Storage::putFileAs("files/$user->id", storage_path("demo/images/apartments/thumbnail-$file"), "thumbnail-$basename", "private"); Storage::putFileAs("files/$user->id", storage_path("demo/images/apartments/thumbnail-$file"), "thumbnail-$basename", 'private');
// Create file record // Create file record
File::create([ File::create([
'folder_id' => $apartments->id, 'folder_id' => $apartments->id,
'user_id' => $user->id, 'user_id' => $user->id,
'name' => $file, 'name' => $file,
'basename' => $basename, 'basename' => $basename,
'type' => 'image', 'type' => 'image',
'author' => 'user', 'author' => 'user',
'mimetype' => 'jpg', 'mimetype' => 'jpg',
'filesize' => rand(1000000, 4000000), 'filesize' => rand(1000000, 4000000),
'thumbnail' => "thumbnail-$basename", 'thumbnail' => "thumbnail-$basename",
'created_at' => now()->subMinutes(rand(1, 5)), 'created_at' => now()->subMinutes(rand(1, 5)),
]); ]);
}); });
@@ -687,24 +675,23 @@ class SetupDevEnvironment extends Command
'Yellow Animal Eyes Fur.jpg', 'Yellow Animal Eyes Fur.jpg',
]) ])
->each(function ($file) use ($user, $nature) { ->each(function ($file) use ($user, $nature) {
$basename = Str::random(12) . '-' . $file; $basename = Str::random(12) . '-' . $file;
// Copy file into app storage // Copy file into app storage
Storage::putFileAs("files/$user->id", storage_path("demo/images/nature/$file"), $basename, "private"); Storage::putFileAs("files/$user->id", storage_path("demo/images/nature/$file"), $basename, 'private');
Storage::putFileAs("files/$user->id", storage_path("demo/images/nature/thumbnail-$file"), "thumbnail-$basename", "private"); Storage::putFileAs("files/$user->id", storage_path("demo/images/nature/thumbnail-$file"), "thumbnail-$basename", 'private');
// Create file record // Create file record
File::create([ File::create([
'folder_id' => $nature->id, 'folder_id' => $nature->id,
'user_id' => $user->id, 'user_id' => $user->id,
'name' => $file, 'name' => $file,
'basename' => $basename, 'basename' => $basename,
'type' => 'image', 'type' => 'image',
'author' => 'user', 'author' => 'user',
'mimetype' => 'jpg', 'mimetype' => 'jpg',
'filesize' => rand(1000000, 4000000), 'filesize' => rand(1000000, 4000000),
'thumbnail' => "thumbnail-$basename", 'thumbnail' => "thumbnail-$basename",
'created_at' => now()->subMinutes(rand(1, 5)), 'created_at' => now()->subMinutes(rand(1, 5)),
]); ]);
}); });
@@ -722,13 +709,13 @@ class SetupDevEnvironment extends Command
$images->each(function ($id) use ($user) { $images->each(function ($id) use ($user) {
Share::create([ Share::create([
'user_id' => $user->id, 'user_id' => $user->id,
'item_id' => $id, 'item_id' => $id,
'type' => 'file', 'type' => 'file',
'is_protected' => false, 'is_protected' => false,
'permission' => 'editor', 'permission' => 'editor',
'password' => null, 'password' => null,
'expire_in' => null, 'expire_in' => null,
]); ]);
}); });
@@ -739,13 +726,13 @@ class SetupDevEnvironment extends Command
$files->each(function ($id) use ($user) { $files->each(function ($id) use ($user) {
Share::create([ Share::create([
'user_id' => $user->id, 'user_id' => $user->id,
'item_id' => $id, 'item_id' => $id,
'type' => 'file', 'type' => 'file',
'is_protected' => false, 'is_protected' => false,
'permission' => 'editor', 'permission' => 'editor',
'password' => null, 'password' => null,
'expire_in' => null, 'expire_in' => null,
]); ]);
}); });
} }
@@ -758,116 +745,116 @@ class SetupDevEnvironment extends Command
// Get options // Get options
collect([ collect([
[ [
'name' => 'setup_wizard_database', 'name' => 'setup_wizard_database',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'app_title', 'name' => 'app_title',
'value' => 'VueFileManager', 'value' => 'VueFileManager',
], ],
[ [
'name' => 'app_description', 'name' => 'app_description',
'value' => 'Your self-hosted storage cloud software powered by Laravel and Vue', 'value' => 'Your self-hosted storage cloud software powered by Laravel and Vue',
], ],
[ [
'name' => 'app_logo', 'name' => 'app_logo',
'value' => 'system/logo.svg', 'value' => 'system/logo.svg',
], ],
[ [
'name' => 'app_logo_horizontal', 'name' => 'app_logo_horizontal',
'value' => 'system/logo-horizontal.svg', 'value' => 'system/logo-horizontal.svg',
], ],
[ [
'name' => 'app_favicon', 'name' => 'app_favicon',
'value' => 'system/favicon.png', 'value' => 'system/favicon.png',
], ],
[ [
'name' => 'app_og_image', 'name' => 'app_og_image',
'value' => 'system/og-image.jpg', 'value' => 'system/og-image.jpg',
], ],
[ [
'name' => 'app_touch_icon', 'name' => 'app_touch_icon',
'value' => 'system/touch-icon.png', 'value' => 'system/touch-icon.png',
], ],
[ [
'name' => 'google_analytics', 'name' => 'google_analytics',
'value' => '', 'value' => '',
], ],
[ [
'name' => 'contact_email', 'name' => 'contact_email',
'value' => '', 'value' => '',
], ],
[ [
'name' => 'registration', 'name' => 'registration',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'payments_active', 'name' => 'payments_active',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'storage_limitation', 'name' => 'storage_limitation',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'storage_default', 'name' => 'storage_default',
'value' => 5, 'value' => 5,
], ],
[ [
'name' => 'setup_wizard_success', 'name' => 'setup_wizard_success',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'license', 'name' => 'license',
'value' => $this->license, 'value' => $this->license,
], ],
[ [
'name' => 'purchase_code', 'name' => 'purchase_code',
'value' => '26b889eb-3602-4bf2-beb3-3sc378fcf484', 'value' => '26b889eb-3602-4bf2-beb3-3sc378fcf484',
], ],
[ [
'name' => 'billing_address', 'name' => 'billing_address',
'value' => 'Palo Alto 20', 'value' => 'Palo Alto 20',
], ],
[ [
'name' => 'billing_city', 'name' => 'billing_city',
'value' => 'Palo Alto', 'value' => 'Palo Alto',
], ],
[ [
'name' => 'billing_country', 'name' => 'billing_country',
'value' => 'US', 'value' => 'US',
], ],
[ [
'name' => 'billing_name', 'name' => 'billing_name',
'value' => 'VueFileManager Inc.', 'value' => 'VueFileManager Inc.',
], ],
[ [
'name' => 'billing_phone_number', 'name' => 'billing_phone_number',
'value' => '312343141243214', 'value' => '312343141243214',
], ],
[ [
'name' => 'billing_postal_code', 'name' => 'billing_postal_code',
'value' => '43213', 'value' => '43213',
], ],
[ [
'name' => 'billing_state', 'name' => 'billing_state',
'value' => 'California', 'value' => 'California',
], ],
[ [
'name' => 'billing_vat_number', 'name' => 'billing_vat_number',
'value' => '41241241234', 'value' => '41241241234',
] ],
])->each(function ($col) { ])->each(function ($col) {
Setting::forceCreate([ Setting::forceCreate([
'name' => $col['name'], 'name' => $col['name'],
'value' => $col['value'] 'value' => $col['value'],
]); ]);
}); });
// Get system images // Get system images
collect(['logo.svg', 'logo-horizontal.svg', 'favicon.png', 'og-image.jpg', 'touch-icon.png']) collect(['logo.svg', 'logo-horizontal.svg', 'favicon.png', 'og-image.jpg', 'touch-icon.png'])
->each(function ($file) { ->each(function ($file) {
Storage::putFileAs("system", storage_path("demo/app/$file"), $file, "private"); Storage::putFileAs('system', storage_path("demo/app/$file"), $file, 'private');
}); });
} }
@@ -878,12 +865,12 @@ class SetupDevEnvironment extends Command
{ {
// Migrate database // Migrate database
$this->call('migrate:fresh', [ $this->call('migrate:fresh', [
'--force' => true '--force' => true,
]); ]);
// Generate app key // Generate app key
$this->call('key:generate', [ $this->call('key:generate', [
'--force' => true '--force' => true,
]); ]);
} }
@@ -896,4 +883,4 @@ class SetupDevEnvironment extends Command
$this->call('config:clear'); $this->call('config:clear');
$this->call('view:clear'); $this->call('view:clear');
} }
} }

View File

@@ -1,9 +1,8 @@
<?php <?php
namespace App\Console\Commands; namespace App\Console\Commands;
use App\Models\Setting;
use App\Models\User; use App\Models\User;
use App\Models\Setting;
use App\Services\SetupService; use App\Services\SetupService;
use Illuminate\Console\Command; use Illuminate\Console\Command;
@@ -17,7 +16,6 @@ class SetupProdEnvironment extends Command
protected $signature = 'setup:prod'; protected $signature = 'setup:prod';
protected $license = 'Extended'; protected $license = 'Extended';
/** /**
* The console command description. * The console command description.
* *
@@ -71,105 +69,105 @@ class SetupProdEnvironment extends Command
// Get options // Get options
collect([ collect([
[ [
'name' => 'setup_wizard_database', 'name' => 'setup_wizard_database',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'app_title', 'name' => 'app_title',
'value' => 'VueFileManager', 'value' => 'VueFileManager',
], ],
[ [
'name' => 'app_description', 'name' => 'app_description',
'value' => 'Your self-hosted storage cloud software powered by Laravel and Vue', 'value' => 'Your self-hosted storage cloud software powered by Laravel and Vue',
], ],
[ [
'name' => 'app_logo', 'name' => 'app_logo',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'app_logo_horizontal', 'name' => 'app_logo_horizontal',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'app_favicon', 'name' => 'app_favicon',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'app_og_image', 'name' => 'app_og_image',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'app_touch_icon', 'name' => 'app_touch_icon',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'google_analytics', 'name' => 'google_analytics',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'contact_email', 'name' => 'contact_email',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'registration', 'name' => 'registration',
'value' => 0, 'value' => 0,
], ],
[ [
'name' => 'storage_limitation', 'name' => 'storage_limitation',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'storage_default', 'name' => 'storage_default',
'value' => 5, 'value' => 5,
], ],
[ [
'name' => 'setup_wizard_success', 'name' => 'setup_wizard_success',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'license', 'name' => 'license',
'value' => $this->license, 'value' => $this->license,
], ],
[ [
'name' => 'purchase_code', 'name' => 'purchase_code',
'value' => '26b889eb-3602-4bf2-beb3-3sc378fcf484', 'value' => '26b889eb-3602-4bf2-beb3-3sc378fcf484',
], ],
[ [
'name' => 'billing_address', 'name' => 'billing_address',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'billing_city', 'name' => 'billing_city',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'billing_country', 'name' => 'billing_country',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'billing_name', 'name' => 'billing_name',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'billing_phone_number', 'name' => 'billing_phone_number',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'billing_postal_code', 'name' => 'billing_postal_code',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'billing_state', 'name' => 'billing_state',
'value' => null, 'value' => null,
], ],
[ [
'name' => 'billing_vat_number', 'name' => 'billing_vat_number',
'value' => null, 'value' => null,
] ],
])->each(function ($col) { ])->each(function ($col) {
Setting::forceCreate([ Setting::forceCreate([
'name' => $col['name'], 'name' => $col['name'],
'value' => $col['value'] 'value' => $col['value'],
]); ]);
}); });
} }
@@ -180,8 +178,8 @@ class SetupProdEnvironment extends Command
private function create_admin(): void private function create_admin(): void
{ {
$user = User::forceCreate([ $user = User::forceCreate([
'role' => 'admin', 'role' => 'admin',
'email' => 'admin@vuefilemanager.com', 'email' => 'admin@vuefilemanager.com',
'password' => bcrypt('vuefilemanager'), 'password' => bcrypt('vuefilemanager'),
]); ]);
@@ -189,7 +187,7 @@ class SetupProdEnvironment extends Command
->settings() ->settings()
->create([ ->create([
'storage_capacity' => 5, 'storage_capacity' => 5,
'name' => 'Admin', 'name' => 'Admin',
]); ]);
// Show user credentials // Show user credentials
@@ -203,12 +201,12 @@ class SetupProdEnvironment extends Command
{ {
// Migrate database // Migrate database
$this->call('migrate:fresh', [ $this->call('migrate:fresh', [
'--force' => true '--force' => true,
]); ]);
// Generate app key // Generate app key
$this->call('key:generate', [ $this->call('key:generate', [
'--force' => true '--force' => true,
]); ]);
} }

View File

@@ -1,11 +1,10 @@
<?php <?php
namespace App\Console; namespace App\Console;
use App\Console\Commands\SetupDevEnvironment;
use App\Console\Commands\SetupProdEnvironment;
use App\Services\SchedulerService; use App\Services\SchedulerService;
use Illuminate\Console\Scheduling\Schedule; use Illuminate\Console\Scheduling\Schedule;
use App\Console\Commands\SetupDevEnvironment;
use App\Console\Commands\SetupProdEnvironment;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel class Kernel extends ConsoleKernel
@@ -37,7 +36,7 @@ class Kernel extends ConsoleKernel
$schedule->call(function () use ($scheduler) { $schedule->call(function () use ($scheduler) {
$scheduler->delete_old_zips(); $scheduler->delete_old_zips();
if (!is_storage_driver(['local'])) { if (! is_storage_driver(['local'])) {
$scheduler->delete_failed_files(); $scheduler->delete_failed_files();
} }
})->everySixHours(); })->everySixHours();

View File

@@ -1,10 +1,9 @@
<?php <?php
namespace App\Exceptions; namespace App\Exceptions;
use Throwable;
use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
class Handler extends ExceptionHandler class Handler extends ExceptionHandler
{ {
@@ -14,7 +13,6 @@ class Handler extends ExceptionHandler
* @var array * @var array
*/ */
protected $dontReport = [ protected $dontReport = [
//
]; ];
/** /**
@@ -52,11 +50,10 @@ class Handler extends ExceptionHandler
public function render($request, Throwable $exception) public function render($request, Throwable $exception)
{ {
if ($exception instanceof ModelNotFoundException) { if ($exception instanceof ModelNotFoundException) {
return response() return response()
->redirectTo('/not-found')->setStatusCode(404); ->redirectTo('/not-found')->setStatusCode(404);
} }
return parent::render($request, $exception); return parent::render($request, $exception);
} }
} }

View File

@@ -1,15 +1,13 @@
<?php <?php
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Models\File; use DB;
use App\Http\Controllers\Controller;
use App\Http\Resources\UsersCollection;
use App\Services\StripeService;
use App\Models\User; use App\Models\User;
use ByteUnits\Metric; use ByteUnits\Metric;
use DB; use App\Services\StripeService;
use Laravel\Cashier\Subscription; use Laravel\Cashier\Subscription;
use App\Http\Controllers\Controller;
use App\Http\Resources\UsersCollection;
class DashboardController extends Controller class DashboardController extends Controller
{ {
@@ -38,10 +36,10 @@ class DashboardController extends Controller
)->format(); )->format();
return [ return [
'license' => get_setting('license'), 'license' => get_setting('license'),
'app_version' => config('vuefilemanager.version'), 'app_version' => config('vuefilemanager.version'),
'total_users' => User::count(), 'total_users' => User::count(),
'total_used_space' => $storage_usage, 'total_used_space' => $storage_usage,
'total_premium_users' => $premium_users, 'total_premium_users' => $premium_users,
]; ];
} }

View File

@@ -1,14 +1,11 @@
<?php <?php
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Resources\InvoiceAdminCollection;
use App\Http\Resources\InvoiceResource;
use App\Models\Invoice; use App\Models\Invoice;
use App\Services\StripeService; use App\Services\StripeService;
use App\Models\Setting; use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use App\Http\Resources\InvoiceResource;
use App\Http\Resources\InvoiceAdminCollection;
class InvoiceController extends Controller class InvoiceController extends Controller
{ {

View File

@@ -1,15 +1,14 @@
<?php <?php
namespace App\Http\Controllers\Admin; 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 App\Models\Setting;
use App\Models\Language;
use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
use App\Http\Resources\LanguageResource;
use App\Http\Resources\LanguageCollection;
use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
use App\Http\Requests\Languages\UpdateStringRequest; use App\Http\Requests\Languages\UpdateStringRequest;
use App\Http\Requests\Languages\CreateLanguageRequest; use App\Http\Requests\Languages\CreateLanguageRequest;
use App\Http\Requests\Languages\UpdateLanguageRequest; use App\Http\Requests\Languages\UpdateLanguageRequest;
@@ -24,7 +23,8 @@ class LanguageController extends Controller
public function get_languages() public function get_languages()
{ {
return response( return response(
new LanguageCollection(Language::sortable(['created_at', 'DESC'])->get()), 200 new LanguageCollection(Language::sortable(['created_at', 'DESC'])->get()),
200
); );
} }
@@ -36,7 +36,8 @@ class LanguageController extends Controller
public function get_language(Language $language) public function get_language(Language $language)
{ {
return response( return response(
new LanguageResource($language), 200 new LanguageResource($language),
200
); );
} }
@@ -52,12 +53,13 @@ class LanguageController extends Controller
abort_if(is_demo(), 204, 'Done.'); abort_if(is_demo(), 204, 'Done.');
$language = Language::create([ $language = Language::create([
'name' => $request->input('name'), 'name' => $request->input('name'),
'locale' => $request->input('locale') 'locale' => $request->input('locale'),
]); ]);
return response( return response(
new LanguageResource($language), 201 new LanguageResource($language),
201
); );
} }
@@ -75,7 +77,8 @@ class LanguageController extends Controller
$language->update(make_single_input($request)); $language->update(make_single_input($request));
return response( return response(
new LanguageResource($language), 201 new LanguageResource($language),
201
); );
} }
@@ -95,13 +98,14 @@ class LanguageController extends Controller
->languageTranslations() ->languageTranslations()
->where('key', $request->name) ->where('key', $request->name)
->update([ ->update([
'value' => $request->value 'value' => $request->value,
]); ]);
cache()->forget("language-translations-{$language->locale}"); cache()->forget("language-translations-{$language->locale}");
return response( return response(
'Done', 204 'Done',
204
); );
} }
@@ -130,7 +134,8 @@ class LanguageController extends Controller
$language->delete(); $language->delete();
return response( return response(
'Done', 204 'Done',
204
); );
} }
} }

View File

@@ -1,15 +1,14 @@
<?php <?php
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Resources\PageCollection;
use App\Http\Resources\PageResource;
use App\Services\DemoService;
use App\Models\Page; use App\Models\Page;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Services\DemoService;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
use App\Http\Resources\PageResource;
use App\Http\Resources\PageCollection;
use Illuminate\Contracts\Routing\ResponseFactory;
class PagesController extends Controller class PagesController extends Controller
{ {

View File

@@ -1,23 +1,20 @@
<?php <?php
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Resources\PlanCollection;
use App\Http\Resources\PlanResource;
use App\Http\Resources\UserResource;
use App\Http\Resources\UsersCollection;
use App\Services\DemoService;
use App\Models\Plan; use App\Models\Plan;
use App\Services\StripeService;
use App\Models\User; use App\Models\User;
use Illuminate\Http\Request;
use App\Services\DemoService;
use Illuminate\Http\Response;
use App\Services\StripeService;
use Laravel\Cashier\Subscription;
use App\Http\Controllers\Controller;
use App\Http\Resources\PlanResource;
use Illuminate\Support\Facades\Cache;
use App\Http\Resources\PlanCollection;
use App\Http\Resources\UsersCollection;
use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Cache;
use Laravel\Cashier\Subscription;
use Rinvex\Subscriptions\Models\PlanFeature;
class PlanController extends Controller class PlanController extends Controller
{ {
@@ -79,7 +76,6 @@ class PlanController extends Controller
{ {
// TODO: inline request // TODO: inline request
if (is_demo()) { if (is_demo()) {
if (Cache::has('plan-starter-pack')) { if (Cache::has('plan-starter-pack')) {
$plan = Cache::get('plan-starter-pack'); $plan = Cache::get('plan-starter-pack');
} else { } else {

View File

@@ -1,14 +1,13 @@
<?php <?php
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\DemoService;
use App\Models\Setting;
use Artisan;
use Stripe; use Stripe;
use Cartalyst\Stripe\Exception\UnauthorizedException; use Artisan;
use App\Models\Setting;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Services\DemoService;
use App\Http\Controllers\Controller;
use Cartalyst\Stripe\Exception\UnauthorizedException;
use Symfony\Component\HttpKernel\Exception\HttpException; use Symfony\Component\HttpKernel\Exception\HttpException;
class SettingController extends Controller class SettingController extends Controller
@@ -30,7 +29,6 @@ class SettingController extends Controller
public function show(Request $request) public function show(Request $request)
{ {
if (strpos($request->column, '|') !== false) { if (strpos($request->column, '|') !== false) {
$columns = explode('|', $request->column); $columns = explode('|', $request->column);
return Setting::whereIn('name', $columns) return Setting::whereIn('name', $columns)
@@ -54,12 +52,11 @@ class SettingController extends Controller
// Store image if exist // Store image if exist
if ($request->hasFile($request->name)) { if ($request->hasFile($request->name)) {
// Find and update image path // Find and update image path
Setting::updateOrCreate([ Setting::updateOrCreate([
'name' => $request->name 'name' => $request->name,
], [ ], [
'value' => store_system_image($request, $request->name) 'value' => store_system_image($request, $request->name),
]); ]);
return response('Done', 204); return response('Done', 204);
@@ -86,14 +83,13 @@ class SettingController extends Controller
// Abort in demo mode // Abort in demo mode
abort_if(is_demo(), 204, 'Done.'); abort_if(is_demo(), 204, 'Done.');
if (!app()->runningUnitTests()) { if (! app()->runningUnitTests()) {
setEnvironmentValue([ setEnvironmentValue([
'MAIL_DRIVER' => $request->driver, 'MAIL_DRIVER' => $request->driver,
'MAIL_HOST' => $request->host, 'MAIL_HOST' => $request->host,
'MAIL_PORT' => $request->port, 'MAIL_PORT' => $request->port,
'MAIL_USERNAME' => $request->username, 'MAIL_USERNAME' => $request->username,
'MAIL_PASSWORD' => $request->password, 'MAIL_PASSWORD' => $request->password,
'MAIL_ENCRYPTION' => $request->encryption, 'MAIL_ENCRYPTION' => $request->encryption,
]); ]);
@@ -120,45 +116,42 @@ class SettingController extends Controller
// Try to get stripe account details // Try to get stripe account details
try { try {
if (!app()->runningUnitTests()) { if (! app()->runningUnitTests()) {
Stripe::make($request->secret, '2020-03-02') Stripe::make($request->secret, '2020-03-02')
->account() ->account()
->details(); ->details();
} }
} catch (UnauthorizedException $e) { } catch (UnauthorizedException $e) {
throw new HttpException(401, $e->getMessage()); throw new HttpException(401, $e->getMessage());
} }
// Get options // Get options
collect([ collect([
[ [
'name' => 'stripe_currency', 'name' => 'stripe_currency',
'value' => $request->currency, 'value' => $request->currency,
], ],
[ [
'name' => 'payments_configured', 'name' => 'payments_configured',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'payments_active', 'name' => 'payments_active',
'value' => 1, 'value' => 1,
], ],
])->each(function ($col) { ])->each(function ($col) {
Setting::forceCreate([ Setting::forceCreate([
'name' => $col['name'], 'name' => $col['name'],
'value' => $col['value'], 'value' => $col['value'],
]); ]);
}); });
if (!app()->runningUnitTests()) { if (! app()->runningUnitTests()) {
// Set stripe credentials to .env // Set stripe credentials to .env
setEnvironmentValue([ setEnvironmentValue([
'CASHIER_CURRENCY' => $request->currency, 'CASHIER_CURRENCY' => $request->currency,
'STRIPE_KEY' => $request->key, 'STRIPE_KEY' => $request->key,
'STRIPE_SECRET' => $request->secret, 'STRIPE_SECRET' => $request->secret,
'STRIPE_WEBHOOK_SECRET' => $request->webhookSecret, 'STRIPE_WEBHOOK_SECRET' => $request->webhookSecret,
]); ]);
@@ -179,7 +172,7 @@ class SettingController extends Controller
// Abort in demo mode // Abort in demo mode
abort_if(is_demo(), 204, 'Done.'); abort_if(is_demo(), 204, 'Done.');
if (!app()->runningUnitTests()) { if (! app()->runningUnitTests()) {
Artisan::call('cache:clear'); Artisan::call('cache:clear');
Artisan::call('config:clear'); Artisan::call('config:clear');
Artisan::call('config:cache'); Artisan::call('config:cache');

View File

@@ -1,29 +1,25 @@
<?php <?php
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Models\File; use Storage;
use App\Models\Folder;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\ChangeRoleRequest;
use App\Http\Requests\Admin\ChangeStorageCapacityRequest;
use App\Http\Requests\Admin\CreateUserByAdmin;
use App\Http\Requests\Admin\DeleteUserRequest;
use App\Http\Resources\InvoiceCollection;
use App\Http\Resources\UsersCollection;
use App\Http\Resources\UserResource;
use App\Http\Resources\UserStorageResource;
use App\Http\Resources\UserSubscription;
use App\Services\StripeService;
use App\Models\Share;
use App\Models\User; use App\Models\User;
use App\Models\UserSettings; use App\Models\UserSettings;
use Illuminate\Http\Response;
use App\Services\StripeService;
use App\Http\Controllers\Controller;
use App\Http\Resources\UserResource;
use Illuminate\Support\Facades\Auth;
use App\Http\Resources\UsersCollection;
use App\Http\Resources\UserSubscription;
use Illuminate\Support\Facades\Password;
use App\Http\Resources\InvoiceCollection;
use App\Http\Resources\UserStorageResource;
use App\Http\Requests\Admin\ChangeRoleRequest;
use App\Http\Requests\Admin\CreateUserByAdmin;
use App\Http\Requests\Admin\DeleteUserRequest;
use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response; use App\Http\Requests\Admin\ChangeStorageCapacityRequest;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Password;
use Storage;
class UserController extends Controller class UserController extends Controller
{ {
@@ -81,7 +77,7 @@ class UserController extends Controller
*/ */
public function subscription(User $user) public function subscription(User $user)
{ {
if (!$user->stripeId() || !$user->subscription('main')) { if (! $user->stripeId() || ! $user->subscription('main')) {
return response("User doesn't have any subscription.", 404); return response("User doesn't have any subscription.", 404);
} }
@@ -179,8 +175,8 @@ class UserController extends Controller
{ {
// Create user // Create user
$user = User::forceCreate([ $user = User::forceCreate([
'role' => $request->role, 'role' => $request->role,
'email' => $request->email, 'email' => $request->email,
'password' => bcrypt($request->password), 'password' => bcrypt($request->password),
]); ]);
@@ -189,8 +185,8 @@ class UserController extends Controller
$user $user
->settings() ->settings()
->create([ ->create([
'name' => $request->name, 'name' => $request->name,
'avatar' => store_avatar($request, 'avatar'), 'avatar' => store_avatar($request, 'avatar'),
'storage_capacity' => $request->storage_capacity, 'storage_capacity' => $request->storage_capacity,
]); ]);
@@ -222,7 +218,7 @@ class UserController extends Controller
} }
if ($user->settings->name !== $request->name) { if ($user->settings->name !== $request->name) {
abort(403, "The name you typed is wrong!"); abort(403, 'The name you typed is wrong!');
} }
$user->delete(); $user->delete();

View File

@@ -1,23 +1,22 @@
<?php <?php
namespace App\Http\Controllers\App; namespace App\Http\Controllers\App;
use App\Http\Controllers\Controller;
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\Page;
use App\Models\Share; use App\Models\Share;
use App\Services\StripeService; use App\Models\Setting;
use Doctrine\DBAL\Driver\PDOException; use App\Models\Language;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Illuminate\Support\Facades\Cache; use App\Services\StripeService;
use App\Http\Controllers\Controller;
use App\Http\Resources\PageResource;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use App\Http\Mail\SendContactMessage;
use Illuminate\Support\Facades\Cache;
use Doctrine\DBAL\Driver\PDOException;
use App\Http\Resources\PricingCollection;
use Illuminate\Contracts\Routing\ResponseFactory;
use App\Http\Requests\PublicPages\SendContactMessageRequest;
class AppFunctionsController extends Controller class AppFunctionsController extends Controller
{ {
@@ -55,13 +54,11 @@ class AppFunctionsController extends Controller
// Get all settings // Get all settings
$settings = get_settings_in_json(); $settings = get_settings_in_json();
} catch (PDOException $e) { } catch (PDOException $e) {
$setup_status = 'setup-database'; $setup_status = 'setup-database';
} }
return view("index") return view('index')
->with('settings', $settings ?? null) ->with('settings', $settings ?? null)
->with('legal', $pages ?? null) ->with('legal', $pages ?? null)
->with('installation', $setup_status); ->with('installation', $setup_status);
@@ -78,24 +75,24 @@ class AppFunctionsController extends Controller
// Get file/folder record // Get file/folder record
$item = ('App\\Models\\' . ucfirst($shared->type)) $item = ('App\\Models\\' . ucfirst($shared->type))
::where('user_id', $shared->user->id) ::where('user_id', $shared->user->id)
->where('id', $shared->item_id) ->where('id', $shared->item_id)
->first(); ->first();
if ($item->thumbnail) { if ($item->thumbnail) {
$item->setPublicUrl($shared->token); $item->setPublicUrl($shared->token);
} }
return view("vuefilemanager.crawler.og-view") return view('vuefilemanager.crawler.og-view')
->with('settings', get_settings_in_json()) ->with('settings', get_settings_in_json())
->with('metadata', [ ->with('metadata', [
'url' => url('/share', ['token' => $shared->token]), 'url' => url('/share', ['token' => $shared->token]),
'is_protected' => $shared->is_protected, 'is_protected' => $shared->is_protected,
'user' => $shared->user->settings->name, 'user' => $shared->user->settings->name,
'name' => $item->name, 'name' => $item->name,
'size' => $shared->type === 'folder' 'size' => $shared->type === 'folder'
? $item->items ? $item->items
: $item->filesize, : $item->filesize,
'thumbnail' => $item->thumbnail ?? null, 'thumbnail' => $item->thumbnail ?? null,
]); ]);
} }
@@ -136,7 +133,6 @@ class AppFunctionsController extends Controller
public function get_setting_columns(Request $request) public function get_setting_columns(Request $request)
{ {
if (strpos($request->column, '|') !== false) { if (strpos($request->column, '|') !== false) {
$columns = collect(explode('|', $request->column)) $columns = collect(explode('|', $request->column))
->each(function ($column) { ->each(function ($column) {
if (in_array($column, $this->blacklist)) { if (in_array($column, $this->blacklist)) {

View File

@@ -1,19 +1,14 @@
<?php <?php
namespace App\Http\Controllers\App; namespace App\Http\Controllers\App;
use App\Http\Controllers\Controller;
use App\Models\Language;
use App\Models\LanguageTranslation;
use App\Services\LanguageService;
use Artisan;
use DB;
use Gate; use Gate;
use Artisan;
use App\Models\Language;
use Illuminate\Http\Response;
use App\Services\LanguageService;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Schema;
class Maintenance extends Controller class Maintenance extends Controller
{ {
@@ -61,8 +56,6 @@ class Maintenance extends Controller
resolve(LanguageService::class) resolve(LanguageService::class)
->upgrade_language_translations(); ->upgrade_language_translations();
return response('Done.', 201); return response('Done.', 201);
} }
@@ -75,7 +68,7 @@ class Maintenance extends Controller
Gate::authorize('maintenance'); Gate::authorize('maintenance');
$command = Artisan::call('migrate', [ $command = Artisan::call('migrate', [
'--force' => true '--force' => true,
]); ]);
if ($command === 0) { if ($command === 0) {
@@ -85,6 +78,7 @@ class Maintenance extends Controller
if ($command === 1) { if ($command === 1) {
echo 'Operation failed.'; echo 'Operation failed.';
} }
return $command; return $command;
} }
} }

View File

@@ -1,31 +1,29 @@
<?php <?php
namespace App\Http\Controllers\App; namespace App\Http\Controllers\App;
use App\Http\Controllers\Controller;
use App\Http\Requests\SetupWizard\CreateAdminRequest;
use App\Http\Requests\SetupWizard\StoreAppSetupRequest;
use App\Http\Requests\SetupWizard\StoreDatabaseCredentialsRequest;
use App\Http\Requests\SetupWizard\StoreEnvironmentSetupRequest;
use App\Http\Requests\SetupWizard\StoreStripeBillingRequest;
use App\Http\Requests\SetupWizard\StoreStripeCredentialsRequest;
use App\Http\Requests\SetupWizard\StoreStripePlansRequest;
use App\Services\SetupService;
use App\Services\StripeService;
use App\Models\Setting;
use App\Models\User;
use Artisan;
use Cartalyst\Stripe\Exception\UnauthorizedException;
use Doctrine\DBAL\Driver\PDOException;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Str;
use Schema; use Schema;
use Stripe; use Stripe;
use Artisan;
use App\Models\User;
use App\Models\Setting;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use App\Services\SetupService;
use App\Services\StripeService;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Http;
use Doctrine\DBAL\Driver\PDOException;
use Illuminate\Contracts\Routing\ResponseFactory;
use Cartalyst\Stripe\Exception\UnauthorizedException;
use App\Http\Requests\SetupWizard\StoreAppSetupRequest;
use Symfony\Component\HttpKernel\Exception\HttpException; use Symfony\Component\HttpKernel\Exception\HttpException;
use App\Http\Requests\SetupWizard\StoreStripePlansRequest;
use App\Http\Requests\SetupWizard\StoreStripeBillingRequest;
use App\Http\Requests\SetupWizard\StoreEnvironmentSetupRequest;
use App\Http\Requests\SetupWizard\StoreStripeCredentialsRequest;
use App\Http\Requests\SetupWizard\StoreDatabaseCredentialsRequest;
class SetupWizardController extends Controller class SetupWizardController extends Controller
{ {
@@ -66,8 +64,7 @@ class SetupWizardController extends Controller
*/ */
public function setup_database(StoreDatabaseCredentialsRequest $request) public function setup_database(StoreDatabaseCredentialsRequest $request)
{ {
if (!app()->runningUnitTests()) { if (! app()->runningUnitTests()) {
try { try {
// Set temporary database connection // Set temporary database connection
config(['database.connections.test.driver' => $request->connection]); config(['database.connections.test.driver' => $request->connection]);
@@ -79,7 +76,6 @@ class SetupWizardController extends Controller
// Test connection // Test connection
\DB::connection('test')->getPdo(); \DB::connection('test')->getPdo();
} catch (PDOException $e) { } catch (PDOException $e) {
throw new HttpException(500, $e->getMessage()); throw new HttpException(500, $e->getMessage());
} }
@@ -88,27 +84,27 @@ class SetupWizardController extends Controller
setEnvironmentValue([ setEnvironmentValue([
'DB_CONNECTION' => $request->connection, 'DB_CONNECTION' => $request->connection,
'DB_HOST' => $request->host, 'DB_HOST' => $request->host,
'DB_PORT' => $request->port, 'DB_PORT' => $request->port,
'DB_DATABASE' => $request->name, 'DB_DATABASE' => $request->name,
'DB_USERNAME' => $request->username, 'DB_USERNAME' => $request->username,
'DB_PASSWORD' => $request->password, 'DB_PASSWORD' => $request->password,
]); ]);
Artisan::call('config:cache'); Artisan::call('config:cache');
Artisan::call('key:generate', [ Artisan::call('key:generate', [
'--force' => true '--force' => true,
]); ]);
Artisan::call('migrate:fresh', [ Artisan::call('migrate:fresh', [
'--force' => true '--force' => true,
]); ]);
} }
// Store setup wizard progress // Store setup wizard progress
Setting::forceCreate([ Setting::forceCreate([
'name' => 'setup_wizard_database', 'name' => 'setup_wizard_database',
'value' => 1, 'value' => 1,
]); ]);
@@ -123,15 +119,13 @@ class SetupWizardController extends Controller
*/ */
public function store_stripe_credentials(StoreStripeCredentialsRequest $request) public function store_stripe_credentials(StoreStripeCredentialsRequest $request)
{ {
if (!app()->runningUnitTests()) { if (! app()->runningUnitTests()) {
// Create stripe instance // Create stripe instance
$stripe = Stripe::make($request->secret, '2020-03-02'); $stripe = Stripe::make($request->secret, '2020-03-02');
try { try {
// Try to get stripe account details // Try to get stripe account details
$stripe->account()->details(); $stripe->account()->details();
} catch (UnauthorizedException $e) { } catch (UnauthorizedException $e) {
throw new HttpException(401, $e->getMessage()); throw new HttpException(401, $e->getMessage());
} }
@@ -140,31 +134,30 @@ class SetupWizardController extends Controller
// Set settings // Set settings
collect([ collect([
[ [
'name' => 'stripe_currency', 'name' => 'stripe_currency',
'value' => $request->currency, 'value' => $request->currency,
], ],
[ [
'name' => 'payments_configured', 'name' => 'payments_configured',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'payments_active', 'name' => 'payments_active',
'value' => 1, 'value' => 1,
], ],
])->each(function ($col) { ])->each(function ($col) {
Setting::forceCreate([ Setting::forceCreate([
'name' => $col['name'], 'name' => $col['name'],
'value' => $col['value'], 'value' => $col['value'],
]); ]);
}); });
if (!app()->runningUnitTests()) { if (! app()->runningUnitTests()) {
// Set stripe credentials to .env // Set stripe credentials to .env
setEnvironmentValue([ setEnvironmentValue([
'CASHIER_CURRENCY' => $request->currency, 'CASHIER_CURRENCY' => $request->currency,
'STRIPE_KEY' => $request->key, 'STRIPE_KEY' => $request->key,
'STRIPE_SECRET' => $request->secret, 'STRIPE_SECRET' => $request->secret,
'STRIPE_WEBHOOK_SECRET' => $request->webhookSecret, 'STRIPE_WEBHOOK_SECRET' => $request->webhookSecret,
]); ]);
@@ -186,45 +179,45 @@ class SetupWizardController extends Controller
// Get options // Get options
collect([ collect([
[ [
'name' => 'billing_phone_number', 'name' => 'billing_phone_number',
'value' => $request->billing_phone_number, 'value' => $request->billing_phone_number,
], ],
[ [
'name' => 'billing_postal_code', 'name' => 'billing_postal_code',
'value' => $request->billing_postal_code, 'value' => $request->billing_postal_code,
], ],
[ [
'name' => 'billing_vat_number', 'name' => 'billing_vat_number',
'value' => $request->billing_vat_number, 'value' => $request->billing_vat_number,
], ],
[ [
'name' => 'billing_address', 'name' => 'billing_address',
'value' => $request->billing_address, 'value' => $request->billing_address,
], ],
[ [
'name' => 'billing_country', 'name' => 'billing_country',
'value' => $request->billing_country, 'value' => $request->billing_country,
], ],
[ [
'name' => 'billing_state', 'name' => 'billing_state',
'value' => $request->billing_state, 'value' => $request->billing_state,
], ],
[ [
'name' => 'billing_city', 'name' => 'billing_city',
'value' => $request->billing_city, 'value' => $request->billing_city,
], ],
[ [
'name' => 'billing_name', 'name' => 'billing_name',
'value' => $request->billing_name, 'value' => $request->billing_name,
], ],
])->each(function ($col) { ])->each(function ($col) {
Setting::forceCreate([ Setting::forceCreate([
'name' => $col['name'], 'name' => $col['name'],
'value' => $col['value'], 'value' => $col['value'],
]); ]);
}); });
if (!app()->runningUnitTests()) { if (! app()->runningUnitTests()) {
Artisan::call('config:cache'); Artisan::call('config:cache');
} }
@@ -254,42 +247,41 @@ class SetupWizardController extends Controller
*/ */
public function store_environment_setup(StoreEnvironmentSetupRequest $request) public function store_environment_setup(StoreEnvironmentSetupRequest $request)
{ {
if (!app()->runningUnitTests()) { if (! app()->runningUnitTests()) {
$drivers = [ $drivers = [
'local' => [ 'local' => [
'FILESYSTEM_DRIVER' => 'local', 'FILESYSTEM_DRIVER' => 'local',
], ],
's3' => [ 's3' => [
'FILESYSTEM_DRIVER' => $request->storage['driver'] ?? null,
'AWS_ACCESS_KEY_ID' => $request->storage['key'] ?? null,
'AWS_SECRET_ACCESS_KEY' => $request->storage['secret'] ?? null,
'AWS_DEFAULT_REGION' => $request->storage['region'] ?? null,
'AWS_BUCKET' => $request->storage['bucket'] ?? null,
],
'spaces' => [
'FILESYSTEM_DRIVER' => $request->storage['driver'] ?? null,
'DO_SPACES_KEY' => $request->storage['key'] ?? null,
'DO_SPACES_SECRET' => $request->storage['secret'] ?? null,
'DO_SPACES_ENDPOINT' => $request->storage['endpoint'] ?? null,
'DO_SPACES_REGION' => $request->storage['region'] ?? null,
'DO_SPACES_BUCKET' => $request->storage['bucket'] ?? null,
],
'wasabi' => [
'FILESYSTEM_DRIVER' => $request->storage['driver'] ?? null, 'FILESYSTEM_DRIVER' => $request->storage['driver'] ?? null,
'WASABI_KEY' => $request->storage['key'] ?? null, 'AWS_ACCESS_KEY_ID' => $request->storage['key'] ?? null,
'WASABI_SECRET' => $request->storage['secret'] ?? null, 'AWS_SECRET_ACCESS_KEY' => $request->storage['secret'] ?? null,
'WASABI_ENDPOINT' => $request->storage['endpoint'] ?? null, 'AWS_DEFAULT_REGION' => $request->storage['region'] ?? null,
'WASABI_REGION' => $request->storage['region'] ?? null, 'AWS_BUCKET' => $request->storage['bucket'] ?? null,
'WASABI_BUCKET' => $request->storage['bucket'] ?? null, ],
'spaces' => [
'FILESYSTEM_DRIVER' => $request->storage['driver'] ?? null,
'DO_SPACES_KEY' => $request->storage['key'] ?? null,
'DO_SPACES_SECRET' => $request->storage['secret'] ?? null,
'DO_SPACES_ENDPOINT' => $request->storage['endpoint'] ?? null,
'DO_SPACES_REGION' => $request->storage['region'] ?? null,
'DO_SPACES_BUCKET' => $request->storage['bucket'] ?? null,
],
'wasabi' => [
'FILESYSTEM_DRIVER' => $request->storage['driver'] ?? null,
'WASABI_KEY' => $request->storage['key'] ?? null,
'WASABI_SECRET' => $request->storage['secret'] ?? null,
'WASABI_ENDPOINT' => $request->storage['endpoint'] ?? null,
'WASABI_REGION' => $request->storage['region'] ?? null,
'WASABI_BUCKET' => $request->storage['bucket'] ?? null,
], ],
'backblaze' => [ 'backblaze' => [
'FILESYSTEM_DRIVER' => $request->storage['driver'] ?? null, 'FILESYSTEM_DRIVER' => $request->storage['driver'] ?? null,
'BACKBLAZE_KEY' => $request->storage['key'] ?? null, 'BACKBLAZE_KEY' => $request->storage['key'] ?? null,
'BACKBLAZE_SECRET' => $request->storage['secret'] ?? null, 'BACKBLAZE_SECRET' => $request->storage['secret'] ?? null,
'BACKBLAZE_ENDPOINT' => $request->storage['endpoint'] ?? null, 'BACKBLAZE_ENDPOINT' => $request->storage['endpoint'] ?? null,
'BACKBLAZE_REGION' => $request->storage['region'] ?? null, 'BACKBLAZE_REGION' => $request->storage['region'] ?? null,
'BACKBLAZE_BUCKET' => $request->storage['bucket'] ?? null, 'BACKBLAZE_BUCKET' => $request->storage['bucket'] ?? null,
], ],
]; ];
@@ -301,18 +293,17 @@ class SetupWizardController extends Controller
// Store credentials for mail // Store credentials for mail
// TODO: add options for mailgun // TODO: add options for mailgun
setEnvironmentValue([ setEnvironmentValue([
'MAIL_DRIVER' => $request->mail['driver'], 'MAIL_DRIVER' => $request->mail['driver'],
'MAIL_HOST' => $request->mail['host'], 'MAIL_HOST' => $request->mail['host'],
'MAIL_PORT' => $request->mail['port'], 'MAIL_PORT' => $request->mail['port'],
'MAIL_USERNAME' => $request->mail['username'], 'MAIL_USERNAME' => $request->mail['username'],
'MAIL_PASSWORD' => $request->mail['password'], 'MAIL_PASSWORD' => $request->mail['password'],
'MAIL_ENCRYPTION' => $request->mail['encryption'], 'MAIL_ENCRYPTION' => $request->mail['encryption'],
]); ]);
Artisan::call('config:cache'); Artisan::call('config:cache');
} }
return response('Done', 204); return response('Done', 204);
} }
@@ -326,61 +317,61 @@ class SetupWizardController extends Controller
// Get options // Get options
collect([ collect([
[ [
'name' => 'app_title', 'name' => 'app_title',
'value' => $request->title, 'value' => $request->title,
], ],
[ [
'name' => 'app_description', 'name' => 'app_description',
'value' => $request->description, 'value' => $request->description,
], ],
[ [
'name' => 'app_logo', 'name' => 'app_logo',
'value' => store_system_image($request, 'logo'), 'value' => store_system_image($request, 'logo'),
], ],
[ [
'name' => 'app_logo_horizontal', 'name' => 'app_logo_horizontal',
'value' => store_system_image($request, 'logo_horizontal'), 'value' => store_system_image($request, 'logo_horizontal'),
], ],
[ [
'name' => 'app_favicon', 'name' => 'app_favicon',
'value' => store_system_image($request, 'favicon'), 'value' => store_system_image($request, 'favicon'),
], ],
[ [
'name' => 'app_og_image', 'name' => 'app_og_image',
'value' => store_system_image($request, 'og_image'), 'value' => store_system_image($request, 'og_image'),
], ],
[ [
'name' => 'app_touch_icon', 'name' => 'app_touch_icon',
'value' => store_system_image($request, 'touch_icon'), 'value' => store_system_image($request, 'touch_icon'),
], ],
[ [
'name' => 'google_analytics', 'name' => 'google_analytics',
'value' => $request->googleAnalytics, 'value' => $request->googleAnalytics,
], ],
[ [
'name' => 'contact_email', 'name' => 'contact_email',
'value' => $request->contactMail, 'value' => $request->contactMail,
], ],
[ [
'name' => 'registration', 'name' => 'registration',
'value' => $request->userRegistration, 'value' => $request->userRegistration,
], ],
[ [
'name' => 'storage_limitation', 'name' => 'storage_limitation',
'value' => $request->storageLimitation, 'value' => $request->storageLimitation,
], ],
[ [
'name' => 'storage_default', 'name' => 'storage_default',
'value' => $request->defaultStorage ?? 5, 'value' => $request->defaultStorage ?? 5,
], ],
])->each(function ($col) { ])->each(function ($col) {
Setting::forceCreate([ Setting::forceCreate([
'name' => $col['name'], 'name' => $col['name'],
'value' => $col['value'], 'value' => $col['value'],
]); ]);
}); });
if (!app()->runningUnitTests()) { if (! app()->runningUnitTests()) {
setEnvironmentValue([ setEnvironmentValue([
'APP_NAME' => Str::camel($request->title), 'APP_NAME' => Str::camel($request->title),
]); ]);
@@ -400,18 +391,18 @@ class SetupWizardController extends Controller
// Validate request // Validate request
// TODO: validator do requestu // TODO: validator do requestu
$request->validate([ $request->validate([
'email' => 'required|string|email|unique:users', 'email' => 'required|string|email|unique:users',
'password' => 'required|string|min:6|confirmed', 'password' => 'required|string|min:6|confirmed',
'name' => 'required|string', 'name' => 'required|string',
'purchase_code' => 'required|string', 'purchase_code' => 'required|string',
'license' => 'required|string', 'license' => 'required|string',
'avatar' => 'sometimes|file', 'avatar' => 'sometimes|file',
]); ]);
// Create user // Create user
$user = User::forceCreate([ $user = User::forceCreate([
'role' => 'admin', 'role' => 'admin',
'email' => $request->email, 'email' => $request->email,
'password' => bcrypt($request->password), 'password' => bcrypt($request->password),
]); ]);
@@ -419,26 +410,26 @@ class SetupWizardController extends Controller
->settings() ->settings()
->create([ ->create([
'storage_capacity' => get_setting('storage_default') ?? 5, 'storage_capacity' => get_setting('storage_default') ?? 5,
'avatar' => store_avatar($request, 'avatar'), 'avatar' => store_avatar($request, 'avatar'),
'name' => $request->name, 'name' => $request->name,
]); ]);
collect([ collect([
[ [
'name' => 'setup_wizard_success', 'name' => 'setup_wizard_success',
'value' => 1, 'value' => 1,
], ],
[ [
'name' => 'license', 'name' => 'license',
'value' => $request->license, 'value' => $request->license,
], ],
[ [
'name' => 'purchase_code', 'name' => 'purchase_code',
'value' => $request->purchase_code, 'value' => $request->purchase_code,
] ],
])->each(function ($col) { ])->each(function ($col) {
Setting::forceCreate([ Setting::forceCreate([
'name' => $col['name'], 'name' => $col['name'],
'value' => $col['value'], 'value' => $col['value'],
]); ]);
}); });
@@ -450,7 +441,6 @@ class SetupWizardController extends Controller
// Login account // Login account
if (Auth::attempt($request->only(['email', 'password']))) { if (Auth::attempt($request->only(['email', 'password']))) {
$request->session()->regenerate(); $request->session()->regenerate();
return response('Registration was successful', 204); return response('Registration was successful', 204);
@@ -474,9 +464,7 @@ class SetupWizardController extends Controller
if (Schema::hasTable('settings') && get_setting('setup_wizard_success')) { if (Schema::hasTable('settings') && get_setting('setup_wizard_success')) {
abort(410, 'Gone'); abort(410, 'Gone');
} }
} catch (PDOException $e) { } catch (PDOException $e) {
return false; return false;
} }
} }

View File

@@ -1,14 +1,12 @@
<?php <?php
namespace App\Http\Controllers\Auth; namespace App\Http\Controllers\Auth;
use App\Http\Requests\Auth\CheckAccountRequest;
use App\Models\User; use App\Models\User;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\CheckAccountRequest;
class AuthController extends Controller class AuthController extends Controller
{ {
/** /**
* Check if user account exist * Check if user account exist
* *
@@ -26,7 +24,7 @@ class AuthController extends Controller
} }
return [ return [
'name' => $user->settings->name, 'name' => $user->settings->name,
'avatar' => $user->settings->avatar, 'avatar' => $user->settings->avatar,
]; ];
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Controllers\Auth; namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;

View File

@@ -1,17 +1,10 @@
<?php <?php
namespace App\Http\Controllers\Auth; namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Mail\TestMail;
use App\Notifications\ResetPassword;
use App\Notifications\ResetUserPasswordNotification;
use App\Models\User;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Lang; use Illuminate\Support\Facades\Lang;
use Illuminate\Support\Facades\Mail; use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
use Illuminate\Support\Facades\Notification;
class ForgotPasswordController extends Controller class ForgotPasswordController extends Controller
{ {

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Controllers\Auth; namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;

View File

@@ -1,12 +1,11 @@
<?php <?php
namespace App\Http\Controllers\Auth; namespace App\Http\Controllers\Auth;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Lang;
use App\Providers\RouteServiceProvider; use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\ResetsPasswords; use Illuminate\Foundation\Auth\ResetsPasswords;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Lang;
class ResetPasswordController extends Controller class ResetPasswordController extends Controller
{ {
@@ -30,7 +29,6 @@ class ResetPasswordController extends Controller
*/ */
protected $redirectTo = RouteServiceProvider::HOME; protected $redirectTo = RouteServiceProvider::HOME;
/** /**
* Get the response for a successful password reset. * Get the response for a successful password reset.
* *
@@ -40,7 +38,6 @@ class ResetPasswordController extends Controller
*/ */
protected function sendResetResponse(Request $request, $response) protected function sendResetResponse(Request $request, $response)
{ {
return response(['message' => Lang::get($response)]); return response(['message' => Lang::get($response)]);
} }
@@ -53,7 +50,6 @@ class ResetPasswordController extends Controller
*/ */
protected function sendResetFailedResponse(Request $request, $response) protected function sendResetFailedResponse(Request $request, $response)
{ {
return response(['error' => Lang::get($response)], 422); return response(['error' => Lang::get($response)], 422);
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Controllers\Auth; namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;

View File

@@ -1,11 +1,10 @@
<?php <?php
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController; use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController class Controller extends BaseController
{ {

View File

@@ -1,16 +1,15 @@
<?php <?php
namespace App\Http\Controllers\FileManager; namespace App\Http\Controllers\FileManager;
use App\Http\Requests\FileBrowser\SearchRequest;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Support\Collection;
use Illuminate\Http\Request;
use App\Models\Folder;
use App\Models\File; use App\Models\File;
use App\Models\User;
use App\Models\Share; use App\Models\Share;
use App\Models\Folder;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests\FileBrowser\SearchRequest;
class BrowseController extends Controller class BrowseController extends Controller
{ {
@@ -27,7 +26,6 @@ class BrowseController extends Controller
// 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')
@@ -105,7 +103,7 @@ class BrowseController extends Controller
$files_trashed = File::onlyTrashed() $files_trashed = File::onlyTrashed()
->with(['parent']) ->with(['parent'])
->where('user_id', $user_id) ->where('user_id', $user_id)
->where(function($query) use ($folders_trashed) { ->where(function ($query) use ($folders_trashed) {
$query->whereNull('folder_id'); $query->whereNull('folder_id');
$query->orWhereNotIn('folder_id', array_values(array_unique(recursiveFind($folders_trashed->toArray(), 'id')))); $query->orWhereNotIn('folder_id', array_values(array_unique(recursiveFind($folders_trashed->toArray(), 'id'))));
}) })
@@ -182,10 +180,10 @@ class BrowseController extends Controller
return [ return [
[ [
'name' => __t('home'), 'name' => __t('home'),
'location' => 'base', 'location' => 'base',
'folders' => $folders, 'folders' => $folders,
] ],
]; ];
} }

View File

@@ -1,24 +1,22 @@
<?php <?php
namespace App\Http\Controllers\FileManager; namespace App\Http\Controllers\FileManager;
use App\Http\Requests\FileFunctions\CreateFolderRequest; use Exception;
use App\Models\File;
use App\Models\Folder;
use Illuminate\Http\Request;
use App\Services\DemoService;
use App\Services\HelperService;
use App\Http\Controllers\Controller;
use App\Services\FileManagerService;
use Illuminate\Support\Facades\Auth;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Routing\ResponseFactory;
use App\Http\Requests\FileFunctions\UploadRequest;
use App\Http\Requests\FileFunctions\MoveItemRequest;
use App\Http\Requests\FileFunctions\DeleteItemRequest; use App\Http\Requests\FileFunctions\DeleteItemRequest;
use App\Http\Requests\FileFunctions\RenameItemRequest; use App\Http\Requests\FileFunctions\RenameItemRequest;
use App\Http\Requests\FileFunctions\MoveItemRequest; use App\Http\Requests\FileFunctions\CreateFolderRequest;
use App\Http\Requests\FileFunctions\UploadRequest;
use App\Services\DemoService;
use App\Services\FileManagerService;
use App\Services\HelperService;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
use App\Models\Folder;
use App\Models\File;
use Exception;
class EditItemsController extends Controller class EditItemsController extends Controller
{ {
@@ -134,14 +132,14 @@ class EditItemsController extends Controller
$folder = Folder::whereUserId(Auth::id()) $folder = Folder::whereUserId(Auth::id())
->where('id', $id); ->where('id', $id);
if (!$folder->exists()) { if (! $folder->exists()) {
abort(404, "Requested folder doesn't exists."); abort(404, "Requested folder doesn't exists.");
} }
$zip = $this->filemanager->zip_folder($id); $zip = $this->filemanager->zip_folder($id);
return response([ return response([
'url' => route('zip', $zip->id), 'url' => route('zip', $zip->id),
'name' => $zip->basename, 'name' => $zip->basename,
], 201); ], 201);
} }
@@ -161,8 +159,8 @@ class EditItemsController extends Controller
$zip = $this->filemanager->zip_files($files); $zip = $this->filemanager->zip_files($files);
return response([ return response([
'url' => route('zip', $zip->id), 'url' => route('zip', $zip->id),
'name' => $zip->basename, 'name' => $zip->basename,
], 201); ], 201);
} }
} }

View File

@@ -1,13 +1,12 @@
<?php <?php
namespace App\Http\Controllers\FileManager; namespace App\Http\Controllers\FileManager;
use App\Services\DemoService;
use App\Models\Folder; use App\Models\Folder;
use Illuminate\Support\Facades\Validator; use Illuminate\Http\Request;
use App\Services\DemoService;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator;
class FavouriteController extends Controller class FavouriteController extends Controller
{ {
@@ -30,7 +29,6 @@ class FavouriteController extends Controller
// todo: pridat validator ako AddToFavouritesRequest // todo: pridat validator ako AddToFavouritesRequest
foreach ($request->folders as $id) { foreach ($request->folders as $id) {
// Get user & folder // Get user & folder
$user = Auth::user(); $user = Auth::user();

View File

@@ -1,13 +1,12 @@
<?php <?php
namespace App\Http\Controllers\FileManager; namespace App\Http\Controllers\FileManager;
use App\Http\Controllers\Controller;
use App\Models\Zip; use App\Models\Zip;
use App\Services\HelperService;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Services\HelperService;
use App\Models\File as UserFile; use App\Models\File as UserFile;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
class FileAccessController extends Controller class FileAccessController extends Controller
@@ -29,7 +28,7 @@ class FileAccessController extends Controller
public function get_avatar($basename) public function get_avatar($basename)
{ {
// Check if file exist // Check if file exist
if (!Storage::exists("/avatars/$basename")) { if (! Storage::exists("/avatars/$basename")) {
abort(404); abort(404);
} }
@@ -47,7 +46,7 @@ class FileAccessController extends Controller
public function get_system_image($basename) public function get_system_image($basename)
{ {
// Check if file exist // Check if file exist
if (!Storage::exists("/system/$basename")) { if (! Storage::exists("/system/$basename")) {
abort(404); abort(404);
} }
@@ -81,10 +80,9 @@ class FileAccessController extends Controller
$this->check_file_access($shared, $file); $this->check_file_access($shared, $file);
}*/ }*/
// Store user download size // Store user download size
$request->user()->record_download( $request->user()->record_download(
(int)$file->getRawOriginal('filesize') (int) $file->getRawOriginal('filesize')
); );
return $this->helper->download_file($file, Auth::id()); return $this->helper->download_file($file, Auth::id());
@@ -111,11 +109,11 @@ class FileAccessController extends Controller
); );
return $disk->download("zip/$zip->basename", $zip->basename, [ return $disk->download("zip/$zip->basename", $zip->basename, [
"Content-Type" => 'application/zip', 'Content-Type' => 'application/zip',
"Content-Length" => $disk->size("zip/$zip->basename"), 'Content-Length' => $disk->size("zip/$zip->basename"),
"Accept-Ranges" => "bytes", 'Accept-Ranges' => 'bytes',
"Content-Range" => "bytes 0-600/" . $disk->size("zip/$zip->basename"), 'Content-Range' => 'bytes 0-600/' . $disk->size("zip/$zip->basename"),
"Content-Disposition" => "attachment; filename=$zip->basename", 'Content-Disposition' => "attachment; filename=$zip->basename",
]); ]);
} }

View File

@@ -1,19 +1,18 @@
<?php <?php
namespace App\Http\Controllers\FileManager; namespace App\Http\Controllers\FileManager;
use Validator;
use App\Models\Zip;
use App\Models\Share;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use App\Http\Resources\ShareResource;
use App\Notifications\SharedSendViaEmail;
use Illuminate\Support\Facades\Notification;
use App\Http\Requests\Share\CreateShareRequest; use App\Http\Requests\Share\CreateShareRequest;
use App\Http\Requests\Share\UpdateShareRequest; use App\Http\Requests\Share\UpdateShareRequest;
use App\Http\Resources\ShareResource;
use App\Models\Share;
use App\Models\Zip;
use App\Notifications\SharedSendViaEmail;
use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Contracts\Routing\ResponseFactory;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Notification;
use Validator;
class ShareController extends Controller class ShareController extends Controller
{ {
@@ -41,20 +40,18 @@ class ShareController extends Controller
{ {
// Create shared options // Create shared options
$shared = Share::create([ $shared = Share::create([
'password' => $request->has('password') ? bcrypt($request->password) : null, 'password' => $request->has('password') ? bcrypt($request->password) : null,
'type' => $request->type === 'folder' ? 'folder' : 'file', 'type' => $request->type === 'folder' ? 'folder' : 'file',
'is_protected' => $request->isPassword, 'is_protected' => $request->isPassword,
'permission' => $request->permission ?? null, 'permission' => $request->permission ?? null,
'item_id' => $id, 'item_id' => $id,
'expire_in' => $request->expiration ?? null, 'expire_in' => $request->expiration ?? null,
'user_id' => Auth::id(), 'user_id' => Auth::id(),
]); ]);
// Send shared link via email // Send shared link via email
if ($request->has('emails')) { if ($request->has('emails')) {
foreach ($request->emails as $email) { foreach ($request->emails as $email) {
Notification::route('mail', $email)->notify( Notification::route('mail', $email)->notify(
new SharedSendViaEmail($shared->token) new SharedSendViaEmail($shared->token)
); );
@@ -81,10 +78,10 @@ class ShareController extends Controller
// Update sharing record // Update sharing record
$shared->update([ $shared->update([
'permission' => $request->permission, 'permission' => $request->permission,
'is_protected' => $request->protected, 'is_protected' => $request->protected,
'expire_in' => $request->expiration, 'expire_in' => $request->expiration,
'password' => $request->password ? bcrypt($request->password) : $shared->password, 'password' => $request->password ? bcrypt($request->password) : $shared->password,
]); ]);
// Return shared record // Return shared record
@@ -100,7 +97,6 @@ class ShareController extends Controller
public function destroy(Request $request) public function destroy(Request $request)
{ {
foreach ($request->tokens as $token) { foreach ($request->tokens as $token) {
// Get sharing record // Get sharing record
Share::where('token', $token) Share::where('token', $token)
->where('user_id', Auth::id()) ->where('user_id', Auth::id())
@@ -141,7 +137,6 @@ class ShareController extends Controller
// Send shared link via email // Send shared link via email
if ($request->has('emails')) { if ($request->has('emails')) {
foreach ($request->emails as $email) { foreach ($request->emails as $email) {
Notification::route('mail', $email) Notification::route('mail', $email)
->notify(new SharedSendViaEmail($token)); ->notify(new SharedSendViaEmail($token));

View File

@@ -1,16 +1,15 @@
<?php <?php
namespace App\Http\Controllers\FileManager; namespace App\Http\Controllers\FileManager;
use App\Models\File;
use App\Models\Folder;
use Illuminate\Http\Request;
use App\Services\DemoService; use App\Services\DemoService;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Storage;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage;
use App\Models\Folder; use Illuminate\Support\Facades\Validator;
use App\Models\File; use Illuminate\Contracts\Routing\ResponseFactory;
class TrashController extends Controller class TrashController extends Controller
{ {
@@ -34,11 +33,13 @@ class TrashController extends Controller
// TODO: zrefaktorovat validator do requestu // TODO: zrefaktorovat validator do requestu
$validator = Validator::make($request->input('items'), [ $validator = Validator::make($request->input('items'), [
'*.type' => 'required|string', '*.type' => 'required|string',
'*.id' => 'string', '*.id' => 'string',
]); ]);
// Return error // Return error
if ($validator->fails()) abort(400, 'Bad input'); if ($validator->fails()) {
abort(400, 'Bad input');
}
// Get user id // Get user id
$user_id = Auth::id(); $user_id = Auth::id();
@@ -46,10 +47,8 @@ class TrashController extends Controller
abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.'); abort_if(is_demo_account('howdy@hi5ve.digital'), 204, 'Done.');
foreach ($request->input('items') as $restore) { foreach ($request->input('items') as $restore) {
// Get folder // Get folder
if ($restore['type'] === 'folder') { if ($restore['type'] === 'folder') {
// Get folder // Get folder
$item = Folder::onlyTrashed() $item = Folder::onlyTrashed()
->where('user_id', $user_id) ->where('user_id', $user_id)
@@ -62,7 +61,6 @@ class TrashController extends Controller
$item->save(); $item->save();
} }
} else { } else {
// Get item // Get item
$item = File::onlyTrashed() $item = File::onlyTrashed()
->where('user_id', $user_id) ->where('user_id', $user_id)
@@ -105,7 +103,6 @@ class TrashController extends Controller
// Force delete files // Force delete files
foreach ($files as $file) { foreach ($files as $file) {
// Delete file // Delete file
Storage::delete("/files/$user_id/{$file->basename}"); Storage::delete("/files/$user_id/{$file->basename}");

View File

@@ -1,20 +1,19 @@
<?php <?php
namespace App\Http\Controllers\Sharing; namespace App\Http\Controllers\Sharing;
use App\Http\Controllers\Controller;
use App\Http\Requests\Share\AuthenticateShareRequest;
use App\Http\Resources\FileResource;
use App\Http\Resources\ShareResource;
use App\Models\File; use App\Models\File;
use App\Models\Folder;
use App\Models\Share; use App\Models\Share;
use App\Services\HelperService; use App\Models\Folder;
use Illuminate\Http\Request;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Http\Request;
use App\Services\HelperService;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use App\Http\Controllers\Controller;
use App\Http\Resources\FileResource;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use App\Http\Resources\ShareResource;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use App\Http\Requests\Share\AuthenticateShareRequest;
class BrowseShareController extends Controller class BrowseShareController extends Controller
{ {
@@ -38,27 +37,25 @@ class BrowseShareController extends Controller
} }
// Check if shared is image file and then show it // Check if shared is image file and then show it
if ($shared->type === 'file' && !$shared->is_protected) { if ($shared->type === 'file' && ! $shared->is_protected) {
$image = File::whereUserId($shared->user_id) $image = File::whereUserId($shared->user_id)
->whereType('image') ->whereType('image')
->whereId($shared->item_id) ->whereId($shared->item_id)
->first(); ->first();
if ($image) { if ($image) {
// Store user download size // Store user download size
$shared $shared
->user ->user
->record_download( ->record_download(
(int)$image->getRawOriginal('filesize') (int) $image->getRawOriginal('filesize')
); );
return $this->get_single_image($image, $shared->user_id); return $this->get_single_image($image, $shared->user_id);
} }
} }
return view("index") return view('index')
->with('installation', 'setup-done') ->with('installation', 'setup-done')
->with('settings', get_settings_in_json() ?? null); ->with('settings', get_settings_in_json() ?? null);
} }
@@ -74,9 +71,8 @@ class BrowseShareController extends Controller
{ {
// Check password // Check password
if (Hash::check($request->password, $shared->password)) { if (Hash::check($request->password, $shared->password)) {
$cookie = json_encode([ $cookie = json_encode([
'token' => $shared->token, 'token' => $shared->token,
'authenticated' => true, 'authenticated' => true,
]); ]);
@@ -151,7 +147,6 @@ class BrowseShareController extends Controller
// Filter files // Filter files
$files = $searched_files->filter(function ($file) use ($accessible_folder_ids, $shared) { $files = $searched_files->filter(function ($file) use ($accessible_folder_ids, $shared) {
// Set public urls // Set public urls
$file->setPublicUrl($shared->token); $file->setPublicUrl($shared->token);
@@ -161,7 +156,6 @@ class BrowseShareController extends Controller
// Filter folders // Filter folders
$folders = $searched_folders->filter(function ($folder) use ($accessible_folder_ids) { $folders = $searched_folders->filter(function ($folder) use ($accessible_folder_ids) {
// check if item is in accessible folders // check if item is in accessible folders
return in_array($folder->id, $accessible_folder_ids); return in_array($folder->id, $accessible_folder_ids);
}); });
@@ -194,11 +188,11 @@ class BrowseShareController extends Controller
return [ return [
[ [
'id' => $shared->item_id, 'id' => $shared->item_id,
'name' => __t('home'), 'name' => __t('home'),
'location' => 'public', 'location' => 'public',
'folders' => $folders, 'folders' => $folders,
] ],
]; ];
} }
@@ -240,13 +234,15 @@ class BrowseShareController extends Controller
$path = "/files/$user_id/$file->basename"; $path = "/files/$user_id/$file->basename";
// Check if file exist // Check if file exist
if (!Storage::exists($path)) abort(404); if (! Storage::exists($path)) {
abort(404);
}
return Storage::response($path, $file_pretty_name, [ return Storage::response($path, $file_pretty_name, [
"Content-Type" => Storage::mimeType($path), 'Content-Type' => Storage::mimeType($path),
"Content-Length" => Storage::size($path), 'Content-Length' => Storage::size($path),
"Accept-Ranges" => "bytes", 'Accept-Ranges' => 'bytes',
"Content-Range" => "bytes 0-600/" . Storage::size($path), 'Content-Range' => 'bytes 0-600/' . Storage::size($path),
]); ]);
} }
} }

View File

@@ -1,13 +1,11 @@
<?php <?php
namespace App\Http\Controllers\Sharing; namespace App\Http\Controllers\Sharing;
use App\Http\Controllers\Controller;
use App\Models\File as UserFile;
use App\Models\Share;
use App\Models\Zip; use App\Models\Zip;
use App\Models\Share;
use App\Services\HelperService; use App\Services\HelperService;
use Illuminate\Http\Request; use App\Models\File as UserFile;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
class FileSharedAccessController extends Controller class FileSharedAccessController extends Controller
@@ -42,11 +40,11 @@ class FileSharedAccessController extends Controller
return $disk return $disk
->download("zip/$zip->basename", $zip->basename, [ ->download("zip/$zip->basename", $zip->basename, [
"Content-Type" => 'application/zip', 'Content-Type' => 'application/zip',
"Content-Length" => $disk->size("zip/$zip->basename"), 'Content-Length' => $disk->size("zip/$zip->basename"),
"Accept-Ranges" => "bytes", 'Accept-Ranges' => 'bytes',
"Content-Range" => "bytes 0-600/" . $disk->size("zip/$zip->basename"), 'Content-Range' => 'bytes 0-600/' . $disk->size("zip/$zip->basename"),
"Content-Disposition" => "attachment; filename=" . $zip->basename, 'Content-Disposition' => 'attachment; filename=' . $zip->basename,
]); ]);
} }
@@ -74,7 +72,7 @@ class FileSharedAccessController extends Controller
$shared $shared
->user ->user
->record_download( ->record_download(
(int)$file->getRawOriginal('filesize') (int) $file->getRawOriginal('filesize')
); );
return $this->helper->download_file($file, $shared->user_id); return $this->helper->download_file($file, $shared->user_id);
@@ -104,7 +102,7 @@ class FileSharedAccessController extends Controller
$shared $shared
->user ->user
->record_download( ->record_download(
(int)$file->getRawOriginal('filesize') (int) $file->getRawOriginal('filesize')
); );
return $this->helper->download_thumbnail_file($file, $shared->user_id); return $this->helper->download_thumbnail_file($file, $shared->user_id);

View File

@@ -1,23 +1,21 @@
<?php <?php
namespace App\Http\Controllers\Sharing; namespace App\Http\Controllers\Sharing;
use App\Http\Controllers\Controller;
use App\Http\Requests\FileFunctions\CreateFolderRequest;
use App\Http\Requests\FileFunctions\DeleteItemRequest;
use App\Http\Requests\FileFunctions\MoveItemRequest;
use App\Http\Requests\FileFunctions\RenameItemRequest;
use App\Http\Requests\FileFunctions\UploadRequest;
use App\Models\File; use App\Models\File;
use App\Models\Folder;
use App\Models\Share; use App\Models\Share;
use App\Services\DemoService; use App\Models\Folder;
use App\Services\FileManagerService;
use App\Services\HelperService;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use App\Services\DemoService;
use App\Services\HelperService;
use App\Http\Controllers\Controller;
use App\Services\FileManagerService;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Routing\ResponseFactory;
use App\Http\Requests\FileFunctions\UploadRequest;
use App\Http\Requests\FileFunctions\MoveItemRequest;
use App\Http\Requests\FileFunctions\DeleteItemRequest;
use App\Http\Requests\FileFunctions\RenameItemRequest;
use App\Http\Requests\FileFunctions\CreateFolderRequest;
class ManipulateShareItemsController extends Controller class ManipulateShareItemsController extends Controller
{ {
@@ -123,7 +121,6 @@ class ManipulateShareItemsController extends Controller
{ {
abort_if(is_demo_account($shared->user->email), 204, 'Done.'); abort_if(is_demo_account($shared->user->email), 204, 'Done.');
// Check ability to access protected share record // Check ability to access protected share record
$this->helper->check_protected_share_record($shared); $this->helper->check_protected_share_record($shared);
@@ -133,7 +130,6 @@ class ManipulateShareItemsController extends Controller
} }
foreach ($request->items as $file) { foreach ($request->items as $file) {
// Get file|folder item // Get file|folder item
$item = get_item($file['type'], $file['id']); $item = get_item($file['type'], $file['id']);
@@ -205,22 +201,19 @@ class ManipulateShareItemsController extends Controller
} }
foreach ($request->items as $item) { foreach ($request->items as $item) {
if ($item['type'] === 'folder') { if ($item['type'] === 'folder') {
$this->helper->check_item_access([ $this->helper->check_item_access([
$request->to_id, $item['id'] $request->to_id, $item['id'],
], $shared); ], $shared);
} }
if ($item['type'] !== 'folder') { if ($item['type'] !== 'folder') {
$file = File::where('id', $item['id']) $file = File::where('id', $item['id'])
->where('user_id', $shared->user_id) ->where('user_id', $shared->user_id)
->firstOrFail(); ->firstOrFail();
$this->helper->check_item_access([ $this->helper->check_item_access([
$request->to_id, $file->folder_id $request->to_id, $file->folder_id,
], $shared); ], $shared);
} }
} }
@@ -250,7 +243,7 @@ class ManipulateShareItemsController extends Controller
$folder = Folder::whereUserId($shared->user_id) $folder = Folder::whereUserId($shared->user_id)
->where('id', $id); ->where('id', $id);
if (!$folder->exists()) { if (! $folder->exists()) {
abort(404, 'Requested folder doesn\'t exists.'); abort(404, 'Requested folder doesn\'t exists.');
} }
@@ -258,8 +251,8 @@ class ManipulateShareItemsController extends Controller
// Get file // Get file
return response([ return response([
'url' => route('zip_public', [ 'url' => route('zip_public', [
'id' => $zip->id, 'id' => $zip->id,
'token' => $shared->token, 'token' => $shared->token,
]), ]),
'name' => $zip->basename, 'name' => $zip->basename,
@@ -297,8 +290,8 @@ class ManipulateShareItemsController extends Controller
// Get file // Get file
return response([ return response([
'url' => route('zip_public', [ 'url' => route('zip_public', [
'id' => $zip->id, 'id' => $zip->id,
'token' => $shared->token, 'token' => $shared->token,
]), ]),
'name' => $zip->basename, 'name' => $zip->basename,

View File

@@ -1,11 +1,8 @@
<?php <?php
namespace App\Http\Controllers\Subscription; namespace App\Http\Controllers\Subscription;
use App\Services\StripeService;
use App\Models\Setting;
use App\Models\User; use App\Models\User;
use App\Services\StripeService;
use Laravel\Cashier\Http\Controllers\WebhookController as CashierController; use Laravel\Cashier\Http\Controllers\WebhookController as CashierController;
class StripeWebhookController extends CashierController class StripeWebhookController extends CashierController
@@ -39,7 +36,7 @@ class StripeWebhookController extends CashierController
$user $user
->settings() ->settings()
->update([ ->update([
'storage_capacity' => get_setting('storage_default') 'storage_capacity' => get_setting('storage_default'),
]); ]);
return $this->successMethod(); return $this->successMethod();
@@ -64,7 +61,7 @@ class StripeWebhookController extends CashierController
$user $user
->settings() ->settings()
->update([ ->update([
'storage_capacity' => $plan['product']['metadata']['capacity'] 'storage_capacity' => $plan['product']['metadata']['capacity'],
]); ]);
return $this->successMethod(); return $this->successMethod();

View File

@@ -1,18 +1,16 @@
<?php <?php
namespace App\Http\Controllers\User; namespace App\Http\Controllers\User;
use App\Http\Requests\User\UpdateUserPasswordRequest;
use App\Http\Resources\InvoiceCollection;
use App\Http\Resources\StorageDetailResource;
use App\Http\Resources\UserResource;
use App\Http\Resources\UserStorageResource;
use App\Services\DemoService;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Support\Facades\Validator;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Services\DemoService;
use App\Http\Controllers\Controller;
use App\Http\Resources\UserResource;
use Illuminate\Support\Facades\Auth;
use App\Http\Resources\InvoiceCollection;
use Illuminate\Support\Facades\Validator;
use App\Http\Resources\UserStorageResource;
use Illuminate\Contracts\Routing\ResponseFactory;
use App\Http\Requests\User\UpdateUserPasswordRequest;
class AccountController extends Controller class AccountController extends Controller
{ {
@@ -72,12 +70,14 @@ class AccountController extends Controller
// TODO: pridat validator do requestu // TODO: pridat validator do requestu
$validator = Validator::make($request->all(), [ $validator = Validator::make($request->all(), [
'avatar' => 'sometimes|file', 'avatar' => 'sometimes|file',
'name' => 'string', 'name' => 'string',
'value' => 'string', 'value' => 'string',
]); ]);
// Return error // Return error
if ($validator->fails()) abort(400, 'Bad input'); if ($validator->fails()) {
abort(400, 'Bad input');
}
// Get user // Get user
$user = Auth::user(); $user = Auth::user();
@@ -90,7 +90,7 @@ class AccountController extends Controller
$user $user
->settings() ->settings()
->update([ ->update([
'avatar' => store_avatar($request, 'avatar') 'avatar' => store_avatar($request, 'avatar'),
]); ]);
return response('Saved!', 204); return response('Saved!', 204);

View File

@@ -1,22 +1,20 @@
<?php <?php
namespace App\Http\Controllers\User; namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use App\Http\Requests\Payments\RegisterNewPaymentMethodRequest;
use App\Http\Resources\PaymentCardCollection;
use App\Http\Resources\PaymentCardResource;
use App\Http\Resources\PaymentDefaultCardResource;
use App\Services\DemoService;
use App\Services\StripeService;
use Auth; use Auth;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache; use App\Services\DemoService;
use App\Services\StripeService;
use Laravel\Cashier\PaymentMethod; use Laravel\Cashier\PaymentMethod;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Cache;
use App\Http\Resources\PaymentCardResource;
use App\Http\Resources\PaymentCardCollection;
use App\Http\Resources\PaymentDefaultCardResource;
use App\Http\Requests\Payments\RegisterNewPaymentMethodRequest;
class PaymentMethodsController extends Controller class PaymentMethodsController extends Controller
{ {
public function __construct(StripeService $stripe) public function __construct(StripeService $stripe)
{ {
$this->stripe = $stripe; $this->stripe = $stripe;
@@ -32,7 +30,7 @@ class PaymentMethodsController extends Controller
{ {
$user = Auth::user(); $user = Auth::user();
if (!$user->hasPaymentMethod()) { if (! $user->hasPaymentMethod()) {
return abort(204, 'User don\'t have any payment methods'); return abort(204, 'User don\'t have any payment methods');
} }
@@ -40,15 +38,11 @@ class PaymentMethodsController extends Controller
$slug_default_payment_method = 'default-payment-methods-user-' . $user->id; $slug_default_payment_method = 'default-payment-methods-user-' . $user->id;
if (Cache::has($slug_payment_methods) && Cache::has($slug_default_payment_method)) { if (Cache::has($slug_payment_methods) && Cache::has($slug_default_payment_method)) {
$defaultPaymentMethod = Cache::get($slug_default_payment_method); $defaultPaymentMethod = Cache::get($slug_default_payment_method);
$paymentMethodsMapped = Cache::get($slug_payment_methods); $paymentMethodsMapped = Cache::get($slug_payment_methods);
} else { } else {
// Get default payment method // Get default payment method
$defaultPaymentMethod = Cache::rememberForever($slug_default_payment_method, function () use ($user) { $defaultPaymentMethod = Cache::rememberForever($slug_default_payment_method, function () use ($user) {
$defaultPaymentMethodObject = $user->defaultPaymentMethod(); $defaultPaymentMethodObject = $user->defaultPaymentMethod();
return $defaultPaymentMethodObject instanceof PaymentMethod return $defaultPaymentMethodObject instanceof PaymentMethod
@@ -58,7 +52,6 @@ class PaymentMethodsController extends Controller
// filter payment methods without default payment // filter payment methods without default payment
$paymentMethodsMapped = Cache::rememberForever($slug_payment_methods, function () use ($defaultPaymentMethod, $user) { $paymentMethodsMapped = Cache::rememberForever($slug_payment_methods, function () use ($defaultPaymentMethod, $user) {
$paymentMethods = $user->paymentMethods()->filter(function ($paymentMethod) use ($defaultPaymentMethod) { $paymentMethods = $user->paymentMethods()->filter(function ($paymentMethod) use ($defaultPaymentMethod) {
return $paymentMethod->id !== $defaultPaymentMethod->id; return $paymentMethod->id !== $defaultPaymentMethod->id;
}); });
@@ -70,10 +63,10 @@ class PaymentMethodsController extends Controller
}); });
} }
if (!$user->card_brand || !$user->stripe_id || is_null($paymentMethodsMapped) && is_null($paymentMethodsMapped)) { if (! $user->card_brand || ! $user->stripe_id || is_null($paymentMethodsMapped) && is_null($paymentMethodsMapped)) {
return [ return [
'default' => null, 'default' => null,
'others' => [], 'others' => [],
]; ];
} }
@@ -81,7 +74,7 @@ class PaymentMethodsController extends Controller
'default' => $defaultPaymentMethod instanceof PaymentMethod 'default' => $defaultPaymentMethod instanceof PaymentMethod
? new PaymentCardResource($defaultPaymentMethod) ? new PaymentCardResource($defaultPaymentMethod)
: new PaymentDefaultCardResource($defaultPaymentMethod), : new PaymentDefaultCardResource($defaultPaymentMethod),
'others' => new PaymentCardCollection($paymentMethodsMapped), 'others' => new PaymentCardCollection($paymentMethodsMapped),
]; ];
} }
@@ -108,7 +101,7 @@ class PaymentMethodsController extends Controller
// Clear cached payment methods // Clear cached payment methods
cache_forget_many([ cache_forget_many([
'payment-methods-user-' . $user->id, 'payment-methods-user-' . $user->id,
'default-payment-methods-user-' . $user->id 'default-payment-methods-user-' . $user->id,
]); ]);
return response('Done', 204); return response('Done', 204);
@@ -159,7 +152,7 @@ class PaymentMethodsController extends Controller
// Clear cached payment methods // Clear cached payment methods
cache_forget_many([ cache_forget_many([
'payment-methods-user-' . $user->id, 'payment-methods-user-' . $user->id,
'default-payment-methods-user-' . $user->id 'default-payment-methods-user-' . $user->id,
]); ]);
return response('Done!', 204); return response('Done!', 204);

View File

@@ -1,19 +1,18 @@
<?php <?php
namespace App\Http\Controllers\User; namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use App\Http\Requests\Subscription\StoreUpgradeAccountRequest;
use App\Http\Resources\UserSubscription;
use App\Services\DemoService;
use App\Models\User;
use App\Services\StripeService;
use Auth; use Auth;
use App\Models\User;
use Stripe\SetupIntent;
use App\Services\DemoService;
use Illuminate\Http\Response;
use App\Services\StripeService;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Cache;
use App\Http\Resources\UserSubscription;
use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response; use App\Http\Requests\Subscription\StoreUpgradeAccountRequest;
use Illuminate\Support\Facades\Cache;
use Stripe\SetupIntent;
class SubscriptionController extends Controller class SubscriptionController extends Controller
{ {
@@ -34,7 +33,8 @@ class SubscriptionController extends Controller
public function setup_intent() public function setup_intent()
{ {
return response( return response(
$this->stripe->getSetupIntent(Auth::user()), 201 $this->stripe->getSetupIntent(Auth::user()),
201
); );
} }
@@ -47,7 +47,7 @@ class SubscriptionController extends Controller
{ {
$user = User::find(Auth::id()); $user = User::find(Auth::id());
if (!$user->subscription('main')) { if (! $user->subscription('main')) {
return abort(204, 'User don\'t have any subscription'); return abort(204, 'User don\'t have any subscription');
} }
@@ -97,7 +97,7 @@ class SubscriptionController extends Controller
// Update user storage limit // Update user storage limit
$user->settings()->update([ $user->settings()->update([
'storage_capacity' => $plan['product']['metadata']['capacity'] 'storage_capacity' => $plan['product']['metadata']['capacity'],
]); ]);
return response('Done!', 204); return response('Done!', 204);

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http; namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel; use Illuminate\Foundation\Http\Kernel as HttpKernel;

View File

@@ -1,9 +1,7 @@
<?php <?php
namespace App\Http\Mail; namespace App\Http\Mail;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware; use Illuminate\Auth\Middleware\Authenticate as Middleware;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode as Middleware; use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode as Middleware;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware; use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
@@ -12,6 +11,5 @@ class EncryptCookies extends Middleware
* @var array * @var array
*/ */
protected $except = [ protected $except = [
]; ];
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware; use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
@@ -12,6 +11,5 @@ class PreventRequestsDuringMaintenance extends Middleware
* @var array * @var array
*/ */
protected $except = [ protected $except = [
//
]; ];
} }

View File

@@ -1,8 +1,6 @@
<?php <?php
namespace App\Http\Middleware; namespace App\Http\Middleware;
use App\Providers\RouteServiceProvider;
use Closure; use Closure;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware; use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;

View File

@@ -1,9 +1,8 @@
<?php <?php
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Fideloper\Proxy\TrustProxies as Middleware;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;
class TrustProxies extends Middleware class TrustProxies extends Middleware
{ {

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

View File

@@ -1,12 +1,11 @@
<?php <?php
namespace App\Http\Notifications; namespace App\Http\Notifications;
use Laravel\Cashier\Payment;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use Laravel\Cashier\Payment;
class ConfirmPayment extends Notification implements ShouldQueue class ConfirmPayment extends Notification implements ShouldQueue
{ {

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Admin; namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,8 +23,8 @@ class ChangeRoleRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'attributes' => 'required|array', 'attributes' => 'required|array',
'attributes.role' => 'required|string' 'attributes.role' => 'required|string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Admin; namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,8 +23,8 @@ class ChangeStorageCapacityRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'attributes' => 'required|array', 'attributes' => 'required|array',
'attributes.storage_capacity' => 'required|digits_between:1,9' 'attributes.storage_capacity' => 'required|digits_between:1,9',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Admin; namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,12 +23,12 @@ class CreateUserByAdmin extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'email' => 'required|string|email|max:255|unique:users', 'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed', 'password' => 'required|string|min:6|confirmed',
'name' => 'required|string|max:255', 'name' => 'required|string|max:255',
'storage_capacity' => 'required|digits_between:1,9', 'storage_capacity' => 'required|digits_between:1,9',
'role' => 'required|string', 'role' => 'required|string',
'avatar' => 'sometimes|file', 'avatar' => 'sometimes|file',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Admin; namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Auth; namespace App\Http\Requests\Auth;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\FileBrowser; namespace App\Http\Requests\FileBrowser;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;

View File

@@ -1,9 +1,7 @@
<?php <?php
namespace App\Http\Requests\FileFunctions; namespace App\Http\Requests\FileFunctions;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
class CreateFolderRequest extends FormRequest class CreateFolderRequest extends FormRequest
{ {
@@ -26,7 +24,7 @@ class CreateFolderRequest extends FormRequest
{ {
return [ return [
'parent_id' => 'nullable|uuid', 'parent_id' => 'nullable|uuid',
'name' => 'required|string', 'name' => 'required|string',
]; ];
} }
} }

View File

@@ -1,9 +1,7 @@
<?php <?php
namespace App\Http\Requests\FileFunctions; namespace App\Http\Requests\FileFunctions;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
class DeleteItemRequest extends FormRequest class DeleteItemRequest extends FormRequest
{ {
@@ -26,8 +24,8 @@ class DeleteItemRequest extends FormRequest
{ {
return [ return [
'data[*].force_delete' => 'required|boolean', 'data[*].force_delete' => 'required|boolean',
'data[*].type' => 'required|string', 'data[*].type' => 'required|string',
'data[*].id' => 'required|integer' 'data[*].id' => 'required|integer',
]; ];
} }
} }

View File

@@ -1,9 +1,7 @@
<?php <?php
namespace App\Http\Requests\FileFunctions; namespace App\Http\Requests\FileFunctions;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
class MoveItemRequest extends FormRequest class MoveItemRequest extends FormRequest
{ {
@@ -25,9 +23,9 @@ class MoveItemRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'to_id' => 'nullable|uuid', 'to_id' => 'nullable|uuid',
'items[*].type' => 'required|string', 'items[*].type' => 'required|string',
'items[*].id' => 'required|uuid', 'items[*].id' => 'required|uuid',
]; ];
} }
} }

View File

@@ -1,9 +1,7 @@
<?php <?php
namespace App\Http\Requests\FileFunctions; namespace App\Http\Requests\FileFunctions;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
class RenameItemRequest extends FormRequest class RenameItemRequest extends FormRequest
{ {
@@ -25,8 +23,8 @@ class RenameItemRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'name' => 'required|string', 'name' => 'required|string',
'type' => 'required|string', 'type' => 'required|string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\FileFunctions; namespace App\Http\Requests\FileFunctions;
use App\Rules\DisabledMimetypes; use App\Rules\DisabledMimetypes;
@@ -26,7 +25,7 @@ class UploadRequest extends FormRequest
{ {
return [ return [
'folder_id' => 'nullable|uuid', 'folder_id' => 'nullable|uuid',
'file' => ['required', 'file', new DisabledMimetypes] 'file' => ['required', 'file', new DisabledMimetypes],
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Languages; namespace App\Http\Requests\Languages;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -25,7 +24,7 @@ class CreateLanguageRequest extends FormRequest
{ {
return [ return [
'name' => 'required|string', 'name' => 'required|string',
'locale' => 'required|string' 'locale' => 'required|string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Languages; namespace App\Http\Requests\Languages;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,8 +23,8 @@ class UpdateLanguageRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'name' => 'required|string', 'name' => 'required|string',
'value' => 'required|string' 'value' => 'required|string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Languages; namespace App\Http\Requests\Languages;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,8 +23,8 @@ class UpdateStringRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'name' => 'required|string', 'name' => 'required|string',
'value' => 'required|string' 'value' => 'required|string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Payments; namespace App\Http\Requests\Payments;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,8 +23,8 @@ class RegisterNewPaymentMethodRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'token' => 'required|string', 'token' => 'required|string',
'default' => 'required|boolean' 'default' => 'required|boolean',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\PublicPages; namespace App\Http\Requests\PublicPages;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,7 +23,7 @@ class SendContactMessageRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'email' => 'required|email', 'email' => 'required|email',
'message' => 'required|string', 'message' => 'required|string',
]; ];
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\SetupWizard; namespace App\Http\Requests\SetupWizard;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,15 +23,15 @@ class StoreAppSetupRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'title' => 'required|string', 'title' => 'required|string',
'description' => 'required|string', 'description' => 'required|string',
'logo' => 'sometimes|file', 'logo' => 'sometimes|file',
'logo_horizontal' => 'sometimes|file', 'logo_horizontal' => 'sometimes|file',
'favicon' => 'sometimes|file', 'favicon' => 'sometimes|file',
'contactMail' => 'required|email', 'contactMail' => 'required|email',
'googleAnalytics' => 'sometimes|string', 'googleAnalytics' => 'sometimes|string',
'defaultStorage' => 'sometimes|digits_between:1,9', 'defaultStorage' => 'sometimes|digits_between:1,9',
'userRegistration' => 'required|boolean', 'userRegistration' => 'required|boolean',
'storageLimitation' => 'required|boolean', 'storageLimitation' => 'required|boolean',
]; ];
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\SetupWizard; namespace App\Http\Requests\SetupWizard;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -25,11 +24,11 @@ class StoreDatabaseCredentialsRequest extends FormRequest
{ {
return [ return [
'connection' => 'required|string', 'connection' => 'required|string',
'host' => 'required|string', 'host' => 'required|string',
'port' => 'required|string', 'port' => 'required|string',
'name' => 'required|string', 'name' => 'required|string',
'username' => 'required|string', 'username' => 'required|string',
'password' => 'required|string', 'password' => 'required|string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\SetupWizard; namespace App\Http\Requests\SetupWizard;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,20 +23,20 @@ class StoreEnvironmentSetupRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'storage' => 'required|array', 'storage' => 'required|array',
'storage.driver' => 'required|string', 'storage.driver' => 'required|string',
'storage.key' => 'sometimes|nullable|string', 'storage.key' => 'sometimes|nullable|string',
'storage.secret' => 'sometimes|nullable|string', 'storage.secret' => 'sometimes|nullable|string',
'storage.endpoint' => 'sometimes|nullable|string', 'storage.endpoint' => 'sometimes|nullable|string',
'storage.region' => 'sometimes|nullable|string', 'storage.region' => 'sometimes|nullable|string',
'storage.bucket' => 'sometimes|nullable|string', 'storage.bucket' => 'sometimes|nullable|string',
'mail' => 'required|array', 'mail' => 'required|array',
'mail.driver' => 'required|string', 'mail.driver' => 'required|string',
'mail.host' => 'required|string', 'mail.host' => 'required|string',
'mail.port' => 'required|string', 'mail.port' => 'required|string',
'mail.username' => 'required|string', 'mail.username' => 'required|string',
'mail.password' => 'required|string', 'mail.password' => 'required|string',
'mail.encryption' => 'required|string', 'mail.encryption' => 'required|string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\SetupWizard; namespace App\Http\Requests\SetupWizard;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -25,13 +24,13 @@ class StoreStripeBillingRequest extends FormRequest
{ {
return [ return [
'billing_phone_number' => 'sometimes|nullable|string', 'billing_phone_number' => 'sometimes|nullable|string',
'billing_postal_code' => 'required|string', 'billing_postal_code' => 'required|string',
'billing_vat_number' => 'required|string', 'billing_vat_number' => 'required|string',
'billing_address' => 'required|string', 'billing_address' => 'required|string',
'billing_country' => 'required|string', 'billing_country' => 'required|string',
'billing_state' => 'required|string', 'billing_state' => 'required|string',
'billing_city' => 'required|string', 'billing_city' => 'required|string',
'billing_name' => 'required|string', 'billing_name' => 'required|string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\SetupWizard; namespace App\Http\Requests\SetupWizard;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,10 +23,10 @@ class StoreStripeCredentialsRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'currency' => 'required|string', 'currency' => 'required|string',
'webhookSecret' => 'required|string', 'webhookSecret' => 'required|string',
'secret' => 'required|string', 'secret' => 'required|string',
'key' => 'required|string', 'key' => 'required|string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\SetupWizard; namespace App\Http\Requests\SetupWizard;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -24,12 +23,12 @@ class StoreStripePlansRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'plans' => 'required|array', 'plans' => 'required|array',
'plans.*.type' => 'required|string', 'plans.*.type' => 'required|string',
'plans.*.attributes.name' => 'required|string', 'plans.*.attributes.name' => 'required|string',
'plans.*.attributes.price' => 'required|string', 'plans.*.attributes.price' => 'required|string',
'plans.*.attributes.description' => 'sometimes|nullable|string', 'plans.*.attributes.description' => 'sometimes|nullable|string',
'plans.*.attributes.capacity' => 'required|digits_between:1,9', 'plans.*.attributes.capacity' => 'required|digits_between:1,9',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Share; namespace App\Http\Requests\Share;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;

View File

@@ -1,9 +1,8 @@
<?php <?php
namespace App\Http\Requests\Share; namespace App\Http\Requests\Share;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Foundation\Http\FormRequest;
class CreateShareRequest extends FormRequest class CreateShareRequest extends FormRequest
{ {
@@ -26,11 +25,11 @@ class CreateShareRequest extends FormRequest
{ {
return [ return [
'isPassword' => 'required|boolean', 'isPassword' => 'required|boolean',
'type' => 'required|string', 'type' => 'required|string',
'expiration' => 'integer|nullable', 'expiration' => 'integer|nullable',
'permission' => 'string', 'permission' => 'string',
'password' => 'string', 'password' => 'string',
'emails.*' => 'email' 'emails.*' => 'email',
]; ];
} }
} }

View File

@@ -1,9 +1,8 @@
<?php <?php
namespace App\Http\Requests\Share; namespace App\Http\Requests\Share;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Foundation\Http\FormRequest;
class UpdateShareRequest extends FormRequest class UpdateShareRequest extends FormRequest
{ {
@@ -25,10 +24,10 @@ class UpdateShareRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'protected' => 'required|boolean', 'protected' => 'required|boolean',
'permission' => 'nullable|string', 'permission' => 'nullable|string',
'expiration' => 'integer|nullable', 'expiration' => 'integer|nullable',
'password' => 'string', 'password' => 'string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\Subscription; namespace App\Http\Requests\Subscription;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -25,32 +24,32 @@ class StoreUpgradeAccountRequest extends FormRequest
{ {
return [ return [
// Billings // Billings
'billing' => 'required|array', 'billing' => 'required|array',
'billing.billing_address' => 'required|string', 'billing.billing_address' => 'required|string',
'billing.billing_city' => 'required|string', 'billing.billing_city' => 'required|string',
'billing.billing_country' => 'required|string', 'billing.billing_country' => 'required|string',
'billing.billing_name' => 'required|string', 'billing.billing_name' => 'required|string',
'billing.billing_phone_number' => 'required|string', 'billing.billing_phone_number' => 'required|string',
'billing.billing_postal_code' => 'required|string', 'billing.billing_postal_code' => 'required|string',
'billing.billing_state' => 'required|string', 'billing.billing_state' => 'required|string',
// Payment // Payment
'payment' => 'required|array', 'payment' => 'required|array',
'payment.type' => 'required|string', 'payment.type' => 'required|string',
'payment.meta' => 'required|sometimes|array', 'payment.meta' => 'required|sometimes|array',
'payment.meta.pm' => 'required|sometimes|string', 'payment.meta.pm' => 'required|sometimes|string',
// Plan // Plan
'plan.data' => 'required|array', 'plan.data' => 'required|array',
'plan.data.attributes' => 'required|array', 'plan.data.attributes' => 'required|array',
'plan.data.attributes.capacity' => 'required|digits_between:1,9', 'plan.data.attributes.capacity' => 'required|digits_between:1,9',
'plan.data.attributes.capacity_formatted' => 'required|string', 'plan.data.attributes.capacity_formatted' => 'required|string',
'plan.data.attributes.currency' => 'required|string', 'plan.data.attributes.currency' => 'required|string',
'plan.data.attributes.description' => 'sometimes|string|nullable', 'plan.data.attributes.description' => 'sometimes|string|nullable',
'plan.data.attributes.name' => 'required|string', 'plan.data.attributes.name' => 'required|string',
'plan.data.attributes.price' => 'required|string', 'plan.data.attributes.price' => 'required|string',
'plan.data.id' => 'required|string', 'plan.data.id' => 'required|string',
'plan.data.type' => 'required|string', 'plan.data.type' => 'required|string',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Requests\User; namespace App\Http\Requests\User;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
@@ -16,19 +15,19 @@ class FileResource extends JsonResource
{ {
return [ return [
'data' => [ 'data' => [
'id' => $this->id, 'id' => $this->id,
'type' => 'file', 'type' => 'file',
'attributes' => [ 'attributes' => [
'name' => $this->name, 'name' => $this->name,
'basename' => $this->basename, 'basename' => $this->basename,
'mimetype' => $this->mimetype, 'mimetype' => $this->mimetype,
'filesize' => $this->filesize, 'filesize' => $this->filesize,
'type' => $this->type, 'type' => $this->type,
'file_url' => $this->file_url, 'file_url' => $this->file_url,
'thumbnail' => $this->thumbnail, 'thumbnail' => $this->thumbnail,
'created_at' => $this->created_at, 'created_at' => $this->created_at,
'updated_at' => $this->created_at, 'updated_at' => $this->created_at,
] ],
], ],
]; ];
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Resources\Json\ResourceCollection;

View File

@@ -1,10 +1,9 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use App\Models\User; use App\Models\User;
use Illuminate\Http\Resources\Json\JsonResource;
use Laravel\Cashier\Cashier; use Laravel\Cashier\Cashier;
use Illuminate\Http\Resources\Json\JsonResource;
class InvoiceAdminResource extends JsonResource class InvoiceAdminResource extends JsonResource
{ {
@@ -21,43 +20,43 @@ class InvoiceAdminResource extends JsonResource
return [ return [
'data' => [ 'data' => [
'id' => $this['id'], 'id' => $this['id'],
'type' => 'invoices', 'type' => 'invoices',
'attributes' => [ 'attributes' => [
'customer' => $this['customer'], 'customer' => $this['customer'],
'total' => Cashier::formatAmount($this['total']), 'total' => Cashier::formatAmount($this['total']),
'currency' => $this['currency'], 'currency' => $this['currency'],
'created_at_formatted' => format_date($this['created']), 'created_at_formatted' => format_date($this['created']),
'created_at' => $this['created'], 'created_at' => $this['created'],
'order' => $this['number'], 'order' => $this['number'],
'user_id' => $user->id ?? null, 'user_id' => $user->id ?? null,
'client' => [ 'client' => [
'billing_address' => $this['customer_address'], 'billing_address' => $this['customer_address'],
'billing_name' => $this['customer_name'], 'billing_name' => $this['customer_name'],
'billing_phone_number' => $this['customer_phone'], 'billing_phone_number' => $this['customer_phone'],
], ],
'bag' => [ 'bag' => [
'amount' => $this['lines']['data'][0]['amount'], 'amount' => $this['lines']['data'][0]['amount'],
'currency' => $this['lines']['data'][0]['currency'], 'currency' => $this['lines']['data'][0]['currency'],
'type' => $this['lines']['data'][0]['type'], 'type' => $this['lines']['data'][0]['type'],
'description' => $this['lines']['data'][0]['description'], 'description' => $this['lines']['data'][0]['description'],
], ],
'seller' => null, 'seller' => null,
], ],
$this->mergeWhen($user, function () use ($user) { $this->mergeWhen($user, function () use ($user) {
return [ return [
'relationships' => [ 'relationships' => [
'user' => [ 'user' => [
'data' => [ 'data' => [
'id' => $user->id, 'id' => $user->id,
'type' => 'user', 'type' => 'user',
'attributes' => [ 'attributes' => [
'name' => $user->settings->name, 'name' => $user->settings->name,
'avatar' => $user->settings->avatar, 'avatar' => $user->settings->avatar,
] ],
] ],
] ],
] ],
]; ];
}), }),
], ],

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Resources\Json\ResourceCollection;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use App\Models\User; use App\Models\User;
@@ -20,38 +19,38 @@ class InvoiceResource extends JsonResource
return [ return [
'data' => [ 'data' => [
'id' => $this->id, 'id' => $this->id,
'type' => 'invoices', 'type' => 'invoices',
'attributes' => [ 'attributes' => [
'customer' => $this->customer, 'customer' => $this->customer,
'total' => $this->total(), 'total' => $this->total(),
'currency' => $this->currency, 'currency' => $this->currency,
'created_at_formatted' => format_date($this->date(), '%d. %B. %Y'), 'created_at_formatted' => format_date($this->date(), '%d. %B. %Y'),
'created_at' => $this->created, 'created_at' => $this->created,
'order' => $this->number, 'order' => $this->number,
'user_id' => $user->id ?? null, 'user_id' => $user->id ?? null,
'client' => [ 'client' => [
'billing_address' => $this->customer_address, 'billing_address' => $this->customer_address,
'billing_name' => $this->customer_name, 'billing_name' => $this->customer_name,
'billing_phone_number' => $this->customer_phone, 'billing_phone_number' => $this->customer_phone,
], ],
'seller' => null, 'seller' => null,
'invoice_items' => $this->get_invoice_items(), 'invoice_items' => $this->get_invoice_items(),
'invoice_subscriptions' => $this->get_invoice_subscriptions(), 'invoice_subscriptions' => $this->get_invoice_subscriptions(),
], ],
$this->mergeWhen($user, [ $this->mergeWhen($user, [
'relationships' => [ 'relationships' => [
'user' => [ 'user' => [
'data' => [ 'data' => [
'id' => $user->id, 'id' => $user->id,
'type' => 'user', 'type' => 'user',
'attributes' => [ 'attributes' => [
'name' => $user->settings->name, 'name' => $user->settings->name,
'avatar' => $user->settings->avatar, 'avatar' => $user->settings->avatar,
] ],
] ],
] ],
] ],
]), ]),
], ],
]; ];
@@ -66,10 +65,10 @@ class InvoiceResource extends JsonResource
foreach ($this->subscriptions() as $item) { foreach ($this->subscriptions() as $item) {
array_push($array, [ array_push($array, [
'amount' => $item->total(), 'amount' => $item->total(),
'description' => $item->description, 'description' => $item->description,
'currency' => $item->currency, 'currency' => $item->currency,
'type' => $item->type, 'type' => $item->type,
]); ]);
} }
@@ -85,10 +84,10 @@ class InvoiceResource extends JsonResource
foreach ($this->invoiceItems() as $item) { foreach ($this->invoiceItems() as $item) {
array_push($array, [ array_push($array, [
'amount' => $item->total(), 'amount' => $item->total(),
'description' => $item->description, 'description' => $item->description,
'currency' => $item->currency, 'currency' => $item->currency,
'type' => $item->type, 'type' => $item->type,
]); ]);
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use App\Models\Language; use App\Models\Language;
@@ -24,8 +23,8 @@ class LanguageCollection extends ResourceCollection
return [ return [
'data' => $this->collection, 'data' => $this->collection,
'meta' => [ 'meta' => [
'current_language' => new LanguageResource($current_language), 'current_language' => new LanguageResource($current_language),
'reference_translations' => get_default_language_translations() 'reference_translations' => get_default_language_translations(),
], ],
]; ];
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
@@ -16,15 +15,15 @@ class LanguageResource extends JsonResource
{ {
return [ return [
'data' => [ 'data' => [
'id' => $this->id, 'id' => $this->id,
'type' => 'languages', 'type' => 'languages',
'attributes' => [ 'attributes' => [
'name' => $this->name, 'name' => $this->name,
'locale' => $this->locale, 'locale' => $this->locale,
'translations' => map_language_translations($this->languageTranslations), 'translations' => map_language_translations($this->languageTranslations),
'updated_at' => $this->updated_at, 'updated_at' => $this->updated_at,
'created_at' => $this->created_at, 'created_at' => $this->created_at,
] ],
], ],
]; ];
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Resources\Json\ResourceCollection;

View File

@@ -1,8 +1,6 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use App\Models\Page;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
class PageResource extends JsonResource class PageResource extends JsonResource
@@ -17,15 +15,15 @@ class PageResource extends JsonResource
{ {
return [ return [
'data' => [ 'data' => [
'id' => $this->slug, 'id' => $this->slug,
'type' => 'pages', 'type' => 'pages',
'attributes' => [ 'attributes' => [
'visibility' => $this->visibility, 'visibility' => $this->visibility,
'title' => $this->title, 'title' => $this->title,
'slug' => $this->slug, 'slug' => $this->slug,
'content' => $this->content, 'content' => $this->content,
'content_formatted' => add_paragraphs($this->content), 'content_formatted' => add_paragraphs($this->content),
] ],
], ],
]; ];
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Resources\Json\ResourceCollection;

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
@@ -16,20 +15,20 @@ class PaymentCardResource extends JsonResource
{ {
return [ return [
'data' => [ 'data' => [
'id' => (string)$this['id'], 'id' => (string) $this['id'],
'type' => 'payment_method', 'type' => 'payment_method',
'attributes' => [ 'attributes' => [
'provider' => 'stripe', 'provider' => 'stripe',
'card_id' => $this['id'], 'card_id' => $this['id'],
'brand' => strtolower($this['card']['brand']), 'brand' => strtolower($this['card']['brand']),
'last4' => $this['card']['last4'], 'last4' => $this['card']['last4'],
'exp_month' => $this['card']['exp_month'], 'exp_month' => $this['card']['exp_month'],
'exp_year' => $this['card']['exp_year'], 'exp_year' => $this['card']['exp_year'],
'created_at' => format_date($this['created_at'], '%d. %B. %Y'), 'created_at' => format_date($this['created_at'], '%d. %B. %Y'),
'status' => 'active', 'status' => 'active',
'default' => 0, 'default' => 0,
] ],
] ],
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
@@ -16,20 +15,20 @@ class PaymentDefaultCardResource extends JsonResource
{ {
return [ return [
'data' => [ 'data' => [
'id' => (string)$this['id'], 'id' => (string) $this['id'],
'type' => 'payment_method', 'type' => 'payment_method',
'attributes' => [ 'attributes' => [
'provider' => 'stripe', 'provider' => 'stripe',
'card_id' => $this['id'], 'card_id' => $this['id'],
'brand' => isset($this['brand']) ? strtolower($this['brand']) : strtolower($this['card']['brand']), 'brand' => isset($this['brand']) ? strtolower($this['brand']) : strtolower($this['card']['brand']),
'last4' => isset($this['last4']) ? $this['last4'] : $this['card']['last4'], 'last4' => isset($this['last4']) ? $this['last4'] : $this['card']['last4'],
'exp_month' => isset($this['exp_month']) ? $this['exp_month'] : $this['card']['exp_month'], 'exp_month' => isset($this['exp_month']) ? $this['exp_month'] : $this['card']['exp_month'],
'exp_year' => isset($this['exp_year']) ? $this['exp_year'] : $this['card']['exp_year'], 'exp_year' => isset($this['exp_year']) ? $this['exp_year'] : $this['card']['exp_year'],
'created_at' => format_date($this['created_at'], '%d. %B. %Y'), 'created_at' => format_date($this['created_at'], '%d. %B. %Y'),
'status' => 'active', 'status' => 'active',
'default' => 0, 'default' => 0,
] ],
] ],
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Resources\Json\ResourceCollection;

View File

@@ -1,10 +1,9 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
use Laravel\Cashier\Cashier; use Laravel\Cashier\Cashier;
use Laravel\Cashier\Subscription; use Laravel\Cashier\Subscription;
use Illuminate\Http\Resources\Json\JsonResource;
class PlanResource extends JsonResource class PlanResource extends JsonResource
{ {
@@ -21,21 +20,21 @@ class PlanResource extends JsonResource
return [ return [
'data' => [ 'data' => [
'id' => $this['plan']['id'], 'id' => $this['plan']['id'],
'type' => 'plans', 'type' => 'plans',
'attributes' => [ 'attributes' => [
'subscribers' => $subscriber_count->count(), 'subscribers' => $subscriber_count->count(),
'status' => $this['plan']['active'] ? 1 : 0, 'status' => $this['plan']['active'] ? 1 : 0,
'name' => $this['product']['name'], 'name' => $this['product']['name'],
'description' => $this['product']['description'], 'description' => $this['product']['description'],
'price' => $this['plan']['amount'], 'price' => $this['plan']['amount'],
'price_formatted' => Cashier::formatAmount($this['plan']['amount']), 'price_formatted' => Cashier::formatAmount($this['plan']['amount']),
'capacity_formatted' => format_gigabytes($this['product']['metadata']['capacity']), 'capacity_formatted' => format_gigabytes($this['product']['metadata']['capacity']),
'capacity' => (int) $this['product']['metadata']['capacity'], 'capacity' => (int) $this['product']['metadata']['capacity'],
'created_at_formatted' => format_date($this['plan']['created']), 'created_at_formatted' => format_date($this['plan']['created']),
'created_at' => $this['plan']['created'], 'created_at' => $this['plan']['created'],
] ],
] ],
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Resources\Json\ResourceCollection;

View File

@@ -1,10 +1,9 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Laravel\Cashier\Cashier;
use App\Services\StripeService; use App\Services\StripeService;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
use Laravel\Cashier\Cashier;
class PricingResource extends JsonResource class PricingResource extends JsonResource
{ {
@@ -18,18 +17,18 @@ class PricingResource extends JsonResource
{ {
return [ return [
'data' => [ 'data' => [
'id' => $this['plan']['id'], 'id' => $this['plan']['id'],
'type' => 'plans', 'type' => 'plans',
'attributes' => [ 'attributes' => [
'name' => $this['product']['name'], 'name' => $this['product']['name'],
'description' => $this['product']['description'], 'description' => $this['product']['description'],
'price' => Cashier::formatAmount($this['plan']['amount']), 'price' => Cashier::formatAmount($this['plan']['amount']),
'capacity_formatted' => format_gigabytes($this['product']['metadata']['capacity']), 'capacity_formatted' => format_gigabytes($this['product']['metadata']['capacity']),
'capacity' => (int)$this['product']['metadata']['capacity'], 'capacity' => (int) $this['product']['metadata']['capacity'],
'currency' => config('cashier.currency'), 'currency' => config('cashier.currency'),
'tax_rates' => resolve(StripeService::class)->get_tax_rates($this['plan']['amount']) 'tax_rates' => resolve(StripeService::class)->get_tax_rates($this['plan']['amount']),
] ],
] ],
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
@@ -16,20 +15,20 @@ class ShareResource extends JsonResource
{ {
return [ return [
'data' => [ 'data' => [
'id' => (string)$this->id, 'id' => (string) $this->id,
'type' => 'shares', 'type' => 'shares',
'attributes' => [ 'attributes' => [
'permission' => $this->permission, 'permission' => $this->permission,
'is_protected' => $this->is_protected, 'is_protected' => $this->is_protected,
'item_id' => $this->item_id, 'item_id' => $this->item_id,
'expire_in' => (int)$this->expire_in, 'expire_in' => (int) $this->expire_in,
'token' => $this->token, 'token' => $this->token,
'link' => $this->link, 'link' => $this->link,
'type' => $this->type, 'type' => $this->type,
'created_at' => $this->created_at, 'created_at' => $this->created_at,
'updated_at' => $this->updated_at, 'updated_at' => $this->updated_at,
] ],
] ],
]; ];
} }
} }

View File

@@ -1,11 +1,6 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use App\Services\StripeService;
use App\Models\User;
use Cartalyst\Stripe\Api\PaymentMethods;
use Faker\Factory;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource class UserResource extends JsonResource
@@ -21,49 +16,49 @@ class UserResource extends JsonResource
// TODO: zrefaktorovat // TODO: zrefaktorovat
return [ return [
'data' => [ 'data' => [
'id' => $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' => is_demo() ? obfuscate_email($this->email) : $this->email, 'email' => is_demo() ? obfuscate_email($this->email) : $this->email,
'role' => $this->role, 'role' => $this->role,
'folders' => $this->folder_tree, 'folders' => $this->folder_tree,
'storage' => $this->storage, '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' => [ 'relationships' => [
'settings' => [ 'settings' => [
'data' => [ 'data' => [
'id' => $this->id, 'id' => $this->id,
'type' => 'settings', 'type' => 'settings',
'attributes' => [ 'attributes' => [
'avatar' => $this->settings->avatar, 'avatar' => $this->settings->avatar,
'name' => $this->settings->name, 'name' => $this->settings->name,
'address' => $this->settings->address, 'address' => $this->settings->address,
'state' => $this->settings->state, 'state' => $this->settings->state,
'city' => $this->settings->city, 'city' => $this->settings->city,
'postal_code' => $this->settings->postal_code, 'postal_code' => $this->settings->postal_code,
'country' => $this->settings->country, 'country' => $this->settings->country,
'phone_number' => $this->settings->phone_number, 'phone_number' => $this->settings->phone_number,
'timezone' => $this->settings->timezone 'timezone' => $this->settings->timezone,
] ],
] ],
], ],
'favourites' => [ 'favourites' => [
'data' => [ 'data' => [
'id' => $this->id, 'id' => $this->id,
'type' => 'favourite_folders', 'type' => 'favourite_folders',
'attributes' => [ 'attributes' => [
'folders' => $this->favouriteFolders->makeHidden(['pivot']) 'folders' => $this->favouriteFolders->makeHidden(['pivot']),
], ],
], ],
] ],
] ],
], ],
]; ];
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use App\Models\File; use App\Models\File;
@@ -17,31 +16,31 @@ class UserStorageResource extends JsonResource
public function toArray($request) public function toArray($request)
{ {
$document_mimetypes = [ $document_mimetypes = [
'pdf', 'numbers', 'xlsx', 'xls', 'txt', 'md', 'rtf', 'pptx', 'ppt', 'odt', 'ods', 'odp', 'epub', 'docx', 'doc', 'csv', 'pages' 'pdf', 'numbers', 'xlsx', 'xls', 'txt', 'md', 'rtf', 'pptx', 'ppt', 'odt', 'ods', 'odp', 'epub', 'docx', 'doc', 'csv', 'pages',
]; ];
// Get all images // Get all images
$images = File::where('user_id', $this->id) $images = File::where('user_id', $this->id)
->where('type', 'image')->get()->map(function ($item) { ->where('type', 'image')->get()->map(function ($item) {
return (int)$item->getRawOriginal('filesize'); return (int) $item->getRawOriginal('filesize');
})->sum(); })->sum();
// Get all audios // Get all audios
$audios = File::where('user_id', $this->id) $audios = File::where('user_id', $this->id)
->where('type', 'audio')->get()->map(function ($item) { ->where('type', 'audio')->get()->map(function ($item) {
return (int)$item->getRawOriginal('filesize'); return (int) $item->getRawOriginal('filesize');
})->sum(); })->sum();
// Get all videos // Get all videos
$videos = File::where('user_id', $this->id) $videos = File::where('user_id', $this->id)
->where('type', 'video')->get()->map(function ($item) { ->where('type', 'video')->get()->map(function ($item) {
return (int)$item->getRawOriginal('filesize'); return (int) $item->getRawOriginal('filesize');
})->sum(); })->sum();
// Get all documents // Get all documents
$documents = File::where('user_id', $this->id) $documents = File::where('user_id', $this->id)
->whereIn('mimetype', $document_mimetypes)->get()->map(function ($item) { ->whereIn('mimetype', $document_mimetypes)->get()->map(function ($item) {
return (int)$item->getRawOriginal('filesize'); return (int) $item->getRawOriginal('filesize');
})->sum(); })->sum();
// Get all other files // Get all other files
@@ -49,41 +48,41 @@ class UserStorageResource extends JsonResource
->whereNotIn('mimetype', $document_mimetypes) ->whereNotIn('mimetype', $document_mimetypes)
->whereNotIn('type', ['audio', 'video', 'image']) ->whereNotIn('type', ['audio', 'video', 'image'])
->get()->map(function ($item) { ->get()->map(function ($item) {
return (int)$item->getRawOriginal('filesize'); return (int) $item->getRawOriginal('filesize');
})->sum(); })->sum();
return [ return [
'data' => [ 'data' => [
'id' => (string)$this->id, 'id' => (string) $this->id,
'type' => 'storage', 'type' => 'storage',
'attributes' => [ 'attributes' => [
'used' => Metric::bytes($this->used_capacity)->format(), 'used' => Metric::bytes($this->used_capacity)->format(),
'capacity' => format_gigabytes($this->settings->storage_capacity), 'capacity' => format_gigabytes($this->settings->storage_capacity),
'percentage' => (float)get_storage_fill_percentage($this->used_capacity, $this->settings->storage_capacity), 'percentage' => (float) get_storage_fill_percentage($this->used_capacity, $this->settings->storage_capacity),
], ],
'meta' => [ 'meta' => [
'images' => [ 'images' => [
'used' => Metric::bytes($images)->format(), 'used' => Metric::bytes($images)->format(),
'percentage' => (float)get_storage_fill_percentage($images, $this->settings->storage_capacity), 'percentage' => (float) get_storage_fill_percentage($images, $this->settings->storage_capacity),
], ],
'audios' => [ 'audios' => [
'used' => Metric::bytes($audios)->format(), 'used' => Metric::bytes($audios)->format(),
'percentage' => (float)get_storage_fill_percentage($audios, $this->settings->storage_capacity), 'percentage' => (float) get_storage_fill_percentage($audios, $this->settings->storage_capacity),
], ],
'videos' => [ 'videos' => [
'used' => Metric::bytes($videos)->format(), 'used' => Metric::bytes($videos)->format(),
'percentage' => (float)get_storage_fill_percentage($videos, $this->settings->storage_capacity), 'percentage' => (float) get_storage_fill_percentage($videos, $this->settings->storage_capacity),
], ],
'documents' => [ 'documents' => [
'used' => Metric::bytes($documents)->format(), 'used' => Metric::bytes($documents)->format(),
'percentage' => (float)get_storage_fill_percentage($documents, $this->settings->storage_capacity), 'percentage' => (float) get_storage_fill_percentage($documents, $this->settings->storage_capacity),
], ],
'others' => [ 'others' => [
'used' => Metric::bytes($others)->format(), 'used' => Metric::bytes($others)->format(),
'percentage' => (float)get_storage_fill_percentage($others, $this->settings->storage_capacity), 'percentage' => (float) get_storage_fill_percentage($others, $this->settings->storage_capacity),
], ],
] ],
] ],
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
@@ -23,21 +22,21 @@ class UserSubscription extends JsonResource
return [ return [
'data' => [ 'data' => [
'id' => $subscription['plan']['id'], 'id' => $subscription['plan']['id'],
'type' => 'subscription', 'type' => 'subscription',
'attributes' => [ 'attributes' => [
'incomplete' => $this->subscription('main')->incomplete(), 'incomplete' => $this->subscription('main')->incomplete(),
'active' => $this->subscription('main')->active(), 'active' => $this->subscription('main')->active(),
'canceled' => $this->subscription('main')->cancelled(), 'canceled' => $this->subscription('main')->cancelled(),
'name' => $subscription['product']['name'], 'name' => $subscription['product']['name'],
'capacity' => (int)$subscription['product']['metadata']['capacity'], 'capacity' => (int) $subscription['product']['metadata']['capacity'],
'capacity_formatted' => format_gigabytes($subscription['product']['metadata']['capacity']), 'capacity_formatted' => format_gigabytes($subscription['product']['metadata']['capacity']),
'slug' => $subscription['plan']['id'], 'slug' => $subscription['plan']['id'],
'canceled_at' => format_date($active_subscription["canceled_at"], '%d. %B. %Y'), 'canceled_at' => format_date($active_subscription['canceled_at'], '%d. %B. %Y'),
'created_at' => format_date($active_subscription["current_period_start"], '%d. %B. %Y'), 'created_at' => format_date($active_subscription['current_period_start'], '%d. %B. %Y'),
'ends_at' => format_date($active_subscription["current_period_end"], '%d. %B. %Y'), 'ends_at' => format_date($active_subscription['current_period_end'], '%d. %B. %Y'),
] ],
] ],
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace App\Http\Resources; namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Resources\Json\ResourceCollection;

View File

@@ -1,19 +1,18 @@
<?php <?php
use Carbon\Carbon;
use App\Models\File; use App\Models\File;
use App\Models\Folder;
use App\Models\Setting;
use App\Models\User; use App\Models\User;
use App\Models\Share; use App\Models\Share;
use App\Models\Language;
use App\Models\LanguageTranslation;
use ByteUnits\Metric; use ByteUnits\Metric;
use Carbon\Carbon; use App\Models\Folder;
use App\Models\Setting;
use App\Models\Language;
use Illuminate\Support\Str;
use Illuminate\Support\Collection;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Intervention\Image\ImageManagerStatic as Image; use Intervention\Image\ImageManagerStatic as Image;
/** /**
@@ -24,11 +23,11 @@ use Intervention\Image\ImageManagerStatic as Image;
*/ */
function obfuscate_email($email) function obfuscate_email($email)
{ {
$em = explode("@", $email); $em = explode('@', $email);
$name = implode('@', array_slice($em, 0, count($em) - 1)); $name = implode('@', array_slice($em, 0, count($em) - 1));
$len = floor(strlen($name) / 2); $len = floor(strlen($name) / 2);
return substr($name, 0, $len) . str_repeat('*', $len) . "@" . end($em); return substr($name, 0, $len) . str_repeat('*', $len) . '@' . end($em);
} }
/** /**
@@ -75,17 +74,19 @@ function get_setup_status()
function add_paragraphs($str) function add_paragraphs($str)
{ {
// Trim whitespace // Trim whitespace
if (($str = trim($str)) === '') return ''; if (($str = trim($str)) === '') {
return '';
}
// Standardize newlines // Standardize newlines
$str = str_replace(array("\r\n", "\r"), "\n", $str); $str = str_replace(["\r\n", "\r"], "\n", $str);
// Trim whitespace on each line // Trim whitespace on each line
$str = preg_replace('~^[ \t]+~m', '', $str); $str = preg_replace('~^[ \t]+~m', '', $str);
$str = preg_replace('~[ \t]+$~m', '', $str); $str = preg_replace('~[ \t]+$~m', '', $str);
// The following regexes only need to be executed if the string contains html // The following regexes only need to be executed if the string contains html
if ($html_found = (strpos($str, '<') !== FALSE)) { if ($html_found = (strpos($str, '<') !== false)) {
// Elements that should not be surrounded by p tags // Elements that should not be surrounded by p tags
$no_p = '(?:p|div|article|header|aside|hgroup|canvas|output|progress|section|figcaption|audio|video|nav|figure|footer|video|details|main|menu|summary|h[1-6r]|ul|ol|li|blockquote|d[dlt]|pre|t[dhr]|t(?:able|body|foot|head)|c(?:aption|olgroup)|form|s(?:elect|tyle)|a(?:ddress|rea)|ma(?:p|th))'; $no_p = '(?:p|div|article|header|aside|hgroup|canvas|output|progress|section|figcaption|audio|video|nav|figure|footer|video|details|main|menu|summary|h[1-6r]|ul|ol|li|blockquote|d[dlt]|pre|t[dhr]|t(?:able|body|foot|head)|c(?:aption|olgroup)|form|s(?:elect|tyle)|a(?:ddress|rea)|ma(?:p|th))';
@@ -99,7 +100,7 @@ function add_paragraphs($str)
$str = preg_replace('~\n{2,}~', "</p>\n\n<p>", $str); $str = preg_replace('~\n{2,}~', "</p>\n\n<p>", $str);
// The following regexes only need to be executed if the string contains html // The following regexes only need to be executed if the string contains html
if ($html_found !== FALSE) { if ($html_found !== false) {
// Remove p tags around $no_p elements // Remove p tags around $no_p elements
$str = preg_replace('~<p>(?=</?' . $no_p . '[^>]*+>)~i', '', $str); $str = preg_replace('~<p>(?=</?' . $no_p . '[^>]*+>)~i', '', $str);
$str = preg_replace('~(</?' . $no_p . '[^>]*+>)</p>~i', '$1', $str); $str = preg_replace('~(</?' . $no_p . '[^>]*+>)</p>~i', '$1', $str);
@@ -125,7 +126,6 @@ function setEnvironmentValue(array $values)
if (count($values) > 0) { if (count($values) > 0) {
foreach ($values as $envKey => $envValue) { foreach ($values as $envKey => $envValue) {
$str .= "\n"; // In case the searched variable is in the last line without \n $str .= "\n"; // In case the searched variable is in the last line without \n
$keyPosition = strpos($str, "{$envKey}="); $keyPosition = strpos($str, "{$envKey}=");
$endOfLinePosition = strpos($str, "\n", $keyPosition); $endOfLinePosition = strpos($str, "\n", $keyPosition);
@@ -137,9 +137,9 @@ function setEnvironmentValue(array $values)
} }
$str = substr($str, 0, -1); $str = substr($str, 0, -1);
if (!file_put_contents($envFile, $str)) return false;
return true;
return ! (! file_put_contents($envFile, $str))
;
} }
/** /**
@@ -153,9 +153,9 @@ function get_invoice_number()
if ($invoices->isEmpty()) { if ($invoices->isEmpty()) {
return now()->year . '001'; return now()->year . '001';
} else {
return (int)$invoices->last()->order + 1;
} }
return (int) $invoices->last()->order + 1;
} }
/** /**
@@ -206,7 +206,7 @@ function get_version()
/** /**
* Check if is demo * Check if is demo
* *
* @return boolean * @return bool
*/ */
function is_demo() function is_demo()
{ {
@@ -281,7 +281,7 @@ function is_visitor($shared)
*/ */
function store_avatar($request, $name) function store_avatar($request, $name)
{ {
if (!$request->hasFile($name)) { if (! $request->hasFile($name)) {
return null; return null;
} }
@@ -312,7 +312,7 @@ function store_avatar($request, $name)
*/ */
function store_system_image($request, $name) function store_system_image($request, $name)
{ {
if (!$request->hasFile($name)) { if (! $request->hasFile($name)) {
return null; return null;
} }
@@ -356,9 +356,9 @@ function format_gigabytes($gigabytes)
{ {
if ($gigabytes >= 1000) { if ($gigabytes >= 1000) {
return Metric::gigabytes($gigabytes)->format('Tb/'); return Metric::gigabytes($gigabytes)->format('Tb/');
} else {
return Metric::gigabytes($gigabytes)->format('GB/');
} }
return Metric::gigabytes($gigabytes)->format('GB/');
} }
/** /**
@@ -411,7 +411,7 @@ function get_storage_fill_percentage($used, $capacity)
} }
// Return in 2 decimal // Return in 2 decimal
return number_format((float)$progress, 2, '.', ''); return number_format((float) $progress, 2, '.', '');
} }
/** /**
@@ -445,12 +445,14 @@ function recursiveFind(array $array, $needle)
{ {
$iterator = new RecursiveArrayIterator($array); $iterator = new RecursiveArrayIterator($array);
$recursive = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST); $recursive = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
$aHitList = array(); $aHitList = [];
foreach ($recursive as $key => $value) { foreach ($recursive as $key => $value) {
if ($key === $needle) { if ($key === $needle) {
array_push($aHitList, $value); array_push($aHitList, $value);
} }
} }
return $aHitList; return $aHitList;
} }
@@ -466,7 +468,6 @@ function appeared_once($arr)
$single_time_comming_values_array = []; $single_time_comming_values_array = [];
foreach ($array_count_values as $key => $val) { foreach ($array_count_values as $key => $val) {
if ($val == 1) { if ($val == 1) {
$single_time_comming_values_array[] = $key; $single_time_comming_values_array[] = $key;
} }
@@ -515,13 +516,19 @@ function get_file_type($file_mimetype)
switch ($mimetype[0]) { switch ($mimetype[0]) {
case 'image': case 'image':
return 'image'; return 'image';
break; break;
case 'video': case 'video':
return 'video'; return 'video';
break; break;
case 'audio': case 'audio':
return 'audio'; return 'audio';
break; break;
default: default:
return 'file'; return 'file';
} }
@@ -583,16 +590,11 @@ function get_pretty_name($basename, $name, $mimetype)
function get_image_meta_data($file) function get_image_meta_data($file)
{ {
if (get_file_type_from_mimetype($file->getMimeType()) === 'jpeg') { if (get_file_type_from_mimetype($file->getMimeType()) === 'jpeg') {
try { try {
// Try to get the exif data // Try to get the exif data
return mb_convert_encoding(Image::make($file->getRealPath())->exif(), 'UTF8', 'UTF8'); return mb_convert_encoding(Image::make($file->getRealPath())->exif(), 'UTF8', 'UTF8');
} catch (\Exception $e) { } catch (\Exception $e) {
return null; return null;
} }
} }
} }
@@ -603,9 +605,9 @@ function get_image_meta_data($file)
function get_default_language_translations() function get_default_language_translations()
{ {
return collect([ return collect([
config("language-translations.extended"), config('language-translations.extended'),
config("language-translations.regular"), config('language-translations.regular'),
config("custom-language-translations") config('custom-language-translations'),
])->collapse(); ])->collapse();
} }
@@ -626,20 +628,39 @@ function is_dev()
function seems_utf8($str) function seems_utf8($str)
{ {
$length = strlen($str); $length = strlen($str);
for ($i = 0; $i < $length; $i++) { for ($i = 0; $i < $length; $i++) {
$c = ord($str[$i]); $c = ord($str[$i]);
if ($c < 0x80) $n = 0; # 0bbbbbbb
elseif (($c & 0xE0) == 0xC0) $n = 1; # 110bbbbb if ($c < 0x80) {
elseif (($c & 0xF0) == 0xE0) $n = 2; # 1110bbbb $n = 0;
elseif (($c & 0xF8) == 0xF0) $n = 3; # 11110bbb } # 0bbbbbbb
elseif (($c & 0xFC) == 0xF8) $n = 4; # 111110bb elseif (($c & 0xE0) == 0xC0) {
elseif (($c & 0xFE) == 0xFC) $n = 5; # 1111110b $n = 1;
else return false; # Does not match any model } # 110bbbbb
elseif (($c & 0xF0) == 0xE0) {
$n = 2;
} # 1110bbbb
elseif (($c & 0xF8) == 0xF0) {
$n = 3;
} # 11110bbb
elseif (($c & 0xFC) == 0xF8) {
$n = 4;
} # 111110bb
elseif (($c & 0xFE) == 0xFC) {
$n = 5;
} # 1111110b
else {
return false;
} # Does not match any model
for ($j = 0; $j < $n; $j++) { # n bytes matching 10bbbbbb follow ? for ($j = 0; $j < $n; $j++) { # n bytes matching 10bbbbbb follow ?
if ((++$i == $length) || ((ord($str[$i]) & 0xC0) != 0x80)) if ((++$i == $length) || ((ord($str[$i]) & 0xC0) != 0x80)) {
return false; return false;
}
} }
} }
return true; return true;
} }
@@ -653,109 +674,110 @@ function seems_utf8($str)
*/ */
function remove_accents($string) function remove_accents($string)
{ {
if (!preg_match('/[\x80-\xff]/', $string)) if (! preg_match('/[\x80-\xff]/', $string)) {
return $string; return $string;
}
if (seems_utf8($string)) { if (seems_utf8($string)) {
$chars = array( $chars = [
// Decompositions for Latin-1 Supplement // Decompositions for Latin-1 Supplement
chr(195) . chr(128) => 'A', chr(195) . chr(129) => 'A', chr(195) . chr(128) => 'A', chr(195) . chr(129) => 'A',
chr(195) . chr(130) => 'A', chr(195) . chr(131) => 'A', chr(195) . chr(130) => 'A', chr(195) . chr(131) => 'A',
chr(195) . chr(132) => 'A', chr(195) . chr(133) => 'A', chr(195) . chr(132) => 'A', chr(195) . chr(133) => 'A',
chr(195) . chr(135) => 'C', chr(195) . chr(136) => 'E', chr(195) . chr(135) => 'C', chr(195) . chr(136) => 'E',
chr(195) . chr(137) => 'E', chr(195) . chr(138) => 'E', chr(195) . chr(137) => 'E', chr(195) . chr(138) => 'E',
chr(195) . chr(139) => 'E', chr(195) . chr(140) => 'I', chr(195) . chr(139) => 'E', chr(195) . chr(140) => 'I',
chr(195) . chr(141) => 'I', chr(195) . chr(142) => 'I', chr(195) . chr(141) => 'I', chr(195) . chr(142) => 'I',
chr(195) . chr(143) => 'I', chr(195) . chr(145) => 'N', chr(195) . chr(143) => 'I', chr(195) . chr(145) => 'N',
chr(195) . chr(146) => 'O', chr(195) . chr(147) => 'O', chr(195) . chr(146) => 'O', chr(195) . chr(147) => 'O',
chr(195) . chr(148) => 'O', chr(195) . chr(149) => 'O', chr(195) . chr(148) => 'O', chr(195) . chr(149) => 'O',
chr(195) . chr(150) => 'O', chr(195) . chr(153) => 'U', chr(195) . chr(150) => 'O', chr(195) . chr(153) => 'U',
chr(195) . chr(154) => 'U', chr(195) . chr(155) => 'U', chr(195) . chr(154) => 'U', chr(195) . chr(155) => 'U',
chr(195) . chr(156) => 'U', chr(195) . chr(157) => 'Y', chr(195) . chr(156) => 'U', chr(195) . chr(157) => 'Y',
chr(195) . chr(159) => 's', chr(195) . chr(160) => 'a', chr(195) . chr(159) => 's', chr(195) . chr(160) => 'a',
chr(195) . chr(161) => 'a', chr(195) . chr(162) => 'a', chr(195) . chr(161) => 'a', chr(195) . chr(162) => 'a',
chr(195) . chr(163) => 'a', chr(195) . chr(164) => 'a', chr(195) . chr(163) => 'a', chr(195) . chr(164) => 'a',
chr(195) . chr(165) => 'a', chr(195) . chr(167) => 'c', chr(195) . chr(165) => 'a', chr(195) . chr(167) => 'c',
chr(195) . chr(168) => 'e', chr(195) . chr(169) => 'e', chr(195) . chr(168) => 'e', chr(195) . chr(169) => 'e',
chr(195) . chr(170) => 'e', chr(195) . chr(171) => 'e', chr(195) . chr(170) => 'e', chr(195) . chr(171) => 'e',
chr(195) . chr(172) => 'i', chr(195) . chr(173) => 'i', chr(195) . chr(172) => 'i', chr(195) . chr(173) => 'i',
chr(195) . chr(174) => 'i', chr(195) . chr(175) => 'i', chr(195) . chr(174) => 'i', chr(195) . chr(175) => 'i',
chr(195) . chr(177) => 'n', chr(195) . chr(178) => 'o', chr(195) . chr(177) => 'n', chr(195) . chr(178) => 'o',
chr(195) . chr(179) => 'o', chr(195) . chr(180) => 'o', chr(195) . chr(179) => 'o', chr(195) . chr(180) => 'o',
chr(195) . chr(181) => 'o', chr(195) . chr(182) => 'o', chr(195) . chr(181) => 'o', chr(195) . chr(182) => 'o',
chr(195) . chr(182) => 'o', chr(195) . chr(185) => 'u', chr(195) . chr(182) => 'o', chr(195) . chr(185) => 'u',
chr(195) . chr(186) => 'u', chr(195) . chr(187) => 'u', chr(195) . chr(186) => 'u', chr(195) . chr(187) => 'u',
chr(195) . chr(188) => 'u', chr(195) . chr(189) => 'y', chr(195) . chr(188) => 'u', chr(195) . chr(189) => 'y',
chr(195) . chr(191) => 'y', chr(195) . chr(191) => 'y',
// Decompositions for Latin Extended-A // Decompositions for Latin Extended-A
chr(196) . chr(128) => 'A', chr(196) . chr(129) => 'a', chr(196) . chr(128) => 'A', chr(196) . chr(129) => 'a',
chr(196) . chr(130) => 'A', chr(196) . chr(131) => 'a', chr(196) . chr(130) => 'A', chr(196) . chr(131) => 'a',
chr(196) . chr(132) => 'A', chr(196) . chr(133) => 'a', chr(196) . chr(132) => 'A', chr(196) . chr(133) => 'a',
chr(196) . chr(134) => 'C', chr(196) . chr(135) => 'c', chr(196) . chr(134) => 'C', chr(196) . chr(135) => 'c',
chr(196) . chr(136) => 'C', chr(196) . chr(137) => 'c', chr(196) . chr(136) => 'C', chr(196) . chr(137) => 'c',
chr(196) . chr(138) => 'C', chr(196) . chr(139) => 'c', chr(196) . chr(138) => 'C', chr(196) . chr(139) => 'c',
chr(196) . chr(140) => 'C', chr(196) . chr(141) => 'c', chr(196) . chr(140) => 'C', chr(196) . chr(141) => 'c',
chr(196) . chr(142) => 'D', chr(196) . chr(143) => 'd', chr(196) . chr(142) => 'D', chr(196) . chr(143) => 'd',
chr(196) . chr(144) => 'D', chr(196) . chr(145) => 'd', chr(196) . chr(144) => 'D', chr(196) . chr(145) => 'd',
chr(196) . chr(146) => 'E', chr(196) . chr(147) => 'e', chr(196) . chr(146) => 'E', chr(196) . chr(147) => 'e',
chr(196) . chr(148) => 'E', chr(196) . chr(149) => 'e', chr(196) . chr(148) => 'E', chr(196) . chr(149) => 'e',
chr(196) . chr(150) => 'E', chr(196) . chr(151) => 'e', chr(196) . chr(150) => 'E', chr(196) . chr(151) => 'e',
chr(196) . chr(152) => 'E', chr(196) . chr(153) => 'e', chr(196) . chr(152) => 'E', chr(196) . chr(153) => 'e',
chr(196) . chr(154) => 'E', chr(196) . chr(155) => 'e', chr(196) . chr(154) => 'E', chr(196) . chr(155) => 'e',
chr(196) . chr(156) => 'G', chr(196) . chr(157) => 'g', chr(196) . chr(156) => 'G', chr(196) . chr(157) => 'g',
chr(196) . chr(158) => 'G', chr(196) . chr(159) => 'g', chr(196) . chr(158) => 'G', chr(196) . chr(159) => 'g',
chr(196) . chr(160) => 'G', chr(196) . chr(161) => 'g', chr(196) . chr(160) => 'G', chr(196) . chr(161) => 'g',
chr(196) . chr(162) => 'G', chr(196) . chr(163) => 'g', chr(196) . chr(162) => 'G', chr(196) . chr(163) => 'g',
chr(196) . chr(164) => 'H', chr(196) . chr(165) => 'h', chr(196) . chr(164) => 'H', chr(196) . chr(165) => 'h',
chr(196) . chr(166) => 'H', chr(196) . chr(167) => 'h', chr(196) . chr(166) => 'H', chr(196) . chr(167) => 'h',
chr(196) . chr(168) => 'I', chr(196) . chr(169) => 'i', chr(196) . chr(168) => 'I', chr(196) . chr(169) => 'i',
chr(196) . chr(170) => 'I', chr(196) . chr(171) => 'i', chr(196) . chr(170) => 'I', chr(196) . chr(171) => 'i',
chr(196) . chr(172) => 'I', chr(196) . chr(173) => 'i', chr(196) . chr(172) => 'I', chr(196) . chr(173) => 'i',
chr(196) . chr(174) => 'I', chr(196) . chr(175) => 'i', chr(196) . chr(174) => 'I', chr(196) . chr(175) => 'i',
chr(196) . chr(176) => 'I', chr(196) . chr(177) => 'i', chr(196) . chr(176) => 'I', chr(196) . chr(177) => 'i',
chr(196) . chr(178) => 'IJ', chr(196) . chr(179) => 'ij', chr(196) . chr(178) => 'IJ', chr(196) . chr(179) => 'ij',
chr(196) . chr(180) => 'J', chr(196) . chr(181) => 'j', chr(196) . chr(180) => 'J', chr(196) . chr(181) => 'j',
chr(196) . chr(182) => 'K', chr(196) . chr(183) => 'k', chr(196) . chr(182) => 'K', chr(196) . chr(183) => 'k',
chr(196) . chr(184) => 'k', chr(196) . chr(185) => 'L', chr(196) . chr(184) => 'k', chr(196) . chr(185) => 'L',
chr(196) . chr(186) => 'l', chr(196) . chr(187) => 'L', chr(196) . chr(186) => 'l', chr(196) . chr(187) => 'L',
chr(196) . chr(188) => 'l', chr(196) . chr(189) => 'L', chr(196) . chr(188) => 'l', chr(196) . chr(189) => 'L',
chr(196) . chr(190) => 'l', chr(196) . chr(191) => 'L', chr(196) . chr(190) => 'l', chr(196) . chr(191) => 'L',
chr(197) . chr(128) => 'l', chr(197) . chr(129) => 'L', chr(197) . chr(128) => 'l', chr(197) . chr(129) => 'L',
chr(197) . chr(130) => 'l', chr(197) . chr(131) => 'N', chr(197) . chr(130) => 'l', chr(197) . chr(131) => 'N',
chr(197) . chr(132) => 'n', chr(197) . chr(133) => 'N', chr(197) . chr(132) => 'n', chr(197) . chr(133) => 'N',
chr(197) . chr(134) => 'n', chr(197) . chr(135) => 'N', chr(197) . chr(134) => 'n', chr(197) . chr(135) => 'N',
chr(197) . chr(136) => 'n', chr(197) . chr(137) => 'N', chr(197) . chr(136) => 'n', chr(197) . chr(137) => 'N',
chr(197) . chr(138) => 'n', chr(197) . chr(139) => 'N', chr(197) . chr(138) => 'n', chr(197) . chr(139) => 'N',
chr(197) . chr(140) => 'O', chr(197) . chr(141) => 'o', chr(197) . chr(140) => 'O', chr(197) . chr(141) => 'o',
chr(197) . chr(142) => 'O', chr(197) . chr(143) => 'o', chr(197) . chr(142) => 'O', chr(197) . chr(143) => 'o',
chr(197) . chr(144) => 'O', chr(197) . chr(145) => 'o', chr(197) . chr(144) => 'O', chr(197) . chr(145) => 'o',
chr(197) . chr(146) => 'OE', chr(197) . chr(147) => 'oe', chr(197) . chr(146) => 'OE', chr(197) . chr(147) => 'oe',
chr(197) . chr(148) => 'R', chr(197) . chr(149) => 'r', chr(197) . chr(148) => 'R', chr(197) . chr(149) => 'r',
chr(197) . chr(150) => 'R', chr(197) . chr(151) => 'r', chr(197) . chr(150) => 'R', chr(197) . chr(151) => 'r',
chr(197) . chr(152) => 'R', chr(197) . chr(153) => 'r', chr(197) . chr(152) => 'R', chr(197) . chr(153) => 'r',
chr(197) . chr(154) => 'S', chr(197) . chr(155) => 's', chr(197) . chr(154) => 'S', chr(197) . chr(155) => 's',
chr(197) . chr(156) => 'S', chr(197) . chr(157) => 's', chr(197) . chr(156) => 'S', chr(197) . chr(157) => 's',
chr(197) . chr(158) => 'S', chr(197) . chr(159) => 's', chr(197) . chr(158) => 'S', chr(197) . chr(159) => 's',
chr(197) . chr(160) => 'S', chr(197) . chr(161) => 's', chr(197) . chr(160) => 'S', chr(197) . chr(161) => 's',
chr(197) . chr(162) => 'T', chr(197) . chr(163) => 't', chr(197) . chr(162) => 'T', chr(197) . chr(163) => 't',
chr(197) . chr(164) => 'T', chr(197) . chr(165) => 't', chr(197) . chr(164) => 'T', chr(197) . chr(165) => 't',
chr(197) . chr(166) => 'T', chr(197) . chr(167) => 't', chr(197) . chr(166) => 'T', chr(197) . chr(167) => 't',
chr(197) . chr(168) => 'U', chr(197) . chr(169) => 'u', chr(197) . chr(168) => 'U', chr(197) . chr(169) => 'u',
chr(197) . chr(170) => 'U', chr(197) . chr(171) => 'u', chr(197) . chr(170) => 'U', chr(197) . chr(171) => 'u',
chr(197) . chr(172) => 'U', chr(197) . chr(173) => 'u', chr(197) . chr(172) => 'U', chr(197) . chr(173) => 'u',
chr(197) . chr(174) => 'U', chr(197) . chr(175) => 'u', chr(197) . chr(174) => 'U', chr(197) . chr(175) => 'u',
chr(197) . chr(176) => 'U', chr(197) . chr(177) => 'u', chr(197) . chr(176) => 'U', chr(197) . chr(177) => 'u',
chr(197) . chr(178) => 'U', chr(197) . chr(179) => 'u', chr(197) . chr(178) => 'U', chr(197) . chr(179) => 'u',
chr(197) . chr(180) => 'W', chr(197) . chr(181) => 'w', chr(197) . chr(180) => 'W', chr(197) . chr(181) => 'w',
chr(197) . chr(182) => 'Y', chr(197) . chr(183) => 'y', chr(197) . chr(182) => 'Y', chr(197) . chr(183) => 'y',
chr(197) . chr(184) => 'Y', chr(197) . chr(185) => 'Z', chr(197) . chr(184) => 'Y', chr(197) . chr(185) => 'Z',
chr(197) . chr(186) => 'z', chr(197) . chr(187) => 'Z', chr(197) . chr(186) => 'z', chr(197) . chr(187) => 'Z',
chr(197) . chr(188) => 'z', chr(197) . chr(189) => 'Z', chr(197) . chr(188) => 'z', chr(197) . chr(189) => 'Z',
chr(197) . chr(190) => 'z', chr(197) . chr(191) => 's', chr(197) . chr(190) => 'z', chr(197) . chr(191) => 's',
// Euro Sign // Euro Sign
chr(226) . chr(130) . chr(172) => 'E', chr(226) . chr(130) . chr(172) => 'E',
// GBP (Pound) Sign // GBP (Pound) Sign
chr(194) . chr(163) => ''); chr(194) . chr(163) => '', ];
$string = strtr($string, $chars); $string = strtr($string, $chars);
} else { } else {
@@ -771,11 +793,11 @@ function remove_accents($string)
. chr(244) . chr(245) . chr(246) . chr(248) . chr(249) . chr(250) . chr(251) . chr(244) . chr(245) . chr(246) . chr(248) . chr(249) . chr(250) . chr(251)
. chr(252) . chr(253) . chr(255); . chr(252) . chr(253) . chr(255);
$chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy"; $chars['out'] = 'EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy';
$string = strtr($string, $chars['in'], $chars['out']); $string = strtr($string, $chars['in'], $chars['out']);
$double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254)); $double_chars['in'] = [chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254)];
$double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th'); $double_chars['out'] = ['OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th'];
$string = str_replace($double_chars['in'], $double_chars['out'], $string); $string = str_replace($double_chars['in'], $double_chars['out'], $string);
} }
@@ -793,7 +815,7 @@ function remove_accents($string)
function get_files_for_zip($folders, $files, $path = []) function get_files_for_zip($folders, $files, $path = [])
{ {
// Return file list // Return file list
if (!isset($folders->folders)) { if (! isset($folders->folders)) {
return $files->unique()->values()->all(); return $files->unique()->values()->all();
} }
@@ -803,9 +825,9 @@ function get_files_for_zip($folders, $files, $path = [])
// Push file to collection // Push file to collection
$folders->files->each(function ($file) use ($files, $path) { $folders->files->each(function ($file) use ($files, $path) {
$files->push([ $files->push([
'name' => $file->name, 'name' => $file->name,
'basename' => $file->basename, 'basename' => $file->basename,
'mimetype' => $file->mimetype, 'mimetype' => $file->mimetype,
'folder_path' => implode('/', $path), 'folder_path' => implode('/', $path),
]); ]);
}); });
@@ -831,7 +853,6 @@ function set_time_by_user_timezone($time)
$user = Auth::user(); $user = Auth::user();
if ($user) { if ($user) {
// Get the value of timezone if user have some // Get the value of timezone if user have some
$time_zone = intval($user->settings->timezone * 60 ?? null); $time_zone = intval($user->settings->timezone * 60 ?? null);
@@ -891,12 +912,14 @@ function replace_occurrence($string, $values)
{ {
$occurrences = $values->map(function ($message, $key) { $occurrences = $values->map(function ($message, $key) {
return [ return [
'key' => ":$key", 'key' => ":$key",
'message' => $message, 'message' => $message,
]; ];
}); });
return str_ireplace( return str_ireplace(
$occurrences->pluck('key')->toArray(), $occurrences->pluck('message')->toArray(), $string $occurrences->pluck('key')->toArray(),
$occurrences->pluck('message')->toArray(),
$string
); );
} }

Some files were not shown because too many files have changed in this diff Show More