Add helper methods for finding and updating users.
authorpastith <devnull@localhost>
Tue, 14 Apr 2009 08:32:46 +0000 (08:32 +0000)
committerpastith <devnull@localhost>
Tue, 14 Apr 2009 08:32:46 +0000 (08:32 +0000)
gss/src/gr/ebs/gss/server/ejb/ExternalAPI.java
gss/src/gr/ebs/gss/server/ejb/ExternalAPIBean.java
gss/src/gr/ebs/gss/server/ejb/ExternalAPIRemote.java
gss/src/gr/ebs/gss/server/ejb/GSSDAO.java
gss/src/gr/ebs/gss/server/ejb/GSSDAOBean.java

index e3dfed6..69b4f99 100644 (file)
@@ -1225,4 +1225,14 @@ public interface ExternalAPI {
         */
        public FileBodyDTO getFileVersion(Long userId, Long fileId, int version) throws ObjectNotFoundException, InsufficientPermissionsException;
 
+       /**
+        * Search the system for a user with the specified email address.
+        * If no such user is found, the method returns null.
+        */
+       public User findUserByEmail(String email);
+
+       /**
+        * Update the user with the values from the supplied object.
+        */
+       public void updateUser(User user);
 }
index f146109..bf4fe6f 100644 (file)
@@ -1279,6 +1279,16 @@ public class ExternalAPIBean implements ExternalAPI, ExternalAPIRemote {
        }
 
        @Override
+       public User findUserByEmail(String email) {
+               return dao.findUserByEmail(email);
+       }
+
+       @Override
+       public void updateUser(User user) {
+               dao.update(user);
+       }
+
+       @Override
        public User updateUser(String username, String name, String mail) throws ObjectNotFoundException {
                if (username == null)
                        throw new ObjectNotFoundException("No username specified");
index e7ecd83..1dad1c9 100644 (file)
@@ -722,4 +722,15 @@ public interface ExternalAPIRemote {
         * It is used by the Solr mbean to rebuild the index.
         */
        public void rebuildSolrIndex();
+
+       /**
+        * Search the system for a user with the specified email address.
+        * If no such user is found, the method returns null.
+        */
+       public User findUserByEmail(String email);
+
+       /**
+        * Update the user with the values from the supplied object.
+        */
+       public void updateUser(User user);
 }
index ee7edbb..fff035a 100644 (file)
@@ -218,6 +218,12 @@ public interface GSSDAO {
        public User findUser(String username);
 
        /**
+        * Search the system for a user with the specified email address.
+        * If no such user is found, the method returns null.
+        */
+       public User findUserByEmail(String email);
+
+       /**
         * Returns a list of users matching specified username
         *
         * @param username the email of the User
index 3a7cee3..4afa736 100644 (file)
@@ -326,18 +326,22 @@ public class GSSDAOBean implements GSSDAO {
                return results.get(0);
        }
 
-       /* (non-Javadoc)
-        * @see gr.ebs.gss.server.ejb.GSSDAO#getUsersByUserNameLike(java.lang.String)
-        */
+       @Override
+       public User findUserByEmail(String email) {
+               if (email == null)
+                       return null;
+               List<User> results = manager.createQuery("select u from User u where u.email=:email").
+                               setParameter("email", email).getResultList();
+               if (results.isEmpty()) return null;
+               return results.get(0);
+       }
+
        @Override
        public List<User> getUsersByUserNameLike(String username) {
                return manager.createQuery("select u from User u where u.username like :username").
                setParameter("username", username+"%").getResultList();
        }
 
-       /* (non-Javadoc)
-        * @see gr.ebs.gss.server.ejb.GSSDAO#getSharedRootFolders(java.lang.Long)
-        */
        @Override
        public List<Folder> getSharedRootFolders(Long userId) {
                List<Folder> folders = manager.createQuery("select distinct f from Folder f " +
@@ -351,9 +355,6 @@ public class GSSDAOBean implements GSSDAO {
                return result;
        }
 
-       /* (non-Javadoc)
-        * @see gr.ebs.gss.server.ejb.GSSDAO#getFoldersPermittedForGroup(java.lang.Long, java.lang.Long)
-        */
        @Override
        public List<Folder> getFoldersPermittedForGroup(Long userId, Long groupId) {
                return manager.createQuery("select distinct f from Folder f LEFT JOIN f.permissions p " +
@@ -361,9 +362,6 @@ public class GSSDAOBean implements GSSDAO {
                                        setParameter("userId", userId).setParameter("groupId", groupId).getResultList();
        }
 
-       /* (non-Javadoc)
-        * @see gr.ebs.gss.server.ejb.GSSDAO#getUsersSharingFilesForUser(java.lang.Long)
-        */
        @Override
        public List<User> getUsersSharingFoldersForUser(Long userId) {
                return manager.createQuery("select distinct f.owner from Folder f " +
@@ -373,9 +371,6 @@ public class GSSDAOBean implements GSSDAO {
                                        setParameter("userId", userId).getResultList();
        }
 
-       /* (non-Javadoc)
-        * @see gr.ebs.gss.server.ejb.GSSDAO#getUsersSharingFilesForUser(java.lang.Long)
-        */
        @Override
        public List<User> getUsersSharingFilesForUser(Long userId) {
                List<User> users = manager.createQuery("select distinct f.owner from FileHeader f " +