it_register_user_when_metered_billing_is_active

This commit is contained in:
Čarodej
2022-01-10 10:20:13 +01:00
parent 0d8f1b64a7
commit 26aa8b46df
7 changed files with 192 additions and 48 deletions

View File

@@ -1,16 +1,20 @@
<?php
namespace App\Users\Actions;
use App\Users\Models\User;
use App\Http\Controllers\Controller;
use Illuminate\Auth\Events\Registered;
use Illuminate\Contracts\Auth\StatefulGuard;
use VueFileManager\Subscription\Domain\Plans\Models\Plan;
class CreateNewUserAction extends Controller
{
public function __construct(
protected StatefulGuard $guard
) {
protected StatefulGuard $guard,
protected AutoSubscribeForMeteredBillingAction $autoSubscribeForMeteredBilling,
)
{
}
/**
@@ -19,11 +23,11 @@ class CreateNewUserAction extends Controller
public function __invoke($data)
{
$settings = get_settings([
'registration', 'user_verification',
'registration', 'user_verification', 'subscription_type',
]);
// Check if account registration is enabled
if (! intval($settings['registration'])) {
if (!intval($settings['registration'])) {
abort(401);
}
@@ -34,22 +38,25 @@ class CreateNewUserAction extends Controller
'email' => $data->email,
]);
$user
->settings()
->create([
'name' => $data->name,
'avatar' => $data->avatar,
]);
$user->settings()->create([
'name' => $data->name,
'avatar' => $data->avatar,
]);
// 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();
}
event(new Registered($user));
// Log in if verification is disabled
if (! $data->password || ! intval($settings['user_verification'])) {
if (!$data->password || !intval($settings['user_verification'])) {
$this->guard->login($user);
}
}