mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-27 18:40:39 +00:00
handle team invitation for non registered user
This commit is contained in:
@@ -1,17 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Users\Actions;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use App\Users\DTO\CreateUserData;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Teams\Models\TeamFolderInvitation;
|
||||
use Domain\Teams\Models\TeamFolderMember;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
|
||||
class CreateNewUserAction extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
protected AutoSubscribeForMeteredBillingAction $autoSubscribeForMeteredBilling,
|
||||
) {
|
||||
}
|
||||
) {}
|
||||
|
||||
/**
|
||||
* Validate and create a new user.
|
||||
@@ -39,13 +41,27 @@ class CreateNewUserAction extends Controller
|
||||
'avatar' => $data->avatar,
|
||||
]);
|
||||
|
||||
// Join to previously accepted team folder invitations
|
||||
TeamFolderInvitation::where('email', $user->email)
|
||||
->where('status', 'waiting-for-registration')
|
||||
->cursor()
|
||||
->each(function ($invitation) use ($user) {
|
||||
TeamFolderMember::create([
|
||||
'user_id' => $user->id,
|
||||
'parent_id' => $invitation->parent_id,
|
||||
'permission' => $invitation->permission,
|
||||
]);
|
||||
|
||||
$invitation->accept();
|
||||
});
|
||||
|
||||
// Subscribe user for metered billing
|
||||
if ($settings['subscription_type'] === 'metered') {
|
||||
($this->autoSubscribeForMeteredBilling)($user);
|
||||
}
|
||||
|
||||
// Mark as verified if verification is disabled
|
||||
if (! $data->password || ! intval($settings['user_verification'])) {
|
||||
if (!$data->password || !intval($settings['user_verification'])) {
|
||||
$user->markEmailAsVerified();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ class RegisterUserRequest extends FormRequest
|
||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email', new EmailProvider],
|
||||
'name' => 'required|string|max:255',
|
||||
'password' => $this->passwordRules(),
|
||||
'reCaptcha' => [new RequiredIf(get_settings('allowed_recaptcha') == 1), 'string', app(ReCaptchaRules::class)],
|
||||
'reCaptcha' => [new RequiredIf(get_settings('allowed_recaptcha') == 1), 'string', 'nullable', app(ReCaptchaRules::class)],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user