From: <dr...@us...> - 2002-11-27 06:21:44
|
Update of /cvsroot/webmacro/wiki/src/org/tcdi/opensource/wiki In directory sc8-pr-cvs1:/tmp/cvs-serv4115/src/org/tcdi/opensource/wiki Modified Files: Wiki.java WikiSystem.java WikiUtil.java Log Message: Basic User Administration features. - list all users - view/edit/delete individual user To get the admin options, make sure you're listed as an admin in Wiki.properties Index: Wiki.java =================================================================== RCS file: /cvsroot/webmacro/wiki/src/org/tcdi/opensource/wiki/Wiki.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Wiki.java 5 Jan 2002 20:17:41 -0000 1.7 --- Wiki.java 27 Nov 2002 06:21:41 -0000 1.8 *************** *** 184,187 **** --- 184,219 ---- } + public Enumeration getUsers () { + return Collections.enumeration(getUserList(null)); + } + + public Enumeration getUsers(String prefix) { + return Collections.enumeration(getUserList(prefix)); + } + + private List getUserList(String match) { + List l = new ArrayList(); + Enumeration enum = getUserNames(); + while (enum.hasMoreElements()) { + String userName = (String) enum.nextElement(); + if (userName == null) + continue; + + WikiUser user = getUser(userName); + if (user == null) + continue; + if(match == null || match.trim().length()== 0 || match.trim().equals("*") || user.getIdentifier().toLowerCase().startsWith(match.toLowerCase())) + l.add (user); + } + Collections.sort(l, new Comparator() { + public int compare(Object o1, Object o2) { + WikiUser a = (WikiUser) o1; + WikiUser b = (WikiUser) o2; + return a.getIdentifier().toLowerCase().compareTo(b.getIdentifier().toLowerCase()); + } + }); + return l; + } + public void deleteUser(String uid) { _userStore.remove(uid); *************** *** 216,220 **** return false; ! return _properties.getProperty("Administrators").indexOf(user.getIdentifier() + ";") > -1; } --- 248,258 ---- return false; ! String[] admins = org.webmacro.servlet.TextTool.split(_properties.getProperty("Administrators"), ";"); ! for (int x=0; x<admins.length; x++) { ! if (admins[x].equals(user.getIdentifier())) ! return true; ! } ! ! return false; } Index: WikiSystem.java =================================================================== RCS file: /cvsroot/webmacro/wiki/src/org/tcdi/opensource/wiki/WikiSystem.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** WikiSystem.java 18 Oct 2001 06:57:17 -0000 1.2 --- WikiSystem.java 27 Nov 2002 06:21:41 -0000 1.3 *************** *** 134,138 **** */ public Enumeration getUserNames(); ! /** * Delete a user from this wiki system --- 134,149 ---- */ public Enumeration getUserNames(); ! ! /** ! * get an enumeration of all users in the system, sorted by their usernames ! */ ! public Enumeration getUsers (); ! ! /** ! * get an enumeration of all users in the system who's username begins with the ! * specified prefix. Use <code>null</code> or <code>*</code> to get all users. ! */ ! public Enumeration getUsers (String prefix); ! /** * Delete a user from this wiki system *************** *** 141,145 **** */ public void deleteUser(String uid); ! /** * Register a new user in this wiki system --- 152,156 ---- */ public void deleteUser(String uid); ! /** * Register a new user in this wiki system Index: WikiUtil.java =================================================================== RCS file: /cvsroot/webmacro/wiki/src/org/tcdi/opensource/wiki/WikiUtil.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** WikiUtil.java 22 Nov 2002 05:37:23 -0000 1.2 --- WikiUtil.java 27 Nov 2002 06:21:41 -0000 1.3 *************** *** 198,200 **** --- 198,210 ---- return chars; } + + /** + * Convernt an <code>Enumeration</code> into a List. + */ + public static final List enumToList (Enumeration enum) { + List l = new ArrayList(); + while (enum.hasMoreElements()) + l.add (enum.nextElement()); + return l; + } } |