[jboss-svn-commits] JBL Code SVN: r21617 - in labs/jbossrules/trunk/drools-guvnor/src/main/java/org: jboss/seam/security/permission and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Aug 18 22:54:52 EDT 2008


Author: jervisliu
Date: 2008-08-18 22:54:52 -0400 (Mon, 18 Aug 2008)
New Revision: 21617

Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/RoleBasedPermissionResolver.java
Log:
a fix for JBRULES-1742. 

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-08-19 00:59:17 UTC (rev 21616)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2008-08-19 02:54:52 UTC (rev 21617)
@@ -175,8 +175,13 @@
 	}
 
 	@WebRemote
-	@Restrict("#{s:hasRole('admin')}")
 	public Boolean createCategory(String path, String name, String description) {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(
+					new PackageNameType(null),
+					RoleTypes.ADMIN);
+		}
+		
 		log.info("USER:" + repository.getSession().getUserID()
 				+ " CREATING cateogory: [" + name + "] in path [" + path + "]");
 
@@ -710,9 +715,14 @@
 
 
 	@WebRemote
-	@Restrict("#{s:hasRole('admin')}")
 	public String createPackage(String name, String description)
 			throws SerializableException {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(
+					new PackageNameType(null),
+					RoleTypes.ADMIN);
+		}
+		
 		log.info("USER:" + repository.getSession().getUserID()
 				+ " CREATING package [" + name + "]");
 		PackageItem item = repository.createPackage(name, description);
@@ -1165,8 +1175,13 @@
 	}
 
 	@WebRemote
-	@Restrict("#{s:hasRole('admin')}")
 	public void clearRulesRepository() {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(
+					new PackageNameType(null),
+					RoleTypes.ADMIN);
+		}
+		
 		RulesRepositoryAdministrator admin = new RulesRepositoryAdministrator(
 				repository.getSession());
 		admin.clearRulesRepository();
@@ -1365,9 +1380,14 @@
 	}
 
 	@WebRemote
-	@Restrict("#{s:hasRole('admin')}")
 	public void copyPackage(String sourcePackageName, String destPackageName)
 			throws SerializableException {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(
+					new PackageNameType(null),
+					RoleTypes.ADMIN);
+		}
+		
 		try {
 			repository.copyPackage(sourcePackageName, destPackageName);
 		} catch (RulesRepositoryException e) {
@@ -1475,8 +1495,13 @@
 	}
 
 	@WebRemote
-	@Restrict("#{s:hasRole('admin')}")
 	public void rebuildSnapshots() throws SerializableException {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(
+					new PackageNameType(null),
+					RoleTypes.ADMIN);
+		}
+		
 		Iterator pkit = repository.listPackages();
 		while (pkit.hasNext()) {
 			PackageItem pkg = (PackageItem) pkit.next();
@@ -1838,9 +1863,13 @@
 	}
 
 	@WebRemote
-	// @Restrict("#{identity.loggedIn}")
-	@Restrict("#{s:hasRole('admin')}")
 	public LogEntry[] showLog() {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(
+					new PackageNameType(null),
+					RoleTypes.ADMIN);
+		}
+		
 		return LoggingHelper.getMessages();
 
 	}
@@ -1938,21 +1967,36 @@
 		}
 	}
 
-	@Restrict("#{s:hasRole('admin')}")
 	public Map<String, List<String>> listUserPermissions() {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(
+					new PackageNameType(null),
+					RoleTypes.ADMIN);
+		}
+		
 		PermissionManager pm = new PermissionManager(repository);
 		return pm.listUsers();
 	}
 
-	@Restrict("#{s:hasRole('admin')}")
 	public Map<String, List<String>> retrieveUserPermissions(String userName) {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(
+					new PackageNameType(null),
+					RoleTypes.ADMIN);
+		}
+		
 		PermissionManager pm = new PermissionManager(repository);
 		return pm.retrieveUserPermissions(userName);
 	}
 
-	@Restrict("#{s:hasRole('admin')}")
 	public void updateUserPermissions(String userName,
 			Map<String, List<String>> perms) {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(
+					new PackageNameType(null),
+					RoleTypes.ADMIN);
+		}
+		
 		PermissionManager pm = new PermissionManager(repository);
 		System.err.println(perms);
 		log.info("Updating user permissions for userName [" + userName + "] to [" + perms + "]");
@@ -1960,8 +2004,13 @@
 		repository.save();
 	}
 
-	@Restrict("#{s:hasRole('admin')}")
 	public String[] listAvailablePermissionTypes() {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(
+					new PackageNameType(null),
+					RoleTypes.ADMIN);
+		}
+		
 		return RoleTypes.listAvailableTypes();
 	}
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/RoleBasedPermissionResolver.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/RoleBasedPermissionResolver.java	2008-08-19 00:59:17 UTC (rev 21616)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/RoleBasedPermissionResolver.java	2008-08-19 02:54:52 UTC (rev 21617)
@@ -94,13 +94,9 @@
 			return true;
 		}
 
-		// Call relating method directly instead of to utilize relating
-		// method with @Unwrap notation.
 		RoleBasedPermissionManager permManager = (RoleBasedPermissionManager) 
 				Component.getInstance("roleBasedPermissionManager");
 		List<RoleBasedPermission> permissions = permManager.getRoleBasedPermission();
-		/*List<RoleBasedPermission> permissions = (List<RoleBasedPermission>) Component
-				.getInstance("roleBasedPermissionManager");*/
 
 		for (RoleBasedPermission p : permissions) {
 			if (RoleTypes.ADMIN.equalsIgnoreCase(p.getRole())) {




More information about the jboss-svn-commits mailing list