[jboss-svn-commits] JBL Code SVN: r11247 - in labs/jbosslabs/trunk/portal-extensions: forge-portal-attr and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Apr 23 14:39:30 EDT 2007


Author: szimano
Date: 2007-04-23 14:39:30 -0400 (Mon, 23 Apr 2007)
New Revision: 11247

Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java
   labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/project.xml
   labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/InjectLoginLinks.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/common.xml
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/project.properties
Log:
added Admin Console link for admin

Modified: labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java	2007-04-23 18:09:35 UTC (rev 11246)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java	2007-04-23 18:39:30 UTC (rev 11247)
@@ -118,7 +118,7 @@
 
 		try {
 			TransactionManager tm = (TransactionManager) new InitialContext()
-					.lookup("java:/TransactionManager");
+			.lookup("java:/TransactionManager");
 
 			Boolean passwordValid;
 

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/project.xml	2007-04-23 18:09:35 UTC (rev 11246)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/project.xml	2007-04-23 18:39:30 UTC (rev 11247)
@@ -43,6 +43,25 @@
 	    <version>1.0</version>
 	    <jar>jboss-common.jar</jar>
 	</dependency>
+	
+	<dependency>
+	    <groupId>jboss</groupId>
+	    <artifactId>hibernate</artifactId>
+	    <version>3.0</version>
+	    <jar>hibernate3.jar</jar>
+	</dependency>
+	<dependency>
+	    <groupId>jboss</groupId>
+	    <artifactId>jboss-j2ee</artifactId>
+	    <version>3.2.3</version>
+	</dependency>
+	<dependency>
+	    <groupId>jboss</groupId>
+	    <artifactId>jbosssx</artifactId>
+	    <version>3.2.3</version>
+	    <jar>jbosssx.jar</jar>
+	</dependency>
+
     </dependencies>        
 
     <build>

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/InjectLoginLinks.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/InjectLoginLinks.java	2007-04-23 18:09:35 UTC (rev 11246)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/InjectLoginLinks.java	2007-04-23 18:39:30 UTC (rev 11247)
@@ -26,6 +26,9 @@
 import java.io.PrintWriter;
 import java.security.Principal;
 
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.security.auth.login.LoginException;
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
@@ -34,8 +37,18 @@
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.transaction.*;
 
+import org.jboss.forge.common.PermissionTools;
 import org.jboss.logging.Logger;
+import org.jboss.portal.common.transaction.TransactionManagerProvider;
+import org.jboss.portal.common.transaction.Transactions;
+import org.jboss.portal.identity.IdentityException;
+import org.jboss.portal.identity.MembershipModule;
+import org.jboss.portal.identity.NoSuchUserException;
+import org.jboss.portal.identity.RoleModule;
+import org.jboss.portal.identity.User;
+import org.jboss.portal.identity.UserModule;
 
 /**
  * InjectLoginLinks.java
@@ -53,6 +66,14 @@
 
 	private static final String AUTH_LINK2 = "auth";
 
+	private static RoleModule roleModule;
+
+	private static MembershipModule membershipModule;
+
+	private static final String ADMIN_ROLE_NAME = "Admin";
+
+	private static UserModule userModule;
+
 	public void destroy() {
 
 	}
@@ -60,6 +81,20 @@
 	public void doFilter(ServletRequest request, ServletResponse response,
 			FilterChain chain) throws IOException, ServletException {
 
+		try {
+
+			if (roleModule == null) {
+				roleModule = (RoleModule) new InitialContext()
+						.lookup("java:portal/RoleModule");
+				membershipModule = (MembershipModule) new InitialContext()
+						.lookup("java:portal/MembershipModule");
+				userModule = (UserModule) new InitialContext()
+						.lookup("java:portal/UserModule");
+			}
+		} catch (NamingException e) {
+			throw new ServletException(e);
+		}
+
 		HttpServletRequest hReq = (HttpServletRequest) request;
 
 		StringBuffer buffer = new StringBuffer(hReq.getRequestURI());
@@ -77,15 +112,19 @@
 				&& wrapper.getContentType().startsWith("text/html")) {
 
 			PrintWriter out = response.getWriter();
-			
-			String output = injectLoginLink(wrapper.toString(), uri, hReq
-					.getUserPrincipal());
 
+			String output;
+			try {
+				output = injectLoginLink(wrapper.toString(), uri, hReq
+						.getUserPrincipal());
+			} catch (Exception e) {
+				throw new ServletException(e);
+			}
+
 			out.write(output);
 
 			out.close();
-		}
-		else {
+		} else {
 			PrintWriter out = response.getWriter();
 
 			out.write(wrapper.toString());
@@ -95,26 +134,32 @@
 	}
 
 	private String injectLoginLink(String content, String uri,
-			Principal principal) {
+			Principal principal) throws IllegalArgumentException,
+			IdentityException, NamingException {
 		int loginIndx = content.indexOf(LOGIN_TAG);
 		int loginEnd = loginIndx + LOGIN_TAG.length();
-		
+
 		if (loginIndx != -1) {
 
 			StringBuffer newUri = new StringBuffer();
 			newUri.append("<a href='");
 
 			if (principal != null) {
+
 				// user is logged in
 				newUri = new StringBuffer("<span class='wlcmBox'><b>").append(
 						principal.getName()).append(
-						"</b> | <a href='/logout'>Logout</a> </span>");
-			} 
-			else if (uri.equals("/")) {
+						"</b> | <a href='/logout'>Logout</a>");
+				if (isAdmin(principal)) {
+					newUri.append(" | <a href='/admin'>Admin Console</a>");
+				}
+
+				newUri.append("</span>");
+			} else if (uri.equals("/")) {
 				newUri.append(uri).append(AUTH_LINK).append("'>Login</a>");
 			} else if (newUri.indexOf(AUTH_LINK) == -1
 					&& newUri.indexOf(AUTH_LINK2) == -1 && principal == null) {
-				
+
 				newUri.append("/").append(AUTH_LINK).append(uri).append(
 						"'>Login</a>");
 			} else {
@@ -135,6 +180,28 @@
 
 	}
 
+	private boolean isAdmin(final Principal userP)
+			throws IllegalArgumentException, IdentityException, NamingException {
+		TransactionManager tm = (TransactionManager) new InitialContext()
+				.lookup("java:/TransactionManager");
+
+		boolean isAdmin = (Boolean) Transactions.required(tm,
+				new Transactions.Runnable() {
+					public Object run() throws IllegalArgumentException,
+							NoSuchUserException, IdentityException {
+						User user = userModule.findUserByUserName(userP
+								.getName());
+
+						return membershipModule.getUsers(
+								roleModule.findRoleByName(ADMIN_ROLE_NAME))
+								.contains(user);
+					}
+
+				});
+
+		return isAdmin;
+	}
+
 	public void init(FilterConfig arg0) throws ServletException {
 
 	}

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/common.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/common.xml	2007-04-23 18:09:35 UTC (rev 11246)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/common.xml	2007-04-23 18:39:30 UTC (rev 11247)
@@ -52,7 +52,6 @@
 	<dependency>
 		<groupId>shotoku</groupId>
 		<artifactId>shotoku-aop</artifactId>
-		<version>1.0</version>
 		<jar>shotoku-aop.jar</jar>
 	</dependency>
 

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/project.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/project.properties	2007-04-23 18:09:35 UTC (rev 11246)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/project.properties	2007-04-23 18:39:30 UTC (rev 11247)
@@ -5,3 +5,4 @@
 maven.jar.override=on
 
 maven.jar.shotoku-base=${ext.root.dir}/shotoku/shotoku-base/target/shotoku-base.jar
+maven.jar.shotoku-aop=${ext.root.dir}/shotoku/shotoku-aop/target/shotoku-aop.jar




More information about the jboss-svn-commits mailing list