Serge, the diff, rdiff and source file attached as a small gzipped tarball.
Added a some checking of user type in the commands that may fail in wrong repository. Noticed that checkuser exploded in list-repositorys. Some other commands also failed, added the checking. -checkuser, checks alaising and fwd'ing -listrepo, list the existing repositories. ... Furthermore I added a "command prompt" containing the current-repository like this: "jakarta-james::list-james>". The modified files are: remotemanager/RemoteHandlerManager.java (new commands) Regards Erik Danielsson >From: "Serge Knystautas" <[EMAIL PROTECTED]> >Reply-To: "James Developers List" <[EMAIL PROTECTED]> >To: "James Developers List" <[EMAIL PROTECTED]> >Subject: Re: RemoteManager modifications that I find usefull. >Date: Sat, 8 Dec 2001 09:21:59 -0500 > >Erik, > >Can you resend this as an attachment (and if possible send both a diff and >the .java files)? Inline is was word-wrapped, which makes it harder to >apply. > >Serge Knystautas >Loki Technologies - Unstoppable Websites >http://www.lokitech.com >----- Original Message ----- >From: "Erik Danielsson" <[EMAIL PROTECTED]> >To: <[EMAIL PROTECTED]> >Sent: Friday, November 16, 2001 9:32 AM >Subject: RemoteManager modifications that I find usefull. > > > > Hello, > > I have made some modifications on the RemoteManager. > > The RemoteManager was a bit short of basic administration commands. > > > > I added: > > -listrepo, lists the repositories that exists. > > -checkuser, checks status of alias and forwarding. > > -unsetforwarding > > > > Furthermore I added a "command prompt" containing the current-repository > > like > > this: "jakarta-james::list-james>". > > The modified files are: > > > > jakarta-james/kava/org/apache/james/ > > > > core/AvalonUsersStore.java (to get the repository names) > > services/UsersStore.java (to get the repository names) > > remotemanager/RemoteHandlerManager.java (new commands) > > > > These small modifications truly made the runtime administration > > a bit less painfull. > > > > //Regards > > Erik Danielsson > > > > The patches: > > > > ---- Begin AvalonUsersStore_patch > > Index: >jakarta-james/src/java/org/apache/james/core/AvalonUsersStore.java > > diff -c > > jakarta-james/src/java/org/apache/james/core/AvalonUsersStore.java:1.3 > > jakarta-james/src/java/org/apache/james/core/AvalonUsersStore.java:1.4 > > *** > > jakarta-james/src/java/org/apache/james/core/AvalonUsersStore.java:1.3 >Thu > > Sep 27 23:12:17 2001 > > --- jakarta-james/src/java/org/apache/james/core/AvalonUsersStore.java >Fri > > Nov 16 13:35:05 2001 > > *************** > > *** 100,103 **** > > --- 100,107 ---- > > } > > return response; > > } > > + > > + public Iterator getRepositoryNames() { > > + return this.repositories.keySet().iterator(); > > + } > > } > > ---- End AvalonUsersStore_patch > > > > > > > > > > ---- Begin UsersStore_patch > > Index: jakarta-james/src/java/org/apache/james/services/UsersStore.java > > diff -c >jakarta-james/src/java/org/apache/james/services/UsersStore.java:1.2 > > jakarta-james/src/java/org/apache/james/services/UsersStore.java:1.3 > > *** jakarta-james/src/java/org/apache/james/services/UsersStore.java:1.2 >Thu > > Sep 6 15:19:32 2001 > > --- jakarta-james/src/java/org/apache/james/services/UsersStore.java Fri >Nov > > 16 13:35:46 2001 > > *************** > > *** 8,14 **** > > package org.apache.james.services; > > > > import org.apache.avalon.phoenix.Service; > > ! > > /** > > * Interface for Phoenix blocks to access a store of Users. A >UserStore > > * contains one or more UserRepositories. Multiple UserRepositories >may >or > > may > > --- 8,14 ---- > > package org.apache.james.services; > > > > import org.apache.avalon.phoenix.Service; > > ! import java.util.Iterator; > > /** > > * Interface for Phoenix blocks to access a store of Users. A >UserStore > > * contains one or more UserRepositories. Multiple UserRepositories >may >or > > may > > *************** > > *** 24,27 **** > > --- 24,29 ---- > > String ROLE = "org.apache.james.services.UsersStore"; > > > > UsersRepository getRepository( String name ); > > + > > + Iterator getRepositoryNames(); > > } > > ---- End UsersStore_patch > > > > > > > > --- Begin RemoteManagerHandler_patch > > Index: > > >jakarta-james/src/java/org/apache/james/remotemanager/RemoteManagerHandler.j >ava > > diff -c > > >jakarta-james/src/java/org/apache/james/remotemanager/RemoteManagerHandler.j >ava:1.2 > > >jakarta-james/src/java/org/apache/james/remotemanager/RemoteManagerHandler.j >ava:1.3 > > *** > > >jakarta-james/src/java/org/apache/james/remotemanager/RemoteManagerHandler.j >ava:1.2 > > Mon > > Jun 11 11:29:27 2001 > > --- > > >jakarta-james/src/java/org/apache/james/remotemanager/RemoteManagerHandler.j >ava > > Tue Sep 11 06:33:21 2001 > > *************** > > *** 31,36 **** > > --- 31,37 ---- > > import org.apache.james.services.UsersRepository; > > import org.apache.james.services.UsersStore; > > import org.apache.mailet.MailAddress; > > + import org.apache.james.userrepository.DefaultUser; > > > > /** > > * Provides a really rude network interface to administer James. > > *************** > > *** 43,50 **** > > * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> > > * @author <a href="mailto:[EMAIL PROTECTED]">Charles >Benett</a> > > * > > ! * Last changed by: $Author: charlesb $ on $Date: 2001/06/11 09:29:27 >$ > > ! * $Revision: 1.2 $ > > * > > */ > > public class RemoteManagerHandler > > --- 44,51 ---- > > * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> > > * @author <a href="mailto:[EMAIL PROTECTED]">Charles >Benett</a> > > * > > ! * Last changed by: $Author: serge $ on $Date: 2001/09/11 04:33:21 $ > > ! * $Revision: 1.3 $ > > * > > */ > > public class RemoteManagerHandler > > *************** > > *** 53,58 **** > > --- 54,60 ---- > > > > private UsersStore usersStore; > > private UsersRepository users; > > + private boolean inLocalUsers = true; > > private TimeScheduler scheduler; > > private MailServer mailServer; > > > > *************** > > *** 137,144 **** > > out.println( "Welcome " + login + ". HELP for a list of > > commands" ); > > getLogger().info("Login for " + login + " succesful"); > > > > ! while (parseCommand(in.readLine())) { > > ! scheduler.resetTrigger(this.toString()); > > } > > getLogger().info("Logout for " + login + "."); > > socket.close(); > > --- 139,152 ---- > > out.println( "Welcome " + login + ". HELP for a list of > > commands" ); > > getLogger().info("Login for " + login + " succesful"); > > > > ! try { > > ! while (parseCommand(in.readLine())) { > > ! scheduler.resetTrigger(this.toString()); > > ! } > > ! } > > ! catch (Throwable thr) { > > ! System.out.println("Exception: " + thr.getMessage()); > > ! thr.printStackTrace(); > > } > > getLogger().info("Logout for " + login + "."); > > socket.close(); > > *************** > > *** 191,206 **** > > out.println("usage: adduser [username] [password]"); > > return true; > > } > > if (users.contains(username)) { > > out.println("user " + username + " already exist"); > > ! } else { > > ! if(mailServer.addUser(username, passwd)) { > > ! out.println("User " + username + " added"); > > ! getLogger().info("User " + username + " added"); > > ! } else { > > ! out.println("Error adding user " + username); > > ! getLogger().info("Error adding user " + username); > > ! } > > } > > out.flush(); > > } else if (command.equalsIgnoreCase("SETPASSWORD")) { > > --- 199,224 ---- > > out.println("usage: adduser [username] [password]"); > > return true; > > } > > + > > + boolean success = false; > > if (users.contains(username)) { > > out.println("user " + username + " already exist"); > > ! } > > ! else if ( inLocalUsers ) { > > ! success = mailServer.addUser(username, passwd); > > ! } > > ! else { > > ! DefaultUser user = new DefaultUser(username, "SHA"); > > ! user.setPassword(passwd); > > ! success = users.addUser(user); > > ! } > > ! if ( success ) { > > ! out.println("User " + username + " added"); > > ! getLogger().info("User " + username + " added"); > > ! } > > ! else { > > ! out.println("Error adding user " + username); > > ! getLogger().info("Error adding user " + username); > > } > > out.flush(); > > } else if (command.equalsIgnoreCase("SETPASSWORD")) { > > *************** > > *** 214,220 **** > > out.println("usage: adduser [username] [password]"); > > return true; > > } > > ! JamesUser user = (JamesUser) users.getUserByName(username); > > if (user == null) { > > out.println("No such user"); > > return true; > > --- 232,238 ---- > > out.println("usage: adduser [username] [password]"); > > return true; > > } > > ! User user = users.getUserByName(username); > > if (user == null) { > > out.println("No such user"); > > return true; > > *************** > > *** 321,331 **** > > return true; > > } > > // Verify user exists > > ! JamesUser user = (JamesUser) users.getUserByName(username); > > ! if (user == null) { > > out.println("No such user"); > > return true; > > } > > // Veriy acceptable email address > > MailAddress forwardAddr; > > try { > > --- 339,354 ---- > > return true; > > } > > // Verify user exists > > ! User baseuser = users.getUserByName(username); > > ! if (baseuser == null) { > > out.println("No such user"); > > return true; > > } > > + else if (! (baseuser instanceof JamesUser ) ) { > > + out.println("Can't set forwarding for this user >type."); > > + return true; > > + } > > + JamesUser user = (JamesUser)baseuser; > > // Veriy acceptable email address > > MailAddress forwardAddr; > > try { > > *************** > > *** 379,384 **** > > --- 402,430 ---- > > } > > out.flush(); > > return true; > > + } else if (command.equalsIgnoreCase("USE")) { > > + if (argument == null || argument.equals("")) { > > + out.println("usage: use [repositoryName]"); > > + return true; > > + } > > + String repositoryName = argument; > > + UsersRepository repos = > > usersStore.getRepository(repositoryName); > > + if ( repos == null ) { > > + out.println("no such repository"); > > + return true; > > + } > > + else { > > + users = repos; > > + out.println("Changed to repository '" + repositoryName >+ > > "'."); > > + if ( repositoryName.equalsIgnoreCase("localusers") ) { > > + inLocalUsers = true; > > + } > > + else { > > + inLocalUsers = false; > > + } > > + return true; > > + } > > + > > } else if (command.equalsIgnoreCase("QUIT")) { > > out.println("bye"); > > return false; > > ---- End RemoteManagerHandler_patch > > > > > > > > _________________________________________________________________ > > Get your FREE download of MSN Explorer at >http://explorer.msn.com/intl.asp > > > > > > -- > > To unsubscribe, e-mail: ><mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: ><mailto:[EMAIL PROTECTED]> > > > > > > >-- >To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> >For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
RemoteManagerHandler.tar.gz
Description: Binary data
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
