@Override
    public void memberRemoved(Group group, Map<String, ?> params) {
        String member = (String) params.get("member");
        if (member == null) {
            return;
        }
        JID deletedUser = new JID(member);
        // Do nothing if the user is still an admin
        if (group.getAdmins().contains(deletedUser)) {
            return;
        }
        if (!isSharedGroup(group)) {
            for (Group visibleGroup : getVisibleGroups(group)) {
                // Get the list of affected users
                Collection<JID> users = new HashSet<>(visibleGroup.getMembers());
                users.addAll(visibleGroup.getAdmins());
                groupUserDeleted(visibleGroup, users, deletedUser);
            }
        }
        else {
            groupUserDeleted(group, deletedUser);
        }
    }
Returns true if the specified Group may be seen by all users in the system. The decision
is made based on the group properties that are configurable through the Admin Console.

@param group the group to check if it may be seen by all users in the system.
@return true if the specified Group may be seen by all users in the system.
xmppserver/src/main/java/org/jivesoftware/openfire/roster/RosterManager.java