mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-24 22:48:18 +00:00
Add ability to invite users
This commit is contained in:
@@ -25,6 +25,7 @@ namespace FireflyIII\Http\Controllers\Auth;
|
||||
use FireflyIII\Events\RegisteredUser;
|
||||
use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Http\Controllers\Controller;
|
||||
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
||||
use FireflyIII\Support\Http\Controllers\CreateStuff;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
@@ -88,11 +89,15 @@ class RegisterController extends Controller
|
||||
public function register(Request $request)
|
||||
{
|
||||
$allowRegistration = $this->allowedToRegister();
|
||||
$inviteCode = (string) $request->get('invite_code');
|
||||
$repository = app(UserRepositoryInterface::class);
|
||||
$validCode = $repository->validateInviteCode($inviteCode);
|
||||
|
||||
if (false === $allowRegistration) {
|
||||
if (false === $allowRegistration && false === $validCode) {
|
||||
throw new FireflyException('Registration is currently not available :(');
|
||||
}
|
||||
|
||||
|
||||
$this->validator($request->all())->validate();
|
||||
$user = $this->createUser($request->all());
|
||||
Log::info(sprintf('Registered new user %s', $user->email));
|
||||
@@ -104,6 +109,10 @@ class RegisterController extends Controller
|
||||
|
||||
$this->registered($request, $user);
|
||||
|
||||
if ($validCode) {
|
||||
$repository->redeemCode($inviteCode);
|
||||
}
|
||||
|
||||
return redirect($this->redirectPath());
|
||||
}
|
||||
|
||||
@@ -157,4 +166,39 @@ class RegisterController extends Controller
|
||||
|
||||
return view('auth.register', compact('isDemoSite', 'email', 'pageTitle'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application registration form if the invitation code is valid.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Factory|View
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws FireflyException
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function showInviteForm(Request $request, string $code)
|
||||
{
|
||||
$isDemoSite = app('fireflyconfig')->get('is_demo_site', config('firefly.configuration.is_demo_site'))->data;
|
||||
$pageTitle = (string) trans('firefly.register_page_title');
|
||||
$repository = app(UserRepositoryInterface::class);
|
||||
$allowRegistration = $this->allowedToRegister();
|
||||
$inviteCode = $code;
|
||||
$validCode = $repository->validateInviteCode($inviteCode);
|
||||
|
||||
if (true === $allowRegistration) {
|
||||
$message = 'You do not need an invite code on this installation.';
|
||||
|
||||
return view('error', compact('message'));
|
||||
}
|
||||
if(false === $validCode) {
|
||||
$message = 'Invalid code.';
|
||||
|
||||
return view('error', compact('message'));
|
||||
}
|
||||
|
||||
$email = $request->old('email');
|
||||
|
||||
return view('auth.register', compact('isDemoSite', 'email', 'pageTitle', 'inviteCode'));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user