Author: david
Date: Tue Jul 26 12:23:42 2011
New Revision: 9381

Log:
Throw exception if no publication status set for information object.  Fixes 
issue 2017.

Modified:
   trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php

Modified: trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php    Mon Jul 25 22:50:10 
2011        (r9380)
+++ trunk/plugins/qbAclPlugin/lib/QubitAcl.class.php    Tue Jul 26 12:23:42 
2011        (r9381)
@@ -170,12 +170,20 @@
       self::getInstance()->addRole($role);
     }
 
-    // If attempting to read a draft information object, test viewDraft & read
-    if ('read' == $action && $resource instanceOf QubitInformationObject && 
null !== $publicationStatus = $resource->getPublicationStatus() && 
QubitTerm::PUBLICATION_STATUS_DRAFT_ID == $publicationStatus->statusId)
+    // If attempting to read a draft information object, check viewDraft 
permission
+    if ('read' == $action && $resource instanceOf QubitInformationObject)
     {
-      $instance = self::getInstance()->buildAcl($resource, $options);
+      if (null === $resource->getPublicationStatus())
+      {
+        throw new sfException('No publication status set for information 
object id: '.$resource->id);
+      }
 
-      return ($instance->acl->isAllowed($role, $resource, 'read') && 
$instance->acl->isAllowed($role, $resource, 'viewDraft'));
+      if (QubitTerm::PUBLICATION_STATUS_DRAFT_ID == 
$resource->getPublicationStatus()->statusId)
+      {
+        $instance = self::getInstance()->buildAcl($resource, $options);
+
+        return ($instance->acl->isAllowed($role, $resource, 'read') && 
$instance->acl->isAllowed($role, $resource, 'viewDraft'));
+      }
     }
 
     // If resource is a new object (no id yet) figure out if we should test

-- 
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.com/group/qubit-commits?hl=en.

Reply via email to