From 6f8778d87f7a5dc69d2bb1333906130d3d4cc5b5 Mon Sep 17 00:00:00 2001 From: James Cole Date: Tue, 26 Oct 2021 06:25:41 +0200 Subject: [PATCH] Catch groups that are in use. --- app/Handlers/Events/UserEventHandler.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/Handlers/Events/UserEventHandler.php b/app/Handlers/Events/UserEventHandler.php index 0022b1d559..1089eae7c4 100644 --- a/app/Handlers/Events/UserEventHandler.php +++ b/app/Handlers/Events/UserEventHandler.php @@ -117,9 +117,24 @@ class UserEventHandler */ public function createGroupMembership(RegisteredUser $event): bool { - $user = $event->user; + $user = $event->user; + $groupExists = true; + $groupTitle = $user->email; + $index = 1; + // create a new group. - $group = UserGroup::create(['title' => $user->email]); + while (true === $groupExists) { + $groupExists = UserGroup::where('title', $groupTitle)->count() > 0; + if(false === $groupExists) { + $group = UserGroup::create(['title' => $groupTitle]); + break; + } + $groupTitle = sprintf('%s-%d', $user->email, $index); + $index++; + if($index > 99) { + throw new FireflyException('Email address can no longer be used for registrations.'); + } + } $role = UserRole::where('title', UserRole::OWNER)->first(); if (null === $role) { throw new FireflyException('The user role is unexpectedly empty. Did you run all migrations?');