[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