New User Default Roster Items

Is there a way to setup Openfire to create a default roster item for every new user? I have the User Registration plug-in installed and it will add new users to a group, but I don’t want that group to be “public” as my clients only need to send messages to/from a single user. The issue here is that in order for my main user to talk to the client it needs to be able to tell the client is online so I need to ensure that the client has my main user in the clients default roster and my main user has to have the client in its roster. I currently have this working fine except that I have to manually log-in to the admin interface and set the roster item on both the new user account and the main account.

Any suggestions or would it just be easier to write my client to auto-add the main user and then write my main user to auto-accept the subscription?

There is a Subscription plugin available. If it is set to accept all then the rosters additions do not need approval. You could add the ID of the single person they are to talk to to a new group and share it for all users. That would mean that new users would would get that group with just one user in it. It is not so easy the other way. You can not share the group with the outside users in it with out that group populating to their roster. You might get around that with the Packet filter plugin from the community plugins.

Yea, the idea about adding the shared roster for the one user is a great idea, the only problem I have is that the admin user is only “allowed” to talk to people that are on his roster, but I’m stuck because, like you said, if I create a roster and auto-add all new users to that roster they will be able to see each other.

I figure that since I can do exactly what I need manually it can’t be that hard to write a plug-in that does exactly what I need (famous last words). I’ll read up on the developer documentation and see what I can do. I think the “Registration” plug-in will be a good source for learning about plug-ins.

If anyone knows of a plug-in that’s already avaialble for this type of thing (creating new roster items NOT groups) let me know.

Thanks for your help mtstravel!

-Josh

the only problem I have is that the admin user is only “allowed” to talk to people that are on his roster,

Thats not true. My configuration is the following:

Group “Jabber Admins”

ShareMode: onlygroup

ShareWithGroups: “NewUsers”, “Jabber Team”

(this members do user support, members can see team and admins)

Group “Jabber Team”

ShareMode: onlygroup

ShareWithGroups: “Jabber Admins”

(the rest of the team, members can see team and admins)

Group ‘NewUsers’

ShareMode: nobody

ShareWithGroups: none

(members can see admins)

If someone of group “NewUsers” sends a message to one of the admins, the contact is shown as “not in list” for the admin. The admin can answer normally, the contact stays on list until the admin deletes it or restarts the client. Obviously you have to enable in your client that you can get messages from users not on your contact list.

My group “NewUsers” has currently 924 members. Having them all on contact list would not be practicable. Starting the client and loading the roster would take a few minutes. I see my users only if they want something.

Because the admin is not able to see the presence of users (because they are not really on his list) something like the Helga-Bot is helpful here:

[12:27:36] <Coolcat> info heinz.wurst
[12:27:36] <helga> heinz.wurst@jabber.rwth-aachen.de/Psi (5)
Status: 'Online'
ClientInfo: Psi 0.11 | Fedora release 7 (Moonshine) Helga-Settings:
registered = true
public = false
seeadmins = true

Yea, that makes good sense, but when I said that I was referring to a custom client that I wrote that restricts who the “admin” can talk to. If my admin app doesn’t see the user as online he will skip the user. I should have been more clear about the restrictions of my custom client, sorry. The configuration I need is so that my “users” can only see my admin account and my admin can see all of my “users”. I’m trying to let Openfire handle my rosters as it will save me some code on the client-side.

I have decided to simply create a SQL trigger in MySQL to handle the roster item additions as it should be easier then developing a plug-in.

  • Josh