/** * Copyright (c) 2009 - 2012 Red Hat, Inc. * * This software is licensed to you under the GNU General Public License, * version 2 (GPLv2). There is NO WARRANTY for this software, express or * implied, including the implied warranties of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 * along with this software; if not, see * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. * * Red Hat trademarks are not licensed under GPLv2. No permission is * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ package org.candlepin.policy.js.override; import org.candlepin.common.config.Configuration; import org.candlepin.config.ConfigProperties; import org.candlepin.policy.js.JsRunner; import org.candlepin.policy.js.JsonJsContext; import org.candlepin.policy.js.RulesObjectMapper; import com.google.inject.Inject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * OverrideRules * * To determine which fields can be overridden per consumer in the content sets */ public class OverrideRules { private JsRunner jsRules; private RulesObjectMapper mapper; private static Logger log = LoggerFactory.getLogger(OverrideRules.class); protected Configuration config; @Inject public OverrideRules(JsRunner jsRules, Configuration config, RulesObjectMapper mapper) { this.jsRules = jsRules; this.config = config; this.mapper = mapper; jsRules.init("override_name_space"); } public boolean canOverrideForConsumer(String name) { JsonJsContext args = new JsonJsContext(mapper); args.put("name", name); args.put("log", log, false); args.put("hosted", !config.getBoolean(ConfigProperties.STANDALONE)); return !jsRules.runJsFunction(Boolean.class, "get_allow_override", args); } }