/** * Allows user to remove announcement. * * Users may remove announcements from being displayed for themselves only. * Does not affect what announcements are shown for other users. * * @since 2.0.0 * @access public * * @param int $DiscussionID Unique discussion ID. * @param string $TransientKey Single-use hash to prove intent. */ public function DismissAnnouncement($DiscussionID = '', $TransientKey = '') { // Confirm announcements may be dismissed if (!C('Vanilla.Discussions.Dismiss', 1)) { throw PermissionException('Vanilla.Discussions.Dismiss'); } $this->_DeliveryType = DELIVERY_TYPE_BOOL; $Session = Gdn::Session(); if (is_numeric($DiscussionID) && $DiscussionID > 0 && $Session->UserID > 0 && $Session->ValidateTransientKey($TransientKey)) { $this->DiscussionModel->DismissAnnouncement($DiscussionID, $Session->UserID); } // Redirect back where the user came from if necessary if ($this->_DeliveryType === DELIVERY_TYPE_ALL) { Redirect('discussions'); } $this->Render(); }
/** * Allows user to remove announcement. * * Users may remove announcements from being displayed for themselves only. * Does not affect what announcements are shown for other users. * * @since 2.0.0 * @access public * * @param int $DiscussionID Unique discussion ID. * @param string $TransientKey Single-use hash to prove intent. */ public function DismissAnnouncement($DiscussionID = '') { // Confirm announcements may be dismissed if (!C('Vanilla.Discussions.Dismiss', 1)) { throw PermissionException('Vanilla.Discussions.Dismiss'); } // Make sure we are posting back. if (!$this->Request->IsPostBack()) { throw PermissionException('Javascript'); } $Session = Gdn::Session(); if (is_numeric($DiscussionID) && $DiscussionID > 0 && $Session->UserID > 0) { $this->DiscussionModel->DismissAnnouncement($DiscussionID, $Session->UserID); } // Redirect back where the user came from if necessary if ($this->_DeliveryType === DELIVERY_TYPE_ALL) { SafeRedirect('discussions'); } $this->JsonTarget("#Discussion_{$DiscussionID}", NULL, 'SlideUp'); $this->Render('Blank', 'Utility', 'Dashboard'); }