/** * 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) { // We need specific objects to check against each other if (NULL === $resource) { return false; } /** * @var $resource \Application\Model\AlarmModel */ if (!$resource instanceof \Application\Model\AlarmModel) { throw new Exception('Role must be an instance of AlarmModel'); } if (AlarmRuleCondition::isExpense($resource->condition)) { return true; } return false; }
/** * Implements Zend_Acl_Resource_Interface. * Returns the string identifier of the Resource * * @return string */ public function getResourceId() { switch (true) { case AlarmRuleCondition::isConsumptionData($this->condition): return 'ruleConsumptionData'; case AlarmRuleCondition::isConsumptionVoice($this->condition): return 'ruleConsumptionVoice'; case AlarmRuleCondition::isConsumptionSms($this->condition): return 'ruleConsumptionSms'; case AlarmRuleCondition::isExpense($this->condition): return 'ruleExpense'; case AlarmRuleCondition::isLifeCycle($this->condition): return 'ruleLifeCycle'; case AlarmRuleCondition::isSupervision($this->condition): return 'ruleSupervision'; } }