Skip to content

Commit

Permalink
Merge pull request #69 from khalidmaquilang/hotfix/si-73-fix-invitati…
Browse files Browse the repository at this point in the history
…on-for-existing-usrs

Hotfix | able to join existing users
  • Loading branch information
khalidmaquilang authored Jun 12, 2024
2 parents b74be25 + 18e9d36 commit 953294c
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 10 deletions.
33 changes: 24 additions & 9 deletions app/Filament/Pages/RegisterInvited.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace App\Filament\Pages;

use App\Models\Invite;
use App\Models\User;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Events\Auth\Registered;
Expand Down Expand Up @@ -38,12 +39,19 @@ class RegisterInvited extends SimplePage
public ?array $data = [];

/**
* @return void
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Foundation\Application|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|void
*/
public function mount(): void
public function mount()
{
$this->invite = Invite::where('code', $this->token)->firstOrFail();

$user = User::where('email', $this->invite->email)->first();
if (! empty($user)) {
$this->connectUserToCompany($user);

return redirect('/');
}

$this->form->fill([
'email' => $this->invite->email,
]);
Expand Down Expand Up @@ -142,27 +150,34 @@ protected function getUserModel(): string

public function register(): ?RegistrationResponse
{
$company = $this->invite->company;

$roles = $this->invite->roles;
$data = $this->form->getState();
$user = $this->getUserModel()::create($data);

event(new Registered($user));

$this->sendEmailVerificationNotification($user);

$this->connectUserToCompany($user);

return app(RegistrationResponse::class);
}

/**
* @param User $user
* @return void
*/
protected function connectUserToCompany(User $user): void
{
$this->invite->delete();

$company = $this->invite->company;
$company->members()->attach($user);

Filament::auth()->login($user);
setPermissionsTeamId($company->id);

$roles = $this->invite->roles;
$user->syncRoles($roles);

session()->regenerate();

return app(RegistrationResponse::class);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@

Route::get('invite-user/register', RegisterInvited::class)
->name('register.user-invite')
->middleware(['signed', 'guest']);
->middleware(['signed']);

0 comments on commit 953294c

Please sign in to comment.