mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-29 19:25:57 +00:00
refactor
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
namespace App\Socialite\Controllers;
|
||||
|
||||
use App\Users\Models\User;
|
||||
@@ -20,32 +19,33 @@ class SocialiteCallbackController extends Controller
|
||||
public function __invoke($provider)
|
||||
{
|
||||
// Get socialite user
|
||||
if (app()->runningInConsole()) {
|
||||
if (app()->runningUnitTests()) {
|
||||
$provider_user = Socialite::driver($provider)->user();
|
||||
} else {
|
||||
$provider_user = Socialite::driver($provider)->stateless()->user();
|
||||
}
|
||||
|
||||
// Check if user exist already
|
||||
$user = User::whereEmail($provider_user->email)->first();
|
||||
$user = User::where('email', $provider_user->email)->first();
|
||||
|
||||
if($user) {
|
||||
// Login User
|
||||
// Login User
|
||||
if ($user) {
|
||||
$this->guard->login($user);
|
||||
|
||||
} else {
|
||||
|
||||
$data = CreateUserData::fromArray([
|
||||
'name' => $provider_user->getname(),
|
||||
'email' => $provider_user->getEmail(),
|
||||
'avatar' => store_socialite_avatar($provider_user->getAvatar()),
|
||||
'oauth_provider' => $provider,
|
||||
]);
|
||||
|
||||
// Create User
|
||||
($this->createNewUser)($data);
|
||||
return response('User logged in', 201);
|
||||
}
|
||||
|
||||
return response('Loged in', 200);
|
||||
// Create data user data object
|
||||
$data = CreateUserData::fromArray([
|
||||
'name' => $provider_user->name,
|
||||
'email' => $provider_user->email,
|
||||
'avatar' => store_socialite_avatar($provider_user->avatar),
|
||||
'oauth_provider' => $provider,
|
||||
]);
|
||||
|
||||
// Create User
|
||||
($this->createNewUser)($data);
|
||||
|
||||
return response('User registered', 201);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
namespace App\Socialite\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
@@ -12,7 +11,7 @@ class SocialiteRedirectController extends Controller
|
||||
$url = Socialite::driver($provider)->stateless()->redirect()->getTargetUrl();
|
||||
|
||||
return response()->json([
|
||||
'url' => $url
|
||||
'url' => $url,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,13 +2,9 @@
|
||||
namespace App\Users\Actions;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Users\Models\UserSettings;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Contracts\Auth\StatefulGuard;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
|
||||
class CreateNewUserAction extends Controller
|
||||
{
|
||||
@@ -23,11 +19,9 @@ class CreateNewUserAction extends Controller
|
||||
public function __invoke($data)
|
||||
{
|
||||
$settings = get_settings([
|
||||
'storage_default', 'registration', 'user_verification',
|
||||
'registration', 'user_verification',
|
||||
]);
|
||||
|
||||
$is_socialite = is_null($data->password);
|
||||
|
||||
// Check if account registration is enabled
|
||||
if (! intval($settings['registration'])) {
|
||||
abort(401);
|
||||
@@ -35,32 +29,27 @@ class CreateNewUserAction extends Controller
|
||||
|
||||
// Create user
|
||||
$user = User::create([
|
||||
'password' => $is_socialite ? null : bcrypt($data->password),
|
||||
'password' => $data->password ? bcrypt($data->password) : null,
|
||||
'oauth_provider' => $data->oauth_provider,
|
||||
'email' => $data->email,
|
||||
]);
|
||||
|
||||
UserSettings::unguard();
|
||||
|
||||
$user
|
||||
->settings()
|
||||
->create([
|
||||
'name' => $data->name,
|
||||
'storage_capacity' => $settings['storage_default'],
|
||||
'avatar' => $data->avatar,
|
||||
'name' => $data->name,
|
||||
'avatar' => $data->avatar,
|
||||
]);
|
||||
|
||||
UserSettings::reguard();
|
||||
|
||||
// Mark as verified if verification is disabled
|
||||
if ($is_socialite || ! intval($settings['user_verification'])) {
|
||||
if (! $data->password || ! intval($settings['user_verification'])) {
|
||||
$user->markEmailAsVerified();
|
||||
}
|
||||
|
||||
event(new Registered($user));
|
||||
|
||||
// Log in if verification is disabled
|
||||
if ($is_socialite || ! intval($settings['user_verification'])) {
|
||||
if (! $data->password || ! intval($settings['user_verification'])) {
|
||||
$this->guard->login($user);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
<?php
|
||||
namespace App\Users\Controllers\Authentication;
|
||||
|
||||
use App\Users\DTO\CreateUserData;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Actions\CreateNewUserAction;
|
||||
use App\Users\Requests\RegisterUserRequest;
|
||||
|
||||
class RegisterAuthenticationController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
public CreateNewUserAction $createNewUser,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(RegisterUserRequest $request)
|
||||
{
|
||||
$data = CreateUserData::fromRequest($request);
|
||||
|
||||
($this->createNewUser)($data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
namespace App\Users\Controllers\Authentication;
|
||||
|
||||
use App\Users\DTO\CreateUserData;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Actions\CreateNewUserAction;
|
||||
use App\Users\Requests\RegisterUserRequest;
|
||||
|
||||
class RegisterUserController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
public CreateNewUserAction $createNewUser,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(RegisterUserRequest $request)
|
||||
{
|
||||
// Map registration data
|
||||
$data = CreateUserData::fromRequest($request);
|
||||
|
||||
// Register user
|
||||
($this->createNewUser)($data);
|
||||
|
||||
return response('User successfully registered.', 201);
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Users\DTO;
|
||||
|
||||
use Spatie\DataTransferObject\DataTransferObject;
|
||||
|
||||
class CreateUserData extends DataTransferObject
|
||||
{
|
||||
public $name;
|
||||
public $email;
|
||||
public $password;
|
||||
public $oauth_provider;
|
||||
public $avatar;
|
||||
public string $name;
|
||||
public string $email;
|
||||
public ?string $password;
|
||||
public ?string $oauth_provider;
|
||||
public ?string $avatar;
|
||||
|
||||
public static function fromRequest($request): self
|
||||
{
|
||||
@@ -33,4 +32,4 @@ class CreateUserData extends DataTransferObject
|
||||
'oauth_provider' => $array['oauth_provider'],
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,10 +14,10 @@ use Domain\Settings\Models\Setting;
|
||||
use Kyslik\ColumnSortable\Sortable;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use App\Users\Restrictions\RestrictionsManager;
|
||||
use App\Users\Notifications\ResetPassword;
|
||||
use Laravel\Fortify\TwoFactorAuthenticatable;
|
||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||
use App\Users\Restrictions\RestrictionsManager;
|
||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
@@ -3,7 +3,6 @@ namespace App\Users\Restrictions\Engines;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use App\Users\Restrictions\RestrictionsEngine;
|
||||
use Domain\Teams\Actions\CheckMaxTeamMembersLimitAction;
|
||||
|
||||
class DefaultRestrictionsEngine implements RestrictionsEngine
|
||||
{
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
namespace Domain\Browsing\Controllers;
|
||||
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Folders\Resources\FolderResource;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Domain\Files\Resources\FilesCollection;
|
||||
use Domain\Folders\Resources\FolderResource;
|
||||
use Domain\Folders\Resources\FolderCollection;
|
||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Domain\Settings\Requests\StorePaymentServiceCredentialsRequest;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use Illuminate\Http\Response;
|
||||
use Artisan;
|
||||
use Illuminate\Http\Response;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use Domain\Settings\Requests\StorePaymentServiceCredentialsRequest;
|
||||
|
||||
class StorePaymentServiceCredentialsController
|
||||
{
|
||||
@@ -34,14 +33,14 @@ class StorePaymentServiceCredentialsController
|
||||
|
||||
// Get options
|
||||
collect([$options[$request->input('service')]])
|
||||
->each(fn($setting) => Setting::updateOrCreate([
|
||||
->each(fn ($setting) => Setting::updateOrCreate([
|
||||
'name' => $setting['name'],
|
||||
], [
|
||||
'value' => $setting['value'],
|
||||
]));
|
||||
|
||||
// Get and store credentials
|
||||
if (!app()->runningUnitTests()) {
|
||||
if (! app()->runningUnitTests()) {
|
||||
$credentials = [
|
||||
'stripe' => [
|
||||
'STRIPE_PUBLIC_KEY' => $request->input('key'),
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
namespace Domain\Settings\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
namespace Domain\Sharing\Controllers;
|
||||
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\View\View;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Domain\Traffic\Actions\RecordDownloadAction;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
@@ -17,7 +17,8 @@ class SharePublicIndexController extends Controller
|
||||
*/
|
||||
public function __construct(
|
||||
public RecordDownloadAction $recordDownload,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(
|
||||
Share $share,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
namespace Domain\Sharing\Controllers;
|
||||
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
|
||||
class WebCrawlerOpenGraphController extends Controller
|
||||
{
|
||||
@@ -14,8 +14,7 @@ class WebCrawlerOpenGraphController extends Controller
|
||||
*/
|
||||
public function __invoke(
|
||||
Share $share
|
||||
): Application|Factory|View
|
||||
{
|
||||
): Application|Factory|View {
|
||||
$namespace = match ($share->type) {
|
||||
'folder' => 'Domain\\Folders\\Models\\Folder',
|
||||
'file' => 'Domain\\Files\\Models\\File',
|
||||
|
||||
+27
-29
@@ -3,13 +3,13 @@
|
||||
use Carbon\Carbon;
|
||||
use ByteUnits\Metric;
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Str;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Support\Collection;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
@@ -1016,45 +1016,43 @@ if (! function_exists('replace_occurrence')) {
|
||||
);
|
||||
}
|
||||
|
||||
if(! function_exists('get_socialite_avatar')) {
|
||||
/**
|
||||
* Get socialite avatar create and store his thumbnails
|
||||
*/
|
||||
function store_socialite_avatar($avatar)
|
||||
{
|
||||
// Get image from external source
|
||||
$image = Http::get($avatar)->body();
|
||||
if (! function_exists('get_socialite_avatar')) {
|
||||
/**
|
||||
* Get socialite avatar create and store his thumbnails
|
||||
*/
|
||||
function store_socialite_avatar($avatar)
|
||||
{
|
||||
// Get image from external source
|
||||
$image = Http::get($avatar)->body();
|
||||
|
||||
// Generate avatar name
|
||||
$avatar_name = Str::uuid() . '.jpg';
|
||||
// Generate avatar name
|
||||
$avatar_name = Str::uuid() . '.jpg';
|
||||
|
||||
// Create intervention image
|
||||
$intervention = Image::make($image);
|
||||
// Create intervention image
|
||||
$intervention = Image::make($image);
|
||||
|
||||
// Generate avatar sizes
|
||||
generate_avatar_thumbnails($intervention, $avatar_name);
|
||||
// Generate avatar sizes
|
||||
generate_avatar_thumbnails($intervention, $avatar_name);
|
||||
|
||||
// Return name of image
|
||||
return $avatar_name;
|
||||
// Return name of image
|
||||
return $avatar_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(! function_exists('generate_avatar_thumbnails')) {
|
||||
/**
|
||||
* Create avatar thumbnails
|
||||
*/
|
||||
function generate_avatar_thumbnails($intervention, $avatar_name)
|
||||
{
|
||||
collect(config('vuefilemanager.avatar_sizes'))
|
||||
->each(function ($size) use ($intervention, $avatar_name) {
|
||||
|
||||
if (! function_exists('generate_avatar_thumbnails')) {
|
||||
/**
|
||||
* Create avatar thumbnails
|
||||
*/
|
||||
function generate_avatar_thumbnails($intervention, $avatar_name)
|
||||
{
|
||||
collect(config('vuefilemanager.avatar_sizes'))
|
||||
->each(function ($size) use ($intervention, $avatar_name) {
|
||||
// fit thumbnail
|
||||
$intervention->fit($size['size'], $size['size'])->stream();
|
||||
|
||||
// Store thumbnail to disk
|
||||
Storage::put("avatars/{$size['name']}-{$avatar_name}", $intervention);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user