package org.drools.guvnor.client.security; import org.drools.guvnor.client.common.GenericCallback; import org.drools.guvnor.client.rpc.RepositoryServiceFactory; import com.google.gwt.user.client.Command; /** * The capabilities manager * @author esteban.aliverti@gmail.com * */ public class CapabilitiesManager { private static CapabilitiesManager INSTANCE; /** * These are used to decide what to display or not. */ private Capabilities capabilities; private CapabilitiesManager(){ } public static synchronized CapabilitiesManager getInstance(){ if (INSTANCE == null) INSTANCE = new CapabilitiesManager(); return INSTANCE; } public void refreshAllowedCapabilities(final Command command){ RepositoryServiceFactory.getSecurityService().getUserCapabilities(new GenericCallback<Capabilities>() { public void onSuccess(Capabilities cp) { capabilities = cp; if (command != null){ command.execute(); } } }); } public Capabilities getCapabilities() { return this.capabilities; } public boolean shouldShow(Integer... capability) { for ( Integer cap : capability ) { if ( capabilities.list.contains( cap ) ) { return true; } } return false; } }