[jboss-svn-commits] JBL Code SVN: r21266 - in labs/jbossrules/trunk/drools-guvnor/src: main/java/org/drools/guvnor/client/common and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 29 01:07:50 EDT 2008
Author: michael.neale at jboss.com
Date: 2008-07-29 01:07:48 -0400 (Tue, 29 Jul 2008)
New Revision: 21266
Added:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/Capabilities.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/CapabilityCalculator.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/CapabilityCalculatorTest.java
Removed:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/Capabilies.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/common/GenericCallback.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/SecurityService.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/SecurityServiceAsync.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/ClassicDRLImporter.java
Log:
fixing busted tests, and some security stuff
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 2008-07-29 05:00:43 UTC (rev 21265)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/JBRMSEntryPoint.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -20,12 +20,11 @@
import org.drools.guvnor.client.explorer.ExplorerLayoutManager;
import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
import org.drools.guvnor.client.rpc.UserSecurityContext;
+import org.drools.guvnor.client.security.Capabilities;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.HistoryListener;
-import com.google.gwt.user.client.ui.RootPanel;
-import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.util.CSS;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.QuickTips;
@@ -56,6 +55,11 @@
}
private Panel createMain() {
+ RepositoryServiceFactory.getService().getUserCapabilities(new GenericCallback<Capabilities>() {
+ public void onSuccess(Capabilities cp) {
+ System.out.println("Authorization completed...");
+ }
+ });
return (new ExplorerLayoutManager(loggedInUserInfo)).getBaseLayout();
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/GenericCallback.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/GenericCallback.java 2008-07-29 05:00:43 UTC (rev 21265)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/GenericCallback.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -28,9 +28,9 @@
*
* @author Michael Neale
*/
-public abstract class GenericCallback
+public abstract class GenericCallback<T>
implements
- AsyncCallback {
+ AsyncCallback<T> {
public void onFailure(Throwable t) {
LoadingPopup.close();
@@ -54,5 +54,4 @@
}
- public abstract void onSuccess(Object data);
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java 2008-07-29 05:00:43 UTC (rev 21265)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -21,6 +21,7 @@
import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
import org.drools.guvnor.client.modeldriven.testing.Scenario;
+import org.drools.guvnor.client.security.Capabilities;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.SerializableException;
@@ -420,4 +421,11 @@
*/
public TableDataResult queryMetaData(final MetaDataQuery[] qr, Date createdAfter, Date createdBefore, Date modifiedAfter, Date modifiedBefore,
boolean seekArchived, int skip, int numRows) throws SerializableException;
+
+ /**
+ * This will return the capabilities which determine what is shown in the GUI.
+ * Based on the users roles and permissions.
+ */
+ public Capabilities getUserCapabilities();
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java 2008-07-29 05:00:43 UTC (rev 21265)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -86,7 +86,9 @@
public void loadDropDownExpression(java.lang.String[] p0, java.lang.String p1, AsyncCallback cb);
public void queryFullText(java.lang.String p0, boolean p1, int p2, int p3, AsyncCallback cb);
public void queryMetaData(org.drools.guvnor.client.rpc.MetaDataQuery[] p0, java.util.Date p1, java.util.Date p2, java.util.Date p3, java.util.Date p4, boolean p5, int p6, int p7, AsyncCallback cb);
+ public void getUserCapabilities(AsyncCallback cb);
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/SecurityService.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/SecurityService.java 2008-07-29 05:00:43 UTC (rev 21265)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/SecurityService.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -17,6 +17,8 @@
+import org.drools.guvnor.client.security.Capabilities;
+
import com.google.gwt.user.client.rpc.RemoteService;
/**
@@ -41,4 +43,5 @@
*/
public UserSecurityContext getCurrentUser();
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/SecurityServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/SecurityServiceAsync.java 2008-07-29 05:00:43 UTC (rev 21265)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/SecurityServiceAsync.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -1,13 +1,13 @@
package org.drools.guvnor.client.rpc;
/*
* Copyright 2005 JBoss Inc
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,14 +22,14 @@
/**
* Contains methods for authenticating/authorising from the front end.
- *
+ *
* @author Michael Neale
*/
public interface SecurityServiceAsync extends RemoteService {
public void login(String userName, String password, AsyncCallback cb);
-
+
public void getCurrentUser(AsyncCallback cb);
-
+
}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/Capabilies.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/Capabilies.java 2008-07-29 05:00:43 UTC (rev 21265)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/Capabilies.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -1,43 +0,0 @@
-package org.drools.guvnor.client.security;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-/**
- * This is used to turn off GUI functionality. The server decides what should be visible
- * based on roles and permissions granted.
- *
- * @author Michael Neale
- *
- */
-public class Capabilies implements IsSerializable {
-
- public static enum Allow {
- SHOW_CATEGORY_VIEW,//hmmm.. don't need this - will always show
- SHOW_PACKAGE_VIEW, //(show status list view as well) if they have any package perms
- SHOW_CREATE_NEW_ASSET, //if they have any package perms not read only
- SHOW_CREATE_NEW_PACKAGE, //if they are package admin
- SHOW_ADMIN, //if they are admin, package admin??
- SHOW_QA, //if they have any package perms
- SHOW_DEPLOYMENT //if they are package admin??
- }
-
- public List<Allow> list = new ArrayList<Allow>();
-
- /**
- * Grants all capabilities.
- * Only used for when there is basically no login.
- */
- public static Capabilies all() {
- Capabilies cp = new Capabilies();
- Allow[] all = Allow.values();
- for (int i = 0; i < all.length; i++) {
- cp.list.add(all[i]);
- }
- return cp;
- }
-
-}
Copied: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/Capabilities.java (from rev 21245, labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/Capabilies.java)
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/Capabilities.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/security/Capabilities.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -0,0 +1,47 @@
+package org.drools.guvnor.client.security;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+/**
+ * This is used to turn off GUI functionality. The server decides what should be visible
+ * based on roles and permissions granted.
+ *
+ * @author Michael Neale
+ *
+ */
+public class Capabilities implements IsSerializable {
+
+
+ public static final Integer SHOW_PACKAGE_VIEW = 1; //(show status list view as well) if they have any package perms
+ public static final Integer SHOW_CREATE_NEW_ASSET = 2; //if they have any package perms not read only
+ public static final Integer SHOW_CREATE_NEW_PACKAGE = 3; //if they are package admin
+ public static final Integer SHOW_ADMIN = 4; //if they are admin, package admin??
+ public static final Integer SHOW_QA = 5; //if they have any package perms
+ public static final Integer SHOW_DEPLOYMENT = 6; //if they are package admin??
+ public static final Integer SHOW_DEPLOYMENT_NEW = 7; //can create a new depl, rename etc...
+
+ public List<Integer> list = new ArrayList<Integer>();
+
+ /**
+ * Grants all capabilities.
+ * Only used for when there is basically no login.
+ */
+ public static Capabilities all() {
+
+ Capabilities cp = new Capabilities();
+ cp.list.add(SHOW_PACKAGE_VIEW);
+ cp.list.add(SHOW_CREATE_NEW_ASSET);
+ cp.list.add(SHOW_CREATE_NEW_PACKAGE);
+ cp.list.add(SHOW_ADMIN);
+ cp.list.add(SHOW_QA);
+ cp.list.add(SHOW_DEPLOYMENT);
+ cp.list.add(SHOW_DEPLOYMENT_NEW);
+
+ return cp;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2008-07-29 05:00:43 UTC (rev 21265)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -75,6 +75,7 @@
import org.drools.guvnor.client.rpc.TableDataResult;
import org.drools.guvnor.client.rpc.TableDataRow;
import org.drools.guvnor.client.rpc.ValidatedResponse;
+import org.drools.guvnor.client.security.Capabilities;
import org.drools.guvnor.server.builder.BRMSPackageBuilder;
import org.drools.guvnor.server.builder.ContentAssemblyError;
import org.drools.guvnor.server.builder.ContentPackageAssembler;
@@ -129,7 +130,7 @@
/**
* This is the implementation of the repository service to drive the GWT based
* front end.
- *
+ *
* @author Michael Neale
*/
@Name("org.drools.guvnor.client.rpc.RepositoryService")
@@ -328,14 +329,14 @@
@Restrict("#{identity.loggedIn}")
/**
* loadRuleListForCategories
- *
- * Role-based Authorization check: This method can be accessed if user has
+ *
+ * Role-based Authorization check: This method can be accessed if user has
* following permissions:
- * 1. The user has Analyst role and this role has permission to access the category
+ * 1. The user has Analyst role and this role has permission to access the category
* Or.
- * 2. The user has one of the following roles: package.readonly|package.admin|package.developer.
+ * 2. The user has one of the following roles: package.readonly|package.admin|package.developer.
* In this case, this method only returns assets that belong to packages the role has at least
- * package.readonly permission to access.
+ * package.readonly permission to access.
*/
public TableDataResult loadRuleListForCategories(String categoryPath,
int skip, int numRows, String tableConfig)
@@ -343,7 +344,7 @@
// love you
// long time = System.currentTimeMillis();
- // First check the user has permission to access this categoryPath.
+ // First check the user has permission to access this categoryPath.
if (Contexts.isSessionContextActive()) {
Identity.instance().checkPermission(
new CategoryPathType(categoryPath), null);
@@ -385,13 +386,13 @@
/**
* This actually does the hard work of loading up an asset based on its
* format.
- *
- * Role-based Authorization check: This method can be accessed if user has
+ *
+ * Role-based Authorization check: This method can be accessed if user has
* following permissions:
- * 1. The user has Analyst role and this role has permission to access the category
+ * 1. The user has Analyst role and this role has permission to access the category
* which the asset belongs to.
* Or.
- * 2. The user has package.readonly role (or package.admin, package.developer)
+ * 2. The user has package.readonly role (or package.admin, package.developer)
* and this role has permission to access the package which the asset belongs to.
*/
@WebRemote
@@ -409,7 +410,7 @@
Identity.instance().checkPermission(
new PackageNameType(asset.metaData.packageName),
RoleTypes.PACKAGE_READONLY);
-
+
if(asset.metaData.categories.length == 0) {
Identity.instance().checkPermission(
new CategoryPathType(null),
@@ -514,13 +515,13 @@
@WebRemote
@Restrict("#{identity.loggedIn}")
/**
- *
- * Role-based Authorization check: This method can be accessed if user has
+ *
+ * Role-based Authorization check: This method can be accessed if user has
* following permissions:
- * 1. The user has Analyst role and this role has permission to access the category
+ * 1. The user has Analyst role and this role has permission to access the category
* which the asset belongs to.
* Or.
- * 2. The user has package.readonly role (or package.admin, package.developer)
+ * 2. The user has package.readonly role (or package.admin, package.developer)
* and this role has permission to access the package which the asset belongs to.
*/
public String checkinVersion(RuleAsset asset) throws SerializableException {
@@ -528,7 +529,7 @@
Identity.instance().checkPermission(
new PackageNameType(asset.metaData.packageName),
RoleTypes.PACKAGE_READONLY);
-
+
if(asset.metaData.categories.length == 0) {
Identity.instance().checkPermission(
new CategoryPathType(null),
@@ -551,9 +552,9 @@
}
}
}
-
-
+
+
log.info("USER:" + repository.getSession().getUserID()
+ " CHECKING IN asset: [" + asset.metaData.name + "] UUID: ["
+ asset.uuid + "] ARCHIVED [" + asset.archived + "]");
@@ -1897,4 +1898,10 @@
}
}
+ @WebRemote
+ @Restrict("#{identity.loggedIn}")
+ public Capabilities getUserCapabilities() {
+ return Capabilities.all();
+ }
+
}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/CapabilityCalculator.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/CapabilityCalculator.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/CapabilityCalculator.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -0,0 +1,53 @@
+package org.drools.guvnor.server.security;
+
+import static org.drools.guvnor.client.security.Capabilities.SHOW_CREATE_NEW_ASSET;
+import static org.drools.guvnor.client.security.Capabilities.SHOW_CREATE_NEW_PACKAGE;
+import static org.drools.guvnor.client.security.Capabilities.SHOW_DEPLOYMENT;
+import static org.drools.guvnor.client.security.Capabilities.SHOW_DEPLOYMENT_NEW;
+import static org.drools.guvnor.client.security.Capabilities.SHOW_PACKAGE_VIEW;
+import static org.drools.guvnor.client.security.Capabilities.SHOW_QA;
+import static org.drools.guvnor.client.security.Capabilities.all;
+
+import java.util.List;
+
+import org.drools.guvnor.client.security.Capabilities;
+
+/**
+ * Load up the capabilities from a given list of roles.
+ * @author Michael Neale
+ */
+public class CapabilityCalculator {
+
+ public Capabilities calcCapabilities(List<RoleBasedPermission> permissions) {
+ if (permissions.size() == 0) {
+ return Capabilities.all();
+ } else {
+ Capabilities caps = new Capabilities();
+ for (RoleBasedPermission p : permissions) {
+ String r = p.getRole();
+ if (r.equals(RoleTypes.ADMIN)) {
+ return all();
+ } else if (r.equals(RoleTypes.PACKAGE_ADMIN)) {
+ addCap(caps, SHOW_PACKAGE_VIEW);
+ addCap(caps, SHOW_CREATE_NEW_ASSET);
+ addCap(caps, SHOW_CREATE_NEW_PACKAGE);
+ addCap(caps, SHOW_DEPLOYMENT);
+ addCap(caps, SHOW_DEPLOYMENT_NEW);
+ addCap(caps, SHOW_QA);
+ } else if (r.equals(RoleTypes.PACKAGE_DEVELOPER)) {
+ addCap(caps, SHOW_PACKAGE_VIEW);
+ addCap(caps, SHOW_CREATE_NEW_ASSET);
+ addCap(caps, SHOW_QA);
+ } else if (r.equals(RoleTypes.PACKAGE_READONLY)) {
+ addCap(caps, SHOW_PACKAGE_VIEW);
+ }
+ }
+ return caps;
+ }
+ }
+
+ private void addCap(Capabilities caps, Integer cap) {
+ if (!caps.list.contains(cap)) caps.list.add(cap);
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/CapabilityCalculator.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java 2008-07-29 05:00:43 UTC (rev 21265)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -25,6 +25,7 @@
import org.apache.log4j.Logger;
import org.drools.guvnor.client.rpc.SecurityService;
import org.drools.guvnor.client.rpc.UserSecurityContext;
+import org.drools.guvnor.client.security.Capabilities;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.remoting.WebRemote;
@@ -103,4 +104,5 @@
}
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/ClassicDRLImporter.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/ClassicDRLImporter.java 2008-07-29 05:00:43 UTC (rev 21265)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/ClassicDRLImporter.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -146,6 +146,7 @@
private String getRuleName(String line) throws DroolsParserException {
DrlParser parser = new DrlParser();
+ line = line + "\n when\n then \n end";
RuleDescr rule = (RuleDescr) parser.parse( line ).getRules().get( 0 );
return rule.getName();
}
Added: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/CapabilityCalculatorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/CapabilityCalculatorTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/CapabilityCalculatorTest.java 2008-07-29 05:07:48 UTC (rev 21266)
@@ -0,0 +1,76 @@
+package org.drools.guvnor.server.security;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.guvnor.client.security.Capabilities;
+
+import junit.framework.TestCase;
+
+public class CapabilityCalculatorTest extends TestCase {
+
+
+ public void testAdmin() {
+ CapabilityCalculator loader = new CapabilityCalculator();
+ List<RoleBasedPermission> perms = new ArrayList<RoleBasedPermission>();
+ Capabilities caps = loader.calcCapabilities(perms);
+ assertEquals(7, caps.list.size());
+ }
+
+ public void testCapabilitiesCalculate() {
+ CapabilityCalculator loader = new CapabilityCalculator();
+ List<RoleBasedPermission> perms = new ArrayList<RoleBasedPermission>();
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_DEVELOPER, null, null));
+ perms.add(new RoleBasedPermission("", RoleTypes.ANALYST, null, null));
+ Capabilities caps = loader.calcCapabilities(perms);
+ assertTrue(caps.list.contains(Capabilities.SHOW_PACKAGE_VIEW));
+
+ perms = new ArrayList<RoleBasedPermission>();
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_ADMIN, null, null));
+ caps = loader.calcCapabilities(perms);
+ assertTrue(caps.list.contains(Capabilities.SHOW_PACKAGE_VIEW));
+
+ perms = new ArrayList<RoleBasedPermission>();
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_READONLY, null, null));
+ caps = loader.calcCapabilities(perms);
+ assertTrue(caps.list.contains(Capabilities.SHOW_PACKAGE_VIEW));
+ assertEquals(1, caps.list.size());
+
+ perms = new ArrayList<RoleBasedPermission>();
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_READONLY, null, null));
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_READONLY, null, null));
+ perms.add(new RoleBasedPermission("", RoleTypes.ANALYST, null, null));
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_DEVELOPER, null, null));
+ caps = loader.calcCapabilities(perms);
+ assertTrue(caps.list.contains(Capabilities.SHOW_PACKAGE_VIEW));
+ assertTrue(caps.list.contains(Capabilities.SHOW_CREATE_NEW_ASSET));
+ assertFalse(caps.list.contains(Capabilities.SHOW_CREATE_NEW_PACKAGE));
+ assertTrue(caps.list.contains(Capabilities.SHOW_QA));
+ assertEquals(3, caps.list.size());
+
+ perms = new ArrayList<RoleBasedPermission>();
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_READONLY, null, null));
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_READONLY, null, null));
+ perms.add(new RoleBasedPermission("", RoleTypes.ANALYST, null, null));
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_ADMIN, null, null));
+ caps = loader.calcCapabilities(perms);
+ assertTrue(caps.list.contains(Capabilities.SHOW_PACKAGE_VIEW));
+ assertTrue(caps.list.contains(Capabilities.SHOW_CREATE_NEW_ASSET));
+ assertTrue(caps.list.contains(Capabilities.SHOW_CREATE_NEW_PACKAGE));
+ assertTrue(caps.list.contains(Capabilities.SHOW_DEPLOYMENT));
+ assertTrue(caps.list.contains(Capabilities.SHOW_DEPLOYMENT_NEW));
+ assertTrue(caps.list.contains(Capabilities.SHOW_QA));
+
+ assertEquals(6, caps.list.size());
+
+ perms = new ArrayList<RoleBasedPermission>();
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_READONLY, null, null));
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_READONLY, null, null));
+ perms.add(new RoleBasedPermission("", RoleTypes.ADMIN, null, null));
+ perms.add(new RoleBasedPermission("", RoleTypes.PACKAGE_ADMIN, null, null));
+ caps = loader.calcCapabilities(perms);
+ assertEquals(7, caps.list.size());
+
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/CapabilityCalculatorTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list