[jboss-svn-commits] JBL Code SVN: r6726 - labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 10 11:55:03 EDT 2006


Author: dejp
Date: 2006-10-10 11:54:57 -0400 (Tue, 10 Oct 2006)
New Revision: 6726

Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java
   labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java
Log:
new methods

Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java	2006-10-10 14:45:19 UTC (rev 6725)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java	2006-10-10 15:54:57 UTC (rev 6726)
@@ -31,6 +31,10 @@
         return isUserLogged() && ConTools.hasPermission("con-admin");
 	}
 
+	public boolean isProjectManager() {
+		return ConTools.isProjectLead();
+	}
+	
 	public boolean isUserLogged() {
         return ConTools.getRemoteUser() != null;
 	}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java	2006-10-10 14:45:19 UTC (rev 6725)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java	2006-10-10 15:54:57 UTC (rev 6726)
@@ -21,29 +21,36 @@
  */
 package org.jboss.forge.contributor;
 
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
 import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
 
 import org.jboss.forge.common.Constants;
 import org.jboss.forge.common.ForgeHelper;
 import org.jboss.forge.common.PermissionTools;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.soa.LabsServices;
 import org.jboss.portal.api.node.PortalNodeURL;
 import org.jboss.portlet.JBossActionRequest;
+import org.jboss.portlet.JBossActionResponse;
 import org.jboss.portlet.JBossRenderRequest;
 import org.jboss.portlet.JBossRenderResponse;
-import org.jboss.portlet.JBossActionResponse;
 
 /**
  * @author adamw
+ * @author dejp
  * Various static helper methods, mainly reading from the current
  * faces and external contexts.
  */
 public class ConTools {
-    static ExternalContext getExternalContext() {
+    public static ExternalContext getExternalContext() {
         return FacesContext.getCurrentInstance().getExternalContext();
     }
 
-    static String getRequestProperty(String propertyName) {
+    public static String getRequestProperty(String propertyName) {
         Object request = getExternalContext().getRequest();
         if (request instanceof JBossActionRequest) {
             return ((JBossActionRequest) request).getPortalContext().
@@ -54,7 +61,7 @@
         } else return null;
     }
 
-    static PortalNodeURL createRenderURL() {
+    public static PortalNodeURL createRenderURL() {
         Object response = getExternalContext().getResponse();
         if (response instanceof JBossActionResponse) {
             //TODO
@@ -70,7 +77,7 @@
         }
     }
 
-    static String getBaseServerAddress() {
+    public static String getBaseServerAddress() {
         Object request = getExternalContext().getRequest();
         if (request instanceof JBossActionRequest) {
             return ForgeHelper.getBaseServerAddress((JBossActionRequest) request);
@@ -79,11 +86,12 @@
         } else return "";
     }
 
-    static String getPortalName() {
+    public static String getPortalName() {
         return getRequestProperty(Constants.PROP_SHOTOKU_PORTAL_DIRECTORY);
     }
 
-    static boolean hasPermission(String permission) {
+    public static boolean hasPermission(String permission) {
+    	
         Object request = getExternalContext().getRequest();
         if (request instanceof JBossActionRequest) {
             org.jboss.portal.identity.User u = ((JBossActionRequest) request).getUser();
@@ -99,10 +107,73 @@
             }
 
             return PermissionTools.isUserInRole(u, permission);
-        } else return false;
+        } else 
+        	return false;
     }
 
-    static String getRemoteUser() {
+    public static boolean isProjectLead() {
+    	
+    	Set<String> projectIds = ProjectsHelper.getProjectIds(ConTools.getPortalName());
+    	
+        org.jboss.portal.identity.User u = getUser();
+
+        if (u == null) {
+        	return false;
+        }
+            
+        List<String> roles = PermissionTools.getRoleNames(u);
+        for (String role : roles) {
+        	if (role.endsWith("-admin")) {
+        		if (projectIds.contains(role.replaceAll("-admin", "")))
+        			return true;
+        	}
+        }
+            
+        return false;
+    }
+    
+    public static org.jboss.portal.identity.User getUser() {
+    	
+        Object request = getExternalContext().getRequest();
+        
+        org.jboss.portal.identity.User u = null;
+        if (request instanceof JBossActionRequest) {
+            u = ((JBossActionRequest) request).getUser();
+        } else if (request instanceof JBossRenderRequest) {
+            u = ((JBossRenderRequest) request).getUser();
+        }
+        return u;
+    }
+    
+    public static Set<String> getLeadProjectsIds() {
+    	
+    	Set<String> projectIds = ProjectsHelper.getProjectIds(ConTools.getPortalName());
+    	
+    	org.jboss.portal.identity.User user = getUser();
+    	
+    	if (user == null) {
+    		return null;
+    	}
+    	
+    	Set<String> results = new LinkedHashSet<String>();
+    	
+        List<String> roles = PermissionTools.getRoleNames(user);
+        for (String role : roles) {
+        	if (role.endsWith("-admin")) {
+        		String projectId = role.replaceAll("-admin", "");
+        		if (projectIds.contains(projectId))
+        			results.add(projectId);
+        	}
+        }
+    	
+    	return results;
+    }
+    
+    public static String getRemoteUser() {
         return getExternalContext().getRemoteUser();
     }
+    
+    public static org.jboss.portal.identity.User getUser(String username) {
+    	return null;    	
+    }
 }




More information about the jboss-svn-commits mailing list