morciuch 2002/10/11 13:07:17
Modified: docs/site changes.html
src/java/org/apache/jetspeed/modules/actions/portlets
PsmlBrowseAction.java
src/java/org/apache/jetspeed/modules/actions/portlets/security
UserBrowserAction.java
webapp/WEB-INF/templates/vm/portlets/html browser-psml.vm
user-browser.vm
xdocs changes.xml
Log:
Addes simple filtering:
1. User Browser - on username and last name, case sensitive, partial searches
supported
2. Psml Browser - on user, role, and group, exact searches only
This should be useful for installations with a lot of users.
Revision Changes Path
1.61 +3 -0 jakarta-jetspeed/docs/site/changes.html
Index: changes.html
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/docs/site/changes.html,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- changes.html 8 Oct 2002 15:09:02 -0000 1.60
+++ changes.html 11 Oct 2002 20:07:16 -0000 1.61
@@ -129,6 +129,9 @@
</li>
-->
<li>
+ Add - 2002/11/08 - Added simple filtering in User Browser and Psml Browser (MO)
+</li>
+<li>
Add - 2002/10/08 - Added optional functionality to override settings in default
property files (MO)
</li>
<li>
1.8 +62 -7
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/PsmlBrowseAction.java
Index: PsmlBrowseAction.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/PsmlBrowseAction.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- PsmlBrowseAction.java 19 Sep 2002 01:24:13 -0000 1.7
+++ PsmlBrowseAction.java 11 Oct 2002 20:07:17 -0000 1.8
@@ -62,6 +62,7 @@
import org.apache.jetspeed.services.Profiler;
import org.apache.jetspeed.util.PortletConfigState;
import org.apache.jetspeed.util.PortletSessionState;
+import org.apache.jetspeed.services.JetspeedSecurity;
// Turbine stuff
import org.apache.turbine.util.Log;
@@ -91,6 +92,22 @@
protected static final String PAGE_SIZE = "page-size";
protected static final String CUSTOMIZE_TEMPLATE = "customize-template";
private static final String PEID = "js_peid";
+
+ /** name of the parameter that holds the filter value */
+ public static final String FILTER_VALUE = "filter_value";
+
+ /** name of the parameter that holds the filter type */
+ public static final String FILTER_TYPE = "filter_type";
+
+ /** value of the filter type parameter for searching by username */
+ public static final String FILTER_TYPE_USER = "filter_type_user";
+
+ /** value of the filter type parameter for searching by role */
+ public static final String FILTER_TYPE_ROLE = "filter_type_role";
+
+ /** value of the filter type parameter for searching by group */
+ public static final String FILTER_TYPE_GROUP = "filter_type_group";
+
/**
* Subclasses should override this method if they wish to
* provide their own customization behavior.
@@ -146,14 +163,52 @@
//if ((windowIterator == null) || refreshFlag)
{
int index = 0;
- Iterator i = Profiler.query(new QueryLocator(QueryLocator.QUERY_ALL));
+
+ // Is filtering requested?
+ QueryLocator ql = null;
+ String filterValue =
rundata.getParameters().getString(this.FILTER_VALUE);
+ if (filterValue != null && !filterValue.trim().equalsIgnoreCase(""))
+ {
+ String filterType =
rundata.getParameters().getString(this.FILTER_TYPE, this.FILTER_TYPE_USER);
+ try
+ {
+ if (filterType.equals(this.FILTER_TYPE_USER))
+ {
+ ql = new QueryLocator(QueryLocator.QUERY_USER);
+ ql.setUser(JetspeedSecurity.getUser(filterValue));
+ }
+ else if (filterType.equals(this.FILTER_TYPE_ROLE))
+ {
+ ql = new QueryLocator(QueryLocator.QUERY_ROLE);
+ ql.setRole(JetspeedSecurity.getRole(filterValue));
+ }
+ else if (filterType.equals(this.FILTER_TYPE_GROUP))
+ {
+ ql = new QueryLocator(QueryLocator.QUERY_GROUP);
+ ql.setGroup(JetspeedSecurity.getGroup(filterValue));
+ }
+ }
+ catch (Exception e)
+ {
+ ql = null;
+ }
+ }
+ else
+ {
+ ql = new QueryLocator(QueryLocator.QUERY_ALL);
+ }
+
ArrayList entries = new ArrayList();
- while (i.hasNext())
+ if (ql != null)
{
- Profile profile = (Profile) i.next();
- //System.out.println("profile["+index+"]="+profile.getPath());
- entries.add(profile);
- index++;
+ Iterator i = Profiler.query(ql);
+ while (i.hasNext())
+ {
+ Profile profile = (Profile) i.next();
+ //System.out.println("profile["+index+"]="+profile.getPath());
+ entries.add(profile);
+ index++;
+ }
}
ArrayList entryType = new ArrayList();
entryType.add("Profile");
1.8 +37 -4
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserBrowserAction.java
Index: UserBrowserAction.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserBrowserAction.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- UserBrowserAction.java 28 Jun 2002 05:37:29 -0000 1.7
+++ UserBrowserAction.java 11 Oct 2002 20:07:17 -0000 1.8
@@ -68,6 +68,7 @@
import org.apache.jetspeed.services.JetspeedSecurity;
import org.apache.jetspeed.services.security.JetspeedSecurityException;
import org.apache.jetspeed.services.resources.JetspeedResources;
+import org.apache.jetspeed.om.security.JetspeedUser;
// jetspeed velocity
import org.apache.jetspeed.modules.actions.portlets.VelocityPortletAction;
@@ -92,6 +93,18 @@
/** name of the parameter that holds the page number to display */
public static final String DISPLAY_PAGE = "ubpage";
+ /** name of the parameter that holds the filter value */
+ public static final String FILTER_VALUE = "filter_value";
+
+ /** name of the parameter that holds the filter type */
+ public static final String FILTER_TYPE = "filter_type";
+
+ /** value of the filter type parameter for searching by username */
+ public static final String FILTER_TYPE_USERNAME = "filter_type_username";
+
+ /** value of the filter type parameter for searching by last name */
+ public static final String FILTER_TYPE_LASTNAME = "filter_type_lastname";
+
/**
* Build the maximized state content for this portlet. (Same as normal state).
*
@@ -138,14 +151,34 @@
//hack to make the static variables visible in template
context.put("s_config", new FieldMethodizer( context.get("config") ) );
+ // Currently, the getUsers(filter) is not implemented - need to do
local filtering
Iterator users = JetspeedSecurity.getUsers();
-
List userList = new ArrayList();
- while (users.hasNext())
+
+ // Is filtering requested?
+ String filterValue =
rundata.getParameters().getString(this.FILTER_VALUE);
+ if (filterValue != null)
{
- userList.add(users.next());
+ String filterType =
rundata.getParameters().getString(this.FILTER_TYPE, this.FILTER_TYPE_USERNAME);
+ while (users.hasNext())
+ {
+ JetspeedUser user = (JetspeedUser) users.next();
+ if (filterType.equals(this.FILTER_TYPE_USERNAME) &&
user.getUserName().startsWith(filterValue))
+ {
+ userList.add(user);
+ } else if (filterType.equals(this.FILTER_TYPE_LASTNAME) &&
user.getLastName().startsWith(filterValue))
+ {
+ userList.add(user);
+ }
+ }
+ } else {
+ while (users.hasNext())
+ {
+ userList.add(users.next());
+ }
}
+
int currentPage = rundata.getParameters().getInt(DISPLAY_PAGE, 1);
1.11 +12 -0
jakarta-jetspeed/webapp/WEB-INF/templates/vm/portlets/html/browser-psml.vm
Index: browser-psml.vm
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/vm/portlets/html/browser-psml.vm,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- browser-psml.vm 4 Sep 2002 16:07:40 -0000 1.10
+++ browser-psml.vm 11 Oct 2002 20:07:17 -0000 1.11
@@ -1,3 +1,15 @@
+#set ( $filter = $data.getRequest().getParameter("filter_value") )
+#set ( $filter_type = $data.getRequest().getParameter("filter_type") )
+
+<form method="post">
+<b>Filter string (exact match):</b> <input type="Text" name="filter_value"
value="$!filter"/>
+<select name="filter_type">
+ <option value="filter_type_user" #if ($filter_type == "filter_type_user")
selected #end>User</option>
+ <option value="filter_type_role" #if ($filter_type == "filter_type_role")
selected #end>Role</option>
+ <option value="filter_type_group" #if ($filter_type == "filter_type_group")
selected #end>Group</option>
+</select>
+<input type="submit" value="Filter"/>
+</form>
<table width=100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td colspan="5"><img src="images/blank.gif" width="20%" height="1"
border="0"></td>
1.6 +13 -5
jakarta-jetspeed/webapp/WEB-INF/templates/vm/portlets/html/user-browser.vm
Index: user-browser.vm
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/vm/portlets/html/user-browser.vm,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- user-browser.vm 14 May 2002 04:46:18 -0000 1.5
+++ user-browser.vm 11 Oct 2002 20:07:17 -0000 1.6
@@ -7,9 +7,17 @@
*#
#set ( $headings = ["Username","First Name", "Last Name", "Email", "Actions"] )
+#set ( $filter = $data.getRequest().getParameter("filter_value") )
+#set ( $filter_type = $data.getRequest().getParameter("filter_type") )
#if ($pagelinks) <p align=right>$pagelinks</p> #end
-
+<form method="post">
+<b>Filter string (case sensitive):</b> <input type="Text" name="filter_value"
value="$!filter"/>
+<select name="filter_type">
+ <option value="filter_type_username" #if ($filter_type == "filter_type_username")
selected #end>User Name</option>
+ <option value="filter_type_lastname" #if ($filter_type == "filter_type_lastname")
selected #end>Last Name</option>
+</select>
+<input type="submit" value="Filter"/>
<table>
<tr>
@@ -23,8 +31,8 @@
#foreach ($user in $users)
<tr
- #if ($user.Disabled) class="UserBrowserUserDisabled" #end
- #if ($user.Confirmed != ${s_config.CONFIRM_VALUE})
class="UserBrowserUserConfirmed" #end
+ #if ($user.Disabled) class="UserBrowserUserDisabled" #end
+ #if ($user.Confirmed != ${s_config.CONFIRM_VALUE})
class="UserBrowserUserConfirmed" #end
>
#entryCell ($!user.UserName)
#entryCell ($!user.FirstName)
@@ -46,7 +54,7 @@
<td>
</tr>
</table>
-
+</form>
#if ($pagelinks) <p align=right>$pagelinks</p> #end
1.79 +4 -1 jakarta-jetspeed/xdocs/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/xdocs/changes.xml,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -r1.78 -r1.79
--- changes.xml 8 Oct 2002 15:09:03 -0000 1.78
+++ changes.xml 11 Oct 2002 20:07:17 -0000 1.79
@@ -23,6 +23,9 @@
</li>
-->
<li>
+ Add - 2002/11/08 - Added simple filtering in User Browser and Psml Browser (MO)
+</li>
+<li>
Add - 2002/10/08 - Added optional functionality to override settings in default
property files (MO)
</li>
<li>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>