mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-26 18:30:38 +00:00
refactor
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user