You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2005/11/25 03:25:20 UTC

svn commit: r348854 [12/16] - in /portals/jetspeed-2/trunk/applications/j2-admin: ./ src/java/org/apache/jetspeed/portlets/entityeditor/ src/java/org/apache/jetspeed/portlets/localeselector/ src/java/org/apache/jetspeed/portlets/localeselector/resource...

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/groups/groups-view.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/groups/groups-view.vm?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/groups/groups-view.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/groups/groups-view.vm Thu Nov 24 18:24:19 2005
@@ -0,0 +1,136 @@
+<script language='JavaScript' src='/idtb/scripts/idtb.js'></script>
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+#if ($statusMsg)
+#parse ('/WEB-INF/view/status-include.vm')
+#end
+
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+  <tr>
+     <th width='12'></th>
+    #foreach ($column in $title)      
+      <th align='center' class="portlet-section-header" width="100%" nowrap>
+        $column
+      </th>
+    #end
+  </tr>
+  #foreach ( $group in $table )
+  <tr>
+    #if ($velocityCount % 2 == 0)
+       #set($rowstyle = "portlet-section-body")
+    #else
+       #set($rowstyle = "portlet-section-alternate")
+    #end  
+	#set ($action = $renderResponse.createActionURL())
+	$action.setParameter("group", $group)           
+	   #if ($selected == $group)
+       <td class="$rowstyle" nowrap width='12'>
+         <img src="/j2-admin/images/selected.gif" />
+       </td>	 	
+       #else
+       <td class="$rowstyle" nowrap width='12'>
+         &nbsp;
+       </td>             
+       #end
+	  <td class="$rowstyle" nowrap width="100%">
+	    <div align="center"><a href='$action'>$group</a></div>
+	  </td>
+   </tr>
+  #end
+</table>
+
+<hr/>
+
+<!-- controls -->
+<table width="200" border="0" cellspacing="0" cellpadding="0" align="center">
+  <tr>
+    #if ($prev)
+      <td valign="middle" height="30">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='first' />                    
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('firstArrow')">
+            <input type="hidden" name="start" value="0">
+          </form>
+        </div>
+      </td>  
+      <td valign="middle" height="30">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='prev'/>                    
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('prevArrow')">
+            <input type="hidden" name="start" value="$prev">
+          </form>
+        </div>
+      </td>
+    #end
+    #if ($tableSize > 0)
+      <form action="$renderResponse.createActionURL()" method="post">
+      <td valign="middle" height="30">
+        <div align="center">
+          	<input type='hidden' name='db.browser.action' value='change'/>                    
+            <input type="input" name='start' size='5' value="$start" class="portlet-form-field-label">
+        </div>
+      </td>  
+      <td valign="middle" height="30">
+        <div align="center">
+            <input type="input" readonly size='10' value="$MESSAGES.getString('numberseparator') $tableSize" class="portlet-form-field-label">            
+        </div>
+      </td>  
+      <td valign="middle" height="30">
+        <div align="center">
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('go')">            
+        </div>
+      </td>  
+
+      </form>
+
+      
+    #end    
+    #if ($next)
+      <td valign="middle">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='next'/>          
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('nextArrow')">
+            <input type="hidden" name="start" value="$next">
+          </form>
+        </div>
+      </td>
+      <td valign="middle" height="30">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='last'/>                    
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('lastArrow')">
+            <input type="hidden" name="start" value="$tableSize">
+          </form>
+        </div>
+      </td>  
+    #end
+    #if ($tableSize > 0)
+      <td valign="middle">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='refresh'/>
+            <input class="portlet-form-button" type="submit" name="eventSubmit_doRefresh" value="$MESSAGES.getString('refresh')" />
+          </form>
+        </div>
+      </td>
+    #end
+  </tr>
+</table>
+<form action="$renderResponse.createActionURL()" method="post">
+  	<input type='hidden' name='db.browser.action' value='search'/>                    
+  	<input type='hidden' name='searchColumn' value='1'/>                      	
+    <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('search')">
+	<input type="text" name="searchString" size="30" value="" class="portlet-form-field-label">    
+	<table>
+	<tr>
+    <td nowrap class="portlet-section-alternate" align="right">$MESSAGES.getString('filter')&nbsp;&nbsp;&nbsp;</td>
+    <td>	
+	<input type="checkbox"  #if($filtered == "on") checked=1 #end name="filtered">
+	</td>
+	</tr>
+	</table>	
+</form>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp Thu Nov 24 18:24:19 2005
@@ -0,0 +1,60 @@
+<%--
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+--%>
+<%@page import="org.apache.jetspeed.login.LoginConstants"%>
+<%@page import="org.apache.jetspeed.request.RequestContext"%>
+<%@taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
+<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
+<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt"%>
+<fmt:setBundle basename="org.apache.jetspeed.portlets.security.resources.LoginResources" />
+<c_rt:set var="requestContext" value="<%=request.getAttribute(RequestContext.REQUEST_PORTALENV)%>"/>
+<c:choose>
+  <c:when test="${pageContext.request.userPrincipal != null}">
+    <fmt:message key="login.label.Welcome"><fmt:param><c:out value="${pageContext.request.userPrincipal.name}"/></fmt:param></fmt:message><br/>
+    <a href='<c:url context="${requestContext.request.contextPath}" value="/login/logout"/>'><fmt:message key="login.label.Logout"/></a>
+    <br/>
+    <a href='<c:url context="${requestContext.request.contextPath}" value="/portal/my-account.psml"/>'><fmt:message key="login.label.ChangePassword"/></a>
+  </c:when>
+  <c:otherwise>
+    <%-- backdoor access to the portal session to get the login error count --%>
+    <c_rt:set var="errorCode" value="<%=((RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV)).getSessionAttribute(LoginConstants.ERRORCODE)%>"/>
+    <c:choose>    
+      <c:when test="${not empty errorCode}">
+        <br/><fmt:message key="login.label.ErrorCode.${errorCode}"/><br/>
+      </c:when>
+      <c:otherwise>
+        <c_rt:set var="retryCount" value="<%=((RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV)).getSessionAttribute(LoginConstants.RETRYCOUNT)%>"/>
+        <c:if test="${not empty retryCount}">
+          <br/>
+          <fmt:message key="login.label.InvalidUsernameOrPassword"><fmt:param value="${retryCount}"/></fmt:message><br/>
+        </c:if>
+      </c:otherwise>
+    </c:choose>   
+    <form method="post" action='<c:url context="${requestContext.request.contextPath}" value="/login/proxy"/>'>
+      <div>
+        <fmt:message key="login.label.Username"/>
+        <c_rt:set var="userName" value="<%=((RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV)).getSessionAttribute(LoginConstants.USERNAME)%>"/>
+        <input type="text" size="30" name="<%=LoginConstants.USERNAME%>" value="<c:out value="${userName}"/>"/>
+      </div>
+      <div>
+        <fmt:message key="login.label.Password"/>
+        <input type="password" size="30" name="<%=LoginConstants.PASSWORD%>"/>
+      </div>
+      <div>
+        <input type="submit" value="<fmt:message key="login.label.Login"/>"/>
+      </div>
+    </form>
+  </c:otherwise>
+</c:choose>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/login/login.jsp
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/login/login.jsp?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/login/login.jsp (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/login/login.jsp Thu Nov 24 18:24:19 2005
@@ -0,0 +1,68 @@
+<%--
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+--%>
+<%@page import="org.apache.jetspeed.login.LoginConstants"%>
+<%@page import="org.apache.jetspeed.request.RequestContext"%>
+<%@taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
+<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
+<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt"%>
+
+<fmt:setBundle basename="org.apache.jetspeed.portlets.security.resources.LoginResources" />
+
+<c_rt:set var="requestContext" value="<%=request.getAttribute(RequestContext.REQUEST_PORTALENV)%>"/>
+
+<c:choose>
+  <c:when test="${pageContext.request.userPrincipal != null}">
+    <fmt:message key="login.label.Welcome"><fmt:param><c:out value="${pageContext.request.userPrincipal.name}"/></fmt:param></fmt:message><br>
+    <a href='<c:url context="${requestContext.request.contextPath}" value="/login/logout"/>'><fmt:message key="login.label.Logout"/></a>
+    <br>
+    <a href='<c:url context="${requestContext.request.contextPath}" value="/portal/my-account.psml"/>'><fmt:message key="login.label.ChangePassword"/></a>
+  </c:when>
+  <c:otherwise>
+    <%-- backdoor access to the portal session to get the login error count --%>
+    <c_rt:set var="errorCode" value="<%=((RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV)).getSessionAttribute(LoginConstants.ERRORCODE)%>"/>
+    <c:choose>    
+      <c:when test="${not empty errorCode}">
+        <br>
+        <i><fmt:message key="login.label.ErrorCode.${errorCode}"/></i>
+        <br>
+      </c:when>
+      <c:otherwise>
+        <c_rt:set var="retryCount" value="<%=((RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV)).getSessionAttribute(LoginConstants.RETRYCOUNT)%>"/>
+        <c:if test="${not empty retryCount}">
+          <br>
+          <i><fmt:message key="login.label.InvalidUsernameOrPassword"><fmt:param value="${retryCount}"/></fmt:message></i>
+          <br>
+        </c:if>
+      </c:otherwise>
+    </c:choose>   
+    <form method="POST" action='<c:url context="${requestContext.request.contextPath}" value="/login/proxy"/>'>
+      <table border="0">
+      <tr>
+        <td><fmt:message key="login.label.Username"/></td>
+        <c_rt:set var="userName" value="<%=((RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV)).getSessionAttribute(LoginConstants.USERNAME)%>"/>
+        <td><input type="text" size="30" name="<%=LoginConstants.USERNAME%>" value="<c:out value="${userName}"/>"></td>
+      </tr>
+      <tr>
+        <td><fmt:message key="login.label.Password"/></td>
+        <td><input type="password" size="30" name="<%=LoginConstants.PASSWORD%>"></td>
+      </tr>
+      <tr>
+        <td colspan="2"><input type="submit" value="<fmt:message key="login.label.Login"/>"></td>
+      </tr>
+      </table>
+    </form>
+  </c:otherwise>
+</c:choose>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/roles/role-details.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/roles/role-details.vm?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/roles/role-details.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/roles/role-details.vm Thu Nov 24 18:24:19 2005
@@ -0,0 +1,119 @@
+#*
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*#
+
+#**
+
+@author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+@version $Id: role-details.vm 348264 2005-11-22 22:06:45Z taylor $
+
+*#
+
+<script>
+function openWindow(pipeline)
+{	
+    var vWinUsers = window.open(pipeline, 'UserPicker', 'status=no,resizable=yes,width=200,height=300,scrollbars=yes');
+    vWinUsers.opener = self;
+	vWinUsers.focus();
+}
+</script>
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+#if ($statusMsg)
+#parse ('/WEB-INF/view/status-include.vm')
+#end
+#if ($role)
+#set ($newRole = "false")
+#else
+#set ($newRole = "true")
+#end
+
+<form name='roleForm' action="$renderResponse.createActionURL()" method="post">
+<table>
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right">$MESSAGES.getString('rolename')&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+      <input type="text" name='role' size="40" value="$!role" 
+       class="portlet-form-field-label"
+      #if ($newRole == "false") readonly #end
+      >
+    </td>
+  </tr>
+</table>
+
+#if ($newRole == "true")
+<input type="submit" name="role.action.Save" value="$MESSAGES.getString('save')" class="portlet-form-button"/>
+#end
+</form>	      
+
+#if ($newRole == "false")
+<form name='securityform' action="$renderResponse.createActionURL()" method="post">
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+#if ($tableSize > 0)
+  <tr>
+    #foreach ($column in $title)      
+      <th align='center' class="portlet-section-header" nowrap width="260">
+        $column
+      </th>
+     <th class="portlet-section-header" width="10"></th>
+     <th width="100%"/>
+    #end
+  </tr>
+#end  
+  #foreach ( $user in $table )
+  <tr>
+    #if ($velocityCount % 2 == 0)
+       #set($rowstyle = "portlet-section-body")
+    #else
+       #set($rowstyle = "portlet-section-alternate")
+    #end  
+	  <td class="$rowstyle" nowrap width="260">
+	    <div align="center">$user</div>
+	  </td>
+	  <td class="$rowstyle" width="10">
+  	    <input type="checkbox" name="box_$user"/>
+	  </td>
+     <td width="100%"/>	  
+   </tr>
+  #end
+</table>
+
+<table>
+<tr>
+  <td>
+   <input type="submit" name="role.action.Add_New_Role" value="$MESSAGES.getString('addnewrole')" class="portlet-form-button"  />
+  </td>
+  <td>
+   <input onclick="javascript:openWindow('$userChooser')" type="submit" name="role.action.Add_Users_To_Role" value="$MESSAGES.getString('adduserstorole')" class="portlet-form-button"  />
+  </td>  
+#if ($tableSize > 0)  
+  <td>
+   <input type="submit" name="role.action.Remove_Checked_Users" value="$MESSAGES.getString('removecheckedusers')" class="portlet-form-button" />
+  </td>    
+#end
+  <td>
+   <input type="submit" name="role.action.Remove_Role" value="$MESSAGES.getString('removerole')" class="portlet-form-button" />
+  </td>  
+</tr>
+</table>
+<input type='hidden' name='users'/>
+<input type='hidden' name='role' value='$role'/>
+
+</form>
+
+
+#end
+

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/roles/roles-view.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/roles/roles-view.vm?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/roles/roles-view.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/roles/roles-view.vm Thu Nov 24 18:24:19 2005
@@ -0,0 +1,136 @@
+<script language='JavaScript' src='/idtb/scripts/idtb.js'></script>
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+#if ($statusMsg)
+#parse ('/WEB-INF/view/status-include.vm')
+#end
+
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+  <tr>
+     <th width='12'></th>
+    #foreach ($column in $title)      
+      <th align='center' class="portlet-section-header" width="100%" nowrap>
+        $column
+      </th>
+    #end
+  </tr>
+  #foreach ( $role in $table )
+  <tr>
+    #if ($velocityCount % 2 == 0)
+       #set($rowstyle = "portlet-section-body")
+    #else
+       #set($rowstyle = "portlet-section-alternate")
+    #end  
+	#set ($action = $renderResponse.createActionURL())
+	$action.setParameter("role", $role)           
+	   #if ($selected == $role)
+       <td class="$rowstyle" nowrap width='12'>
+         <img src="/j2-admin/images/selected.gif" />
+       </td>	 	
+       #else
+       <td class="$rowstyle" nowrap width='12'>
+         &nbsp;
+       </td>             
+       #end
+	  <td class="$rowstyle" nowrap width="100%">
+	    <div align="center"><a href='$action'>$role</a></div>
+	  </td>
+   </tr>
+  #end
+</table>
+
+<hr/>
+
+<!-- controls -->
+<table width="200" border="0" cellspacing="0" cellpadding="0" align="center">
+  <tr>
+    #if ($prev)
+      <td valign="middle" height="30">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='first' />                    
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('firstArrow')">
+            <input type="hidden" name="start" value="0">
+          </form>
+        </div>
+      </td>  
+      <td valign="middle" height="30">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='prev'/>                    
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('prevArrow')">
+            <input type="hidden" name="start" value="$prev">
+          </form>
+        </div>
+      </td>
+    #end
+    #if ($tableSize > 0)
+      <form action="$renderResponse.createActionURL()" method="post">
+      <td valign="middle" height="30">
+        <div align="center">
+          	<input type='hidden' name='db.browser.action' value='change'/>                    
+            <input type="input" name='start' size='5' value="$start" class="portlet-form-field-label">
+        </div>
+      </td>  
+      <td valign="middle" height="30">
+        <div align="center">
+            <input type="input" readonly size='10' value="$MESSAGES.getString('numberseparator') $tableSize" class="portlet-form-field-label">            
+        </div>
+      </td>  
+      <td valign="middle" height="30">
+        <div align="center">
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('go')">            
+        </div>
+      </td>  
+
+      </form>
+
+      
+    #end    
+    #if ($next)
+      <td valign="middle">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='next'/>          
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('nextArrow')">
+            <input type="hidden" name="start" value="$next">
+          </form>
+        </div>
+      </td>
+      <td valign="middle" height="30">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='last'/>                    
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('lastArrow')">
+            <input type="hidden" name="start" value="$tableSize">
+          </form>
+        </div>
+      </td>  
+    #end
+    #if ($tableSize > 0)
+      <td valign="middle">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='refresh'/>
+            <input class="portlet-form-button" type="submit" name="eventSubmit_doRefresh" value="$MESSAGES.getString('refresh')" />
+          </form>
+        </div>
+      </td>
+    #end
+  </tr>
+</table>
+<form action="$renderResponse.createActionURL()" method="post">
+  	<input type='hidden' name='db.browser.action' value='search'/>                    
+  	<input type='hidden' name='searchColumn' value='1'/>                      	
+    <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('search')">
+	<input type="text" name="searchString" size="30" value="" class="portlet-form-field-label">    
+	<table>
+	<tr>
+    <td nowrap class="portlet-section-alternate" align="right">$MESSAGES.getString('filter')&nbsp;&nbsp;&nbsp;</td>
+    <td>	
+	<input type="checkbox"  #if($filtered == "on") checked=1 #end name="filtered">
+	</td>
+	</tr>
+	</table>		
+</form>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/edit-prefs.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/edit-prefs.vm?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/edit-prefs.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/edit-prefs.vm Thu Nov 24 18:24:19 2005
@@ -0,0 +1,13 @@
+
+<h2 class="portlet-section-header">Edit Preferences</h2>
+
+<form action="$renderResponse.createActionURL()" method="post">
+<table>
+#foreach ($pref in $prefs)
+#prefField($pref.Key $pref.Value "40")
+#end
+</table>
+<input type="submit" name="Save" value="Save" />
+</form>
+
+

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/sites-details.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/sites-details.vm?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/sites-details.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/sites-details.vm Thu Nov 24 18:24:19 2005
@@ -0,0 +1,126 @@
+#*
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*#
+
+#**
+
+@author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+@version $Id: sites-details.vm 348264 2005-11-22 22:06:45Z taylor $
+
+*#
+
+## set ($pipeline = $renderResponse.createRenderURL())
+## set ($pipeline = "$pipeline?pipeline=portlet-pipeline&entity=$chooser.Id")
+
+<script>
+function openWindow(pipeline)
+{	
+    var vWinUsers = window.open(pipeline, 'UserPicker', 'status=no,resizable=yes,width=200,height=250,scrollbars=yes');
+    vWinUsers.opener = self;
+	vWinUsers.focus();
+}
+</script>
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+#if ($statusMsg)
+#parse ('/WEB-INF/view/status-include.vm')
+#end
+
+#if ($currentSite)
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+  <tr>
+    <td width='12' class="portlet-section-header"></td>      
+    #foreach ($column in $title)
+	  #set ($columnLink = $renderResponse.createRenderURL())
+	  $columnLink.setParameter("js_dbcolumn",$column)
+      <td align='center' class="portlet-section-header" width="40%" nowrap>
+        $column
+      </td>
+    #end
+    <td width='24' class="portlet-section-header">&nbsp;</td>    
+    <td class=""></td>        
+  </tr>
+  #foreach ( $principal in $table )
+  <tr>
+    #if ($velocityCount % 2 == 0)
+       #set($rowstyle = "portlet-section-body")
+    #else
+       #set($rowstyle = "portlet-section-alternate")
+    #end    
+     #if ($currentP == $principal)
+       <td class="$rowstyle" nowrap width='12'>
+         <img src="/j2-admin/images/selected.gif" width="7" height="12" border="0" vspace="2"/>
+       </td>
+	 #else
+       <td class="$rowstyle" nowrap width='12'>
+         &nbsp;
+       </td>      
+	 #end   	 
+      <td class="$rowstyle" nowrap width="25%">
+        #set ($action = $renderResponse.createActionURL())
+        $action.setParameter('ssoPrincipal', $principal.PortalPrincipalName)
+        <div align="center">$principal.PortalPrincipalName</div>
+      </td>
+      <td class="$rowstyle" nowrap width="25%">
+        <div align="center">$principal.RemotePrincipalName</div>
+      </td>      
+       <td class="$rowstyle" nowrap width='24' align='center'>
+         <a href="javascript:YesNoPopup('$MESSAGES.getString('confirmToDeleteRemote')','$MESSAGES.getString('confirmDelete')','securityform','ssoDelete','$principal.PortalPrincipalName','YesNoReturnMethod()');">
+           <img src="/j2-admin/images/waste_bin.gif" width="20" height="15" border="0"/>            
+         </a>
+       </td>      
+    <td class="">&nbsp;</td>               
+   </tr>
+  #end
+</table>
+<br/>
+<form name='securityform' action="$renderResponse.createActionURL()" method="post">
+<input type='hidden' name='principal.type' value='user'/>
+<input name='ssoDelete' type='hidden' value=''/>
+<table>
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right">$MESSAGES.getString('portalPrincipal')&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+      <input type="text" name="portal.principal" size="30" value="$!currentP" class="portlet-form-field-label">
+	 <a href="javascript:openWindow('$userChooser');">
+        <img title="Select a User"
+             name="assigneeImage" 
+             src="/j2-admin/images/user-chooser.gif" hspace=0 height=16 width=16 border=0 align=absmiddle></a>      
+	 <a href="javascript:openWindow('$groupChooser');">
+        <img title="Select a Group"
+             name="assigneeImage" 
+             src="/j2-admin/images/group-chooser.gif" hspace=0 height=16 width=16 border=0 align=absmiddle></a>                   
+    </td>      
+    </td>
+  </tr>
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right">$MESSAGES.getString('remotePrincipal')&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+      <input type="text" name="remote.principal" size="30" value="$!currentR" class="portlet-form-field-label">
+  </tr>
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right">$MESSAGES.getString('remoteCredential')&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+      <input type="password" name="remote.credential" size="30" value="$!remoteCredential" class="portlet-form-field-label">      
+    </td>
+  </tr>  
+</table>
+<br/>
+<input name='sso.add' type="submit" value="$MESSAGES.getString('add')" class="portlet-form-button"/>
+<input name='sso.refresh' class="portlet-form-button" type="submit" value="$MESSAGES.getString('refresh')" />
+</form>	      
+#end
+

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/sites-view.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/sites-view.vm?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/sites-view.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/sso/sites-view.vm Thu Nov 24 18:24:19 2005
@@ -0,0 +1,100 @@
+#*
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*#
+
+#**
+
+@author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+@version $Id: sites-view.vm 348264 2005-11-22 22:06:45Z taylor $
+
+*#
+
+<script language='JavaScript' src='/j2-admin/scripts/jetspeed-security.js'></script>
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+#if ($statusMsg)
+#parse ('/WEB-INF/view/status-include.vm')
+#end
+
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+  <tr>
+    <td width='12' class="portlet-section-header"></td>      
+    #set ($column = $title.get(1))
+	#set ($columnLink = $renderResponse.createRenderURL())
+	$columnLink.setParameter("js_dbcolumn",$column)
+    <td align='center' class="portlet-section-header" width="75%" nowrap>
+      $column
+    </td>
+    <td width='24' class="portlet-section-header">&nbsp;</td>    
+    <td class=""></td>        
+  </tr>
+  #foreach ( $ssoItem in $table )
+  <tr>
+     #set ($ssoName = $ssoItem.get(1))
+     #set ($ssoUrl = $ssoItem.get(0))
+    #if ($velocityCount % 2 == 0)
+       #set($rowstyle = "portlet-section-body")
+    #else
+       #set($rowstyle = "portlet-section-alternate")
+    #end  
+
+   #if ($ssoName == $currentName)
+   <td class="$rowstyle" nowrap width='12'>
+     <img src="/j2-admin/images/selected.gif" />
+   </td>	 	
+   #else
+   <td class="$rowstyle" nowrap width='12'>
+     &nbsp;
+   </td>             
+   #end
+     
+      <td class="$rowstyle" nowrap width="40%">
+        #set ($action = $renderResponse.createActionURL())
+        $action.setParameter('ssoSite', $ssoUrl)
+        <div align="center"><a href='$action'>$ssoName</a></div>
+      </td>
+       <td class="$rowstyle" nowrap width='24' align='center'>
+         <a href="javascript:YesNoPopup('$MESSAGES.getString('confirmtodeletesite')','$MESSAGES.getString('confirmdelete')','ssoForm','ssoDelete','$ssoUrl','YesNoReturnMethod()');">
+           <img src="/j2-admin/images/waste_bin.gif" width="20" height="14" border="0"/>            
+         </a>
+       </td>      
+    <td class="">&nbsp;</td>               
+   </tr>
+  #end
+</table>
+<br/>
+<form name='ssoForm' action="$renderResponse.createActionURL()" method="post">
+<table>
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right">$MESSAGES.getString('sitename')&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+      <input type="text" name="site.name" size="40" value="$!currentName" class="portlet-form-field-label">
+    </td>
+  </tr>
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right">$MESSAGES.getString('siteurl')&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+      <input type="text" name="site.url" size="40" value="$!currentUrl" class="portlet-form-field-label">
+    </td>
+  </tr>
+</table>
+<br/>
+<input name='ssoDelete' type='hidden' value=''/>
+<input name='sso.save' type="submit" value="$MESSAGES.getString('save')" class="portlet-form-button"/>
+<input name='sso.refresh' class="portlet-form-button" type="submit" value="$MESSAGES.getString('refresh')" />
+<input name='sso.new' class="portlet-form-button" type="submit" value="$MESSAGES.getString('new')" />
+</form>	      
+

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/group-chooser.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/group-chooser.vm?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/group-chooser.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/group-chooser.vm Thu Nov 24 18:24:19 2005
@@ -0,0 +1,69 @@
+#*
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*#
+
+#**
+
+@author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+@version $Id: sites-details.vm,v 1.2 2005/01/04 23:16:54 taylor Exp $
+
+*#
+
+<script language="JavaScript" type="text/javascript">
+    <!--
+    function select(value)
+    {
+        var openerForm = opener.document.forms['securityform'];
+        var openerEl = openerForm.elements['portal.principal'];
+        var openerType = openerForm.elements['principal.type'];        
+        openerEl.value = value;
+        openerType.value = 'group';
+        window.close();
+    }
+	function rowHover(row)
+	{
+	    row.oldClassName = row.className;
+	    row.className = 'jetdbLight';
+	    row.onmouseout = function()
+	    {
+	        this.className = this.oldClassName;
+	    }
+	}    
+    //-->
+</script>
+
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+  <tr>
+    #foreach ($column in $title)
+	  #set ($columnLink = $renderResponse.createRenderURL())
+	  $columnLink.setParameter("js_dbcolumn",$column)
+##      <td align='center' class="jetdbHeadNoLink" width="40%" nowrap onClick="window.location.href='$columnLink'">
+      <td align='center' class="jetdbHeadNoLink" width="40%" nowrap>
+        $column
+      </td>
+    #end
+  </tr>
+  #foreach ( $group in $table )
+  <tr>
+      #set ($rowstyle = "jetdbOdd")
+      <td class="$rowstyle" nowrap width="25%" onclick="select('$group');" onmouseover="rowHover(this)">
+        <div align="center">$group</div>
+      </td>
+   </tr>
+  #end
+</table>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/role-chooser.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/role-chooser.vm?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/role-chooser.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/role-chooser.vm Thu Nov 24 18:24:19 2005
@@ -0,0 +1,69 @@
+#*
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*#
+
+#**
+
+@author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+@version $Id: sites-details.vm,v 1.2 2005/01/04 23:16:54 taylor Exp $
+
+*#
+
+<script language="JavaScript" type="text/javascript">
+    <!--
+    function select(value)
+    {
+        var openerForm = opener.document.forms['securityform'];
+        var openerEl = openerForm.elements['portal.principal'];
+        var openerType = openerForm.elements['principal.type'];        
+        openerEl.value = value;
+        openerType.value = 'role';
+        window.close();
+    }
+	function rowHover(row)
+	{
+	    row.oldClassName = row.className;
+	    row.className = 'jetdbLight';
+	    row.onmouseout = function()
+	    {
+	        this.className = this.oldClassName;
+	    }
+	}    
+    //-->
+</script>
+
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+  <tr>
+    #foreach ($column in $title)
+	  #set ($columnLink = $renderResponse.createRenderURL())
+	  $columnLink.setParameter("js_dbcolumn",$column)
+##      <td align='center' class="jetdbHeadNoLink" width="40%" nowrap onClick="window.location.href='$columnLink'">
+      <td align='center' class="jetdbHeadNoLink" width="40%" nowrap>
+        $column
+      </td>
+    #end
+  </tr>
+  #foreach ( $role in $table )
+  <tr>
+      #set ($rowstyle = "jetdbOdd")
+      <td class="$rowstyle" nowrap width="25%" onclick="select('$role');" onmouseover="rowHover(this)">
+        <div align="center">$role</div>
+      </td>
+   </tr>
+  #end
+</table>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-browser.jsp
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-browser.jsp?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-browser.jsp (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-browser.jsp Thu Nov 24 18:24:19 2005
@@ -0,0 +1,90 @@
+<%--
+Copyright 2004 The Apache Software Foundation
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+    http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+--%>
+<%@ page language="java" import="javax.portlet.*, java.util.List, java.util.Iterator, org.apache.jetspeed.om.common.portlet.MutablePortletApplication" session="true" %>
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
+<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
+<%@ taglib uri="/WEB-INF/jetspeed-tree.tld" prefix="pam" %>
+<portlet:defineObjects/>
+
+<portlet:actionURL var="nodeLink" >
+	<portlet:param name="node" value="${name}" />
+</portlet:actionURL>
+
+<pam:tree tree="j2_tree" images="/j2-admin/images" scope="portlet_request"
+          action="<%= nodeLink %>"
+          style="tree-control"
+          styleSelected="portlet-section-alternate"
+  />
+
+<h3 class="portlet-section-subheader">Add User</h3>
+
+<div class="portlet-section-text">
+
+<portlet:actionURL var="addUser" />
+
+<form action="<c:out value="${addUser}"/>" method="post">
+<input type='hidden' name='browser.action' value='adduser'/>
+<table>
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right">New User Name:&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+      <input type="text" name="jetspeed.user" size="30" value="" class="portlet-form-field-label">
+    </td>
+  </tr>
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right">Password:&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+      <input type="password" name="jetspeed.password" size="30" value="" class="portlet-form-field-label">
+    </td>
+  </tr>
+  
+  <!-- Select Roles -->
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right">Default Role:&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+ 		<select name="jetspeedRoles" class="portlet-form-field-label">		
+			<option value=""/> 		 		
+			<c:forEach var="roleName" items="${jetspeedRoles}">			    
+			    <option value="<c:out value='${roleName}'/>"
+  			    <c:if test="${roleName == 'user'}">selected="true"</c:if>>			    
+				  <c:out value="${roleName}"/>
+			    </option>
+			</c:forEach>
+		</select>      
+    </td>
+  </tr>
+
+  <!-- Select Profiling Rules -->
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right">Profiling Rule:&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+ 		<select name="jetspeedRules" class="portlet-form-field-label">		
+			<option value=""/> 		
+			<c:forEach var="ruleName" items="${jetspeedRules}">
+			    <option value="<c:out value='${ruleName}'/>"
+  			    <c:if test="${ruleName == 'role-fallback'}">selected="true"</c:if>>
+				  <c:out value="${ruleName}"/>
+			    </option>
+			</c:forEach>
+		</select>      
+    </td>
+  </tr>
+  
+</table>
+<br/>
+<input type="submit" value="Add User" class="portlet-form-button"/>
+</form>
+<c:if test="${errorMessage != null}">
+  <li style="color:red"><c:out value="${errorMessage}"/></li>
+</c:if>
+  
\ No newline at end of file

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-browser.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-browser.vm?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-browser.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-browser.vm Thu Nov 24 18:24:19 2005
@@ -0,0 +1,158 @@
+#*
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*#
+
+#**
+
+@author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+@version $Id: user-browser.vm 348264 2005-11-22 22:06:45Z taylor $
+
+*#
+<script language='JavaScript' src='/j2-admin/scripts/jetspeed-security.js'></script>
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+#if ($statusMsg)
+#parse ('/WEB-INF/view/status-include.vm')
+#end
+
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+  <tr>
+     <th width='12'></th>
+    #foreach ($column in $title)      
+      <th align='center' class="portlet-section-header" width="100%" nowrap>
+        $column
+      </th>
+    #end
+  </tr>
+  #foreach ( $user in $table )
+  <tr>
+    #if ($velocityCount % 2 == 0)
+       #set($rowstyle = "portlet-section-body")
+    #else
+       #set($rowstyle = "portlet-section-alternate")
+    #end  
+	#set ($action = $renderResponse.createActionURL())
+	$action.setParameter("user", $user)           
+	   #if ($selected == $user)
+       <td class="$rowstyle" nowrap width='12'>
+         <img src="/j2-admin/images/selected.gif" />
+       </td>	 	
+       #else
+       <td class="$rowstyle" nowrap width='12'>
+         &nbsp;
+       </td>             
+       #end
+	  <td class="$rowstyle" nowrap width="100%">
+	    <div align="center"><a href='$action'>$user</a></div>
+	  </td>
+   </tr>
+  #end
+</table>
+
+<hr/>
+
+<!-- controls -->
+<table width="200" border="0" cellspacing="0" cellpadding="0" align="center">
+  <tr>
+    #if ($prev)
+      <td valign="middle" height="30">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='first' />                    
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('firstarrow')">
+            <input type="hidden" name="start" value="0">
+          </form>
+        </div>
+      </td>  
+      <td valign="middle" height="30">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='prev'/>                    
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('prevarrow')">
+            <input type="hidden" name="start" value="$prev">
+          </form>
+        </div>
+      </td>
+    #end
+    #if ($tableSize > 0)
+      <form action="$renderResponse.createActionURL()" method="post">
+      <td valign="middle" height="30">
+        <div align="center">
+          	<input type='hidden' name='db.browser.action' value='change'/>                    
+            <input type="input" name='start' size='5' value="$start" class="portlet-form-field-label">
+        </div>
+      </td>  
+      <td valign="middle" height="30">
+        <div align="center">
+            <input type="input" readonly size='10' value="$MESSAGES.getString('numsepa') $tableSize" class="portlet-form-field-label">            
+        </div>
+      </td>  
+      <td valign="middle" height="30">
+        <div align="center">
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('go')">            
+        </div>
+      </td>  
+
+      </form>
+
+      
+    #end    
+    #if ($next)
+      <td valign="middle">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='next'/>          
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('nextarrow')">
+            <input type="hidden" name="start" value="$next">
+          </form>
+        </div>
+      </td>
+      <td valign="middle" height="30">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='last'/>                    
+            <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('lastarrow')">
+            <input type="hidden" name="start" value="$tableSize">
+          </form>
+        </div>
+      </td>  
+    #end
+    #if ($tableSize > 0)
+      <td valign="middle">
+        <div align="center">
+          <form action="$renderResponse.createActionURL()" method="post">
+          	<input type='hidden' name='db.browser.action' value='refresh'/>
+            <input class="portlet-form-button" type="submit" name="eventSubmit_doRefresh" value="$MESSAGES.getString('refresh')" />
+          </form>
+        </div>
+      </td>
+    #end
+  </tr>
+</table>
+<form action="$renderResponse.createActionURL()" method="post">
+  	<input type='hidden' name='db.browser.action' value='search'/>                    
+  	<input type='hidden' name='searchColumn' value='1'/>                      	
+    <input class="portlet-form-button" type="submit" value="$MESSAGES.getString('search')">
+	<input type="text" name="searchString" size="30" value="" class="portlet-form-field-label">    
+	<table>
+	<tr>
+    <td nowrap class="portlet-section-alternate" align="right">$MESSAGES.getString('filter')&nbsp;&nbsp;&nbsp;</td>
+    <td>	
+	<input type="checkbox"  #if($filtered == "on") checked=1 #end name="filtered">
+	</td>
+	</tr>
+	</table>
+</form>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-chooser.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-chooser.vm?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-chooser.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-chooser.vm Thu Nov 24 18:24:19 2005
@@ -0,0 +1,69 @@
+#*
+Copyright 2004 The Apache Software Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*#
+
+#**
+
+@author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+@version $Id: sites-details.vm,v 1.2 2005/01/04 23:16:54 taylor Exp $
+
+*#
+
+<script language="JavaScript" type="text/javascript">
+    <!--
+    function select(value)
+    {
+        var openerForm = opener.document.forms['securityform'];
+        var openerEl = openerForm.elements['portal.principal'];
+        var openerType = openerForm.elements['principal.type'];        
+        openerEl.value = value;
+        openerType.value = 'user';
+        window.close();
+    }
+	function rowHover(row)
+	{
+	    row.oldClassName = row.className;
+	    row.className = 'jetdbLight';
+	    row.onmouseout = function()
+	    {
+	        this.className = this.oldClassName;
+	    }
+	}    
+    //-->
+</script>
+
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+  <tr>
+    #foreach ($column in $title)
+	  #set ($columnLink = $renderResponse.createRenderURL())
+	  $columnLink.setParameter("js_dbcolumn",$column)
+##      <td align='center' class="jetdbHeadNoLink" width="40%" nowrap onClick="window.location.href='$columnLink'">
+      <td align='center' class="jetdbHeadNoLink" width="40%" nowrap>
+        $column
+      </td>
+    #end
+  </tr>
+  #foreach ( $user in $table )
+  <tr>
+      #set ($rowstyle = "jetdbOdd")
+      <td class="$rowstyle" nowrap width="25%" onclick="select('$user');" onmouseover="rowHover(this)">
+        <div align="center">$user</div>
+      </td>
+   </tr>
+  #end
+</table>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-details-edit.jsp
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-details-edit.jsp?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-details-edit.jsp (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-details-edit.jsp Thu Nov 24 18:24:19 2005
@@ -0,0 +1,87 @@
+<%--
+Copyright 2004 The Apache Software Foundation
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+    http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+--%>
+<%@ page language="java" session="true" %>
+<%@ page import="org.apache.jetspeed.portlets.security.SecurityResources" %>
+
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
+<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
+
+<fmt:setBundle basename="org.apache.jetspeed.portlets.security.resources.SecurityResources" />
+
+<c:set var="errorMessagesKey"><%=SecurityResources.ERROR_MESSAGES%></c:set>
+<c:set var="errorMessages" value="${requestScope[errorMessagesKey]}"/>
+
+<portlet:defineObjects/>
+<script language="JavaScript">function t(i,f){if(i.checked) f.value='true';else f.value='false';}</script>
+<h3 class="portlet-section-header">User Detail Preferences</h3>
+<c:if test="${errorMessages != null}">
+  <ul>
+    <c:forEach items="${errorMessages}" var="error">
+    <li style="color:red"><c:out value="${error}"/></li>
+    </c:forEach>
+  </ul>
+</c:if>
+<form action="<portlet:actionURL/>" method="post">
+<c:set var="prefs" value="${renderRequest.preferences.map}"/>
+<table border="0" cellspacing="2" cellpadding="3">
+  <c:forEach var="prefName" items="showUserTab,showAttributesTab,showPasswordTab,showPasswordExpiration,showRoleTab,showGroupTab,showProfileTab,showPasswordOnUserTab,showChangePasswordRequiredForAddUser,showRoleForAddUser,showProfileForAddUser,defaultChangePasswordRequired">
+  <tr>
+    <c:set var="prefValue" value='${prefs[prefName][0]}'/>
+    <td class="portlet-section-alternate">
+      <font class="portlet-form-field-label"><fmt:message key="user.details.preference.${prefName}"/></font>
+    </td>
+    <td class="portlet-section-body">
+      <input type="hidden" name="<c:out value="${prefName}"/>" value="<c:out value="${prefValue}"/>"/>
+      <input type="checkbox" <c:if test="${prefValue}">checked</c:if> 
+             onclick="t(this,<c:out value="${prefName}"/>)" class="portlet-form-field-label" />
+    </td>
+  </tr>
+ </c:forEach>
+  <tr>
+    <c:set var="prefName" value="defaultRole"/>
+    <c:set var="prefValue" value='${prefs[prefName][0]}'/>
+    <td class="portlet-section-alternate">
+      <font class="portlet-form-field-label"><fmt:message key="user.details.preference.${prefName}"/></font>
+    </td>
+    <td class="portlet-section-body">
+      <select name="<c:out value="${prefName}"/>" class="portlet-form-field-label">     
+              <option value=""/>                
+              <c:forEach var="item" items="${jetspeedRoles}">
+                <option value="<c:out value='${item}'/>" <c:if test="${item == prefValue}">selected="true"</c:if>>
+                    <c:out value="${item}"/>
+                </option>
+              </c:forEach>
+          </select>      
+    </td>
+  </tr>
+  <tr>
+    <c:set var="prefName" value="defaultProfile"/>
+    <c:set var="prefValue" value='${prefs[prefName][0]}'/>
+    <td class="portlet-section-alternate">
+      <font class="portlet-form-field-label"><fmt:message key="user.details.preference.${prefName}"/></font>
+    </td>
+    <td class="portlet-section-body">
+      <select name="<c:out value="${prefName}"/>" class="portlet-form-field-label">     
+              <option value=""/>                
+              <c:forEach var="item" items="${jetspeedRules}">
+                <option value="<c:out value='${item}'/>" <c:if test="${item == prefValue}">selected="true"</c:if>>
+                    <c:out value="${item}"/>
+                </option>
+              </c:forEach>
+          </select>      
+    </td>
+  </tr>
+</table>
+<input type="submit" value="<fmt:message key="user.details.save.preferences"/>" class="portlet-form-button" />
+</form>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-details.jsp
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-details.jsp?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-details.jsp (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/security/users/user-details.jsp Thu Nov 24 18:24:19 2005
@@ -0,0 +1,693 @@
+<%--
+Copyright 2004 The Apache Software Foundation
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+    http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+--%>
+<%@ page language="java" session="true" %>
+<%@ page import="javax.portlet.*" %>
+<%@ page import="java.util.*" %>
+<%@ page import="org.apache.portals.bridges.beans.TabBean" %>
+<%@ page import="org.apache.jetspeed.portlets.security.users.UserDetailsPortlet" %>
+<%@ page import="org.apache.jetspeed.portlets.security.SecurityResources" %>
+<%@ page import="org.apache.jetspeed.portlets.security.users.JetspeedUserBean" %>
+<%@ page import="org.apache.jetspeed.om.common.preference.*" %>
+<%@ page import="org.apache.jetspeed.om.common.*" %>
+
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
+<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
+
+<fmt:setBundle basename="org.apache.jetspeed.portlets.security.resources.SecurityResources" />
+
+<c:set var="errorMessagesKey"><%=SecurityResources.ERROR_MESSAGES%></c:set>
+<c:set var="errorMessages" value="${requestScope[errorMessagesKey]}"/>
+
+<portlet:defineObjects/>
+
+<c:set var="user" value="${requestScope.user}" />
+<c:set var="prefs" value="${renderRequest.preferences.map}"/>
+
+<%--Beginning of User check --%>
+<c:if test="${user != null}">
+
+<c:set var="tabs" value="${requestScope.tabs}"/>
+<c:set var="selectedTab" value="${requestScope.selected_tab}"/>
+
+<br/>
+<div class='portlet-section-header'>
+<fmt:message key="user.principal.name"/> :
+<span style='font-size:11pt; text-transform:uppercase'>
+<c:out value="${user.principal}"/>
+</span>
+</div>
+<br/>
+
+<div id="tabs">
+	<c:set var="tab_items" value="${tabs}"/>
+	<c:set var="currentTab" value="${selectedTab}"/>
+	<c:set var="url_param_name" value="selected_tab"/>
+	<%@ include file="/WEB-INF/view/tabs.jsp"%>
+</div>
+
+<%--Beginning of User tab data--%>
+<%--TODO:  switch to c:choose --%>
+<c:if test="${currentTab.id == 'user'}">
+  <div id="user">	
+  <portlet:actionURL var="edit_user_link" />
+  
+  <c:if test="${errorMessages != null}">
+    <ul>
+    <c:forEach items="${errorMessages}" var="error">
+      <li style="color:red"><c:out value="${error}"/></li>
+    </c:forEach>
+    </ul>
+  </c:if>
+
+	<form name="Edit_UserAttr_Form" action="<c:out value="${edit_user_link}"/>" method="post">
+		<input type="hidden" name="portlet_action" value="security_user.edit_user"/>
+
+    <table>
+		
+		<c:if test="${not empty requestScope.paUserAttributes}">
+      <c:set var="canUpdate" value="true"/>
+			<tr>
+				<th class="portlet-section-header" colspan="2"><fmt:message key="user.attributes.header"/></th>
+				<td colspan="2"></td>
+			</tr>
+	  </c:if>
+    <c:forEach var="attr" items="${requestScope.paUserAttributes}">
+			<tr>
+				<td class="portlet-section-alternate">
+          <c:out value="${attr.description}"/>
+				</td>
+				<td class="portlet-section-body">
+				  <c:set var="attrName" value="${attr.name}"/>
+					<input type="text" name="<c:out value="attr_${attr.name}"/>" value="<c:out value="${user.attributes[attrName]}"/>" class="portlet-form-field-label"/>
+				</td>
+				<td colspan="2"></td>
+			</tr>
+    </c:forEach>
+
+    <c:if test='${prefs["showPasswordOnUserTab"][0]}'>
+      <c:if test="${canUpdate}">
+        <tr><td colspan="4">&nbsp;</td></tr>
+      </c:if>
+      <c:set var="canUpdate" value="true"/>
+			<tr>
+				<th class="portlet-section-header" colspan="4"><fmt:message key="user.password.header"/></th>
+			</tr>
+      <tr>
+        <td class="portlet-section-alternate" >
+          <fmt:message key="security.credential.value"/>
+        </td>
+        <td class="portlet-section-body" >
+          <input type="password" name="user_cred_value" value="" class="portlet-form-field-label"/>
+        </td>
+        <td>
+          &nbsp;
+        </td>
+        <td class="portlet-section-body" >
+          <input type="hidden" name="user_cred_updreq" value="<c:out value="${credential.updateRequired}"/>"/>
+          <input type="checkbox" 
+                 <c:if test="${credential.updateRequired}">checked</c:if>
+                 onclick="if(this.checked) user_cred_updreq.value='true';else user_cred_updreq.value='false';"
+           class="portlet-form-field-label" />
+          <fmt:message key="security.credential.update.required"/>
+        </td>
+      </tr>
+      <tr>
+        <td class="portlet-section-alternate" >
+          <fmt:message key="security.credential.last.logon"/>
+        </td>
+        <td class="portlet-section-body" >
+          <fmt:formatDate value="${credential.lastAuthenticationDate}" type="both" dateStyle="long" timeStyle="long"/>
+        </td>
+        <td>
+          &nbsp;
+        </td>
+        <td class="portlet-section-body" >
+          <input type="hidden" name="user_cred_enabled" value="<c:out value="${credential.enabled}"/>"/>
+          <input type="checkbox" 
+                 <c:if test="${credential.enabled}">checked</c:if>
+                 onclick="if(this.checked) user_cred_enabled.value='true';else user_cred_enabled.value='false';"
+           class="portlet-form-field-label" />
+          <fmt:message key="security.enabled"/>
+        </td>
+      </tr>
+      <c:if test='${prefs["showPasswordExpiration"][0]}'>
+      <tr>
+        <td class="portlet-section-alternate" >
+          <fmt:message key="security.credential.expires"/>
+        </td>
+        <td class="portlet-section-body" nowrap>
+          <fmt:formatDate value="${credential.expirationDate}" type="both" dateStyle="long" timeStyle="long"/>
+        </td>
+        <td>
+          &nbsp;
+        </td>
+        <td class="portlet-section-body">
+          <table cellpadding="0" cellspacing="0">
+            <tr>
+              <td>
+              <c:if test="${!credential.expired}">
+                <input type="radio" name="user_expired_flag" value="active" checked>
+                <fmt:message key="security.active"/>
+                &nbsp;
+              </c:if>
+              </td>
+              <td>
+                <input type="radio" name="user_expired_flag" value="expired" <c:if test="${credential.expired}">checked</c:if>>
+                <fmt:message key="security.expired"/>
+                &nbsp;
+              </td>
+              <td>
+                <input type="radio" name="user_expired_flag" value="extend">
+                <fmt:message key="security.Extend"/>
+                &nbsp;
+              </td>
+              <td>
+                <input type="radio" name="user_expired_flag" value="unlimited">
+                <fmt:message key="security.Extend.Unlimited"/>
+              </td>
+            </tr>
+          </table>
+        </td>        
+      </tr>
+      </c:if>
+    </c:if>		
+    </table>
+    <c:if test="${canUpdate}">
+      <br/>
+      <input type="submit" value="<fmt:message key="security.update"/>" class="portlet-form-button" />
+    </c:if>
+  </form>
+    
+  </div>  
+</c:if>
+<%--End of User tab data--%>
+
+<%--Beginning of User Attributes tab data--%>
+<%--TODO:  switch to c:choose --%>
+<c:if test="${currentTab.id == 'user_attributes'}">
+  <div id="attributes">	
+  <portlet:actionURL var="edit_user_attr_link" />
+  
+  <c:if test="${errorMessages != null}">
+    <ul>
+    <c:forEach items="${errorMessages}" var="error">
+      <li style="color:red"><c:out value="${error}"/></li>
+    </c:forEach>
+    </ul>
+  </c:if>
+
+	<form name="Edit_UserAttr_Form" action="<c:out value="${edit_user_attr_link}"/>" method="post">
+		<input type="hidden" name="portlet_action" value="security_user.edit_user_attribute"/>
+		
+		<table>
+			<tr>
+				<th class="portlet-section-header" >&nbsp;</th>
+				<th class="portlet-section-header" ><fmt:message key="security.name"/></th>
+				<th class="portlet-section-header" ><fmt:message key="security.value"/></th>
+			</tr>
+		<c:forEach var="entry" items="${user.attributes}">
+			<tr>
+			<%--<input type="hidden" name="user_attr_name" value="<c:out value="${userAttr.name}"/>"/>--%>
+			
+				<td class="portlet-section-body" >
+					<input type="checkbox" name="user_attr_id" value="<c:out value="${entry.key}"/>"/>
+				</td>
+				<td class="portlet-section-body" >
+					<c:out value="${entry.key}"/>
+				</td>
+				<td class="portlet-section-body" >
+					<input type="text" name="<c:out value="${entry.key}"/>:value" value="<c:out value="${entry.value}"/>"/>
+				</td>
+			</tr>
+		</c:forEach>
+		</table>
+		<input type="submit" value="<fmt:message key="security.update"/>" onClick="this.form.portlet_action.value = 'security_user.update_user_attribute'" class="portlet-form-button" />
+		<input type="submit" value="<fmt:message key="security.remove"/>" onClick="this.form.portlet_action.value = 'security_user.remove_user_attribute'" class="portlet-form-button" />
+	</form>
+	<form name="Add_UserAttr_Form" action="<c:out value="${edit_user_attr_link}"/>" method="post">
+		<input type="hidden" name="portlet_action" value="security_user.add_user_attribute"/>
+		
+		<table>
+			<tr>
+				<td class="portlet-section-alternate" >
+					<fmt:message key="security.name"/>
+				</td>
+				<td class="portlet-section-body" >
+					<input type="text" name="user_attr_name" value=""/>
+				</td>
+			</tr>
+			<tr>
+				<td class="portlet-section-alternate" >
+					<fmt:message key="security.value"/>
+				</td>
+				<td class="portlet-section-body" >
+					<input type="text" name="user_attr_value" value=""/>
+				</td>
+			</tr>
+		</table>
+		<input type="submit" value="<fmt:message key="security.add"/>" class="portlet-form-button" />
+	</form>
+  </div>	
+</c:if>
+<%--End of User Attributes tab data--%>
+
+<%--Beginning Security Credential tab data--%>
+<%--TODO:  switch to c:choose --%>
+<c:if test="${selectedTab.id == 'user_credential'}">
+  <div id="Credential">
+  <portlet:actionURL var="edit_credential_link" />
+  
+  <c:if test="${errorMessages != null}">
+    <ul>
+    <c:forEach items="${errorMessages}" var="error">
+      <li style="color:red"><c:out value="${error}"/></li>
+    </c:forEach>
+    </ul>
+  </c:if>
+
+  <form name="Edit_Credential_Form" action="<c:out value="${edit_credential_link}"/>" method="post">
+    <input type="hidden" name="portlet_action" value="security_user.update_user_credential"/>    
+    <table>
+      <tr>
+        <td class="portlet-section-alternate" >
+          <fmt:message key="security.credential.value"/>
+        </td>
+        <td class="portlet-section-body" >
+          <input type="password" name="user_cred_value" value=""/>
+        </td>
+        <td>
+          &nbsp;
+        </td>
+        <td class="portlet-section-body" >
+          <input type="hidden" name="user_cred_updreq" value="<c:out value="${credential.updateRequired}"/>"/>
+          <input type="checkbox" 
+                 <c:if test="${credential.updateRequired}">checked</c:if>
+                 onclick="if(this.checked) user_cred_updreq.value='true';else user_cred_updreq.value='false';"
+           class="portlet-form-field-label" />
+          <fmt:message key="security.credential.update.required"/>
+        </td>
+      </tr>
+      <tr>
+        <td class="portlet-section-alternate" >
+          <fmt:message key="security.credential.last.logon"/>
+        </td>
+        <td class="portlet-section-body" >
+          <fmt:formatDate value="${credential.lastAuthenticationDate}" type="both" dateStyle="long" timeStyle="long"/>
+        </td>
+        <td>
+          &nbsp;
+        </td>
+        <td class="portlet-section-body" >
+          <input type="hidden" name="user_cred_enabled" value="<c:out value="${credential.enabled}"/>"/>
+          <input type="checkbox" 
+                 <c:if test="${credential.enabled}">checked</c:if>
+                 onclick="if(this.checked) user_cred_enabled.value='true';else user_cred_enabled.value='false';"
+           class="portlet-form-field-label" />
+          <fmt:message key="security.enabled"/>
+        </td>
+      </tr>
+      <c:if test='${prefs["showPasswordExpiration"][0]}'>      
+      <tr>
+        <td class="portlet-section-alternate" >
+          <fmt:message key="security.credential.expires"/>
+        </td>
+        <td class="portlet-section-body" >
+          <fmt:formatDate value="${credential.expirationDate}" type="both" dateStyle="long" timeStyle="long"/>
+        </td>
+        <td>
+          &nbsp;
+        </td>
+        <td class="portlet-section-body" >
+          <table cellpadding="0" cellspacing="0">
+            <tr>
+              <td>
+              <c:if test="${!credential.expired}">
+                <input type="radio" name="user_expired_flag" value="active" checked>
+                <fmt:message key="security.active"/>
+                &nbsp;
+              </c:if>
+              </td>
+              <td>
+                <input type="radio" name="user_expired_flag" value="expired" <c:if test="${credential.expired}">checked</c:if>>
+                <fmt:message key="security.expired"/>
+                &nbsp;
+              </td>
+              <td>
+                <input type="radio" name="user_expired_flag" value="extend">
+                <fmt:message key="security.Extend"/>
+                &nbsp;
+              </td>
+              <td>
+                <input type="radio" name="user_expired_flag" value="unlimited">
+                <fmt:message key="security.Extend.Unlimited"/>
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      </c:if>
+    </table>
+    <input type="submit" value="<fmt:message key="security.update"/>" class="portlet-form-button" />
+  </form>
+    
+  </div>  
+</c:if>
+<%--End of Security Credential tab data--%>
+
+<%--Beginning Security Role tab data--%>
+<%--TODO:  switch to c:choose --%>
+<c:if test="${selectedTab.id == 'user_role'}">
+  <div id="Role">
+  <portlet:actionURL var="edit_role_link" />
+  
+  <c:if test="${errorMessages != null}">
+    <ul>
+    <c:forEach items="${errorMessages}" var="error">
+      <li style="color:red"><c:out value="${error}"/></li>
+    </c:forEach>
+    </ul>
+  </c:if>
+
+	<form name="Edit_Role_Form" action="<c:out value="${edit_role_link}"/>" method="post">
+		<input type="hidden" name="portlet_action" value="security_user.edit_role"/>		
+		<table>
+			<tr>
+				<th class="portlet-section-header" >&nbsp;</th>
+				<th class="portlet-section-header" ><fmt:message key="security.rolename"/></th>
+			</tr>
+		<c:forEach var="role" items="${roles}">
+			<tr>			
+				<td class="portlet-section-body" >
+					<input type="checkbox" name="user_role_id" value="<c:out value="${role.principal.name}"/>"/>
+				</td>
+				<td class="portlet-section-body" >
+					<c:out value="${role.principal.name}"/>
+				</td>
+			</tr>
+		</c:forEach>
+		</table>
+		<input type="submit" value="<fmt:message key="security.remove"/>" onClick="this.form.portlet_action.value = 'security_user.remove_user_role'" class="portlet-form-button" />
+    </form>
+    <c:if test="${not empty jetspeedRoles}">
+  	  <form name="Add_Role_Form" action="<c:out value="${edit_role_link}"/>" method="post">
+		<input type="hidden" name="portlet_action" value="security_user.add_user_role"/>
+		
+		<table>
+			<tr>
+				<td class="portlet-section-alternate" >
+					<fmt:message key="security.rolename"/>
+				</td>
+			    <td class="portlet-section-body" align="left">
+			 		<select name="role_name" class="portlet-form-field-label">		
+						<c:forEach var="roleName" items="${jetspeedRoles}">			    
+						    <option value="<c:out value='${roleName}'/>">
+							  <c:out value="${roleName}"/>						    
+						    </option>
+						</c:forEach>
+					</select>      
+			    </td>				
+			</tr>
+		</table>
+		<input type="submit" value="<fmt:message key="security.add"/>" class="portlet-form-button" />
+	  </form>
+    </c:if>
+  </div>  
+</c:if>
+<%--End of Security Role tab data--%>
+
+<%--Beginning Security Group tab data--%>
+<%--TODO:  switch to c:choose --%>
+<c:if test="${selectedTab.id == 'user_group'}">
+  <div id="Group">
+  <portlet:actionURL var="edit_group_link" />
+  
+  <c:if test="${errorMessages != null}">
+    <ul>
+    <c:forEach items="${errorMessages}" var="error">
+      <li style="color:red"><c:out value="${error}"/></li>
+    </c:forEach>
+    </ul>
+  </c:if>
+
+	<form name="Edit_Group_Form" action="<c:out value="${edit_group_link}"/>" method="post">
+		<input type="hidden" name="portlet_action" value="security_user.edit_group"/>		
+		<table>
+			<tr>
+				<th class="portlet-section-header" >&nbsp;</th>
+				<th class="portlet-section-header" ><fmt:message key="security.groupname"/></th>
+			</tr>
+		<c:forEach var="group" items="${groups}">
+			<tr>			
+				<td class="portlet-section-body" >
+					<input type="checkbox" name="user_group_id" value="<c:out value="${group.principal.name}"/>"/>
+				</td>
+				<td class="portlet-section-body" >
+					<c:out value="${group.principal.name}"/>
+				</td>				
+			</tr>
+		</c:forEach>
+		</table>
+		<input type="submit" value="<fmt:message key="security.remove"/>" onClick="this.form.portlet_action.value = 'security_user.remove_user_group'" class="portlet-form-button" />
+    </form>
+    <c:if test="${not empty jetspeedGroups}">
+	  <form name="Add_Group_Form" action="<c:out value="${edit_group_link}"/>" method="post">
+		<input type="hidden" name="portlet_action" value="security_user.add_user_group"/>
+		
+		<table>
+			<tr>
+				<td class="portlet-section-alternate" >
+					<fmt:message key="security.groupname"/>
+				</td>
+			    <td class="portlet-section-body" align="left">
+			 		<select name="group_name" class="portlet-form-field-label">		
+						<c:forEach var="groupName" items="${jetspeedGroups}">			    
+						    <option value="<c:out value='${groupName}'/>">
+							  <c:out value="${groupName}"/>						    
+						    </option>
+						</c:forEach>
+					</select>      
+			    </td>								
+			</tr>
+		</table>
+		<input type="submit" value="<fmt:message key="security.add"/>" class="portlet-form-button" />
+	  </form>
+    </c:if>
+  </div>  
+</c:if>
+<%--End of Security Group tab data--%>
+
+
+<%--Beginning Profile tab data--%>
+<%--TODO:  switch to c:choose --%>
+<c:if test="${selectedTab.id == 'user_profile'}">
+  <div id="Profile">	
+  <portlet:actionURL var="edit_profile_link" />
+  
+  <c:if test="${errorMessages != null}">
+    <ul>
+    <c:forEach items="${errorMessages}" var="error">
+      <li style="color:red"><c:out value="${error}"/></li>
+    </c:forEach>
+    </ul>
+  </c:if>
+
+	<form name="Edit_Profile_Form" action="<c:out value="${edit_profile_link}"/>" method="post">
+		<input type="hidden" name="portlet_action" value="security_user.remove_user_rule"/>		
+		<table>
+			<tr>
+				<th class="portlet-section-header" >&nbsp;</th>
+				<th class="portlet-section-header" ><fmt:message key="security.name"/></th>
+				<th class="portlet-section-header" ><fmt:message key="security.rule"/></th>
+			</tr>
+		<c:forEach var="rule" items="${rules}">
+			<tr>			
+				<td class="portlet-section-body" >
+					<input type="checkbox" name="user_profile_id" value="<c:out value="${rule.locatorName}"/>"/>
+				</td>
+				<td class="portlet-section-body" >
+					<c:out value="${rule.locatorName}"/>
+				</td>
+				<td class="portlet-section-body" >
+					<c:out value="${rule.profilingRule}"/>
+				</td>
+			</tr>
+		</c:forEach>
+		</table>
+		<input type="submit" value="<fmt:message key="security.remove"/>" onClick="this.form.portlet_action.value = 'security_user.remove_user_rule'" class="portlet-form-button" />
+	</form>
+	<form name="Add_Profile_Form" action="<c:out value="${edit_profile_link}"/>" method="post">
+		<input type="hidden" name="portlet_action" value="security_user.add_rule"/>
+		
+		<table>
+			<tr>
+				<td class="portlet-section-alternate" >
+					<fmt:message key="security.name"/>
+				</td>
+				<td class="portlet-section-body" >
+					<input type="text" name="locator_name" value=""/>
+					<fmt:message key="security.common.locator.names"/>
+				</td>
+			</tr>
+			<tr>
+				<td class="portlet-section-alternate" >
+					<fmt:message key="security.rule"/>
+				</td>
+				<td class="portlet-section-body" >
+					<select name="select_rule" class="portlet-form-field-label">								
+						<c:forEach var="prule" items="${prules}">						    						    
+						    <option value="<c:out value="${prule.id}"/>">
+							  <c:out value="${prule.id}"/>
+						    </option>
+						</c:forEach>
+					</select>
+				</td>
+			</tr>
+		</table>
+		<input type="submit" value="<fmt:message key="security.add"/>" class="portlet-form-button" />
+	</form>
+  </div>	
+</c:if>
+<%--End of Profile tab data--%>
+
+<table>
+<tr>
+<td>
+<portlet:actionURL var="addUser" />
+<form action="<c:out value="${addUser}"/>" method="post">
+<input type="hidden" name="portlet_action" value="add.new.user"/>
+<input type="submit" value="<fmt:message key="security.add.new.user"/>" class="portlet-form-button"/>
+</form>
+</td>
+<td>
+<portlet:actionURL var="removeUser" />
+<form action="<c:out value="${removeUser}"/>" method="post">
+<input type="hidden" name="portlet_action" value="remove.user"/>
+<input type="submit" value="<fmt:message key="security.remove.user"/>" class="portlet-form-button"/>
+</form>
+</td>
+</tr>
+</table>
+<%--End of User check --%>
+</c:if>
+
+<%-- Add New User --%>
+<c:if test="${user == null}">
+<script language="JavaScript">function t(i,f){if(i.checked) f.value='true';else f.value='false';}</script>
+
+<h3 class="portlet-section-header"><fmt:message key="security.add.user"/></h3>
+
+  <c:if test="${errorMessages != null}">
+    <ul>
+    <c:forEach items="${errorMessages}" var="error">
+      <li style="color:red"><c:out value="${error}"/></li>
+    </c:forEach>
+    </ul>
+  </c:if>
+
+<div class="portlet-section-text">
+<portlet:actionURL var="addUser" />
+<form action="<c:out value="${addUser}"/>" method="post">
+<input type='hidden' name='portlet_action' value='add.user'/>
+<table>
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right"><fmt:message key="security.new.user.name"/>&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+      <input type="text" name="jetspeed.user" size="30" value="" class="portlet-form-field-label">
+    </td>
+  </tr>
+  <tr colspan="2" align="right">
+    <td nowrap class="portlet-section-alternate" align="right"><fmt:message key="security.password"/>&nbsp;</td>
+    <td class="portlet-section-body" align="left">
+      <input type="password" name="jetspeed.password" size="30" value="" class="portlet-form-field-label">
+    </td>
+  </tr>
+  
+  <c:set var="defaultRole" value='${prefs["defaultRole"][0]}'/>
+  <c:set var="defaultProfile" value='${prefs["defaultProfile"][0]}'/>
+  
+  <c:set var="prefName" value="showChangePasswordRequiredForAddUser"/>
+  <c:set var="prefValue" value='${prefs[prefName][0]}'/>
+  <c:choose>
+    <c:when test='${prefs[prefName][0]}'>
+      <tr colspan="2" align="right">
+        <td nowrap class="portlet-section-alternate" align="right"><fmt:message key="security.change.password.on.first.login"/>&nbsp;</td>
+        <td class="portlet-section-body" align="left">
+          <c:set var="prefName" value="defaultChangePasswordRequired"/>
+          <c:set var="prefValue" value='${prefs[prefName][0]}'/>
+          <input type="hidden" name="user_cred_updreq" value="<c:out value="${prefValue}"/>"/>
+          <input type="checkbox" <c:if test="${prefValue}">checked</c:if> 
+             onclick="t(this,user_cred_updreq)" class="portlet-form-field-label" />
+        </td>
+      </tr>
+    </c:when>
+    <c:otherwise>
+      <input type="hidden" name="jetspeedRoles" value="<c:out value="${defaultRole}"/>">
+    </c:otherwise>
+  </c:choose>
+
+  <c:choose>
+    <c:when test='${prefs["showRoleForAddUser"][0]}'>
+      <!-- Select Roles -->
+      <tr colspan="2" align="right">
+        <td nowrap class="portlet-section-alternate" align="right"><fmt:message key="security.default.role"/>&nbsp;</td>
+        <td class="portlet-section-body" align="left">
+     		<select name="jetspeedRoles" class="portlet-form-field-label">		
+    			<option value=""/> 		 		
+    			<c:forEach var="roleName" items="${jetspeedRoles}">			    
+    			    <option value="<c:out value='${roleName}'/>"
+      			    <c:if test="${roleName == defaultRole}">selected="true"</c:if>>			    
+    				  <c:out value="${roleName}"/>
+    			    </option>
+    			</c:forEach>
+    		</select>      
+        </td>
+      </tr>
+    </c:when>
+    <c:otherwise>
+      <input type="hidden" name="jetspeedRoles" value="<c:out value="${defaultRole}"/>">
+    </c:otherwise>
+  </c:choose>
+
+  <c:choose>
+    <c:when test='${prefs["showProfileForAddUser"][0]}'>
+      <!-- Select Profiling Rules -->
+      <tr colspan="2" align="right">
+        <td nowrap class="portlet-section-alternate" align="right"><fmt:message key="security.profiling.rule"/>&nbsp;</td>
+        <td class="portlet-section-body" align="left">
+     		<select name="jetspeedRules" class="portlet-form-field-label">		
+    			<option value=""/> 		
+    			<c:forEach var="ruleName" items="${jetspeedRules}">
+    			    <option value="<c:out value='${ruleName}'/>"
+      			    <c:if test="${ruleName == defaultProfile}">selected="true"</c:if>>
+    				  <c:out value="${ruleName}"/>
+    			    </option>
+    			</c:forEach>
+    		</select>      
+        </td>
+      </tr>
+    </c:when>
+    <c:otherwise>
+      <input type="hidden" name="jetspeedRules" value="<c:out value="${defaultProfile}"/>">
+    </c:otherwise>
+  </c:choose>
+  
+</table>
+<br/>
+<input type="submit" value="<fmt:message key="security.add.user.submit"/>" class="portlet-form-button"/>
+</form>
+<c:if test="${errorMessage != null}">
+  <li style="color:red"><c:out value="${errorMessage}"/></li>
+</c:if>
+
+</c:if>



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org