/** * Determines whether we have gadget administration data for a gadget. * * @param container * The container the gadget is in. * @param gadgetUrl * The gadget to check. * @return true if we do have gadget administration data false otherwise. */ private boolean hasGadgetAdminData(String container, String gadgetUrl) { return this.getGadgetAdminData(container, gadgetUrl) != null; }
@Test public void testGetGadgetAdminData() { assertEquals(horoscopeAdminData, enabledStore.getGadgetAdminData(DEFAULT, HOROSCOPE)); assertEquals(todoAdminData, enabledStore.getGadgetAdminData(DEFAULT, TODO)); assertEquals(fooAdminData, enabledStore.getGadgetAdminData(DEFAULT, "https://foo.com/bar/gadget.xml")); assertEquals(fooAdminData, enabledStore.getGadgetAdminData(DEFAULT, "https://foo.com:443/bar/gadget.xml")); assertNull(enabledStore.getGadgetAdminData("my_container", HOROSCOPE)); assertEquals(httpAdminData, enabledStore.getGadgetAdminData(DEFAULT, "http://example.com/gadget2.xml")); }
@Test public void testGetGadgetAdminData() { assertEquals(horoscopeAdminData, enabledStore.getGadgetAdminData(DEFAULT, HOROSCOPE)); assertEquals(todoAdminData, enabledStore.getGadgetAdminData(DEFAULT, TODO)); assertEquals(fooAdminData, enabledStore.getGadgetAdminData(DEFAULT, "https://foo.com/bar/gadget.xml")); assertEquals(fooAdminData, enabledStore.getGadgetAdminData(DEFAULT, "https://foo.com:443/bar/gadget.xml")); assertNull(enabledStore.getGadgetAdminData("my_container", HOROSCOPE)); assertEquals(httpAdminData, enabledStore.getGadgetAdminData(DEFAULT, "http://example.com/gadget2.xml")); }
public Set<String> getAdditionalRpcServiceIds(Gadget gadget) { GadgetAdminData gadgetData = this.getGadgetAdminData(getSafeContainerFromGadget(gadget), getSafeGadgetUrlFromGadget(gadget)); Set<String> ids = Sets.newHashSet(); if(gadgetData != null) { ids.addAll(gadgetData.getRpcAdminData().getAdditionalRpcServiceIds()); } return ids; } }
@Test public void testSetGadgetAdminData() { assertEquals(horoscopeAdminData, enabledStore.getGadgetAdminData(DEFAULT, HOROSCOPE)); horoscopeAdminData.getFeatureAdminData().addFeature("foo_feature"); enabledStore.setGadgetAdminData(DEFAULT, HOROSCOPE, horoscopeAdminData); assertTrue(enabledStore.getGadgetAdminData(DEFAULT, HOROSCOPE).getFeatureAdminData() .getFeatures().contains("foo_feature")); assertEquals(httpAdminData, enabledStore.getGadgetAdminData(DEFAULT, "http://example.com/gadget2.xml")); enabledStore.setGadgetAdminData(DEFAULT, "http://example.com/gadget2.xml", todoAdminData); assertEquals(todoAdminData, enabledStore.getGadgetAdminData(DEFAULT, "http://example.com/gadget2.xml")); enabledStore.setGadgetAdminData(DEFAULT, "http://example.com/gadget1.xml", null); assertNotNull(enabledStore.getGadgetAdminData(DEFAULT, "http://example.com/gadget1.xml")); enabledStore.setGadgetAdminData(DEFAULT, null, horoscopeAdminData); assertNull(enabledStore.getGadgetAdminData(DEFAULT, null)); }
@Test public void testSetGadgetAdminData() { assertEquals(horoscopeAdminData, enabledStore.getGadgetAdminData(DEFAULT, HOROSCOPE)); horoscopeAdminData.getFeatureAdminData().addFeature("foo_feature"); enabledStore.setGadgetAdminData(DEFAULT, HOROSCOPE, horoscopeAdminData); assertTrue(enabledStore.getGadgetAdminData(DEFAULT, HOROSCOPE).getFeatureAdminData() .getFeatures().contains("foo_feature")); assertEquals(httpAdminData, enabledStore.getGadgetAdminData(DEFAULT, "http://example.com/gadget2.xml")); enabledStore.setGadgetAdminData(DEFAULT, "http://example.com/gadget2.xml", todoAdminData); assertEquals(todoAdminData, enabledStore.getGadgetAdminData(DEFAULT, "http://example.com/gadget2.xml")); enabledStore.setGadgetAdminData(DEFAULT, "http://example.com/gadget1.xml", null); assertNotNull(enabledStore.getGadgetAdminData(DEFAULT, "http://example.com/gadget1.xml")); enabledStore.setGadgetAdminData(DEFAULT, null, horoscopeAdminData); assertNull(enabledStore.getGadgetAdminData(DEFAULT, null)); }
public boolean isAllowedFeature(Feature feature, Gadget gadget) { String container = getSafeContainerFromGadget(gadget); String gadgetUrl = getSafeGadgetUrlFromGadget(gadget); if (container == null || gadgetUrl == null) { return false; } if (!isFeatureAdminEnabled(container)) { return true; } if (!hasGadgetAdminData(container, gadgetUrl)) { // If feature administration is not enabled assume the feature is allowed return false; } GadgetAdminData gadgetAdminData = getGadgetAdminData(container, gadgetUrl); FeatureAdminData featureAdminData = gadgetAdminData.getFeatureAdminData(); String featureName = feature.getName(); switch (featureAdminData.getType()) { case BLACKLIST: return !featureAdminData.getFeatures().contains(featureName); case WHITELIST: default: return featureAdminData.getFeatures().contains(featureName); } }
FeatureAdminData featureAdminData = this.getGadgetAdminData(container, gadgetUrl) .getFeatureAdminData();