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 bt...@apache.org on 2019/11/20 07:32:20 UTC

[james-project] 37/41: JAMES-2949 JamesUser is no longer implemented

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 89251a2f685b9b6f885335631b7e1833d5eb63c4
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Nov 18 14:33:32 2019 +0700

    JAMES-2949 JamesUser is no longer implemented
    
    Specific handling, as well as this model, is thus no longer required, after
    removal of JamesUsersRepository & UsersFileRepository
    
    See https://github.com/linagora/james-project/pull/2843
---
 .../user/api/UsersRepositoryManagementMBean.java   | 51 -------------
 .../org/apache/james/user/api/model/JamesUser.java | 88 ----------------------
 .../james/user/lib/UsersRepositoryManagement.java  | 69 -----------------
 .../james/transport/mailets/WhiteListManager.java  | 27 -------
 .../matchers/AbstractSQLWhitelistMatcher.java      | 21 ------
 5 files changed, 256 deletions(-)

diff --git a/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepositoryManagementMBean.java b/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepositoryManagementMBean.java
index 8e262b1..08fc593 100644
--- a/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepositoryManagementMBean.java
+++ b/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepositoryManagementMBean.java
@@ -19,8 +19,6 @@
 
 package org.apache.james.user.api;
 
-import org.apache.james.core.Username;
-
 /**
  * Expose user account management functionality through JMX.
  */
