Author: david
Date: Tue Sep 29 22:04:51 2009
New Revision: 3606

Log:
Fix ACL permissions for repository autocomplete - broken in r3592. Add current 
culture to search criteria for autocomplete list.

Modified:
   trunk/apps/qubit/modules/repository/actions/autocompleteAction.class.php
   trunk/apps/qubit/modules/repository/actions/listAction.class.php

Modified: 
trunk/apps/qubit/modules/repository/actions/autocompleteAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/repository/actions/autocompleteAction.class.php    
Tue Sep 29 16:18:06 2009        (r3605)
+++ trunk/apps/qubit/modules/repository/actions/autocompleteAction.class.php    
Tue Sep 29 22:04:51 2009        (r3606)
@@ -22,8 +22,34 @@
   public function execute($request)
   {
     $criteria = new Criteria;
+    $criteria->addJoin(QubitActorI18n::ID, QubitRepository::ID, 
Criteria::INNER_JOIN);
+    $criteria->add(QubitActorI18n::CULTURE, $this->getUser()->getCulture(), 
Criteria::EQUAL);
     $criteria->add(QubitActorI18n::AUTHORIZED_FORM_OF_NAME, 
$request->query.'%', Criteria::LIKE);
-    $criteria->addJoin(QubitActor::ID, QubitActorI18n::ID);
+
+    // Filter 'denied' repositories if list for repository auto-complete on 
info
+    // object form
+    if (isset($request->aclAction))
+    {
+      if (isset($request->informationObject))
+      {
+        $informationObject = 
QubitInformationObject::getById($request->informationObject);
+      }
+      else
+      {
+        $informationObject = QubitInformationObject::getRoot();
+      }
+
+      $deniedRepositories = QubitAcl::deniedRepositories($informationObject, 
$request->aclAction);
+
+      // If all repositories are denied, no response
+      if (array('*') == $deniedRepositories)
+      {
+
+        return sfView::NONE;
+      }
+
+      $criteria->add(QubitRepository::ID, $deniedRepositories, 
Criteria::NOT_IN);
+    }
 
     $this->pager = new QubitPager('QubitRepository');
     $this->pager->setCriteria($criteria);

Modified: trunk/apps/qubit/modules/repository/actions/listAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/repository/actions/listAction.class.php    Tue Sep 
29 16:18:06 2009        (r3605)
+++ trunk/apps/qubit/modules/repository/actions/listAction.class.php    Tue Sep 
29 22:04:51 2009        (r3606)
@@ -30,30 +30,6 @@
     $search = new QubitSearch;
     $query = new Zend_Search_Lucene_Search_Query_Term(new 
Zend_Search_Lucene_Index_Term('QubitRepository', 'className'));
 
-    // Filter 'denied' repositories if list for repository auto-complete on 
info
-    // object form
-    if (isset($request->informationObject) && isset($request->aclAction))
-    {
-      $informationObject = 
QubitInformationObject::getById($request->informationObject);
-      $deniedRepositories = QubitAcl::deniedRepositories($informationObject, 
$request->aclAction);
-
-      // If all repositories are denied, no response
-      if (array('*') == $deniedRepositories)
-      {
-
-        return sfView::NONE;
-      }
-
-      $subquery1 = new Zend_Search_Lucene_Search_Query_MultiTerm();
-      foreach ($deniedRepositories as $repositoryId)
-      {
-        $subquery1->addTerm(new Zend_Search_Lucene_Index_Term($repositoryId, 
'id'));
-      }
-
-      $query = new Zend_Search_Lucene_Search_Query_Boolean(array($query));
-      $query->addSubquery($subquery1, false /* prohibited */);
-    }
-
     if (isset($request->query))
     {
       $query = new Zend_Search_Lucene_Search_Query_Boolean(array($query, 
Zend_Search_Lucene_Search_QueryParser::parse($request->query)));

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to