/** * @param mixed $max * @param Ingo_Storage_Filters $filters */ protected function _assertMaxRules($max, $filters) { if ($max !== true && $max <= count($filters->getFilterList())) { Horde::permissionDeniedError('ingo', 'max_rules', sprintf(_("You are not allowed to create more than %d rules."), $max)); return true; } return false; }
/** * Stores the specified data in the storage backend. * * @param Ingo_Storage_Rule|Ingo_Storage_Filters $ob The object to store. */ protected function _store($ob) { $prefs = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Prefs')->create('ingo', array('cache' => false, 'user' => Ingo::getUser())); switch ($ob->obType()) { case self::ACTION_BLACKLIST: $data = array('a' => $ob->getBlacklist(), 'f' => $ob->getBlacklistFolder()); $prefs->setValue('blacklist', serialize($data)); break; case self::ACTION_FILTERS: $prefs->setValue('rules', serialize($ob->getFilterList())); break; case self::ACTION_FORWARD: $data = array('a' => $ob->getForwardAddresses(), 'k' => $ob->getForwardKeep()); $prefs->setValue('forward', serialize($data)); break; case self::ACTION_VACATION: $data = array('addresses' => $ob->getVacationAddresses(), 'days' => $ob->getVacationDays(), 'excludes' => $ob->getVacationExcludes(), 'ignorelist' => $ob->getVacationIgnorelist(), 'reason' => $ob->getVacationReason(), 'subject' => $ob->getVacationSubject(), 'start' => $ob->getVacationStart(), 'end' => $ob->getVacationEnd()); $prefs->setValue('vacation', serialize($data)); break; case self::ACTION_WHITELIST: $prefs->setValue('whitelist', serialize($ob->getWhitelist())); break; case self::ACTION_SPAM: $data = array('folder' => $ob->getSpamFolder(), 'level' => $ob->getSpamLevel()); $prefs->setValue('spam', serialize($data)); break; } }