Push roster update to users authenticating via LDAP

Hello everyone,

I'm running ejabberd v2.0.3 on Debian 4.0 and have got it authenticating against Active Directory successfully. It works great, except I'm unable to work out how to update the users' rosters after adding or removing a user from the jabber group in AD that I have put in the ldap_filter attribute in ejabberd.cfg without either restarting ejabberd or having the client disconnect and reconnect. I'd like to be able to run some command from the command line to push the current roster out to all users connected to the server but am yet to find such a command.

I have tried installing the mod_ctlextra module and running the push-alltoall command through ejabberdctl but it didn't send out the changes made in AD. I also tried adding and removing users in one by one using srg-user-add and srg-user-del, which does seem to work while the client is connected but after the client disconnects and reconnects the roster goes back to how it was before (I assume that's because ejabberd won't recheck LDAP every time a user connects). So is there a way to update everyone's roster in one hit? If not, is there a way to get ejabberd to recheck AD to update its list of users so I can add/remove them one by one?

Cheers,

Jarrod

MasterNayru wrote: Hello

MasterNayru wrote:

Hello everyone,

I'm running ejabberd v2.0.3 on Debian 4.0 and have got it authenticating against Active Directory successfully. It works great, except I'm unable to work out how to update the users' rosters after adding or removing a user from the jabber group in AD that I have put in the ldap_filter attribute in ejabberd.cfg without either restarting ejabberd or having the client disconnect and reconnect. I'd like to be able to run some command from the command line to push the current roster out to all users connected to the server but am yet to find such a command.

I have tried installing the mod_ctlextra module and running the push-alltoall command through ejabberdctl but it didn't send out the changes made in AD. I also tried adding and removing users in one by one using srg-user-add and srg-user-del, which does seem to work while the client is connected but after the client disconnects and reconnects the roster goes back to how it was before (I assume that's because ejabberd won't recheck LDAP every time a user connects). So is there a way to update everyone's roster in one hit? If not, is there a way to get ejabberd to recheck AD to update its list of users so I can add/remove them one by one?

Cheers,

Jarrod

Jarrod,

Did you get an answer to this?

This exact problem is a complete show-stopper for us.

My scenario: All my users are in Active Directory, and authenticate via LDAP.
I populate a roster using an external script that calls srg-user-add.
I'd actually like to push this list to anyone who logs in, regardless of whether or not they are in that list.

case sensitivity

I now understand my problem is related to the fact that ejabberd messes with upper/lower case in the JID's,
and the comparison to the Roster is case sensitive. When I save a roster in the web ui, all the JID's in that roster are converted to lower case. That's good, since it then causes the roster to be visible, since the comparison looks like it's made in lowercase instead of ignoring case, but it's bad for us because we want the user id's to be in initial caps.

Syndicate content