[jboss-svn-commits] JBL Code SVN: r35748 - in labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client: explorer and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 26 13:28:00 EDT 2010


Author: eaa
Date: 2010-10-26 13:27:58 -0400 (Tue, 26 Oct 2010)
New Revision: 35748

Added:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/CapabilitiesManager.java
Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/JBRMSEntryPoint.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/NavigationPanel.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ActionToolbar.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DiscussionWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/MetaDataWidget.java
Log:
GUVNOR-680: Move capabilities logic outside ExplorerLayoutManager
	- Created CapabilitiesManager. This class can be used to perform user's capabilities validation.

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/JBRMSEntryPoint.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/JBRMSEntryPoint.java	2010-10-26 16:30:00 UTC (rev 35747)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/JBRMSEntryPoint.java	2010-10-26 17:27:58 UTC (rev 35748)
@@ -18,10 +18,12 @@
 
 import org.drools.guvnor.client.common.GenericCallback;
 import org.drools.guvnor.client.explorer.ExplorerLayoutManager;
+import org.drools.guvnor.client.messages.Constants;
 import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
 import org.drools.guvnor.client.rpc.UserSecurityContext;
+import org.drools.guvnor.client.ruleeditor.GuidedEditorManager;
 import org.drools.guvnor.client.security.Capabilities;
-import org.drools.guvnor.client.messages.Constants;
+import org.drools.guvnor.client.security.CapabilitiesManager;
 
 import com.google.gwt.core.client.EntryPoint;
 import com.google.gwt.core.client.GWT;
@@ -45,15 +47,18 @@
 
     private LoggedInUserInfo loggedInUserInfo;
 
