powered by Jive Software

REST API doesn't allow group affiliation changes for chat rooms


#1

I can add users to MUCRoom roles, but it appears that this was never fully implemented for groups. I reviewed the source code for the REST API on github and see that nowhere are the outcastGroups, memberGroups, adminGroups, or ownerGroups nodes from the XML/JSON referenced during update/creation of a MUC Room.

I attempted to use the base32hex/md5 format used in the database as users but that didn’t work out either in the REST API plugin (does work in the web portal though):

Jabber - AC Chat Admin
99gm4oj5e8g2q8218cg46q31egg42p3dd5n0====@jabber.example.com/f08b12142eda585bd3acffe8724f9d0f

This worked in the web portal, but the Rest API didn’t seem to notice it wasn’t a user, (probably should properly detect it).

While, I can read java code on github and find the issues, I’m not a java coder. I would be less than able to make the needed changes to implement the changes to the REST API plugin. I would really like to be able to add groups as role affiliations to MUC rooms, anyway to get this fixed?

MUCRoomController.java

        room.addOwners(MUCRoomUtils.convertStringsToJIDs(mucRoomEntity.getOwners()), room.getRole());
        if (mucRoomEntity.getAdmins() != null) {
            room.addAdmins(MUCRoomUtils.convertStringsToJIDs(mucRoomEntity.getAdmins()), room.getRole());
        }
        if (mucRoomEntity.getMembers() != null) {
            for (String memberJid : mucRoomEntity.getMembers()) {
                room.addMember(new JID(memberJid), null, room.getRole());
            }
        }
        if (mucRoomEntity.getOutcasts() != null) {
            for (String outcastJid : mucRoomEntity.getOutcasts()) {
                room.addOutcast(new JID(outcastJid), null, room.getRole());
            }
        }

Make this reference getOwnerGroups(), getMemberGroups(), getOutcastGroups(), and getAdminGroups() properties in the mucRoomEntity instance to allow it to correctly modify Group affiliations?