Loading lib/Middleware/InvitationMiddleware.php +90 −89 Original line number Diff line number Diff line Loading @@ -24,6 +24,26 @@ class InvitationMiddleware extends Middleware private $request; /** @var IManager */ private $calendarManager; private const translations = [ "tentative" => [ "meeting_title" => "Invitation Tentatively Accepted: %s", "meeting_body" => "%s has tentatively accepted your invitation to %s on %s", "meeting_head" => "Tentatively Accepted", ], "accept" => [ "meeting_title" => "Invitation Tentatively Accepted: %s", "meeting_body" => "%s has tentatively accepted your invitation to %s on %s", "meeting_head" => "Accepted", ], "decline" => [ "meeting_title" => "Invitation Tentatively Accepted: %s", "meeting_body" => "%s has tentatively accepted your invitation to %s on %s", "meeting_head" => "Declined", ], ]; public function __construct( IRequest $request, Loading @@ -48,7 +68,31 @@ class InvitationMiddleware extends Middleware $this->iusermanager = $iusermanager; $this->languageFactory = $languageFactory; } private function getMailAttributes( string $methodName, array $translationData ) { $meetingTitle = $this->l10n->t( self::translations[$methodName]["meeting_title"], $translationData["summary"] ); $meetingBody = $this->l10n->t( self::translations[$methodName]["meeting_body"], [ $translationData["attendee_name"], $translationData["summary"], $translationData["event_date"], ] ); $meetingHead = $this->l10n->t( self::translations[$methodName]["meeting_head"] ); return [ "meeting_title" => $meetingTitle, "meeting_body" => $meetingBody, "meeting_head" => $meetingHead, ]; } public function afterController( $controller, $methodName, Loading @@ -70,7 +114,12 @@ class InvitationMiddleware extends Middleware ->where( $queryCalendarInvitations ->expr() ->eq("token", $queryCalendarInvitations->createNamedParameter($token)) ->eq( "token", $queryCalendarInvitations->createNamedParameter( $token ) ) ); $stmt = $queryCalendarInvitations->execute(); $row = $stmt->fetch(\PDO::FETCH_ASSOC); Loading @@ -97,92 +146,50 @@ class InvitationMiddleware extends Middleware ->expr() ->eq( "c.principaluri", $queryCalendarObjects->createNamedParameter($principaluri) $queryCalendarObjects->createNamedParameter( $principaluri ) ) ) ->andWhere( $queryCalendarObjects ->expr() ->eq("co.uid", $queryCalendarObjects->createNamedParameter($uid)) ->eq( "co.uid", $queryCalendarObjects->createNamedParameter($uid) ) ); $stmt2 = $queryCalendarObjects->execute(); $row2 = $stmt2->fetch(\PDO::FETCH_ASSOC); $vObject = Reader::read($row2["calendardata"]); $SUMMARY = $vObject->VEVENT->SUMMARY; $datestart = (string) $vObject->VEVENT->DTSTART; $attendeeName = empty($vObject->VEVENT->ATTENDEE['CN']) ? $sender : $vObject->VEVENT->ATTENDE['CN']; $organizername = empty($vObject->VEVENT->ORGANIZER['CN']) ? $recipient : $vObject->VEVENT->ORGANIZER['CN']; $attendeeName = empty($vObject->VEVENT->ATTENDEE["CN"]) ? $sender : $vObject->VEVENT->ATTENDEE["CN"]; $organizername = empty($vObject->VEVENT->ORGANIZER["CN"]) ? $recipient : $vObject->VEVENT->ORGANIZER["CN"]; if (str_contains($datestart, "T")) { $eventdate = date("F d, Y h:i", strtotime($datestart)); } else { $eventdate = date("F d, Y", strtotime($datestart)); } if ($methodName === "tentative") { $meetingTitle = $this->l10n->t( "Invitation Tentatively Accepted: %s", [$SUMMARY] ); $data = [ "attendee_name" => (string) $sender ?: $defaultVal, "invitee_name" => (string) $recipient ?: $defaultVal, "meeting_title" => (string) $meetingTitle ?: $defaultVal, $translationData = [ "summary" => $SUMMARY, "attendee_name" => $attendeeName, "event_date" => $eventdate, ]; $method = "reply"; $emailTemplate = $this->mailer->createEMailTemplate( "dav.calendarInvite." . $method, $data ); $emailTemplate->setSubject( $this->l10n->t("Invitation Tentatively Accepted: %s", [ $SUMMARY, ]) ); $emailTemplate->addHeader(); $emailTemplate->addHeading( $this->l10n->t("Tentatively Accepted") ); $mailbodytext = $this->l10n->t( "%s has tentatively accepted your invitation to %s on %s", [$attendeename, $SUMMARY, $eventdate] ); } if ($methodName === "accept") { $meetingTitle = $this->l10n->t("Invitation Accepted: %s", [ $SUMMARY, ]); $data = [ "attendee_name" => (string) $sender ?: $defaultVal, "invitee_name" => (string) $recipient ?: $defaultVal, "meeting_title" => (string) $meetingTitle ?: $defaultVal, ]; $method = "reply"; $emailTemplate = $this->mailer->createEMailTemplate( $recipient, $data ); $emailTemplate->setSubject( $this->l10n->t("Invitation Accepted: %s", [$SUMMARY]) ); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l10n->t("Accepted")); $mailbodytext = $this->l10n->t( "%s has accepted your invitation to %s on %s", [$attendeename, $SUMMARY, $eventdate] $translations = $this->getMailAttributes( $methodName, $translationData ); } if ($methodName === "decline") { $meetingTitle = $this->l10n->t("Invitation Declined: %s", [ $SUMMARY, ]); $data = [ "attendee_name" => (string) $sender ?: $defaultVal, "invitee_name" => (string) $recipient ?: $defaultVal, "meeting_title" => (string) $meetingTitle ?: $defaultVal, "meeting_title" => (string) $translations["meeting_title"] ?: $defaultVal, ]; $method = "reply"; $emailTemplate = $this->mailer->createEMailTemplate( Loading @@ -190,18 +197,12 @@ class InvitationMiddleware extends Middleware $data ); $emailTemplate->setSubject( $this->l10n->t("Invitation Declined: %s", [$SUMMARY]) $this->l10n->t($translations["meeting_title"], [$SUMMARY]) ); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l10n->t("Declined")); $mailbodytext = $this->l10n->t( "%s has declined your invitation to %s on %s", [$attendeename, $SUMMARY, $eventdate] ); } $emailTemplate->addHeading($translations["meeting_head"]); $emailTemplate->addBodyText( htmlspecialchars($mailbodytext), htmlspecialchars($translations["meeting_body"]), $mailbodytext ); $emailTemplate->addFooter(); Loading Loading
lib/Middleware/InvitationMiddleware.php +90 −89 Original line number Diff line number Diff line Loading @@ -24,6 +24,26 @@ class InvitationMiddleware extends Middleware private $request; /** @var IManager */ private $calendarManager; private const translations = [ "tentative" => [ "meeting_title" => "Invitation Tentatively Accepted: %s", "meeting_body" => "%s has tentatively accepted your invitation to %s on %s", "meeting_head" => "Tentatively Accepted", ], "accept" => [ "meeting_title" => "Invitation Tentatively Accepted: %s", "meeting_body" => "%s has tentatively accepted your invitation to %s on %s", "meeting_head" => "Accepted", ], "decline" => [ "meeting_title" => "Invitation Tentatively Accepted: %s", "meeting_body" => "%s has tentatively accepted your invitation to %s on %s", "meeting_head" => "Declined", ], ]; public function __construct( IRequest $request, Loading @@ -48,7 +68,31 @@ class InvitationMiddleware extends Middleware $this->iusermanager = $iusermanager; $this->languageFactory = $languageFactory; } private function getMailAttributes( string $methodName, array $translationData ) { $meetingTitle = $this->l10n->t( self::translations[$methodName]["meeting_title"], $translationData["summary"] ); $meetingBody = $this->l10n->t( self::translations[$methodName]["meeting_body"], [ $translationData["attendee_name"], $translationData["summary"], $translationData["event_date"], ] ); $meetingHead = $this->l10n->t( self::translations[$methodName]["meeting_head"] ); return [ "meeting_title" => $meetingTitle, "meeting_body" => $meetingBody, "meeting_head" => $meetingHead, ]; } public function afterController( $controller, $methodName, Loading @@ -70,7 +114,12 @@ class InvitationMiddleware extends Middleware ->where( $queryCalendarInvitations ->expr() ->eq("token", $queryCalendarInvitations->createNamedParameter($token)) ->eq( "token", $queryCalendarInvitations->createNamedParameter( $token ) ) ); $stmt = $queryCalendarInvitations->execute(); $row = $stmt->fetch(\PDO::FETCH_ASSOC); Loading @@ -97,92 +146,50 @@ class InvitationMiddleware extends Middleware ->expr() ->eq( "c.principaluri", $queryCalendarObjects->createNamedParameter($principaluri) $queryCalendarObjects->createNamedParameter( $principaluri ) ) ) ->andWhere( $queryCalendarObjects ->expr() ->eq("co.uid", $queryCalendarObjects->createNamedParameter($uid)) ->eq( "co.uid", $queryCalendarObjects->createNamedParameter($uid) ) ); $stmt2 = $queryCalendarObjects->execute(); $row2 = $stmt2->fetch(\PDO::FETCH_ASSOC); $vObject = Reader::read($row2["calendardata"]); $SUMMARY = $vObject->VEVENT->SUMMARY; $datestart = (string) $vObject->VEVENT->DTSTART; $attendeeName = empty($vObject->VEVENT->ATTENDEE['CN']) ? $sender : $vObject->VEVENT->ATTENDE['CN']; $organizername = empty($vObject->VEVENT->ORGANIZER['CN']) ? $recipient : $vObject->VEVENT->ORGANIZER['CN']; $attendeeName = empty($vObject->VEVENT->ATTENDEE["CN"]) ? $sender : $vObject->VEVENT->ATTENDEE["CN"]; $organizername = empty($vObject->VEVENT->ORGANIZER["CN"]) ? $recipient : $vObject->VEVENT->ORGANIZER["CN"]; if (str_contains($datestart, "T")) { $eventdate = date("F d, Y h:i", strtotime($datestart)); } else { $eventdate = date("F d, Y", strtotime($datestart)); } if ($methodName === "tentative") { $meetingTitle = $this->l10n->t( "Invitation Tentatively Accepted: %s", [$SUMMARY] ); $data = [ "attendee_name" => (string) $sender ?: $defaultVal, "invitee_name" => (string) $recipient ?: $defaultVal, "meeting_title" => (string) $meetingTitle ?: $defaultVal, $translationData = [ "summary" => $SUMMARY, "attendee_name" => $attendeeName, "event_date" => $eventdate, ]; $method = "reply"; $emailTemplate = $this->mailer->createEMailTemplate( "dav.calendarInvite." . $method, $data ); $emailTemplate->setSubject( $this->l10n->t("Invitation Tentatively Accepted: %s", [ $SUMMARY, ]) ); $emailTemplate->addHeader(); $emailTemplate->addHeading( $this->l10n->t("Tentatively Accepted") ); $mailbodytext = $this->l10n->t( "%s has tentatively accepted your invitation to %s on %s", [$attendeename, $SUMMARY, $eventdate] ); } if ($methodName === "accept") { $meetingTitle = $this->l10n->t("Invitation Accepted: %s", [ $SUMMARY, ]); $data = [ "attendee_name" => (string) $sender ?: $defaultVal, "invitee_name" => (string) $recipient ?: $defaultVal, "meeting_title" => (string) $meetingTitle ?: $defaultVal, ]; $method = "reply"; $emailTemplate = $this->mailer->createEMailTemplate( $recipient, $data ); $emailTemplate->setSubject( $this->l10n->t("Invitation Accepted: %s", [$SUMMARY]) ); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l10n->t("Accepted")); $mailbodytext = $this->l10n->t( "%s has accepted your invitation to %s on %s", [$attendeename, $SUMMARY, $eventdate] $translations = $this->getMailAttributes( $methodName, $translationData ); } if ($methodName === "decline") { $meetingTitle = $this->l10n->t("Invitation Declined: %s", [ $SUMMARY, ]); $data = [ "attendee_name" => (string) $sender ?: $defaultVal, "invitee_name" => (string) $recipient ?: $defaultVal, "meeting_title" => (string) $meetingTitle ?: $defaultVal, "meeting_title" => (string) $translations["meeting_title"] ?: $defaultVal, ]; $method = "reply"; $emailTemplate = $this->mailer->createEMailTemplate( Loading @@ -190,18 +197,12 @@ class InvitationMiddleware extends Middleware $data ); $emailTemplate->setSubject( $this->l10n->t("Invitation Declined: %s", [$SUMMARY]) $this->l10n->t($translations["meeting_title"], [$SUMMARY]) ); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l10n->t("Declined")); $mailbodytext = $this->l10n->t( "%s has declined your invitation to %s on %s", [$attendeename, $SUMMARY, $eventdate] ); } $emailTemplate->addHeading($translations["meeting_head"]); $emailTemplate->addBodyText( htmlspecialchars($mailbodytext), htmlspecialchars($translations["meeting_body"]), $mailbodytext ); $emailTemplate->addFooter(); Loading