-    public void onModuleLoad() {
+    public void onModuleLoad() {    	
         //Field.setMsgTarget("side");
         loggedInUserInfo = new LoggedInUserInfo();
         loggedInUserInfo.setVisible(false);
         checkLoggedIn();
     }
 
-	private Panel createMain(Capabilities caps) {
-		return (new ExplorerLayoutManager(loggedInUserInfo, caps)).getBaseLayout();
+	private Panel createMain() {
+		if (Window.Location.getPath().contains("GuidedEditor.html")){
+			return (new GuidedEditorManager().getBaseLayout());
+		}
+		return (new ExplorerLayoutManager(loggedInUserInfo)).getBaseLayout();
 	}
 
     /**
@@ -84,12 +89,15 @@
 
 	private void showMain() {
 		Window.setStatus(((Constants) GWT.create(Constants.class)).LoadingUserPermissions());
-		RepositoryServiceFactory.getSecurityService().getUserCapabilities(new GenericCallback<Capabilities>() {
-			public void onSuccess(Capabilities cp) {
+		
+		CapabilitiesManager.getInstance().refreshAllowedCapabilities(new Command() {
+			
+			public void execute() {
 				Window.setStatus(" ");
-				RootLayoutPanel.get().add(createMain(cp));
+				RootLayoutPanel.get().add(createMain());
 			}
 		});
+			
 		
 	    // Setup a history handler to reselect the associate menu item
 	    final ValueChangeHandler<String> historyHandler = new ValueChangeHandler<String>() {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java	2010-10-26 16:30:00 UTC (rev 35747)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java	2010-10-26 17:27:58 UTC (rev 35748)
@@ -17,7 +17,7 @@
 package org.drools.guvnor.client.explorer;
 
 import org.drools.guvnor.client.LoggedInUserInfo;
-import org.drools.guvnor.client.security.Capabilities;
+import org.drools.guvnor.client.security.CapabilitiesManager;
 import org.drools.guvnor.client.util.TabOpener;
 
 import com.google.gwt.dom.client.Style.Unit;
@@ -30,20 +30,15 @@
  * This is the main part of the app that lays everything out. 
  */
 public class ExplorerLayoutManager {
-    /**
-     * These are used to decide what to display or not.
-     */
-    protected static Capabilities         capabilities;
-
+    
     private TitlePanel                    titlePanel;
     private NavigationPanel               navigationStackLayoutPanel;
     private DockLayoutPanel               mainPanel;
 
     private final ExplorerViewCenterPanel centertabbedPanel = new ExplorerViewCenterPanel();
 
-    public ExplorerLayoutManager(LoggedInUserInfo uif,
-                                 Capabilities caps) {
-        Preferences.INSTANCE.loadPrefs( caps );
+    public ExplorerLayoutManager(LoggedInUserInfo uif) {
+        Preferences.INSTANCE.loadPrefs( CapabilitiesManager.getInstance().getCapabilities());
 
         String tok = History.getToken();
 
@@ -51,7 +46,6 @@
 
         //we use this to decide what to display.
         BookmarkInfo bookmarkInfo = handleHistoryToken( tok );
-        ExplorerLayoutManager.capabilities = caps;
 
         if ( bookmarkInfo.isShowChrome() ) {
             titlePanel = new TitlePanel( uif );
@@ -91,15 +85,6 @@
         return mainPanel;
     }
 
-    public static boolean shouldShow(Integer... capability) {
-        for ( Integer cap : capability ) {
-            if ( capabilities.list.contains( cap ) ) {
-                return true;
-            }
-        }
-        return false;
-    }
-
     /**
      * Parse the bookmark/history token (the bit after the "#" in the URL)
      * to work out what we will display.

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java	2010-10-26 16:30:00 UTC (rev 35747)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java	2010-10-26 17:27:58 UTC (rev 35748)
@@ -25,6 +25,7 @@
 import org.drools.guvnor.client.rpc.PackageConfigData;
 import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
 import org.drools.guvnor.client.security.Capabilities;
+import org.drools.guvnor.client.security.CapabilitiesManager;
 import org.drools.guvnor.client.util.Util;
 
 import com.google.gwt.core.client.GWT;
@@ -238,7 +239,7 @@
         inbox.setState( true );
         root.addItem( inbox );
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) {
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) {
             final TreeItem byStatus = new TreeItem( Util.getHeader( images.statusSmall(),
                                                                     constants.ByStatus() ) );
             itemWidgets.put( byStatus,
@@ -298,7 +299,7 @@
                                                                    new GenericCallback<String[]>() {
                                                                        public void onSuccess(String[] value) {
                                                                            if ( value.length == 0 ) {
-                                                                               if ( path.equals( "/" ) && ExplorerLayoutManager.shouldShow( Capabilities.SHOW_ADMIN ) ) {
+                                                                               if ( path.equals( "/" ) && CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_ADMIN ) ) {
                                                                                    RepositoryServiceFactory.getService().listPackages( new GenericCallback<PackageConfigData[]>() {
                                                                                        public void onSuccess(PackageConfigData[] result) {
                                                                                            if ( result.length == 1 ) {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/NavigationPanel.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/NavigationPanel.java	2010-10-26 16:30:00 UTC (rev 35747)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/NavigationPanel.java	2010-10-26 17:27:58 UTC (rev 35748)
@@ -16,6 +16,7 @@
 package org.drools.guvnor.client.explorer;
 
 import org.drools.guvnor.client.security.Capabilities;
+import org.drools.guvnor.client.security.CapabilitiesManager;
 
 import com.google.gwt.dom.client.Style.Unit;
 import com.google.gwt.user.client.Command;
@@ -37,20 +38,20 @@
 
         addCategoriesPanel();
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) {
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) {
             addPackagesPanel();
         }
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_QA ) ) {
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_QA ) ) {
             addQAPanel();
         }
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_DEPLOYMENT,
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_DEPLOYMENT,
                                                Capabilities.SHOW_DEPLOYMENT_NEW ) ) {
             addDeploymentPanel();
         }
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_ADMIN ) ) {
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_ADMIN ) ) {
             addAdminPanel();
         }
 
@@ -73,7 +74,7 @@
         DeploymentTree deploymentTreeItem = new DeploymentTree();
         ScrollPanel deploymentTreeItemPanel = new ScrollPanel( deploymentTreeItem );
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_CREATE_NEW_ASSET ) ) {
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_CREATE_NEW_ASSET ) ) {
             deploymentDockLayoutPanel.addNorth( DeploymentNewMenu.getMenu( deploymentTreeItem ),
                                                 2 );
         }
@@ -102,7 +103,7 @@
         final PackagesTree packagesTreeItem = new PackagesTree();
         ScrollPanel packagesTreeItemPanel = new ScrollPanel( packagesTreeItem );
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_CREATE_NEW_ASSET ) ) {
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_CREATE_NEW_ASSET ) ) {
             packageDockLayoutPanel.addNorth( PackagesNewMenu.getMenu( packagesTreeItem ),
                                              2 );
         }
@@ -125,7 +126,7 @@
         BrowseTree categoriesTreeItem = new BrowseTree();
         ScrollPanel categoriesTreeItemPanel = new ScrollPanel( categoriesTreeItem );
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_CREATE_NEW_ASSET ) ) {
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_CREATE_NEW_ASSET ) ) {
             browseDockLayoutPanel.addNorth( RulesNewMenu.getMenu( categoriesTreeItem ),
                                             2 );
         }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2010-10-26 16:30:00 UTC (rev 35747)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java	2010-10-26 17:27:58 UTC (rev 35748)
@@ -47,6 +47,7 @@
 import org.drools.guvnor.client.rpc.VerificationServiceAsync;
 import org.drools.guvnor.client.ruleeditor.RuleViewer;
 import org.drools.guvnor.client.security.Capabilities;
+import org.drools.guvnor.client.security.CapabilitiesManager;
 import org.drools.guvnor.client.util.Format;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.brl.ActionCallMethod;
@@ -284,7 +285,7 @@
     }
 
     private boolean showAttributes() {
-        return ExplorerLayoutManager.shouldShow( Capabilities.SHOW_PACKAGE_VIEW );
+        return CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_PACKAGE_VIEW );
     }
 
     public void refreshWidget() {
@@ -543,7 +544,7 @@
                       } );
         }
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) {
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) {
             choices.addItem( ".................." );
             choices.addItem( constants.FreeFormDrl(),
                              "FF" );
@@ -822,7 +823,7 @@
             }
         }
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) {
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) {
             choices.addItem( constants.AddFreeFormDrl(),
                              "FF" ); //NON-NLS
             cmds.put( "FF",

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ActionToolbar.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ActionToolbar.java	2010-10-26 16:30:00 UTC (rev 35747)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ActionToolbar.java	2010-10-26 17:27:58 UTC (rev 35748)
@@ -42,6 +42,7 @@
 import org.drools.guvnor.client.modeldriven.ui.RuleModelEditor;
 import org.drools.guvnor.client.modeldriven.ui.RuleModeller;
 import org.drools.guvnor.client.security.Capabilities;
+import org.drools.guvnor.client.security.CapabilitiesManager;
 import org.drools.guvnor.client.util.Format;
 import org.drools.guvnor.client.packages.PackageBuilderWidget;
 import org.drools.guvnor.client.packages.WorkingSetManager;
@@ -254,7 +255,7 @@
     }
 
     private boolean shouldShowViewSource() {
-        return ExplorerLayoutManager.shouldShow( Capabilities.SHOW_PACKAGE_VIEW );
+        return CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_PACKAGE_VIEW );
     }
 
     private void doViewsource() {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DiscussionWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DiscussionWidget.java	2010-10-26 16:30:00 UTC (rev 35747)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/DiscussionWidget.java	2010-10-26 17:27:58 UTC (rev 35748)
@@ -31,6 +31,7 @@
 import org.drools.guvnor.client.rpc.RuleAsset;
 import org.drools.guvnor.client.rpc.ServerPushNotification;
 import org.drools.guvnor.client.security.Capabilities;
+import org.drools.guvnor.client.security.CapabilitiesManager;
 import org.drools.guvnor.client.util.Format;
 import org.drools.guvnor.client.util.Util;
 
@@ -161,7 +162,7 @@
         Button createNewComment = new Button( constants.AddADiscussionComment() );
         hp.add( createNewComment );
 
-        if ( ExplorerLayoutManager.shouldShow( Capabilities.SHOW_ADMIN ) ) {
+        if ( CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_ADMIN ) ) {
             Button adminClearAll = new Button( constants.EraseAllComments() );
             hp.add( adminClearAll );
             adminClearAll.addClickHandler( new ClickHandler() {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/MetaDataWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/MetaDataWidget.java	2010-10-26 16:30:00 UTC (rev 35747)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/MetaDataWidget.java	2010-10-26 17:27:58 UTC (rev 35748)
@@ -24,6 +24,7 @@
 import org.drools.guvnor.client.rpc.MetaData;
 import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
 import org.drools.guvnor.client.security.Capabilities;
+import org.drools.guvnor.client.security.CapabilitiesManager;
 import org.drools.guvnor.client.util.Format;
 
 import com.google.gwt.core.client.GWT;
@@ -285,7 +286,7 @@
     }
 
     private Widget packageEditor(final String packageName) {
-        if ( this.readOnly || !ExplorerLayoutManager.shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) {
+        if ( this.readOnly || !CapabilitiesManager.getInstance().shouldShow( Capabilities.SHOW_PACKAGE_VIEW ) ) {
             return readOnlyText( packageName );
         } else {
             HorizontalPanel horiz = new HorizontalPanel();

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/CapabilitiesManager.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/CapabilitiesManager.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/CapabilitiesManager.java	2010-10-26 17:27:58 UTC (rev 35748)
@@ -0,0 +1,55 @@
+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 at 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;
+    }
+	
+}



More information about the jboss-svn-commits mailing list