@Override public void userModified(User user, Map<String,Object> params) { if ("nameModified".equals(params.get("type"))) { for (Group group : getSharedGroups(user.getUsername())) { ArrayList<JID> groupUsers = new ArrayList<>(); groupUsers.addAll(group.getAdmins()); groupUsers.addAll(group.getMembers()); for (JID groupUser : groupUsers) { rosterCache.remove(groupUser.getNode()); } } } }
Collection<Group> sharedGroups = rosterManager.getSharedGroups(username);
@Override public IQ handleIQ(IQ packet) throws UnauthorizedException { IQ result = IQ.createResultIQ(packet); String username = packet.getFrom().getNode(); if (!serverName.equals(packet.getFrom().getDomain()) || username == null) { // Users of remote servers are not allowed to get their "shared groups". Users of // remote servers cannot have shared groups in this server. // Besides, anonymous users do not belong to shared groups so answer an error result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.not_allowed); return result; } Collection<Group> groups = rosterManager.getSharedGroups(username); Element sharedGroups = result.setChildElement("sharedgroup", "http://www.jivesoftware.org/protocol/sharedgroup"); for (Group sharedGroup : groups) { String displayName = sharedGroup.getProperties().get("sharedRoster.displayName"); if (displayName != null) { sharedGroups.addElement("group").setText(displayName); } } return result; }
@Override public void userModified(User user, Map<String,Object> params) { if ("nameModified".equals(params.get("type"))) { for (Group group : getSharedGroups(user.getUsername())) { ArrayList<JID> groupUsers = new ArrayList<>(); groupUsers.addAll(group.getAdmins()); groupUsers.addAll(group.getMembers()); for (JID groupUser : groupUsers) { rosterCache.remove(groupUser.getNode()); } } } }
Collection<Group> sharedGroups = rosterManager.getSharedGroups(username);
@Override public IQ handleIQ(IQ packet) throws UnauthorizedException { IQ result = IQ.createResultIQ(packet); String username = packet.getFrom().getNode(); if (!serverName.equals(packet.getFrom().getDomain()) || username == null) { // Users of remote servers are not allowed to get their "shared groups". Users of // remote servers cannot have shared groups in this server. // Besides, anonymous users do not belong to shared groups so answer an error result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.not_allowed); return result; } Collection<Group> groups = rosterManager.getSharedGroups(username); Element sharedGroups = result.setChildElement("sharedgroup", "http://www.jivesoftware.org/protocol/sharedgroup"); for (Group sharedGroup : groups) { String displayName = sharedGroup.getProperties().get("sharedRoster.displayName"); if (displayName != null) { sharedGroups.addElement("group").setText(displayName); } } return result; }