diff --git a/src/Controller/OrganisationMembersController.php b/src/Controller/OrganisationMembersController.php index 1817bce..0efef7a 100644 --- a/src/Controller/OrganisationMembersController.php +++ b/src/Controller/OrganisationMembersController.php @@ -1370,6 +1370,20 @@ class OrganisationMembersController extends SimpleController { $timeout = $this->ci->config['organisation.membership.timeout']; + $admin_fallback = false; + $recipientsQuery = $organisation->administrators(); + + if ($recipientsQuery->count() == 0) { + $admin_fallback = true; + $role = $this->ci->classMapper->getClassMapping('role')::where('slug', 'organisations-admin')->with('users')->first(); + if ($role->users()->count() == 0) { + $role = $this->ci->classMapper->getClassMapping('role')::where('slug', 'site-admin')->with('users')->first(); + } + $recipientsQuery = $role->users(); + } + + $recipients = $recipientsQuery->get(); + // Create and send approval email $message = new TwigMailMessage($this->ci->view, 'mail/organisation-membership-request.html.twig'); @@ -1379,20 +1393,9 @@ class OrganisationMembersController extends SimpleController 'organisation' => $organisation, 'token' => $token, 'approval_expiration' => ($timeout > 0 ? floor($timeout / 86400) . ' days' : false), + 'admin_fallback' => $admin_fallback, ]); - $recipientsQuery = $organisation->administrators(); - - if ($recipientsQuery->count() == 0) { - $role = $this->ci->classMapper->getClassMapping('role')::where('slug', 'organisations-admin')->with('users')->first(); - if ($role->users()->count() == 0) { - $role = $this->ci->classMapper->getClassMapping('role')::where('slug', 'site-admin')->with('users')->first(); - } - $recipientsQuery = $role->users(); - } - - $recipients = $recipientsQuery->get(); - foreach($recipients as $recipient) { $message->addEmailRecipient(new EmailRecipient($recipient->email, $recipient->full_name)); $message->addParams([ 'recipient' => $recipient ]); diff --git a/templates/mail/organisation-membership-request.html.twig b/templates/mail/organisation-membership-request.html.twig index 1ac997b..7143e45 100644 --- a/templates/mail/organisation-membership-request.html.twig +++ b/templates/mail/organisation-membership-request.html.twig @@ -3,6 +3,12 @@ {% endblock %} {% block body %} +{% if admin_fallback %} +
+

You are receiving this email as an organisation/site administrator!

+

This email has been sent to you in lieu of {{organisation.name}} as there are currently no approved administrators for the organisation.

+
+{% endif %}

Dear {{recipient.first_name}},