Commit 8f37c6b8 authored by Tom Evans's avatar Tom Evans

OF-163: Properly filter roster groups by user

Merged patch contributed by Ashley Ward.
parent 28759472
...@@ -75,7 +75,9 @@ public class DefaultRosterItemProvider implements RosterItemProvider { ...@@ -75,7 +75,9 @@ public class DefaultRosterItemProvider implements RosterItemProvider {
private static final String LOAD_ROSTER = private static final String LOAD_ROSTER =
"SELECT jid, rosterID, sub, ask, recv, nick FROM ofRoster WHERE username=?"; "SELECT jid, rosterID, sub, ask, recv, nick FROM ofRoster WHERE username=?";
private static final String LOAD_ROSTER_ITEM_GROUPS = private static final String LOAD_ROSTER_ITEM_GROUPS =
"SELECT rosterID,groupName FROM ofRosterGroups"; "SELECT rosterID,groupName FROM ofRosterGroups " +
"INNER JOIN ofRoster ON ofRosterGroups.rosterID = ofRoster.rosterID " +
"WHERE username=? ORDER BY rosterID, rank";
/* (non-Javadoc) /* (non-Javadoc)
* @see org.jivesoftware.openfire.roster.RosterItemProvider#createItem(java.lang.String, org.jivesoftware.openfire.roster.RosterItem) * @see org.jivesoftware.openfire.roster.RosterItemProvider#createItem(java.lang.String, org.jivesoftware.openfire.roster.RosterItem)
...@@ -267,14 +269,8 @@ public class DefaultRosterItemProvider implements RosterItemProvider { ...@@ -267,14 +269,8 @@ public class DefaultRosterItemProvider implements RosterItemProvider {
// Load the groups for the loaded contact // Load the groups for the loaded contact
if (!itemList.isEmpty()) { if (!itemList.isEmpty()) {
StringBuilder sb = new StringBuilder(100); pstmt = con.prepareStatement(LOAD_ROSTER_ITEM_GROUPS);
sb.append(LOAD_ROSTER_ITEM_GROUPS).append(" WHERE rosterID IN ("); pstmt.setString(1, username);
for (RosterItem item : itemList) {
sb.append(item.getID()).append(",");
}
sb.setLength(sb.length()-1);
sb.append(") ORDER BY rosterID, rank");
pstmt = con.prepareStatement(sb.toString());
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
while (rs.next()) { while (rs.next()) {
itemsByID.get(rs.getLong(1)).getGroups().add(rs.getString(2)); itemsByID.get(rs.getLong(1)).getGroups().add(rs.getString(2));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment