/**
  * Returns true if and only if the assertion conditions are met
  *
  * This method is passed the ACL, Role, Resource, and privilege to which
  * the authorization query applies. If the $role, $resource, or $privilege
  * parameters are null, it means that the query applies to all Roles,
  * Resources, or privileges, respectively.
  *
  * @param  Zend_Acl                    $acl
  * @param  Zend_Acl_Role_Interface     $role
  * @param  Zend_Acl_Resource_Interface $resource
  * @param  string                      $privilege
  * @return boolean
  */
 public function assert(Zend_Acl $acl, Zend_Acl_Role_Interface $role = null, Zend_Acl_Resource_Interface $resource = null, $privilege = null)
 {
     $sameOrgAssert = new App_Acl_Assert_SameOrganization();
     $childOrgAssert = new App_Acl_Assert_ChildOrganization();
     if (!$role instanceof UserModel) {
         throw new Exception('Role must be an instance of UserModel');
     }
     return $sameOrgAssert->assert($acl, $role, $resource, $privilege) || $childOrgAssert->assert($acl, $role, $resource, $privilege) && $role->getRole() === 'admin';
 }
 /**
  * Returns true if and only if the assertion conditions are met
  *
  * This method is passed the ACL, Role, Resource, and privilege to which
  * the authorization query applies. If the $role, $resource, or $privilege
  * parameters are null, it means that the query applies to all Roles,
  * Resources, or privileges, respectively.
  *
  * @param  Zend_Acl                    $acl
  * @param  Zend_Acl_Role_Interface     $role
  * @param  Zend_Acl_Resource_Interface $resource
  * @param  string                      $privilege
  * @return boolean
  */
 public function assert(Zend_Acl $acl, Zend_Acl_Role_Interface $role = null, Zend_Acl_Resource_Interface $resource = null, $privilege = null)
 {
     $sameRole = new App_Acl_Assert_SameRole();
     $sameOrg = new App_Acl_Assert_SameOrganization();
     $childOrg = new App_Acl_Assert_ChildOrganization();
     if (!$role instanceof UserModel) {
         throw new Exception('Role must be an instance of UserModel');
     } else {
         if (!$resource instanceof UserModel) {
             throw new Exception('Resource must be an instance of UserModel');
         }
     }
     if ($sameOrg->assert($acl, $role, $resource, $privilege)) {
         return $sameRole->assert($acl, $role, $resource, $privilege);
     } else {
         return $childOrg->assert($acl, $role, $resource, $privilege);
     }
 }
 /**
  * Returns true if and only if the assertion conditions are met
  *
  * This method is passed the ACL, Role, Resource, and privilege to which
  * the authorization query applies. If the $role, $resource, or $privilege
  * parameters are null, it means that the query applies to all Roles,
  * Resources, or privileges, respectively.
  *
  * @param  Zend_Acl                    $acl
  * @param  Zend_Acl_Role_Interface     $role
  * @param  Zend_Acl_Resource_Interface $resource
  * @param  string                      $privilege
  * @return boolean
  */
 public function assert(Zend_Acl $acl, Zend_Acl_Role_Interface $role = null, Zend_Acl_Resource_Interface $resource = null, $privilege = null)
 {
     $sameOrgAssert = new App_Acl_Assert_SameOrganization();
     $childOrgAssert = new App_Acl_Assert_ChildOrganization();
     return $sameOrgAssert->assert($acl, $role, $resource, $privilege) || $childOrgAssert->assert($acl, $role, $resource, $privilege);
 }