Default Group when using external database foer auth not working

Hi there

I admin a wildfire 3.1.1 install whose authorisation and datastore are two separate mysql databases (on the same box).

It all works well apart from my trying to get a default group “Members” to contain everyone.

I have so far:

  • created a group “Members”

  • Enable contact list group sharing

  • Enabled “Share group with additional users”

  • Set “contact list group name” to Members and then Test1

  • restarted the server after making these changes

but the group or users are still not appearing !!

I have used a custom compiled version of spark 2.00, normal spark 2.08 and exodus.

At the moment I am looking into scripting a solution as the roster information is stored in a database.

My question is twofold.

  1. what do i need to store in the database to add a user to someones roster. Iv seen examples entries in the table jiveRoster an this is a fairly typical entry of a user croydon who is in the roster of the user user_one.

Such as

INSERT INTO jiveRoster (rosterID, username, jid, sub, ask, recv, nick) VALUES (323, ‘‘user_one’’, ‘‘croydon@testserver.co.uk’’, 3, -1, -1, ‘‘croydon’’);

rosterID. How is this number generated ? it seems to be incremental but its not defined as such.

username. user_one. The username of the use that this roster entry is in.

jid. croydon@testserver.co.uk. The jid of the user who is contained in this roster entry

sub. 3 added to this roster and authorised ?

ask -1 do we need to get auth?

recv -1 ???

nick. croydon

I can also see that jiveRosterGroups needs an entry for each one. for instance from my jiveRoster entry above, such as:

INSERT INTO jiveRosterGroups (rosterID, rank, groupName) VALUES (323, 0, ‘‘Members’’);

SO TO SUM UP, in order to add someone to as a roster entry i would need to figure out where the rosterID 323 value comes and then insert the following SQL.

INSERT INTO jiveRosterGroups (rosterID, rank, groupName) VALUES (323, 0, ‘‘Members’’);

INSERT INTO jiveRoster (rosterID, username, jid, sub, ask, recv, nick) VALUES (323, ‘‘user_one’’, ‘‘croydon@testserver.co.uk’’, 3, -1, -1, ‘‘croydon’’);

So I simply need to iterate through each user and add an entry for every other user.

Is there an automatic process I can use to make this happen.?

If i knew java i’'d write a plugin but its a LOT OF WORK to learn Java only for one thing

  1. Any ideas or user built plugins ?

Hi,

I assume that the next “rosterID” is stored in the “jiveID” table. As Wildfire caches a lot of the database content it’'s a bad idea to modify the database directly.

It will help a lot if you download Wildfire’'s source code and take a look at it how a roster is modified. But take a look at http://www.igniterealtime.org/roadmap.jsp and vote then for Roster Management in Admin Console if you like this option.

I’'m quite sure that one can also do this as admin using ad-hoc commands via xmpp.

LG