Commit d3c4c137 authored by Gaston Dombiak's avatar Gaston Dombiak Committed by gato

Fixed storing/loading group members. JM-1080

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@9347 b35dd754-fafc-0310-a699-88a17e54d16e
parent a2741cce
...@@ -11,17 +11,16 @@ ...@@ -11,17 +11,16 @@
package org.jivesoftware.openfire.group; package org.jivesoftware.openfire.group;
import org.jivesoftware.database.DbConnectionManager; import org.jivesoftware.database.DbConnectionManager;
import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.util.JiveGlobals; import org.jivesoftware.util.JiveGlobals;
import org.jivesoftware.util.Log; import org.jivesoftware.util.Log;
import org.xmpp.packet.JID; import org.xmpp.packet.JID;
import java.sql.DriverManager; import java.sql.*;
import java.sql.Connection; import java.util.ArrayList;
import java.sql.PreparedStatement; import java.util.Collection;
import java.sql.ResultSet; import java.util.Collections;
import java.sql.SQLException; import java.util.List;
import java.util.*;
/** /**
* The JDBC group provider allows you to use an external database to define the make up of groups. * The JDBC group provider allows you to use an external database to define the make up of groups.
...@@ -73,6 +72,8 @@ public class JDBCGroupProvider implements GroupProvider { ...@@ -73,6 +72,8 @@ public class JDBCGroupProvider implements GroupProvider {
private String loadMembersSQL; private String loadMembersSQL;
private String loadAdminsSQL; private String loadAdminsSQL;
private XMPPServer server = XMPPServer.getInstance();
/** /**
* Constructor of the JDBCGroupProvider class. * Constructor of the JDBCGroupProvider class.
*/ */
...@@ -168,7 +169,13 @@ public class JDBCGroupProvider implements GroupProvider { ...@@ -168,7 +169,13 @@ public class JDBCGroupProvider implements GroupProvider {
while (rs.next()) { while (rs.next()) {
String user = rs.getString(1); String user = rs.getString(1);
if (user != null) { if (user != null) {
JID userJID = new JID(user); JID userJID;
if (user.contains("@")) {
userJID = new JID(user);
}
else {
userJID = server.createJID(user, null);
}
members.add(userJID); members.add(userJID);
} }
} }
...@@ -282,7 +289,7 @@ public class JDBCGroupProvider implements GroupProvider { ...@@ -282,7 +289,7 @@ public class JDBCGroupProvider implements GroupProvider {
try { try {
con = DriverManager.getConnection(connectionString); con = DriverManager.getConnection(connectionString);
pstmt = con.prepareStatement(userGroupsSQL); pstmt = con.prepareStatement(userGroupsSQL);
pstmt.setString(1, user.toString()); pstmt.setString(1, server.isLocal(user) ? user.getNode() : user.toString());
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
while (rs.next()) { while (rs.next()) {
groupNames.add(rs.getString(1)); groupNames.add(rs.getString(1));
......
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