Author: david
Date: Fri Oct 23 14:53:00 2009
New Revision: 3816
Log:
Always return true from ACL permission condition when matching parameter is
null. Fixes issue #1091.
Modified:
trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php
trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php
Modified: trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php Fri Oct 23 14:45:57
2009 (r3815)
+++ trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php Fri Oct 23 14:53:00
2009 (r3816)
@@ -63,6 +63,11 @@
{
$options['parameters']['repositoryId'] = $repository->id;
}
+ else
+ {
+ $options['parameters']['repositoryId'] = null;
+ }
+
$hasAccess = self::allowAccess($user, $aco, $actionId, $options);
break;
Modified: trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php Fri Oct 23
14:45:57 2009 (r3815)
+++ trunk/plugins/qbAclPlugin/lib/model/QubitAclPermission.php Fri Oct 23
14:53:00 2009 (r3816)
@@ -88,15 +88,24 @@
// Substitute parameters
if (preg_match_all('/%p\[(\w+)\]/', $conditional, $matches))
{
- foreach ($matches[1] as $match)
+ foreach ($matches[1] as $key)
{
- if (isset($parameters[$match]))
+ if (array_key_exists($key, $parameters))
{
- $conditional = str_replace('%p['.$match.']',
'\''.$parameters[$match].'\'', $conditional);
+ // A 'null' parameter matches *any* constant
+ if (null === $parameters[$key])
+ {
+ $conditional = str_replace('%p['.$key.']', 'true', $conditional);
+ $conditional = str_replace('%k['.$key.']', 'true', $conditional);
+ }
+ else
+ {
+ $conditional = str_replace('%p['.$key.']',
'\''.$parameters[$key].'\'', $conditional);
+ }
}
else
{
- $conditional = str_replace('%p['.$match.']', '\'0\'', $conditional);
+ $conditional = str_replace('%p['.$key.']', '\'0\'', $conditional);
}
}
}
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---