/** * Prepare document finder. * * @return Opus_DocumentFinder */ protected function _prepareDocumentFinder() { $finder = new Opus_DocumentFinder(); $finder->setServerState(self::$_reviewServerState); $logger = $this->getLogger(); $userId = $this->_loggedUser->getUserId(); $onlyReviewerByUserId = false; // Add constraint for reviewer, if current user is *not* admin. if (Opus_Security_Realm::getInstance()->checkModule('admin')) { $message = "Review: Showing all unpublished documents to admin"; $logger->debug($message . " (user_id: {$userId})"); } elseif (Opus_Security_Realm::getInstance()->checkModule('review')) { if ($onlyReviewerByUserId) { $message = "Review: Showing only documents belonging to reviewer"; $finder->setEnrichmentKeyValue('reviewer.user_id', $userId); } else { $message = "Review: Showing all unpublished documents to reviewer"; } $logger->debug($message . " (user_id: {$userId})"); } else { $message = 'Review: Access to unpublished documents denied.'; $logger->err($message . " (user_id: {$userId})"); throw new Application_Exception($message); } return $finder; }