Skip to content

Commit 30478d7

Browse files
committed
Require a user has a subscription to change their affiliation.
Fixes #295
1 parent 4df97c3 commit 30478d7

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/AffiliationEvent.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.buddycloud.channelserver.pubsub.affiliation.Affiliations;
1313
import org.buddycloud.channelserver.pubsub.model.NodeMembership;
1414
import org.buddycloud.channelserver.pubsub.model.NodeSubscription;
15+
import org.buddycloud.channelserver.pubsub.subscription.Subscriptions;
1516
import org.buddycloud.channelserver.utils.XMLConstants;
1617
import org.buddycloud.channelserver.utils.node.item.payload.Buddycloud;
1718
import org.dom4j.Document;
@@ -199,7 +200,8 @@ private boolean subscriberHasCurrentAffiliation() throws NodeStoreException {
199200
channelManager.getNodeMembership(node,
200201
new JID(requestedAffiliationElement.attributeValue(XMLConstants.JID_ATTR)));
201202

202-
if (usersCurrentMembership.getAffiliation().equals(Affiliations.none)) {
203+
if (usersCurrentMembership.getAffiliation().equals(Affiliations.none)
204+
&& usersCurrentMembership.getSubscription().equals(Subscriptions.none)) {
203205
setErrorCondition(PacketError.Type.modify, PacketError.Condition.unexpected_request);
204206
return false;
205207
}

0 commit comments

Comments
 (0)