/** * Checks the features for a gadget to see if they are allowed. * * @param featuresForGadget * a set of features that the admin has either whitelist or blacklisted. * @param gadgetFeatures * a list of features required by the gadget. * @param featureAdminData * the feature admin data for the gadget. * @return true if all the features for the gadget are allowed, false otherwise. */ private boolean areAllFeaturesAllowed(Set<String> featuresForGadget, List<String> gadgetFeatures, FeatureAdminData featureAdminData) { switch (featureAdminData.getType()) { case BLACKLIST: for (String feature : gadgetFeatures) { if (featuresForGadget.contains(feature)) { return false; } } break; case WHITELIST: default: return featuresForGadget.containsAll(gadgetFeatures); } return true; }
@Test public void testSetPriority() { whitelistData.setType(Type.BLACKLIST); blacklistData.setType(Type.WHITELIST); nullData.setType(Type.BLACKLIST); defaultData.setType(Type.BLACKLIST); assertEquals(Type.BLACKLIST, whitelistData.getType()); assertEquals(Type.BLACKLIST, nullData.getType()); assertEquals(Type.BLACKLIST, defaultData.getType()); assertEquals(Type.WHITELIST, blacklistData.getType()); nullData.setType(null); assertEquals(Type.WHITELIST, nullData.getType()); }
@Test public void testSetPriority() { whitelistData.setType(Type.BLACKLIST); blacklistData.setType(Type.WHITELIST); nullData.setType(Type.BLACKLIST); defaultData.setType(Type.BLACKLIST); assertEquals(Type.BLACKLIST, whitelistData.getType()); assertEquals(Type.BLACKLIST, nullData.getType()); assertEquals(Type.BLACKLIST, defaultData.getType()); assertEquals(Type.WHITELIST, blacklistData.getType()); nullData.setType(null); assertEquals(Type.WHITELIST, nullData.getType()); }
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); } }
if(featureAdminData.getType() == Type.WHITELIST) {