You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by se...@apache.org on 2001/09/11 06:33:22 UTC

cvs commit: jakarta-james/src/java/org/apache/james/remotemanager RemoteManagerHandler.java

serge       01/09/10 21:33:22

  Modified:    src/java/org/apache/james/remotemanager
                        RemoteManagerHandler.java
  Log:
  Adding code from userstore branch.
  
  Revision  Changes    Path
  1.3       +61 -15    jakarta-james/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java
  
  Index: RemoteManagerHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-james/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RemoteManagerHandler.java	2001/06/11 09:29:27	1.2
  +++ RemoteManagerHandler.java	2001/09/11 04:33:21	1.3
  @@ -31,6 +31,7 @@
   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,8 +44,8 @@
    * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
    * @author <a href="mailto:charles@benett1.demon.co.uk">Charles Benett</a>
    *
  - * Last changed by: $Author: charlesb $ on $Date: 2001/06/11 09:29:27 $
  - * $Revision: 1.2 $
  + * Last changed by: $Author: serge $ on $Date: 2001/09/11 04:33:21 $
  + * $Revision: 1.3 $
    *
    */
   public class RemoteManagerHandler
  @@ -53,6 +54,7 @@
   
       private UsersStore usersStore;
       private UsersRepository users;
  +    private boolean inLocalUsers = true;
       private TimeScheduler scheduler;
       private MailServer mailServer;
   
  @@ -137,9 +139,15 @@
               out.println( "Welcome " + login + ". HELP for a list of commands" );
               getLogger().info("Login for " + login + " succesful");
   
  -            while (parseCommand(in.readLine())) {
  -                scheduler.resetTrigger(this.toString());
  +            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,17 +199,27 @@
                   out.println("usage: adduser [username] [password]");
                   return true;
               }
  +
  +            boolean success = false;
               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);
  -                }
  +            } 
  +            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")) {
   	    if (argument == null || argument1 == null) {
  @@ -214,7 +232,7 @@
                   out.println("usage: adduser [username] [password]");
                   return true;
   	    }
  -	    JamesUser user = (JamesUser) users.getUserByName(username);
  +	    User user = users.getUserByName(username);
   	    if (user == null) {
   		out.println("No such user");
   		return true;
  @@ -321,11 +339,16 @@
                   return true;
   	    }
   	    // Verify user exists
  -	    JamesUser user = (JamesUser) users.getUserByName(username);
  -	    if (user == null) {
  +	    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,6 +402,29 @@
   	    }
               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;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: james-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: james-dev-help@jakarta.apache.org