From cc50188fe02da7a2a27eaadf78ac85e86108865d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de> Date: Thu, 28 Nov 2024 13:57:08 +0000 Subject: [PATCH] Resolve "RVV: Ablehnen einer Raumanfrage" Closes #2941 Merge request studip/studip!3671 --- lib/models/resources/ResourceRequest.php | 64 ++++++++++++++---------- 1 file changed, 38 insertions(+), 26 deletions(-) diff --git a/lib/models/resources/ResourceRequest.php b/lib/models/resources/ResourceRequest.php index b0334a40978..806db197f92 100644 --- a/lib/models/resources/ResourceRequest.php +++ b/lib/models/resources/ResourceRequest.php @@ -2211,41 +2211,53 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen */ public function sendRequestDeniedMail() { + $users = []; //Get the user who made the request: - $user = $this->user; - if (!($user instanceof User)) { + if ($this->user) { + $users[$this->user->id] = $this->user->username; + } + $range_object = $this->getRangeObject(); + if ($range_object instanceof Course && $this->reply_recipients === ResourceRequest::REPLY_LECTURER) { + foreach ($range_object->getMembersWithStatus('dozent') as $lecturer) { + $users[$lecturer->user_id] = $lecturer->username; + } + } + if (count($users) === 0) { //No mail to send. return; } - //Load the mail template: - $factory = new Flexi\Factory( - $GLOBALS['STUDIP_BASE_PATH'] . '/locale/' - ); - $user_lang_path = getUserLanguagePath($user->id); - $template = $factory->open( - $user_lang_path . '/LC_MAILS/request_denied_mail.inc.php' - ); - - $range_object = $this->getRangeObject(); $mail_title = _('Raumanfrage wurde abgelehnt'); - if($range_object instanceof Course) { + if ($range_object instanceof Course) { $mail_title .= ': ' . $range_object->getFullName(); } - $mail_text = $template->render( - [ - 'request' => $this, - 'range_object' => $range_object - ] - ); - //Send the mail: - Message::send( - User::findCurrent()->id, - $user->username, - $mail_title, - $mail_text - ); + foreach ($users as $user_id => $username) { + //Load the mail template: + $factory = new Flexi\Factory( + $GLOBALS['STUDIP_BASE_PATH'] . '/locale/' + ); + $user_lang_path = getUserLanguagePath($user_id); + $template = $factory->open( + $user_lang_path . '/LC_MAILS/request_denied_mail.inc.php' + ); + + $mail_text = $template->render( + [ + 'request' => $this, + 'range_object' => $range_object + ] + ); + + //Send the mail: + Message::send( + User::findCurrent()->id, + $username, + $mail_title, + $mail_text + ); + } + } -- GitLab