Author: david
Date: Fri Oct 23 14:28:38 2009
New Revision: 3814
Log:
Use QubitAcl::getRepositoryAccess to determine users ability to see
repositories in autocomplete field. Fixes issue #1088.
Modified:
trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
trunk/apps/qubit/modules/repository/actions/autocompleteAction.class.php
Modified:
trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
Fri Oct 23 12:17:32 2009 (r3813)
+++ trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
Fri Oct 23 14:28:38 2009 (r3814)
@@ -138,7 +138,7 @@
if (isset($this->request->id))
{
- $this->repoAcParams = array('module' => 'repository', 'action' =>
'autocomplete', 'aclAction' => QubitAclAction::UPDATE_ID, 'informationObject'
=> $this->request->id);
+ $this->repoAcParams = array('module' => 'repository', 'action' =>
'autocomplete', 'aclAction' => QubitAclAction::UPDATE_ID);
}
else
{
Modified:
trunk/apps/qubit/modules/repository/actions/autocompleteAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/repository/actions/autocompleteAction.class.php
Fri Oct 23 12:17:32 2009 (r3813)
+++ trunk/apps/qubit/modules/repository/actions/autocompleteAction.class.php
Fri Oct 23 14:28:38 2009 (r3814)
@@ -35,25 +35,39 @@
// 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);
+ $repositoryList = array();
+ $repositoryAccess = QubitAcl::getRepositoryAccess($request->aclAction);
// If all repositories are denied, no response
- if (array('*') == $deniedRepositories)
+ if (1 == count($repositoryAccess) && QubitAcl::DENY ==
$repositoryAccess[0]['access'])
{
return sfView::NONE;
}
+ else
+ {
+ while ($repo = array_shift($repositoryAccess))
+ {
+ if ('*' != $repo['id'])
+ {
+ $repositoryList[] = $repo['id'];
+ }
+ else
+ {
+ if (QubitAcl::DENY == $repo['access'])
+ {
+ // Require repos to be specifically allowed (all others
prohibited)
+ $criteria->add(QubitRepository::ID, $repositoryList +
array('null'), Criteria::IN);
+ }
+ else
+ {
+ // Prohibit specified repos (all others allowed)
+ $criteria->add(QubitRepository::ID, $repositoryList,
Criteria::NOT_IN);
+ }
+ }
+ }
+ }
- $criteria->add(QubitRepository::ID, $deniedRepositories,
Criteria::NOT_IN);
}
$this->repositories = QubitRepository::get($criteria);
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---