Author: david
Date: Mon Sep 28 16:57:27 2009
New Revision: 3577
Log:
Only list info objects in repositories for which user has access.
Modified:
trunk/apps/qubit/modules/informationobject/actions/listAction.class.php
Modified:
trunk/apps/qubit/modules/informationobject/actions/listAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/informationobject/actions/listAction.class.php
Mon Sep 28 16:55:02 2009 (r3576)
+++ trunk/apps/qubit/modules/informationobject/actions/listAction.class.php
Mon Sep 28 16:57:27 2009 (r3577)
@@ -86,6 +86,34 @@
$query->addSubquery(new Zend_Search_Lucene_Search_Query_Term(new
Zend_Search_Lucene_Index_Term(QubitTerm::PUBLICATION_STATUS_DRAFT_ID,
'publicationStatusId')), false);
}
+ // Filter out objects in forbidden repositories (no read access)
+ if (0 < count($deniedRepositories =
QubitAcl::deniedRepositories($this->informationObject,
QubitAclAction::READ_ID)))
+ {
+ // If all repositories are denied, re-route user
+ if (array('*') == $deniedRepositories)
+ {
+ if ($this->context->getUser()->isAuthenticated())
+ {
+ // Access denied
+ QubitAcl::forwardToSecureAction();
+ }
+ else
+ {
+ // Login page
+ QubitAcl::forwardToLoginAction();
+ }
+ }
+
+ $subquery1 = new Zend_Search_Lucene_Search_Query_MultiTerm();
+ foreach ($deniedRepositories as $repositoryId)
+ {
+ $subquery1->addTerm(new Zend_Search_Lucene_Index_Term($repositoryId,
'repositoryid'));
+ }
+
+ $query = new Zend_Search_Lucene_Search_Query_Boolean(array($query));
+ $query->addSubquery($subquery1, false /* prohibited */);
+ }
+
$this->pager = new QubitSearchPager;
$this->pager->hits = $search->getEngine()->getIndex()->find($query);
$this->pager->setPage($request->page);
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---