/** * 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) { if (NULL === $role || NULL === $resource) { return false; } if (!$role instanceof \Application\Model\UserModel) { throw new Exception('Role must be an instance of UserModel'); } if (!$resource instanceof \Application\Model\Organization\OrgCustomerModel) { throw new Exception('Org must be an instance of OrgCustomerModel'); } foreach ($resource->getAllBillingAccounts() as $billing) { // Basic info billing cycle start day is not modifiable if one of // billings is inheriting this value and it is not modifiable if (empty($billing->billingCycleStartDay) && !$billing->billingCycleModifiable) { return false; } } return true; }