55 lines
1.5 KiB
PHP
55 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Vanguard\Http\Controllers\Web\Auth;
|
|
|
|
use Illuminate\Auth\Events\Registered;
|
|
use Vanguard\Http\Controllers\Controller;
|
|
use Vanguard\Http\Requests\Auth\RegisterRequest;
|
|
use Vanguard\Repositories\Role\RoleRepository;
|
|
use Vanguard\Repositories\User\UserRepository;
|
|
use Vanguard\Support\Enum\UserStatus;
|
|
|
|
class RegisterController extends Controller
|
|
{
|
|
public function __construct(private UserRepository $users)
|
|
{
|
|
$this->middleware('registration')->only('show', 'register');
|
|
}
|
|
|
|
/**
|
|
* Show the application registration form.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function show()
|
|
{
|
|
return view('auth.register', [
|
|
'socialProviders' => config('auth.social.providers')
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Handle a registration request for the application.
|
|
*
|
|
* @param RegisterRequest $request
|
|
* @param RoleRepository $roles
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function register(RegisterRequest $request, RoleRepository $roles)
|
|
{
|
|
$user = $this->users->create(
|
|
array_merge($request->validFormData(), ['role_id' => $roles->findByName('User')->id])
|
|
);
|
|
|
|
event(new Registered($user));
|
|
|
|
$message = setting('reg_email_confirmation')
|
|
? __('Your account is created successfully! Please confirm your email.')
|
|
: __('Your account is created successfully!');
|
|
|
|
\Auth::login($user);
|
|
|
|
return redirect('/')->with('success', $message);
|
|
}
|
|
}
|