public List<Presence> addNone(@Nonnull final JID targetUserAddress, @Nonnull final Affiliation actorAffiliation) throws ForbiddenException, ConflictException
    {
        if (Affiliation.admin != actorAffiliation && Affiliation.owner != actorAffiliation) {
            throw new ForbiddenException();
        }
        final JID targetUserAddressBare = targetUserAddress.asBareJID();

        boolean jidWasAffiliated = false;
        synchronized (this) {
            // Check that the room always has an owner
            if (owners.contains(targetUserAddressBare) && owners.size() == 1) {
                throw new ConflictException();
            }
            // Remove the jid from ALL the affiliation lists. This can throw a 'forbidden' when the actor tries to demote a higher-up!
            final Affiliation oldAffiliation = getAffiliation(targetUserAddressBare);
            switch (oldAffiliation) {
                case owner:
                    removeOwner(targetUserAddressBare, actorAffiliation);
                    jidWasAffiliated = true;
                    break;
                case admin:
                    removeAdmin(targetUserAddressBare, actorAffiliation);
                    jidWasAffiliated = true;
                    break;
                case member:
                    removeMember(targetUserAddressBare, actorAffiliation, null); // No need to calculate actor role, as both the 'owner' and 'admin' affiliation is guaranteed to be allowed to perform this action.
                    jidWasAffiliated = true;
                    break;
                case outcast:
                    removeOutcast(targetUserAddressBare, actorAffiliation, null); // No need to calculate actor role, as both the 'owner' and 'admin' affiliation is guaranteed to be allowed to perform this action.
                    break;
            }
            // Remove the affiliation of this user from the DB if the room is persistent
            MUCPersistenceManager.removeAffiliationFromDB(this, targetUserAddressBare, oldAffiliation);
        }
        if (jidWasAffiliated) {
            // apply the affiliation change, assigning a new affiliation
            // based on the group(s) of the affected user(s)
            return applyAffiliationChange(targetUserAddressBare, null, null, null);
        } else {
            // no presence updates needed
            return Collections.emptyList();
        }
    }
Removes the user from all the other affiliation list thus giving the user a NONE affiliation.

When kicking a user from the room, use {@link #kickOccupant(JID, Affiliation, Role, JID, String, String)}
instead, which causes the <em>role</em> of the occupant to be changed (instead of the <em>affiliation</em>, which is modified
by this method).

@param targetUserAddress The (real) JID of the user to give a NONE affiliation.
@param actorAffiliation The room affiliation of the user that set the affiliation to none.
@return the list of updated presences of all the client resources that the client used to
        join the room or null if none was updated.
@throws ForbiddenException If the user is not allowed to modify the none list.
@throws ConflictException If the room was going to lose all its owners.
@see #kickOccupant(JID, Affiliation, Role, JID, String, String)
xmppserver/src/main/java/org/jivesoftware/openfire/muc/MUCRoom.java