Ejemplo n.º 1
0
    /**
     * @param SS_HTTPRequest $r
     * @return SS_HTTPResponse|void
     * @throws SS_HTTPResponse_Exception
     */
    public function handleEmailSpeakers(SS_HTTPRequest $r)
    {
        if (!Member::currentUser()) {
            return $this->httpError(403);
        }
        $email = $r->postVar('email');
        if ($email != null) {
            $current_user = Member::currentUser();
            $toAdresses = [];
            $ccAddresses = ['*****@*****.**'];
            foreach ($this->presentation->getSpeakersAndModerators() as $s) {
                $toAddresses[] = $s->getEmail();
            }
            $chairs = $this->presentation->Category()->TrackChairs()->exclude('MemberID', $current_user->ID);
            foreach ($chairs as $chair) {
                $ccAddresses[] = $chair->Member()->Email;
            }
            $subject = "Track chair {$current_user->getName()} has a question about your presentation";
            $body = $email;
            $email = EmailFactory::getInstance()->buildEmail(null, implode(',', $toAddresses), $subject, $body);
            $email->setCC(implode(',', $ccAddresses));
            $email->replyTo($current_user->Email);
            try {
                $email->send();
                $this->presentation->addNotification('
	        		{member} emailed the speakers
	        	');
                return new SS_HTTPResponse('OK');
            } catch (Exception $e) {
                return new SS_HTTPResponse($e->getMessage(), 400);
            }
        }
        return $this->httpError(400, "Invalid comment");
    }