[Commits] (bcm) add a non-cosmo-specific base class,
SimpleVarSetterTag, for simple JSP tags
commits at osafoundation.org
commits at osafoundation.org
Thu Apr 7 17:14:49 PDT 2005
Commit by: bcm
Modified files:
server/core/src/chsrv-core.tld 1.4 1.5
server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java 1.2 1.3
server/core/src/org/osaf/chandler/server/jsp/tag/HomedirTag.java 1.2 None
server/core/src/org/osaf/jsp/tag/SimpleVarSetterTag.java None 1.1
server/docs/TODO.txt 1.40 1.41
server/web/etc/MessageResources.properties 1.1 1.2
server/web/web/WEB-INF/struts-config.xml 1.1 1.2
server/web/web/WEB-INF/jsp/layout.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/tagfiles.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/taglibs.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/welcome.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/home.jsp 1.1 None
server/web/web/WEB-INF/jsp/error/connect.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/error/general.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/user/list.jsp 1.1 1.2
server/web/web/WEB-INF/jsp/user/view.jsp 1.1 1.2
Log message:
add a non-cosmo-specific base class, SimpleVarSetterTag, for simple JSP tags
that set a scripting variable. re-implement UserTag to exend this base class.
get rid of the homedir tag - it's very simple, and its functionality can be
encapsulated in a tag file (which i'll put in very soon, once i figure out the
syntax for returning a value from a tag file)
add a "share root" link in the main nav for root users to access the root of
the content store. am not terribly happy with the term "share root" but can't
think of anything more descriptive yet still concise.
for regular users, add the full URL to his home directory and some
explanatory text to the welcome page.
make a new stacktrace.tag tag file that outputs a stack trace, and used it in
two error pages.
add home directory to user list.
ViewCVS links:
http://cvs.osafoundation.org/index.cgi/server/core/src/chsrv-core.tld.diff?r1=text&tr1=1.4&r2=text&tr2=1.5
http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java.diff?r1=text&tr1=1.2&r2=text&tr2=1.3
http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/chandler/server/jsp/tag/HomedirTag.java.diff?r1=text&tr1=1.2&r2=text&tr2=None
http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/jsp/tag/SimpleVarSetterTag.java?rev=1.1&content-type=text/vnd.viewcvs-markup
http://cvs.osafoundation.org/index.cgi/server/docs/TODO.txt.diff?r1=text&tr1=1.40&r2=text&tr2=1.41
http://cvs.osafoundation.org/index.cgi/server/web/etc/MessageResources.properties.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/struts-config.xml.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/layout.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/tagfiles.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/taglibs.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/welcome.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/home.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=None
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/error/connect.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/error/general.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/user/list.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/web/web/WEB-INF/jsp/user/view.jsp.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
Index: server/docs/TODO.txt
diff -u server/docs/TODO.txt:1.40 server/docs/TODO.txt:1.41
--- server/docs/TODO.txt:1.40 Thu Apr 7 12:31:21 2005
+++ server/docs/TODO.txt Thu Apr 7 17:14:43 2005
@@ -1,17 +1,15 @@
-PRE-RELEASE
+0.1 RELEASE
===========
- * re-implement HomedirTag
- * add home link for root users that goes to /home/
- * put homedir on user list and on welcome page
+ * use tag files to generate homedir uri and homedir url
* try putting all stuff from tomcat's common/lib and common/classes
back into the single webapp
* rename "web" subproject to something better
* remove console and webdav webapps
* remove slide
-0.1 RELEASE
+0.2 RELEASE
===========
source code control/build system:
@@ -21,6 +19,7 @@
* move console webapp into a webui subproject
* move webdav webapp into a webdav subproject
* change all packages from org.osaf.chandler.server to org.osaf.cosmo
+ * precompile jsps for distribution
core:
Index: server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java
diff -u server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java:1.2 server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java:1.3
--- server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java:1.2 Thu Apr 7 12:31:20 2005
+++ server/core/src/org/osaf/chandler/server/jsp/tag/UserTag.java Thu Apr 7 17:14:42 2005
@@ -5,29 +5,25 @@
import org.osaf.cosmo.security.CosmoSecurityException;
import org.osaf.cosmo.security.CosmoSecurityManager;
-import org.osaf.spring.web.util.WebApplicationContextAwareTagUtils;
+import org.osaf.jsp.tag.SimpleVarSetterTag;
-import java.io.IOException;
+import org.osaf.spring.web.util.WebApplicationContextAwareTagUtils;
import javax.servlet.ServletContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.SimpleTagSupport;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.springframework.web.util.TagUtils;
-
/**
* This tag provides access to the {@link User} object provided by
- * the current Cosmo security context. It sets the
- * <code>User</code> in a scripting variable named by the
- * <code>var</code> attribute in the scope named by the
- * <code>scope</code> attribute (defaulting to page scope if none is
- * provided).
+ * the current Cosmo security context as the value of a scripting
+ * variable.
+ *
+ * @see org.osaf.jsp.tag.SimpleVarSetterTag
*/
-public class UserTag extends SimpleTagSupport {
+public class UserTag extends SimpleVarSetterTag {
private static final Log log = LogFactory.getLog(UserTag.class);
/** The name of the Spring bean identifying the tag's
@@ -36,47 +32,23 @@
public static final String BEAN_SECURITY_MANAGER =
"securityManager";
- private String scope = "page";
- private String var;
-
/**
+ * @return the <code>User</code> provided by the current security
+ * context
+ * @throws JspException if there is an error obtaining the
+ * security context
*/
- public void doTag()
- throws JspException, IOException {
+ public Object computeValue()
+ throws JspException {
try {
ServletContext sc =
((PageContext)getJspContext()).getServletContext();
CosmoSecurityManager securityManager = (CosmoSecurityManager)
WebApplicationContextAwareTagUtils.
getBean(sc, BEAN_SECURITY_MANAGER, CosmoSecurityManager.class);
- User user = securityManager.getSecurityContext().getUser();
- getJspContext().setAttribute(var, user, TagUtils.getScope(scope));
+ return securityManager.getSecurityContext().getUser();
} catch (CosmoSecurityException e) {
throw new JspException("can't get security context", e);
}
}
-
- /**
- */
- public String getScope() {
- return scope;
- }
-
- /**
- */
- public void setScope(String scope) {
- this.scope = scope;
- }
-
- /**
- */
- public String getVar() {
- return var;
- }
-
- /**
- */
- public void setVar(String var) {
- this.var = var;
- }
}
Index: server/web/etc/MessageResources.properties
diff -u server/web/etc/MessageResources.properties:1.1 server/web/etc/MessageResources.properties:1.2
--- server/web/etc/MessageResources.properties:1.1 Wed Apr 6 20:15:02 2005
+++ server/web/etc/MessageResources.properties Thu Apr 7 17:14:43 2005
@@ -1,6 +1,7 @@
Layout.Title=Cosmo sharing server
Layout.Nav.Main.Welcome=Cosmo
+Layout.Nav.Main.ShareRoot=Share Root
Layout.Nav.Main.Home=Home
Layout.Nav.Main.LogOut=Log out
Layout.Nav.Console.Label=Admin console:
@@ -46,6 +47,8 @@
Welcome.HeadTitle=Cosmo | Home
Welcome.WelcomeMsg=Welcome to the Cosmo sharing server installed at <strong>{0}</strong>!
Welcome.LoggedInAs=You are logged in as <strong>{0}</strong>.
+Welcome.HomeDirectory=Home directory:
+Welcome.YourHomeDirectory=Your home directory is where Chandler places collections shared with other people. You may also use any WebDAV client to browse your home directory and store files.
#
# User messages
Index: server/web/web/WEB-INF/jsp/layout.jsp
diff -u server/web/web/WEB-INF/jsp/layout.jsp:1.1 server/web/web/WEB-INF/jsp/layout.jsp:1.2
--- server/web/web/WEB-INF/jsp/layout.jsp:1.1 Wed Apr 6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/layout.jsp Thu Apr 7 17:14:44 2005
@@ -7,7 +7,7 @@
<c:if test="${empty showNav}">
<c:set var="showNav" value="true"/>
- <chc:user var="user"/>
+ <cosmo-core:user var="user"/>
</c:if>
<html:html xhtml="true">
@@ -34,6 +34,10 @@
<td align="right" valign="middle">
<!-- main navbar -->
<div class="md">
+ <authz:authorize ifAllGranted="ROLE_ROOT">
+ <html:link page="/home/"><fmt:message key="Layout.Nav.Main.ShareRoot"/></html:link>
+ |
+ </authz:authorize>
<authz:authorize ifAllGranted="ROLE_USER">
<html:link page="/home/${user.username}/"><fmt:message key="Layout.Nav.Main.Home"/></html:link>
|
Index: server/web/web/WEB-INF/jsp/tagfiles.jsp
diff -u server/web/web/WEB-INF/jsp/tagfiles.jsp:1.1 server/web/web/WEB-INF/jsp/tagfiles.jsp:1.2
--- server/web/web/WEB-INF/jsp/tagfiles.jsp:1.1 Wed Apr 6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/tagfiles.jsp Thu Apr 7 17:14:44 2005
@@ -1 +1 @@
-<%@ taglib tagdir="/WEB-INF/tags" prefix="ch" %>
+<%@ taglib tagdir="/WEB-INF/tags" prefix="cosmo" %>
Index: server/web/web/WEB-INF/struts-config.xml
diff -u server/web/web/WEB-INF/struts-config.xml:1.1 server/web/web/WEB-INF/struts-config.xml:1.2
--- server/web/web/WEB-INF/struts-config.xml:1.1 Wed Apr 6 20:15:03 2005
+++ server/web/web/WEB-INF/struts-config.xml Thu Apr 7 17:14:44 2005
@@ -47,7 +47,7 @@
<action path="/logout"
type="org.osaf.struts.OSAFLogoutAction">
- <forward name="ok" path="/welcome" redirect="true"/>
+ <forward name="ok" path="/" redirect="true"/>
</action>
<!-- user actions -->
Index: server/web/web/WEB-INF/jsp/taglibs.jsp
diff -u server/web/web/WEB-INF/jsp/taglibs.jsp:1.1 server/web/web/WEB-INF/jsp/taglibs.jsp:1.2
--- server/web/web/WEB-INF/jsp/taglibs.jsp:1.1 Wed Apr 6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/taglibs.jsp Thu Apr 7 17:14:44 2005
@@ -5,4 +5,5 @@
<%@ taglib uri="http://struts.apache.org/tags-logic-el" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles-el" prefix="tiles" %>
<%@ taglib uri="http://acegisecurity.sf.net/authz" prefix="authz" %>
-<%@ taglib uri="http://osafoundation.org/server/jsp/core" prefix="chc" %>
+<%@ taglib uri="http://osafoundation.org/cosmo/jsp/core"
+ prefix="cosmo-core" %>
Index: server/core/src/chsrv-core.tld
diff -u server/core/src/chsrv-core.tld:1.4 server/core/src/chsrv-core.tld:1.5
--- server/core/src/chsrv-core.tld:1.4 Thu Apr 7 12:31:19 2005
+++ server/core/src/chsrv-core.tld Thu Apr 7 17:14:42 2005
@@ -8,54 +8,8 @@
<display-name>Chandler Server core</display-name>
<tlib-version>0.1</tlib-version>
<jspversion>2.0</jspversion>
- <short-name>chc</short-name>
- <uri>http://osafoundation.org/server/jsp/core</uri>
- <tag>
- <description>
- Calculates the unescaped URI path of a user's home directory
- given the user's username.
- </description>
- <name>homedir</name>
- <tag-class>org.osaf.chandler.server.jsp.tag.HomedirTag</tag-class>
- <body-content>empty</body-content>
- <attribute>
- <description>
- The unescaped base URI path which is prepended to the
- calculated home directory URI path (defaults to /).
- </description>
- <name>basepath</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <description>
- Scope in which the scripting variable holding the calculated
- home directory URI path is placed (defaults to page).
- </description>
- <name>scope</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <description>
- Username of the user for whom the home directory URI path
- is to be calculated.
- </description>
- <name>username</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <description>
- Name of the exported scoped variable for the calculated
- home directory URI path as a String. If not present, the URI
- path is written to the current JSP output stream.
- </description>
- <name>var</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
+ <short-name>cosmo-core</short-name>
+ <uri>http://osafoundation.org/cosmo/jsp/core</uri>
<tag>
<description>
Returns a User instance representing the currently authenticated
Index: server/web/web/WEB-INF/jsp/error/connect.jsp
diff -u server/web/web/WEB-INF/jsp/error/connect.jsp:1.1 server/web/web/WEB-INF/jsp/error/connect.jsp:1.2
--- server/web/web/WEB-INF/jsp/error/connect.jsp:1.1 Wed Apr 6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/error/connect.jsp Thu Apr 7 17:14:45 2005
@@ -5,15 +5,4 @@
<p>
<fmt:message key="Error.Connect.UnableToConnect"/>
</p>
-<c:if test="${not empty Exception}">
- <div class="pre">
-${Exception}<c:forEach var="element" items="${Exception.stackTrace}">
- at ${element.className}.${element.methodName}(${element.fileName}:${element.lineNumber})</c:forEach>
-</div>
- <c:if test="${not empty Exception.cause}">
- <div class="pre">
-${Exception.cause}<c:forEach var="element" items="${Exception.cause.stackTrace}">
- at ${element.className}.${element.methodName}(${element.fileName}:${element.lineNumber})</c:forEach>
- </div>
- </c:if>
-</c:if>
+<cosmo:stacktrace exception="${Exception}"/>
Index: server/web/web/WEB-INF/jsp/error/general.jsp
diff -u server/web/web/WEB-INF/jsp/error/general.jsp:1.1 server/web/web/WEB-INF/jsp/error/general.jsp:1.2
--- server/web/web/WEB-INF/jsp/error/general.jsp:1.1 Wed Apr 6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/error/general.jsp Thu Apr 7 17:14:45 2005
@@ -5,15 +5,4 @@
<p>
<fmt:message key="Error.General.ErrorOccurred"/>
</p>
-<c:if test="${not empty Exception}">
- <div class="pre">
-${Exception}<c:forEach var="element" items="${Exception.stackTrace}">
- at ${element.className}.${element.methodName}(${element.fileName}:${element.lineNumber})</c:forEach>
-</div>
- <c:if test="${not empty Exception.cause}">
- <div class="pre">
-${Exception.cause}<c:forEach var="element" items="${Exception.cause.stackTrace}">
- at ${element.className}.${element.methodName}(${element.fileName}:${element.lineNumber})</c:forEach>
- </div>
- </c:if>
-</c:if>
+<cosmo:stacktrace exception="${Exception}"/>
Index: server/web/web/WEB-INF/jsp/welcome.jsp
diff -u server/web/web/WEB-INF/jsp/welcome.jsp:1.1 server/web/web/WEB-INF/jsp/welcome.jsp:1.2
--- server/web/web/WEB-INF/jsp/welcome.jsp:1.1 Wed Apr 6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/welcome.jsp Thu Apr 7 17:14:44 2005
@@ -1,7 +1,18 @@
<%@ include file="/WEB-INF/jsp/taglibs.jsp" %>
<%@ include file="/WEB-INF/jsp/tagfiles.jsp" %>
-<chc:user var="user"/>
+<cosmo-core:user var="user"/>
+<c:url var="homedirPage" value="/home/${user.username}/"/>
+
+<c:set var="homedirUrl"
+ value="${pageContext.request.scheme}://${pageContext.request.serverName}"/>
+<c:if test="${(pageContext.request.secure &&
+ pageContext.request.serverPort != 443) ||
+ (pageContext.request.serverPort != 80)}">
+ <c:set var="homedirUrl"
+ value="${homedirUrl}:${pageContext.request.serverPort}"/>
+</c:if>
+<c:set var="homedirUrl" value="${homedirUrl}${homedirPage}"/>
<p>
<fmt:message key="Welcome.WelcomeMsg">
@@ -11,3 +22,14 @@
<fmt:param value="${user.username}"/>
</fmt:message>
</p>
+<authz:authorize ifAllGranted="ROLE_USER">
+ <p>
+ <fmt:message key="Welcome.HomeDirectory"/>
+ <html:link page="${homedirPage}">
+ <b>${homedirUrl}</b>
+ </html:link>
+ </p>
+ <p>
+ <fmt:message key="Welcome.YourHomeDirectory"/>
+ </p>
+</authz:authorize>
Index: server/web/web/WEB-INF/jsp/user/list.jsp
diff -u server/web/web/WEB-INF/jsp/user/list.jsp:1.1 server/web/web/WEB-INF/jsp/user/list.jsp:1.2
--- server/web/web/WEB-INF/jsp/user/list.jsp:1.1 Wed Apr 6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/user/list.jsp Thu Apr 7 17:14:46 2005
@@ -1,7 +1,7 @@
<%@ include file="/WEB-INF/jsp/taglibs.jsp" %>
<%@ include file="/WEB-INF/jsp/tagfiles.jsp" %>
-<ch:cnfmsg/>
+<cosmo:cnfmsg/>
<c:choose>
<c:when test="${not empty Users}">
@@ -11,6 +11,9 @@
<b><fmt:message key="User.List.TH.User"/></b>
</td>
<td class="md" valign="bottom">
+ <b><fmt:message key="User.List.TH.Homedir"/></b>
+ </td>
+ <td class="md" valign="bottom">
<b><fmt:message key="User.List.TH.Email"/></b>
</td>
<td class="md" valign="bottom">
@@ -21,6 +24,7 @@
</td>
</tr>
<c:forEach var="user" items="${Users}">
+ <c:url var="homedirPage" value="/home/${user.username}/"/>
<tr>
<td class="md" nowrap="nowrap">
<html:link page="/user/${user.username}">
@@ -28,6 +32,11 @@
</html:link>
</td>
<td class="md" nowrap="nowrap">
+ <html:link target="homedir" page="${homedirPage}">
+ ${homedirPage}
+ </html:link>
+ </td>
+ <td class="md" nowrap="nowrap">
<html:link href="mailto:${user.email}">${user.email}</html:link>
</td>
<td class="md" nowrap="nowrap">
@@ -60,7 +69,7 @@
<td class="md" align="left">
<html:text property="user.username" size="32" maxlength="32"
styleClass="md"/>
- <ch:errmsg property="user.username"/>
+ <cosmo:errmsg property="user.username"/>
</td>
</tr>
<tr>
@@ -70,7 +79,7 @@
<td class="md" align="left">
<html:text property="user.email" size="32" maxlength="32"
styleClass="md"/>
- <ch:errmsg property="user.email"/>
+ <cosmo:errmsg property="user.email"/>
</td>
</tr>
<tr>
@@ -80,7 +89,7 @@
<td class="md" align="left">
<html:password property="password" size="16" maxlength="16"
styleClass="md"/>
- <ch:errmsg property="password"/>
+ <cosmo:errmsg property="password"/>
</td>
</tr>
<tr>
@@ -90,7 +99,7 @@
<td class="md" align="left">
<html:password property="confirm" size="16" maxlength="16"
styleClass="md"/>
- <ch:errmsg property="confirm"/>
+ <cosmo:errmsg property="confirm"/>
</td>
</tr>
<tr>
@@ -103,7 +112,7 @@
styleClass="md"/>
${rolename}<br/>
</c:forEach>
- <ch:errmsg property="role"/>
+ <cosmo:errmsg property="role"/>
</td>
</tr>
<tr>
Index: server/web/web/WEB-INF/jsp/user/view.jsp
diff -u server/web/web/WEB-INF/jsp/user/view.jsp:1.1 server/web/web/WEB-INF/jsp/user/view.jsp:1.2
--- server/web/web/WEB-INF/jsp/user/view.jsp:1.1 Wed Apr 6 20:15:04 2005
+++ server/web/web/WEB-INF/jsp/user/view.jsp Thu Apr 7 17:14:46 2005
@@ -30,7 +30,7 @@
<td class="md" align="left">
<html:text property="user.email" size="32" maxlength="32"
styleClass="md"/>
- <ch:errmsg property="user.email"/>
+ <cosmo:errmsg property="user.email"/>
</td>
</tr>
<tr>
@@ -40,7 +40,7 @@
<td class="md" align="left">
<html:password property="password" size="16" maxlength="16"
styleClass="md"/>
- <ch:errmsg property="password"/>
+ <cosmo:errmsg property="password"/>
</td>
</tr>
<tr>
@@ -50,7 +50,7 @@
<td class="md" align="left">
<html:password property="confirm" size="16" maxlength="16"
styleClass="md"/>
- <ch:errmsg property="confirm"/>
+ <cosmo:errmsg property="confirm"/>
</td>
</tr>
<tr>
@@ -63,7 +63,7 @@
styleClass="md"/>
${rolename}<br/>
</c:forEach>
- <ch:errmsg property="role"/>
+ <cosmo:errmsg property="role"/>
</td>
</tr>
<tr>
More information about the Commits
mailing list