Author: solomax
Date: Wed Jan 29 08:05:46 2014
New Revision: 1562376

URL: http://svn.apache.org/r1562376
Log:
[OPENMEETINGS-880] Forget password works as expected if no email are entered

Modified:
    
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
    
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/user/User.java
    
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java

Modified: 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java?rev=1562376&r1=1562375&r2=1562376&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
 Wed Jan 29 08:05:46 2014
@@ -295,54 +295,48 @@ public class AbstractUserDao  {
        }
        
        public User getUserByName(String login) {
+               User us = null;
                try {
-                       TypedQuery<User> query = 
em.createNamedQuery("getUserByName", User.class);
-                       query.setParameter("login", login);
-                       query.setParameter("deleted", true);
-                       User us = null;
-                       try {
-                               us = query.getSingleResult();
-                       } catch (NoResultException ex) {
-                       }
-                       return us;
-               } catch (Exception e) {
-                       log.error("[getUserByAdressesId]", e);
+                       us = em.createNamedQuery("getUserByLogin", User.class)
+                                       .setParameter("login", login)
+                                       .setParameter("type", User.Type.user)
+                                       .getSingleResult();
+               } catch (NoResultException ex) {
                }
-               return null;
+               return us;
        }
 
        public User getUserByEmail(String email) {
-               TypedQuery<User> query = em.createNamedQuery("getUserByEmail", 
User.class);
-               query.setParameter("email", email);
                User us = null;
                try {
-                       us = query.getSingleResult();
+                       us = em.createNamedQuery("getUserByEmail", User.class)
+                                       .setParameter("email", email)
+                                       .setParameter("type", User.Type.user)
+                                       .getSingleResult();
                } catch (NoResultException ex) {
                }
                return us;
        }
 
        public Object getUserByHash(String hash) {
+               if (hash.length() == 0) {
+                       return new Long(-5);
+               }
+               User us = null;
                try {
-                       if (hash.length() == 0)
-                               return new Long(-5);
-                       TypedQuery<User> query = 
em.createNamedQuery("getUserByHash", User.class);
-                       query.setParameter("resethash", hash);
-                       query.setParameter("deleted", true);
-                       User us = null;
-                       try {
-                               us = query.getSingleResult();
-                       } catch (NoResultException ex) {
-                       }
-                       if (us != null) {
-                               return us;
-                       } else {
-                               return new Long(-5);
-                       }
+                       us = em.createNamedQuery("getUserByHash", User.class)
+                                       .setParameter("resethash", hash)
+                                       .setParameter("type", User.Type.user)
+                                       .getSingleResult();
+               } catch (NoResultException ex) {
                } catch (Exception e) {
                        log.error("[getUserByHash]", e);
                }
-               return new Long(-1);
+               if (us != null) {
+                       return us;
+               } else {
+                       return new Long(-5);
+               }
        }
 
        /**

Modified: 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/user/User.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/user/User.java?rev=1562376&r1=1562375&r2=1562376&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/user/User.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/user/User.java
 Wed Jan 29 08:05:46 2014
@@ -76,12 +76,9 @@ import org.simpleframework.xml.Root;
                        + "AND u.login = :login AND u.deleted = false"),
        @NamedQuery(name = "checkUserEmail", query = "SELECT COUNT(u) FROM User 
u WHERE ((:id > 0 AND u.user_id <> :id) OR (:id = 0)) "
                        + "AND u.adresses.email = :email AND u.deleted = false 
AND u.type <> :type"),
-       @NamedQuery(name = "getUserByName", query = "SELECT u FROM User u "
-                       + " where u.login = :login" + " AND u.deleted <> 
:deleted"),
-       @NamedQuery(name = "getUserByEmail", query = "SELECT u FROM User u 
WHERE u.deleted = false AND u.adresses.email = :email"),
-       @NamedQuery(name = "getUserByHash", query = "SELECT u FROM User u "
-                       + " where u.resethash = :resethash"
-                       + " AND u.deleted <> :deleted"),
+       @NamedQuery(name = "getUserByLogin", query = "SELECT u FROM User u 
WHERE u.deleted = false AND u.type = :type AND u.login = :login"),
+       @NamedQuery(name = "getUserByEmail", query = "SELECT u FROM User u 
WHERE u.deleted = false AND u.type = :type AND u.adresses.email = :email"),
+       @NamedQuery(name = "getUserByHash",  query = "SELECT u FROM User u 
WHERE u.deleted = false AND u.type = :type AND u.resethash = :resethash"),
        @NamedQuery(name = "getContactByEmailAndUser", query = "SELECT u FROM 
User u WHERE u.deleted = false AND u.adresses.email = :email AND u.type = :type 
AND u.ownerId = :ownerId"), 
        @NamedQuery(name = "selectMaxFromUsersWithSearch", query = "select 
count(c.user_id) from User c "
                        + "where c.deleted = false " + "AND ("

Modified: 
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java?rev=1562376&r1=1562375&r2=1562376&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
 Wed Jan 29 08:05:46 2014
@@ -112,7 +112,6 @@ public class ForgetPasswordDialog extend
                                        
                                        @Override
                                        protected void 
onError(AjaxRequestTarget target, Form<?> form) {
-                                               // TODO Auto-generated method 
stub
                                                
ForgetPasswordDialog.this.onError(target);
                                        }
                                });
@@ -122,11 +121,13 @@ public class ForgetPasswordDialog extend
                        protected void onValidate() {
                                AdminUserDao dao = getBean(AdminUserDao.class);
                                String n = nameField.getConvertedInput();
-                               if (type == Type.email && null == 
dao.getUserByEmail(n)) {
-                                       error(WebSession.getString(318));
-                               }
-                               if (type == Type.login && null == 
dao.getUserByName(n)) {
-                                       error(WebSession.getString(320));
+                               if (n != null) {
+                                       if (type == Type.email && null == 
dao.getUserByEmail(n)) {
+                                               
error(WebSession.getString(318));
+                                       }
+                                       if (type == Type.login && null == 
dao.getUserByName(n)) {
+                                               
error(WebSession.getString(320));
+                                       }
                                }
                        }
                });


Reply via email to