You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2014/02/03 16:34:53 UTC
svn commit: r1563952 - in /openmeetings:
branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/
branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/
trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/
trunk/sin...
Author: solomax
Date: Mon Feb 3 15:34:52 2014
New Revision: 1563952
URL: http://svn.apache.org/r1563952
Log:
[OPENMEETINGS-910] private contacts are not displayed in user search
Modified:
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
Modified: openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java?rev=1563952&r1=1563951&r2=1563952&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java (original)
+++ openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java Mon Feb 3 15:34:52 2014
@@ -104,11 +104,11 @@ public class AbstractUserDao {
return q.getResultList();
}
- private String getAdditionalWhere(boolean isAdmin){
+ private String getAdditionalWhere(boolean isAdmin) {
return isAdmin ? null : "(u.type <> :contact OR (u.type = :contact AND u.ownerId = :ownerId))";
}
- private void setAdditionalParams(TypedQuery<?> q, boolean isAdmin, long currentUserId){
+ private void setAdditionalParams(TypedQuery<?> q, boolean isAdmin, long currentUserId) {
if (!isAdmin) {
q.setParameter("ownerId", currentUserId);
q.setParameter("contact", Type.contact);
@@ -426,7 +426,8 @@ public class AbstractUserDao {
private StringBuilder getUserProfileQuery(boolean count, String text, String offers, String search) {
StringBuilder sb = new StringBuilder("SELECT ");
sb.append(count ? "COUNT(" : "").append("u").append(count ? ") " : " ")
- .append("FROM User u WHERE u.deleted = false ");
+ .append("FROM User u WHERE u.deleted = false AND ")
+ .append(getAdditionalWhere(false));
if (offers != null && offers.length() != 0) {
sb.append("AND (LOWER(u.userOffers) LIKE :userOffers) ");
}
@@ -443,12 +444,13 @@ public class AbstractUserDao {
return sb;
}
- public List<User> searchUserProfile(String text, String offers, String search, String orderBy, int start, int max, boolean asc) {
+ public List<User> searchUserProfile(long userId, String text, String offers, String search, String orderBy, int start, int max, boolean asc) {
StringBuilder sb = getUserProfileQuery(false, text, offers, search);
sb.append(" ORDER BY ").append(orderBy).append(asc ? " ASC" : " DESC");
log.debug("hql :: " + sb.toString());
TypedQuery<User> query = em.createQuery(sb.toString(), User.class);
+ setAdditionalParams(query, false, userId);
if (text != null && text.length() != 0) {
query.setParameter("search", StringUtils.lowerCase("%" + text + "%"));
@@ -462,11 +464,12 @@ public class AbstractUserDao {
return query.setFirstResult(start).setMaxResults(max).getResultList();
}
- public Long searchCountUserProfile(String text, String offers, String search) {
+ public Long searchCountUserProfile(long userId, String text, String offers, String search) {
StringBuilder sb = getUserProfileQuery(true, text, offers, search);
log.debug("hql :: " + sb.toString());
TypedQuery<Long> query = em.createQuery(sb.toString(), Long.class);
+ setAdditionalParams(query, false, userId);
if (text != null && text.length() != 0) {
query.setParameter("search", StringUtils.lowerCase("%" + text + "%"));
Modified: openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1563952&r1=1563951&r2=1563952&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java Mon Feb 3 15:34:52 2014
@@ -76,12 +76,12 @@ public class UserDao {
return dao.getUserByActivationHash(hash);
}
- public List<User> searchUserProfile(String text, String offers, String search, String orderBy, int start, int max, boolean asc) {
- return dao.searchUserProfile(text, offers, search, orderBy, start, max, asc);
+ public List<User> searchUserProfile(long userId, String text, String offers, String search, String orderBy, int start, int max, boolean asc) {
+ return dao.searchUserProfile(userId, text, offers, search, orderBy, start, max, asc);
}
- public Long searchCountUserProfile(String text, String offers, String search) {
- return dao.searchCountUserProfile(text, offers, search);
+ public Long searchCountUserProfile(long userId, String text, String offers, String search) {
+ return dao.searchCountUserProfile(userId, text, offers, search);
}
public User getExternalUser(String extId, String extType) {
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java?rev=1563952&r1=1563951&r2=1563952&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java Mon Feb 3 15:34:52 2014
@@ -108,12 +108,12 @@ public class UserSearchPanel extends Use
}
public Iterator<? extends User> iterator(long first, long count) {
- return searched ? getBean(UserDao.class).searchUserProfile(text, offer, search, orderBy, (int)first, (int)count, asc).iterator()
+ return searched ? getBean(UserDao.class).searchUserProfile(getUserId(), text, offer, search, orderBy, (int)first, (int)count, asc).iterator()
: new ArrayList<User>().iterator();
}
public long size() {
- return searched ? getBean(UserDao.class).searchCountUserProfile(text, offer, search) : 0;
+ return searched ? getBean(UserDao.class).searchCountUserProfile(getUserId(), text, offer, search) : 0;
}
public IModel<User> model(User object) {
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=1563952&r1=1563951&r2=1563952&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 Mon Feb 3 15:34:52 2014
@@ -104,11 +104,11 @@ public class AbstractUserDao {
return q.getResultList();
}
- private String getAdditionalWhere(boolean isAdmin){
+ private String getAdditionalWhere(boolean isAdmin) {
return isAdmin ? null : "(u.type <> :contact OR (u.type = :contact AND u.ownerId = :ownerId))";
}
- private void setAdditionalParams(TypedQuery<?> q, boolean isAdmin, long currentUserId){
+ private void setAdditionalParams(TypedQuery<?> q, boolean isAdmin, long currentUserId) {
if (!isAdmin) {
q.setParameter("ownerId", currentUserId);
q.setParameter("contact", Type.contact);
@@ -426,7 +426,8 @@ public class AbstractUserDao {
private StringBuilder getUserProfileQuery(boolean count, String text, String offers, String search) {
StringBuilder sb = new StringBuilder("SELECT ");
sb.append(count ? "COUNT(" : "").append("u").append(count ? ") " : " ")
- .append("FROM User u WHERE u.deleted = false ");
+ .append("FROM User u WHERE u.deleted = false AND ")
+ .append(getAdditionalWhere(false));
if (offers != null && offers.length() != 0) {
sb.append("AND (LOWER(u.userOffers) LIKE :userOffers) ");
}
@@ -443,12 +444,13 @@ public class AbstractUserDao {
return sb;
}
- public List<User> searchUserProfile(String text, String offers, String search, String orderBy, int start, int max, boolean asc) {
+ public List<User> searchUserProfile(long userId, String text, String offers, String search, String orderBy, int start, int max, boolean asc) {
StringBuilder sb = getUserProfileQuery(false, text, offers, search);
sb.append(" ORDER BY ").append(orderBy).append(asc ? " ASC" : " DESC");
log.debug("hql :: " + sb.toString());
TypedQuery<User> query = em.createQuery(sb.toString(), User.class);
+ setAdditionalParams(query, false, userId);
if (text != null && text.length() != 0) {
query.setParameter("search", StringUtils.lowerCase("%" + text + "%"));
@@ -462,11 +464,12 @@ public class AbstractUserDao {
return query.setFirstResult(start).setMaxResults(max).getResultList();
}
- public Long searchCountUserProfile(String text, String offers, String search) {
+ public Long searchCountUserProfile(long userId, String text, String offers, String search) {
StringBuilder sb = getUserProfileQuery(true, text, offers, search);
log.debug("hql :: " + sb.toString());
TypedQuery<Long> query = em.createQuery(sb.toString(), Long.class);
+ setAdditionalParams(query, false, userId);
if (text != null && text.length() != 0) {
query.setParameter("search", StringUtils.lowerCase("%" + text + "%"));
Modified: openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1563952&r1=1563951&r2=1563952&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java Mon Feb 3 15:34:52 2014
@@ -76,12 +76,12 @@ public class UserDao {
return dao.getUserByActivationHash(hash);
}
- public List<User> searchUserProfile(String text, String offers, String search, String orderBy, int start, int max, boolean asc) {
- return dao.searchUserProfile(text, offers, search, orderBy, start, max, asc);
+ public List<User> searchUserProfile(long userId, String text, String offers, String search, String orderBy, int start, int max, boolean asc) {
+ return dao.searchUserProfile(userId, text, offers, search, orderBy, start, max, asc);
}
- public Long searchCountUserProfile(String text, String offers, String search) {
- return dao.searchCountUserProfile(text, offers, search);
+ public Long searchCountUserProfile(long userId, String text, String offers, String search) {
+ return dao.searchCountUserProfile(userId, text, offers, search);
}
public User getExternalUser(String extId, String extType) {
Modified: openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java?rev=1563952&r1=1563951&r2=1563952&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java Mon Feb 3 15:34:52 2014
@@ -108,12 +108,12 @@ public class UserSearchPanel extends Use
}
public Iterator<? extends User> iterator(long first, long count) {
- return searched ? getBean(UserDao.class).searchUserProfile(text, offer, search, orderBy, (int)first, (int)count, asc).iterator()
+ return searched ? getBean(UserDao.class).searchUserProfile(getUserId(), text, offer, search, orderBy, (int)first, (int)count, asc).iterator()
: new ArrayList<User>().iterator();
}
public long size() {
- return searched ? getBean(UserDao.class).searchCountUserProfile(text, offer, search) : 0;
+ return searched ? getBean(UserDao.class).searchCountUserProfile(getUserId(), text, offer, search) : 0;
}
public IModel<User> model(User object) {