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]>

Reply via email to