mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-15 19:52:15 +01:00
Merge branch 'main' of github.com:solidtime-io/solidtime into feature/reporting
# Conflicts: # tests/Feature/RegistrationTest.php
This commit is contained in:
@@ -6,6 +6,7 @@ namespace App\Actions\Fortify;
|
||||
|
||||
use App\Enums\Role;
|
||||
use App\Enums\Weekday;
|
||||
use App\Events\NewsletterRegistered;
|
||||
use App\Models\Organization;
|
||||
use App\Models\User;
|
||||
use App\Service\TimezoneService;
|
||||
@@ -49,6 +50,9 @@ class CreateNewUser implements CreatesNewUsers
|
||||
],
|
||||
'password' => $this->passwordRules(),
|
||||
'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['accepted', 'required'] : '',
|
||||
'newsletter_consent' => [
|
||||
'boolean',
|
||||
],
|
||||
])->validate();
|
||||
|
||||
$timezone = 'UTC';
|
||||
@@ -56,7 +60,7 @@ class CreateNewUser implements CreatesNewUsers
|
||||
$timezone = $input['timezone'];
|
||||
}
|
||||
|
||||
return DB::transaction(function () use ($input, $timezone) {
|
||||
$user = DB::transaction(function () use ($input, $timezone) {
|
||||
return tap(User::create([
|
||||
'name' => $input['name'],
|
||||
'email' => $input['email'],
|
||||
@@ -67,6 +71,13 @@ class CreateNewUser implements CreatesNewUsers
|
||||
$this->createTeam($user);
|
||||
});
|
||||
});
|
||||
|
||||
$newsletterConsent = isset($input['newsletter_consent']) && (bool) $input['newsletter_consent'];
|
||||
if ($newsletterConsent) {
|
||||
NewsletterRegistered::dispatch($input['name'], $input['email'], $user->getKey());
|
||||
}
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
28
app/Events/NewsletterRegistered.php
Normal file
28
app/Events/NewsletterRegistered.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Events;
|
||||
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
|
||||
class NewsletterRegistered
|
||||
{
|
||||
use Dispatchable;
|
||||
|
||||
public string $name;
|
||||
|
||||
public string $email;
|
||||
|
||||
public string $id;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*/
|
||||
public function __construct(string $name, string $email, string $id)
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->email = $email;
|
||||
$this->id = $id;
|
||||
}
|
||||
}
|
||||
@@ -32,7 +32,7 @@ class TimeEntryResource extends BaseResource
|
||||
*/
|
||||
'end' => $this->formatDateTime($this->resource->end),
|
||||
/** @var int|null $duration Duration of time entry in seconds */
|
||||
'duration' => $this->resource->getDuration()?->seconds,
|
||||
'duration' => (int) $this->resource->getDuration()?->totalSeconds,
|
||||
/** @var string|null $description Description of time entry */
|
||||
'description' => $this->resource->description,
|
||||
/** @var string|null $task_id ID of task */
|
||||
|
||||
@@ -23,6 +23,8 @@ use Brick\Money\Currency;
|
||||
use Brick\Money\ISOCurrencyProvider;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Inertia\Inertia;
|
||||
use Laravel\Fortify\Fortify;
|
||||
use Laravel\Jetstream\Actions\UpdateTeamMemberRole;
|
||||
use Laravel\Jetstream\Jetstream;
|
||||
|
||||
@@ -54,6 +56,13 @@ class JetstreamServiceProvider extends ServiceProvider
|
||||
Jetstream::useMembershipModel(Member::class);
|
||||
Jetstream::useTeamInvitationModel(OrganizationInvitation::class);
|
||||
app()->singleton(UpdateTeamMemberRole::class, UpdateMemberRole::class);
|
||||
Fortify::registerView(function () {
|
||||
return Inertia::render('Auth/Register', [
|
||||
'terms_url' => config('auth.terms_url'),
|
||||
'privacy_policy_url' => config('auth.privacy_policy_url'),
|
||||
'newsletter_consent' => config('auth.newsletter_consent'),
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user