@@ -92,55 +90,6 @@ public interface UsersRepositoryManagementMBean {
     void setPassword(String userName, String password) throws Exception;
 
     /**
-     * Removes a user's alias which terminates local mail forwarding
-     * 
-     * 
-     * @param userName
-     *            The name of the user whose alias is unset
-     * @throws UsersRepositoryException
-     *             if error
-     */
-    @Deprecated
-    void unsetAlias(Username userName) throws Exception;
-
-    /**
-     * Retrieves the user's alias, if set
-     * 
-     * 
-     * @return User's alias, or NULL, if no alias is set
-     * @throws UsersRepositoryException
-     *             if error
-     */
-    @Deprecated
-    String getAlias(Username userName) throws Exception;
-
-    /**
-     * Removes a user's forward email address which terminates remote mail
-     * forwarding
-     * 
-     * 
-     * @param userName
-     *            The name of the user whose forward is unset
-     * @throws UsersRepositoryException
-     *             if error
-     */
-    @Deprecated
-    void unsetForwardAddress(Username userName) throws Exception;
-
-    /**
-     * Retrieves the user's forward, if set
-     * 
-     * 
-     * @param userName
-     *            The name of the user whose forward is set
-     * @return User's forward email address, or NULL, if no forward is set
-     * @throws UsersRepositoryException
-     *             if error
-     */
-    @Deprecated
-    String getForwardAddress(Username userName) throws Exception;
-
-    /**
      * Return true if the UserRepository has VirtualHosting enabled
      * 
      * @return virtual
diff --git a/server/data/data-api/src/main/java/org/apache/james/user/api/model/JamesUser.java b/server/data/data-api/src/main/java/org/apache/james/user/api/model/JamesUser.java
deleted file mode 100644
index 1db501d..0000000
--- a/server/data/data-api/src/main/java/org/apache/james/user/api/model/JamesUser.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.user.api.model;
-
-import org.apache.james.core.MailAddress;
-
-/**
- * Interface for objects representing users of an email/ messaging system.
- * 
- * @deprecated Just use the User interface for Users. Forwarding and Aliasing
- *             should get done via RecipientRewriteTable
- */
-@Deprecated
-public interface JamesUser extends User {
-
-    /**
-     * Indicate if mail for this user should be forwarded to some other mail
-     * server.
-     * 
-     * @param forward
-     *            whether email for this user should be forwarded
-     */
-    void setForwarding(boolean forward);
-
-    /**
-     * Return true if mail for this user should be forwarded
-     */
-    boolean getForwarding();
-
-    /**
-     * <p>
-     * Set destination for forwading mail
-     * </p>
-     * <p>
-     * TODO: Should we use a MailAddress?
-     * </p>
-     * 
-     * @param address
-     *            the forwarding address for this user
-     */
-    boolean setForwardingDestination(MailAddress address);
-
-    /**
-     * Return the destination to which email should be forwarded
-     */
-    MailAddress getForwardingDestination();
-
-    /**
-     * Indicate if mail received for this user should be delivered locally to a
-     * different address.
-     */
-    void setAliasing(boolean alias);
-
-    /**
-     * Return true if emails should be delivered locally to an alias.
-     */
-    boolean getAliasing();
-
-    /**
-     * Set local address to which email should be delivered.
-     * 
-     * @return true if successful
-     */
-    boolean setAlias(String address);
-
-    /**
-     * Get local address to which mail should be delivered.
-     */
-    String getAlias();
-
-}
diff --git a/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java b/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java
index ad5d55a..dded302 100644
--- a/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java
+++ b/server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java
@@ -30,10 +30,8 @@ import org.apache.james.core.Username;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.user.api.UsersRepositoryManagementMBean;
-import org.apache.james.user.api.model.JamesUser;
 import org.apache.james.user.api.model.User;
 
-@SuppressWarnings("deprecation")
 public class UsersRepositoryManagement extends StandardMBean implements UsersRepositoryManagementMBean {
 
     /**
@@ -50,18 +48,6 @@ public class UsersRepositoryManagement extends StandardMBean implements UsersRep
         super(UsersRepositoryManagementMBean.class);
     }
 
-    private JamesUser getJamesUser(Username userName) throws UsersRepositoryException {
-        User baseuser = usersRepository.getUserByName(userName);
-        if (baseuser == null) {
-            throw new IllegalArgumentException("user not found: " + userName.asString());
-        }
-        if (!(baseuser instanceof JamesUser)) {
-            throw new IllegalArgumentException("user is not of type JamesUser: " + userName.asString());
-        }
-
-        return (JamesUser) baseuser;
-    }
-
     @Override
     public void addUser(String rawUsername, String password) throws Exception {
         try {
@@ -135,61 +121,6 @@ public class UsersRepositoryManagement extends StandardMBean implements UsersRep
     }
 
     @Override
-    public void unsetAlias(Username userName) throws Exception {
-        try {
-            JamesUser user = getJamesUser(userName);
-            if (!user.getAliasing()) {
-                throw new UsersRepositoryException("User " + user + " is no alias");
-            }
-            user.setAliasing(false);
-            usersRepository.updateUser(user);
-        } catch (UsersRepositoryException e) {
-            throw new Exception(e.getMessage());
-        }
-    }
-
-    @Override
-    public String getAlias(Username userName) throws Exception {
-        try {
-            JamesUser user = getJamesUser(userName);
-            if (!user.getAliasing()) {
-                return null;
-            }
-            return user.getAlias();
-        } catch (UsersRepositoryException e) {
-            throw new Exception(e.getMessage());
-
-        }
-    }
-
-    @Override
-    public void unsetForwardAddress(Username userName) throws Exception {
-        try {
-            JamesUser user = getJamesUser(userName);
-            if (!user.getForwarding()) {
-                throw new UsersRepositoryException("User " + user + " is no forward");
-            }
-            user.setForwarding(false);
-            usersRepository.updateUser(user);
-        } catch (UsersRepositoryException e) {
-            throw new Exception(e.getMessage());
-        }
-    }
-
-    @Override
-    public String getForwardAddress(Username userName) throws Exception {
-        try {
-            JamesUser user = getJamesUser(userName);
-            if (!user.getForwarding()) {
-                return null;
-            }
-            return user.getForwardingDestination().toString();
-        } catch (UsersRepositoryException e) {
-            throw new Exception(e.getMessage());
-        }
-    }
-
-    @Override
     public boolean getVirtualHostingEnabled() throws Exception {
         try {
             return usersRepository.supportVirtualHosting();
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
index 12c35a0..4e78ea1 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
@@ -48,9 +48,7 @@ import javax.sql.DataSource;
 
 import org.apache.james.core.Domain;
 import org.apache.james.core.MailAddress;
-import org.apache.james.core.Username;
 import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.api.model.JamesUser;
 import org.apache.james.util.sql.JDBCUtil;
 import org.apache.james.util.sql.SqlResources;
 import org.apache.mailet.Experimental;
@@ -296,8 +294,6 @@ public class WhiteListManager extends GenericMailet {
         String senderUser = senderMailAddress.getLocalPart().toLowerCase(Locale.US);
         Domain senderHost = senderMailAddress.getDomain();
 
-        senderUser = getPrimaryName(senderUser);
-
         Connection conn = null;
         PreparedStatement selectStmt = null;
         PreparedStatement insertStmt = null;
@@ -380,8 +376,6 @@ public class WhiteListManager extends GenericMailet {
         String senderUser = senderMailAddress.getLocalPart().toLowerCase(Locale.US);
         Domain senderHost = senderMailAddress.getDomain();
 
-        senderUser = getPrimaryName(senderUser);
-
         Connection conn = null;
         PreparedStatement selectStmt = null;
         ResultSet selectRS = null;
@@ -428,8 +422,6 @@ public class WhiteListManager extends GenericMailet {
         String senderUser = senderMailAddress.getLocalPart().toLowerCase(Locale.US);
         Domain senderHost = senderMailAddress.getDomain();
 
-        senderUser = getPrimaryName(senderUser);
-
         Connection conn = null;
         PreparedStatement selectStmt = null;
         PreparedStatement insertStmt = null;
@@ -549,8 +541,6 @@ public class WhiteListManager extends GenericMailet {
         String senderUser = senderMailAddress.getLocalPart().toLowerCase(Locale.US);
         Domain senderHost = senderMailAddress.getDomain();
 
-        senderUser = getPrimaryName(senderUser);
-
         Connection conn = null;
         PreparedStatement selectStmt = null;
         PreparedStatement deleteStmt = null;
@@ -718,23 +708,6 @@ public class WhiteListManager extends GenericMailet {
     }
 
     /**
-     * Gets the main name of a local customer, handling alias
-     */
-    private String getPrimaryName(String originalUsername) {
-        String username;
-        try {
-            username = originalUsername;
-            JamesUser user = (JamesUser) localusers.getUserByName(Username.of(username));
-            if (user.getAliasing()) {
-                username = user.getAlias();
-            }
-        } catch (Exception e) {
-            username = originalUsername;
-        }
-        return username;
-    }
-
-    /**
      * Initializes the sql query environment from the SqlResources file. Will
      * look for conf/sqlResources.xml.
      * 
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java
index d088f1c..409ff3c 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java
@@ -36,11 +36,9 @@ import javax.sql.DataSource;
 
 import org.apache.james.core.Domain;
 import org.apache.james.core.MailAddress;
-import org.apache.james.core.Username;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.transport.mailets.WhiteListManager;
 import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.api.model.JamesUser;
 import org.apache.james.util.sql.JDBCUtil;
 import org.apache.james.util.sql.SqlResources;
 import org.apache.mailet.Experimental;
@@ -162,8 +160,6 @@ public abstract class AbstractSQLWhitelistMatcher extends GenericMatcher {
                 continue;
             }
 
-            recipientUser = getPrimaryName(recipientUser);
-
             if (matchedWhitelist(recipientMailAddress, mail)) {
                 // This address was already in the list
                 inWhiteList.add(recipientMailAddress);
@@ -178,23 +174,6 @@ public abstract class AbstractSQLWhitelistMatcher extends GenericMatcher {
     protected abstract boolean matchedWhitelist(MailAddress recipient, Mail mail) throws MessagingException;
 
     /**
-     * Gets the main name of a local customer, handling alias
-     */
-    protected String getPrimaryName(String originalUsername) {
-        String username;
-        try {
-            username = originalUsername;
-            JamesUser user = (JamesUser) localusers.getUserByName(Username.of(username));
-            if (user.getAliasing()) {
-                username = user.getAlias();
-            }
-        } catch (Exception e) {
-            username = originalUsername;
-        }
-        return username;
-    }
-
-    /**
      * Initializes the sql query environment from the SqlResources file.<br>
      * Will look for conf/sqlResources.xml.<br>
      * Will <strong>not</<strong> create the database resources, if missing<br>


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