/**
  * 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');
 }