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

Reply via email to