/**
  * Recovers all marked threads.
  */
 public function recoverAll()
 {
     if (!empty($this->threadIDs)) {
         list($boards, $boardIDs) = ThreadEditor::getBoards($this->threadIDs);
         // check permissions
         $sql = "SELECT \tboardID\n\t\t\t\tFROM \twbb" . WBB_N . "_thread\n\t\t\t\tWHERE \tthreadID IN (" . $this->threadIDs . ")";
         $result = WCF::getDB()->sendQuery($sql);
         while ($row = WCF::getDB()->fetchArray($result)) {
             $boards[$row['boardID']]->checkModeratorPermission('canDeleteThreadCompletely');
         }
         ThreadEditor::restoreAll($this->threadIDs);
         ThreadEditor::unmarkAll();
         // refresh counts
         BoardEditor::refreshAll($boardIDs);
         // set last post
         foreach ($boards as $board) {
             $board->setLastPosts();
         }
         self::resetCache();
     }
     HeaderUtil::redirect($this->url);
     exit;
 }