From e0309874d49a2e08376f5c0c5f814b448b5ac554 Mon Sep 17 00:00:00 2001 From: Ryan Prather Date: Fri, 24 May 2024 00:49:56 -0400 Subject: [PATCH] Change code to make first user an admin so they have access to reference editor --- src/Controller/RegistrationController.php | 9 +++++++-- src/Repository/UserRepository.php | 9 +++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Controller/RegistrationController.php b/src/Controller/RegistrationController.php index 0294f0d..dcb2fef 100644 --- a/src/Controller/RegistrationController.php +++ b/src/Controller/RegistrationController.php @@ -20,6 +20,11 @@ class RegistrationController extends AbstractController $form = $this->createForm(RegistrationFormType::class, $user); $form->handleRequest($request); + $role = ['ROLE_USER']; + + if ($entityManager->getRepository(User::class)->getUserCount() == 0) { + $role = ['ROLE_ADMIN']; + } if ($form->isSubmitted() && $form->isValid()) { // encode the plain password @@ -28,8 +33,8 @@ class RegistrationController extends AbstractController $user, $form->get('plainPassword')->getData() ) - ) - ->setRoles(['ROLE_USER']); + ); + $user->setRoles($role); $entityManager->persist($user); $entityManager->flush(); diff --git a/src/Repository/UserRepository.php b/src/Repository/UserRepository.php index 4f2804e..2f24947 100644 --- a/src/Repository/UserRepository.php +++ b/src/Repository/UserRepository.php @@ -33,6 +33,15 @@ class UserRepository extends ServiceEntityRepository implements PasswordUpgrader $this->getEntityManager()->flush(); } + public function getUserCount(): int + { + return $this->createQueryBuilder('u') + ->select('COUNT(u.id)') + ->getQuery() + ->getSingleScalarResult() + ; + } + // /** // * @return User[] Returns an array of User objects // */